summaryrefslogtreecommitdiff
path: root/protocols/Telegram/tdlib
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Telegram/tdlib')
-rw-r--r--protocols/Telegram/tdlib/td/.gitignore2
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.cpp1927
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.h1138
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.hpp294
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.cpp4072
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.h2138
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.hpp678
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.cpp33908
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.h29772
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.hpp8977
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.cpp15711
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.h4122
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.cpp52616
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.h33072
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.hpp9507
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/tlo/mtproto_api.tlobin0 -> 8044 bytes
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/tlo/secret_api.tlobin0 -> 15340 bytes
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/tlo/td_api.tlobin0 -> 253152 bytes
-rw-r--r--protocols/Telegram/tdlib/td/td/generate/auto/tlo/telegram_api.tlobin0 -> 287380 bytes
-rw-r--r--protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.cpp3057
-rw-r--r--protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.gperf1018
-rw-r--r--protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.cpp3031
-rw-r--r--protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.gperf804
23 files changed, 205842 insertions, 2 deletions
diff --git a/protocols/Telegram/tdlib/td/.gitignore b/protocols/Telegram/tdlib/td/.gitignore
index 2572f22305..9ecee470aa 100644
--- a/protocols/Telegram/tdlib/td/.gitignore
+++ b/protocols/Telegram/tdlib/td/.gitignore
@@ -1,8 +1,6 @@
**/*build*/
**/.*.swp
**/.DS_Store
-**/auto/
-auto/
db_backup
*.pyc
docs/
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.cpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.cpp
new file mode 100644
index 0000000000..7e85a47bdd
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.cpp
@@ -0,0 +1,1927 @@
+#include "mtproto_api.h"
+
+#include "td/tl/tl_object_parse.h"
+#include "td/tl/tl_object_store.h"
+
+#include "td/utils/common.h"
+#include "td/utils/format.h"
+#include "td/utils/logging.h"
+#include "td/utils/SliceBuilder.h"
+#include "td/utils/tl_parsers.h"
+#include "td/utils/tl_storers.h"
+#include "td/utils/TlStorerToString.h"
+
+namespace td {
+namespace mtproto_api {
+
+std::string to_string(const BaseObject &value) {
+ TlStorerToString storer;
+ value.store(storer, "");
+ return storer.move_as_string();
+}
+
+object_ptr<Object> Object::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case bad_msg_notification::ID:
+ return bad_msg_notification::fetch(p);
+ case bad_server_salt::ID:
+ return bad_server_salt::fetch(p);
+ case bind_auth_key_inner::ID:
+ return bind_auth_key_inner::fetch(p);
+ case client_DH_inner_data::ID:
+ return client_DH_inner_data::fetch(p);
+ case destroy_auth_key_ok::ID:
+ return destroy_auth_key_ok::fetch(p);
+ case destroy_auth_key_none::ID:
+ return destroy_auth_key_none::fetch(p);
+ case destroy_auth_key_fail::ID:
+ return destroy_auth_key_fail::fetch(p);
+ case future_salt::ID:
+ return future_salt::fetch(p);
+ case future_salts::ID:
+ return future_salts::fetch(p);
+ case gzip_packed::ID:
+ return gzip_packed::fetch(p);
+ case dummyHttpWait::ID:
+ return dummyHttpWait::fetch(p);
+ case msg_detailed_info::ID:
+ return msg_detailed_info::fetch(p);
+ case msg_new_detailed_info::ID:
+ return msg_new_detailed_info::fetch(p);
+ case msg_resend_req::ID:
+ return msg_resend_req::fetch(p);
+ case msgs_ack::ID:
+ return msgs_ack::fetch(p);
+ case msgs_all_info::ID:
+ return msgs_all_info::fetch(p);
+ case msgs_state_info::ID:
+ return msgs_state_info::fetch(p);
+ case msgs_state_req::ID:
+ return msgs_state_req::fetch(p);
+ case new_session_created::ID:
+ return new_session_created::fetch(p);
+ case p_q_inner_data_dc::ID:
+ return p_q_inner_data_dc::fetch(p);
+ case p_q_inner_data_temp_dc::ID:
+ return p_q_inner_data_temp_dc::fetch(p);
+ case pong::ID:
+ return pong::fetch(p);
+ case rsa_public_key::ID:
+ return rsa_public_key::fetch(p);
+ case resPQ::ID:
+ return resPQ::fetch(p);
+ case rpc_answer_unknown::ID:
+ return rpc_answer_unknown::fetch(p);
+ case rpc_answer_dropped_running::ID:
+ return rpc_answer_dropped_running::fetch(p);
+ case rpc_answer_dropped::ID:
+ return rpc_answer_dropped::fetch(p);
+ case rpc_error::ID:
+ return rpc_error::fetch(p);
+ case server_DH_params_ok::ID:
+ return server_DH_params_ok::fetch(p);
+ case server_DH_inner_data::ID:
+ return server_DH_inner_data::fetch(p);
+ case dh_gen_ok::ID:
+ return dh_gen_ok::fetch(p);
+ case dh_gen_retry::ID:
+ return dh_gen_retry::fetch(p);
+ case dh_gen_fail::ID:
+ return dh_gen_fail::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+object_ptr<Function> Function::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case destroy_auth_key::ID:
+ return destroy_auth_key::fetch(p);
+ case get_future_salts::ID:
+ return get_future_salts::fetch(p);
+ case http_wait::ID:
+ return http_wait::fetch(p);
+ case ping_delay_disconnect::ID:
+ return ping_delay_disconnect::fetch(p);
+ case req_DH_params::ID:
+ return req_DH_params::fetch(p);
+ case req_pq_multi::ID:
+ return req_pq_multi::fetch(p);
+ case rpc_drop_answer::ID:
+ return rpc_drop_answer::fetch(p);
+ case set_client_DH_params::ID:
+ return set_client_DH_params::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+object_ptr<BadMsgNotification> BadMsgNotification::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case bad_msg_notification::ID:
+ return bad_msg_notification::fetch(p);
+ case bad_server_salt::ID:
+ return bad_server_salt::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+bad_msg_notification::bad_msg_notification(int64 bad_msg_id_, int32 bad_msg_seqno_, int32 error_code_)
+ : bad_msg_id_(bad_msg_id_)
+ , bad_msg_seqno_(bad_msg_seqno_)
+ , error_code_(error_code_)
+{}
+
+const std::int32_t bad_msg_notification::ID;
+
+object_ptr<BadMsgNotification> bad_msg_notification::fetch(TlParser &p) {
+ return make_tl_object<bad_msg_notification>(p);
+}
+
+bad_msg_notification::bad_msg_notification(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : bad_msg_id_(TlFetchLong::parse(p))
+ , bad_msg_seqno_(TlFetchInt::parse(p))
+ , error_code_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void bad_msg_notification::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(bad_msg_id_, s);
+ TlStoreBinary::store(bad_msg_seqno_, s);
+ TlStoreBinary::store(error_code_, s);
+}
+
+void bad_msg_notification::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(bad_msg_id_, s);
+ TlStoreBinary::store(bad_msg_seqno_, s);
+ TlStoreBinary::store(error_code_, s);
+}
+
+void bad_msg_notification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bad_msg_notification");
+ s.store_field("bad_msg_id", bad_msg_id_);
+ s.store_field("bad_msg_seqno", bad_msg_seqno_);
+ s.store_field("error_code", error_code_);
+ s.store_class_end();
+ }
+}
+
+bad_server_salt::bad_server_salt(int64 bad_msg_id_, int32 bad_msg_seqno_, int32 error_code_, int64 new_server_salt_)
+ : bad_msg_id_(bad_msg_id_)
+ , bad_msg_seqno_(bad_msg_seqno_)
+ , error_code_(error_code_)
+ , new_server_salt_(new_server_salt_)
+{}
+
+const std::int32_t bad_server_salt::ID;
+
+object_ptr<BadMsgNotification> bad_server_salt::fetch(TlParser &p) {
+ return make_tl_object<bad_server_salt>(p);
+}
+
+bad_server_salt::bad_server_salt(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : bad_msg_id_(TlFetchLong::parse(p))
+ , bad_msg_seqno_(TlFetchInt::parse(p))
+ , error_code_(TlFetchInt::parse(p))
+ , new_server_salt_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void bad_server_salt::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(bad_msg_id_, s);
+ TlStoreBinary::store(bad_msg_seqno_, s);
+ TlStoreBinary::store(error_code_, s);
+ TlStoreBinary::store(new_server_salt_, s);
+}
+
+void bad_server_salt::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(bad_msg_id_, s);
+ TlStoreBinary::store(bad_msg_seqno_, s);
+ TlStoreBinary::store(error_code_, s);
+ TlStoreBinary::store(new_server_salt_, s);
+}
+
+void bad_server_salt::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bad_server_salt");
+ s.store_field("bad_msg_id", bad_msg_id_);
+ s.store_field("bad_msg_seqno", bad_msg_seqno_);
+ s.store_field("error_code", error_code_);
+ s.store_field("new_server_salt", new_server_salt_);
+ s.store_class_end();
+ }
+}
+
+bind_auth_key_inner::bind_auth_key_inner(int64 nonce_, int64 temp_auth_key_id_, int64 perm_auth_key_id_, int64 temp_session_id_, int32 expires_at_)
+ : nonce_(nonce_)
+ , temp_auth_key_id_(temp_auth_key_id_)
+ , perm_auth_key_id_(perm_auth_key_id_)
+ , temp_session_id_(temp_session_id_)
+ , expires_at_(expires_at_)
+{}
+
+const std::int32_t bind_auth_key_inner::ID;
+
+object_ptr<bind_auth_key_inner> bind_auth_key_inner::fetch(TlParser &p) {
+ return make_tl_object<bind_auth_key_inner>(p);
+}
+
+bind_auth_key_inner::bind_auth_key_inner(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchLong::parse(p))
+ , temp_auth_key_id_(TlFetchLong::parse(p))
+ , perm_auth_key_id_(TlFetchLong::parse(p))
+ , temp_session_id_(TlFetchLong::parse(p))
+ , expires_at_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void bind_auth_key_inner::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(temp_auth_key_id_, s);
+ TlStoreBinary::store(perm_auth_key_id_, s);
+ TlStoreBinary::store(temp_session_id_, s);
+ TlStoreBinary::store(expires_at_, s);
+}
+
+void bind_auth_key_inner::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(temp_auth_key_id_, s);
+ TlStoreBinary::store(perm_auth_key_id_, s);
+ TlStoreBinary::store(temp_session_id_, s);
+ TlStoreBinary::store(expires_at_, s);
+}
+
+void bind_auth_key_inner::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bind_auth_key_inner");
+ s.store_field("nonce", nonce_);
+ s.store_field("temp_auth_key_id", temp_auth_key_id_);
+ s.store_field("perm_auth_key_id", perm_auth_key_id_);
+ s.store_field("temp_session_id", temp_session_id_);
+ s.store_field("expires_at", expires_at_);
+ s.store_class_end();
+ }
+}
+
+client_DH_inner_data::client_DH_inner_data(UInt128 const &nonce_, UInt128 const &server_nonce_, int64 retry_id_, string const &g_b_)
+ : nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , retry_id_(retry_id_)
+ , g_b_(g_b_)
+{}
+
+const std::int32_t client_DH_inner_data::ID;
+
+object_ptr<client_DH_inner_data> client_DH_inner_data::fetch(TlParser &p) {
+ return make_tl_object<client_DH_inner_data>(p);
+}
+
+client_DH_inner_data::client_DH_inner_data(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , retry_id_(TlFetchLong::parse(p))
+ , g_b_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void client_DH_inner_data::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(retry_id_, s);
+ TlStoreString::store(g_b_, s);
+}
+
+void client_DH_inner_data::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(retry_id_, s);
+ TlStoreString::store(g_b_, s);
+}
+
+void client_DH_inner_data::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "client_DH_inner_data");
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("retry_id", retry_id_);
+ s.store_field("g_b", g_b_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<DestroyAuthKeyRes> DestroyAuthKeyRes::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case destroy_auth_key_ok::ID:
+ return destroy_auth_key_ok::fetch(p);
+ case destroy_auth_key_none::ID:
+ return destroy_auth_key_none::fetch(p);
+ case destroy_auth_key_fail::ID:
+ return destroy_auth_key_fail::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t destroy_auth_key_ok::ID;
+
+object_ptr<DestroyAuthKeyRes> destroy_auth_key_ok::fetch(TlParser &p) {
+ return make_tl_object<destroy_auth_key_ok>();
+}
+
+void destroy_auth_key_ok::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void destroy_auth_key_ok::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void destroy_auth_key_ok::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "destroy_auth_key_ok");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t destroy_auth_key_none::ID;
+
+object_ptr<DestroyAuthKeyRes> destroy_auth_key_none::fetch(TlParser &p) {
+ return make_tl_object<destroy_auth_key_none>();
+}
+
+void destroy_auth_key_none::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void destroy_auth_key_none::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void destroy_auth_key_none::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "destroy_auth_key_none");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t destroy_auth_key_fail::ID;
+
+object_ptr<DestroyAuthKeyRes> destroy_auth_key_fail::fetch(TlParser &p) {
+ return make_tl_object<destroy_auth_key_fail>();
+}
+
+void destroy_auth_key_fail::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void destroy_auth_key_fail::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void destroy_auth_key_fail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "destroy_auth_key_fail");
+ s.store_class_end();
+ }
+}
+
+future_salt::future_salt(int32 valid_since_, int32 valid_until_, int64 salt_)
+ : valid_since_(valid_since_)
+ , valid_until_(valid_until_)
+ , salt_(salt_)
+{}
+
+const std::int32_t future_salt::ID;
+
+object_ptr<future_salt> future_salt::fetch(TlParser &p) {
+ return make_tl_object<future_salt>(p);
+}
+
+future_salt::future_salt(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : valid_since_(TlFetchInt::parse(p))
+ , valid_until_(TlFetchInt::parse(p))
+ , salt_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void future_salt::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(valid_since_, s);
+ TlStoreBinary::store(valid_until_, s);
+ TlStoreBinary::store(salt_, s);
+}
+
+void future_salt::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(valid_since_, s);
+ TlStoreBinary::store(valid_until_, s);
+ TlStoreBinary::store(salt_, s);
+}
+
+void future_salt::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "future_salt");
+ s.store_field("valid_since", valid_since_);
+ s.store_field("valid_until", valid_until_);
+ s.store_field("salt", salt_);
+ s.store_class_end();
+ }
+}
+
+future_salts::future_salts(int64 req_msg_id_, int32 now_, array<object_ptr<future_salt>> &&salts_)
+ : req_msg_id_(req_msg_id_)
+ , now_(now_)
+ , salts_(std::move(salts_))
+{}
+
+const std::int32_t future_salts::ID;
+
+object_ptr<future_salts> future_salts::fetch(TlParser &p) {
+ return make_tl_object<future_salts>(p);
+}
+
+future_salts::future_salts(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : req_msg_id_(TlFetchLong::parse(p))
+ , now_(TlFetchInt::parse(p))
+ , salts_(TlFetchVector<TlFetchObject<future_salt>>::parse(p))
+#undef FAIL
+{}
+
+void future_salts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(req_msg_id_, s);
+ TlStoreBinary::store(now_, s);
+ TlStoreVector<TlStoreObject>::store(salts_, s);
+}
+
+void future_salts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(req_msg_id_, s);
+ TlStoreBinary::store(now_, s);
+ TlStoreVector<TlStoreObject>::store(salts_, s);
+}
+
+void future_salts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "future_salts");
+ s.store_field("req_msg_id", req_msg_id_);
+ s.store_field("now", now_);
+ { s.store_vector_begin("salts", salts_.size()); for (const auto &_value : salts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+gzip_packed::gzip_packed(string const &packed_data_)
+ : packed_data_(packed_data_)
+{}
+
+const std::int32_t gzip_packed::ID;
+
+object_ptr<gzip_packed> gzip_packed::fetch(TlParser &p) {
+ return make_tl_object<gzip_packed>(p);
+}
+
+gzip_packed::gzip_packed(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : packed_data_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void gzip_packed::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(packed_data_, s);
+}
+
+void gzip_packed::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(packed_data_, s);
+}
+
+void gzip_packed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "gzip_packed");
+ s.store_field("packed_data", packed_data_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t dummyHttpWait::ID;
+
+object_ptr<dummyHttpWait> dummyHttpWait::fetch(TlParser &p) {
+ return make_tl_object<dummyHttpWait>();
+}
+
+void dummyHttpWait::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void dummyHttpWait::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void dummyHttpWait::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dummyHttpWait");
+ s.store_class_end();
+ }
+}
+
+object_ptr<MsgDetailedInfo> MsgDetailedInfo::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case msg_detailed_info::ID:
+ return msg_detailed_info::fetch(p);
+ case msg_new_detailed_info::ID:
+ return msg_new_detailed_info::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+msg_detailed_info::msg_detailed_info(int64 msg_id_, int64 answer_msg_id_, int32 bytes_, int32 status_)
+ : msg_id_(msg_id_)
+ , answer_msg_id_(answer_msg_id_)
+ , bytes_(bytes_)
+ , status_(status_)
+{}
+
+const std::int32_t msg_detailed_info::ID;
+
+object_ptr<MsgDetailedInfo> msg_detailed_info::fetch(TlParser &p) {
+ return make_tl_object<msg_detailed_info>(p);
+}
+
+msg_detailed_info::msg_detailed_info(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : msg_id_(TlFetchLong::parse(p))
+ , answer_msg_id_(TlFetchLong::parse(p))
+ , bytes_(TlFetchInt::parse(p))
+ , status_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void msg_detailed_info::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(answer_msg_id_, s);
+ TlStoreBinary::store(bytes_, s);
+ TlStoreBinary::store(status_, s);
+}
+
+void msg_detailed_info::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(answer_msg_id_, s);
+ TlStoreBinary::store(bytes_, s);
+ TlStoreBinary::store(status_, s);
+}
+
+void msg_detailed_info::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "msg_detailed_info");
+ s.store_field("msg_id", msg_id_);
+ s.store_field("answer_msg_id", answer_msg_id_);
+ s.store_field("bytes", bytes_);
+ s.store_field("status", status_);
+ s.store_class_end();
+ }
+}
+
+msg_new_detailed_info::msg_new_detailed_info(int64 answer_msg_id_, int32 bytes_, int32 status_)
+ : answer_msg_id_(answer_msg_id_)
+ , bytes_(bytes_)
+ , status_(status_)
+{}
+
+const std::int32_t msg_new_detailed_info::ID;
+
+object_ptr<MsgDetailedInfo> msg_new_detailed_info::fetch(TlParser &p) {
+ return make_tl_object<msg_new_detailed_info>(p);
+}
+
+msg_new_detailed_info::msg_new_detailed_info(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : answer_msg_id_(TlFetchLong::parse(p))
+ , bytes_(TlFetchInt::parse(p))
+ , status_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void msg_new_detailed_info::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(answer_msg_id_, s);
+ TlStoreBinary::store(bytes_, s);
+ TlStoreBinary::store(status_, s);
+}
+
+void msg_new_detailed_info::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(answer_msg_id_, s);
+ TlStoreBinary::store(bytes_, s);
+ TlStoreBinary::store(status_, s);
+}
+
+void msg_new_detailed_info::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "msg_new_detailed_info");
+ s.store_field("answer_msg_id", answer_msg_id_);
+ s.store_field("bytes", bytes_);
+ s.store_field("status", status_);
+ s.store_class_end();
+ }
+}
+
+msg_resend_req::msg_resend_req(array<int64> &&msg_ids_)
+ : msg_ids_(std::move(msg_ids_))
+{}
+
+const std::int32_t msg_resend_req::ID;
+
+object_ptr<msg_resend_req> msg_resend_req::fetch(TlParser &p) {
+ return make_tl_object<msg_resend_req>(p);
+}
+
+msg_resend_req::msg_resend_req(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : msg_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void msg_resend_req::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s);
+}
+
+void msg_resend_req::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s);
+}
+
+void msg_resend_req::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "msg_resend_req");
+ { s.store_vector_begin("msg_ids", msg_ids_.size()); for (const auto &_value : msg_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+msgs_ack::msgs_ack(array<int64> &&msg_ids_)
+ : msg_ids_(std::move(msg_ids_))
+{}
+
+const std::int32_t msgs_ack::ID;
+
+object_ptr<msgs_ack> msgs_ack::fetch(TlParser &p) {
+ return make_tl_object<msgs_ack>(p);
+}
+
+msgs_ack::msgs_ack(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : msg_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void msgs_ack::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s);
+}
+
+void msgs_ack::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s);
+}
+
+void msgs_ack::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "msgs_ack");
+ { s.store_vector_begin("msg_ids", msg_ids_.size()); for (const auto &_value : msg_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+msgs_all_info::msgs_all_info(array<int64> &&msg_ids_, string const &info_)
+ : msg_ids_(std::move(msg_ids_))
+ , info_(info_)
+{}
+
+const std::int32_t msgs_all_info::ID;
+
+object_ptr<msgs_all_info> msgs_all_info::fetch(TlParser &p) {
+ return make_tl_object<msgs_all_info>(p);
+}
+
+msgs_all_info::msgs_all_info(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : msg_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+ , info_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void msgs_all_info::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s);
+ TlStoreString::store(info_, s);
+}
+
+void msgs_all_info::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s);
+ TlStoreString::store(info_, s);
+}
+
+void msgs_all_info::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "msgs_all_info");
+ { s.store_vector_begin("msg_ids", msg_ids_.size()); for (const auto &_value : msg_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("info", info_);
+ s.store_class_end();
+ }
+}
+
+msgs_state_info::msgs_state_info(int64 req_msg_id_, string const &info_)
+ : req_msg_id_(req_msg_id_)
+ , info_(info_)
+{}
+
+const std::int32_t msgs_state_info::ID;
+
+object_ptr<msgs_state_info> msgs_state_info::fetch(TlParser &p) {
+ return make_tl_object<msgs_state_info>(p);
+}
+
+msgs_state_info::msgs_state_info(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : req_msg_id_(TlFetchLong::parse(p))
+ , info_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void msgs_state_info::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(req_msg_id_, s);
+ TlStoreString::store(info_, s);
+}
+
+void msgs_state_info::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(req_msg_id_, s);
+ TlStoreString::store(info_, s);
+}
+
+void msgs_state_info::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "msgs_state_info");
+ s.store_field("req_msg_id", req_msg_id_);
+ s.store_field("info", info_);
+ s.store_class_end();
+ }
+}
+
+msgs_state_req::msgs_state_req(array<int64> &&msg_ids_)
+ : msg_ids_(std::move(msg_ids_))
+{}
+
+const std::int32_t msgs_state_req::ID;
+
+object_ptr<msgs_state_req> msgs_state_req::fetch(TlParser &p) {
+ return make_tl_object<msgs_state_req>(p);
+}
+
+msgs_state_req::msgs_state_req(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : msg_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void msgs_state_req::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s);
+}
+
+void msgs_state_req::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s);
+}
+
+void msgs_state_req::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "msgs_state_req");
+ { s.store_vector_begin("msg_ids", msg_ids_.size()); for (const auto &_value : msg_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+new_session_created::new_session_created(int64 first_msg_id_, int64 unique_id_, int64 server_salt_)
+ : first_msg_id_(first_msg_id_)
+ , unique_id_(unique_id_)
+ , server_salt_(server_salt_)
+{}
+
+const std::int32_t new_session_created::ID;
+
+object_ptr<new_session_created> new_session_created::fetch(TlParser &p) {
+ return make_tl_object<new_session_created>(p);
+}
+
+new_session_created::new_session_created(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : first_msg_id_(TlFetchLong::parse(p))
+ , unique_id_(TlFetchLong::parse(p))
+ , server_salt_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void new_session_created::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(first_msg_id_, s);
+ TlStoreBinary::store(unique_id_, s);
+ TlStoreBinary::store(server_salt_, s);
+}
+
+void new_session_created::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(first_msg_id_, s);
+ TlStoreBinary::store(unique_id_, s);
+ TlStoreBinary::store(server_salt_, s);
+}
+
+void new_session_created::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "new_session_created");
+ s.store_field("first_msg_id", first_msg_id_);
+ s.store_field("unique_id", unique_id_);
+ s.store_field("server_salt", server_salt_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<P_Q_inner_data> P_Q_inner_data::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case p_q_inner_data_dc::ID:
+ return p_q_inner_data_dc::fetch(p);
+ case p_q_inner_data_temp_dc::ID:
+ return p_q_inner_data_temp_dc::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+p_q_inner_data_dc::p_q_inner_data_dc(string const &pq_, string const &p_, string const &q_, UInt128 const &nonce_, UInt128 const &server_nonce_, UInt256 const &new_nonce_, int32 dc_)
+ : pq_(pq_)
+ , p_(p_)
+ , q_(q_)
+ , nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , new_nonce_(new_nonce_)
+ , dc_(dc_)
+{}
+
+const std::int32_t p_q_inner_data_dc::ID;
+
+object_ptr<P_Q_inner_data> p_q_inner_data_dc::fetch(TlParser &p) {
+ return make_tl_object<p_q_inner_data_dc>(p);
+}
+
+p_q_inner_data_dc::p_q_inner_data_dc(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : pq_(TlFetchString<string>::parse(p))
+ , p_(TlFetchString<string>::parse(p))
+ , q_(TlFetchString<string>::parse(p))
+ , nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , new_nonce_(TlFetchInt256::parse(p))
+ , dc_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void p_q_inner_data_dc::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(pq_, s);
+ TlStoreString::store(p_, s);
+ TlStoreString::store(q_, s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(new_nonce_, s);
+ TlStoreBinary::store(dc_, s);
+}
+
+void p_q_inner_data_dc::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(pq_, s);
+ TlStoreString::store(p_, s);
+ TlStoreString::store(q_, s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(new_nonce_, s);
+ TlStoreBinary::store(dc_, s);
+}
+
+void p_q_inner_data_dc::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "p_q_inner_data_dc");
+ s.store_field("pq", pq_);
+ s.store_field("p", p_);
+ s.store_field("q", q_);
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("new_nonce", new_nonce_);
+ s.store_field("dc", dc_);
+ s.store_class_end();
+ }
+}
+
+p_q_inner_data_temp_dc::p_q_inner_data_temp_dc(string const &pq_, string const &p_, string const &q_, UInt128 const &nonce_, UInt128 const &server_nonce_, UInt256 const &new_nonce_, int32 dc_, int32 expires_in_)
+ : pq_(pq_)
+ , p_(p_)
+ , q_(q_)
+ , nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , new_nonce_(new_nonce_)
+ , dc_(dc_)
+ , expires_in_(expires_in_)
+{}
+
+const std::int32_t p_q_inner_data_temp_dc::ID;
+
+object_ptr<P_Q_inner_data> p_q_inner_data_temp_dc::fetch(TlParser &p) {
+ return make_tl_object<p_q_inner_data_temp_dc>(p);
+}
+
+p_q_inner_data_temp_dc::p_q_inner_data_temp_dc(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : pq_(TlFetchString<string>::parse(p))
+ , p_(TlFetchString<string>::parse(p))
+ , q_(TlFetchString<string>::parse(p))
+ , nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , new_nonce_(TlFetchInt256::parse(p))
+ , dc_(TlFetchInt::parse(p))
+ , expires_in_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void p_q_inner_data_temp_dc::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(pq_, s);
+ TlStoreString::store(p_, s);
+ TlStoreString::store(q_, s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(new_nonce_, s);
+ TlStoreBinary::store(dc_, s);
+ TlStoreBinary::store(expires_in_, s);
+}
+
+void p_q_inner_data_temp_dc::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(pq_, s);
+ TlStoreString::store(p_, s);
+ TlStoreString::store(q_, s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(new_nonce_, s);
+ TlStoreBinary::store(dc_, s);
+ TlStoreBinary::store(expires_in_, s);
+}
+
+void p_q_inner_data_temp_dc::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "p_q_inner_data_temp_dc");
+ s.store_field("pq", pq_);
+ s.store_field("p", p_);
+ s.store_field("q", q_);
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("new_nonce", new_nonce_);
+ s.store_field("dc", dc_);
+ s.store_field("expires_in", expires_in_);
+ s.store_class_end();
+ }
+}
+
+pong::pong(int64 msg_id_, int64 ping_id_)
+ : msg_id_(msg_id_)
+ , ping_id_(ping_id_)
+{}
+
+const std::int32_t pong::ID;
+
+object_ptr<pong> pong::fetch(TlParser &p) {
+ return make_tl_object<pong>(p);
+}
+
+pong::pong(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : msg_id_(TlFetchLong::parse(p))
+ , ping_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void pong::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(ping_id_, s);
+}
+
+void pong::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(ping_id_, s);
+}
+
+void pong::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pong");
+ s.store_field("msg_id", msg_id_);
+ s.store_field("ping_id", ping_id_);
+ s.store_class_end();
+ }
+}
+
+rsa_public_key::rsa_public_key(string const &n_, string const &e_)
+ : n_(n_)
+ , e_(e_)
+{}
+
+const std::int32_t rsa_public_key::ID;
+
+object_ptr<rsa_public_key> rsa_public_key::fetch(TlParser &p) {
+ return make_tl_object<rsa_public_key>(p);
+}
+
+rsa_public_key::rsa_public_key(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : n_(TlFetchString<string>::parse(p))
+ , e_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void rsa_public_key::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(n_, s);
+ TlStoreString::store(e_, s);
+}
+
+void rsa_public_key::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(n_, s);
+ TlStoreString::store(e_, s);
+}
+
+void rsa_public_key::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "rsa_public_key");
+ s.store_field("n", n_);
+ s.store_field("e", e_);
+ s.store_class_end();
+ }
+}
+
+resPQ::resPQ(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &pq_, array<int64> &&server_public_key_fingerprints_)
+ : nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , pq_(pq_)
+ , server_public_key_fingerprints_(std::move(server_public_key_fingerprints_))
+{}
+
+const std::int32_t resPQ::ID;
+
+object_ptr<resPQ> resPQ::fetch(TlParser &p) {
+ return make_tl_object<resPQ>(p);
+}
+
+resPQ::resPQ(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , pq_(TlFetchString<string>::parse(p))
+ , server_public_key_fingerprints_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void resPQ::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreString::store(pq_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(server_public_key_fingerprints_, s);
+}
+
+void resPQ::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreString::store(pq_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(server_public_key_fingerprints_, s);
+}
+
+void resPQ::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resPQ");
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("pq", pq_);
+ { s.store_vector_begin("server_public_key_fingerprints", server_public_key_fingerprints_.size()); for (const auto &_value : server_public_key_fingerprints_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<RpcDropAnswer> RpcDropAnswer::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case rpc_answer_unknown::ID:
+ return rpc_answer_unknown::fetch(p);
+ case rpc_answer_dropped_running::ID:
+ return rpc_answer_dropped_running::fetch(p);
+ case rpc_answer_dropped::ID:
+ return rpc_answer_dropped::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t rpc_answer_unknown::ID;
+
+object_ptr<RpcDropAnswer> rpc_answer_unknown::fetch(TlParser &p) {
+ return make_tl_object<rpc_answer_unknown>();
+}
+
+void rpc_answer_unknown::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void rpc_answer_unknown::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void rpc_answer_unknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "rpc_answer_unknown");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t rpc_answer_dropped_running::ID;
+
+object_ptr<RpcDropAnswer> rpc_answer_dropped_running::fetch(TlParser &p) {
+ return make_tl_object<rpc_answer_dropped_running>();
+}
+
+void rpc_answer_dropped_running::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void rpc_answer_dropped_running::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void rpc_answer_dropped_running::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "rpc_answer_dropped_running");
+ s.store_class_end();
+ }
+}
+
+rpc_answer_dropped::rpc_answer_dropped(int64 msg_id_, int32 seq_no_, int32 bytes_)
+ : msg_id_(msg_id_)
+ , seq_no_(seq_no_)
+ , bytes_(bytes_)
+{}
+
+const std::int32_t rpc_answer_dropped::ID;
+
+object_ptr<RpcDropAnswer> rpc_answer_dropped::fetch(TlParser &p) {
+ return make_tl_object<rpc_answer_dropped>(p);
+}
+
+rpc_answer_dropped::rpc_answer_dropped(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : msg_id_(TlFetchLong::parse(p))
+ , seq_no_(TlFetchInt::parse(p))
+ , bytes_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void rpc_answer_dropped::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(seq_no_, s);
+ TlStoreBinary::store(bytes_, s);
+}
+
+void rpc_answer_dropped::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(seq_no_, s);
+ TlStoreBinary::store(bytes_, s);
+}
+
+void rpc_answer_dropped::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "rpc_answer_dropped");
+ s.store_field("msg_id", msg_id_);
+ s.store_field("seq_no", seq_no_);
+ s.store_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+rpc_error::rpc_error(int32 error_code_, string const &error_message_)
+ : error_code_(error_code_)
+ , error_message_(error_message_)
+{}
+
+const std::int32_t rpc_error::ID;
+
+object_ptr<rpc_error> rpc_error::fetch(TlParser &p) {
+ return make_tl_object<rpc_error>(p);
+}
+
+rpc_error::rpc_error(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : error_code_(TlFetchInt::parse(p))
+ , error_message_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void rpc_error::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(error_code_, s);
+ TlStoreString::store(error_message_, s);
+}
+
+void rpc_error::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(error_code_, s);
+ TlStoreString::store(error_message_, s);
+}
+
+void rpc_error::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "rpc_error");
+ s.store_field("error_code", error_code_);
+ s.store_field("error_message", error_message_);
+ s.store_class_end();
+ }
+}
+
+server_DH_params_ok::server_DH_params_ok(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &encrypted_answer_)
+ : nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , encrypted_answer_(encrypted_answer_)
+{}
+
+const std::int32_t server_DH_params_ok::ID;
+
+object_ptr<server_DH_params_ok> server_DH_params_ok::fetch(TlParser &p) {
+ return make_tl_object<server_DH_params_ok>(p);
+}
+
+server_DH_params_ok::server_DH_params_ok(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , encrypted_answer_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void server_DH_params_ok::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreString::store(encrypted_answer_, s);
+}
+
+void server_DH_params_ok::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreString::store(encrypted_answer_, s);
+}
+
+void server_DH_params_ok::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "server_DH_params_ok");
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("encrypted_answer", encrypted_answer_);
+ s.store_class_end();
+ }
+}
+
+server_DH_inner_data::server_DH_inner_data(UInt128 const &nonce_, UInt128 const &server_nonce_, int32 g_, string const &dh_prime_, string const &g_a_, int32 server_time_)
+ : nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , g_(g_)
+ , dh_prime_(dh_prime_)
+ , g_a_(g_a_)
+ , server_time_(server_time_)
+{}
+
+const std::int32_t server_DH_inner_data::ID;
+
+object_ptr<server_DH_inner_data> server_DH_inner_data::fetch(TlParser &p) {
+ return make_tl_object<server_DH_inner_data>(p);
+}
+
+server_DH_inner_data::server_DH_inner_data(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , g_(TlFetchInt::parse(p))
+ , dh_prime_(TlFetchString<string>::parse(p))
+ , g_a_(TlFetchString<string>::parse(p))
+ , server_time_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void server_DH_inner_data::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(g_, s);
+ TlStoreString::store(dh_prime_, s);
+ TlStoreString::store(g_a_, s);
+ TlStoreBinary::store(server_time_, s);
+}
+
+void server_DH_inner_data::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(g_, s);
+ TlStoreString::store(dh_prime_, s);
+ TlStoreString::store(g_a_, s);
+ TlStoreBinary::store(server_time_, s);
+}
+
+void server_DH_inner_data::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "server_DH_inner_data");
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("g", g_);
+ s.store_field("dh_prime", dh_prime_);
+ s.store_field("g_a", g_a_);
+ s.store_field("server_time", server_time_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<Set_client_DH_params_answer> Set_client_DH_params_answer::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case dh_gen_ok::ID:
+ return dh_gen_ok::fetch(p);
+ case dh_gen_retry::ID:
+ return dh_gen_retry::fetch(p);
+ case dh_gen_fail::ID:
+ return dh_gen_fail::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+dh_gen_ok::dh_gen_ok(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash1_)
+ : nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , new_nonce_hash1_(new_nonce_hash1_)
+{}
+
+const std::int32_t dh_gen_ok::ID;
+
+object_ptr<Set_client_DH_params_answer> dh_gen_ok::fetch(TlParser &p) {
+ return make_tl_object<dh_gen_ok>(p);
+}
+
+dh_gen_ok::dh_gen_ok(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , new_nonce_hash1_(TlFetchInt128::parse(p))
+#undef FAIL
+{}
+
+void dh_gen_ok::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(new_nonce_hash1_, s);
+}
+
+void dh_gen_ok::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(new_nonce_hash1_, s);
+}
+
+void dh_gen_ok::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dh_gen_ok");
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("new_nonce_hash1", new_nonce_hash1_);
+ s.store_class_end();
+ }
+}
+
+dh_gen_retry::dh_gen_retry(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash2_)
+ : nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , new_nonce_hash2_(new_nonce_hash2_)
+{}
+
+const std::int32_t dh_gen_retry::ID;
+
+object_ptr<Set_client_DH_params_answer> dh_gen_retry::fetch(TlParser &p) {
+ return make_tl_object<dh_gen_retry>(p);
+}
+
+dh_gen_retry::dh_gen_retry(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , new_nonce_hash2_(TlFetchInt128::parse(p))
+#undef FAIL
+{}
+
+void dh_gen_retry::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(new_nonce_hash2_, s);
+}
+
+void dh_gen_retry::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(new_nonce_hash2_, s);
+}
+
+void dh_gen_retry::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dh_gen_retry");
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("new_nonce_hash2", new_nonce_hash2_);
+ s.store_class_end();
+ }
+}
+
+dh_gen_fail::dh_gen_fail(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash3_)
+ : nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , new_nonce_hash3_(new_nonce_hash3_)
+{}
+
+const std::int32_t dh_gen_fail::ID;
+
+object_ptr<Set_client_DH_params_answer> dh_gen_fail::fetch(TlParser &p) {
+ return make_tl_object<dh_gen_fail>(p);
+}
+
+dh_gen_fail::dh_gen_fail(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , new_nonce_hash3_(TlFetchInt128::parse(p))
+#undef FAIL
+{}
+
+void dh_gen_fail::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(new_nonce_hash3_, s);
+}
+
+void dh_gen_fail::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreBinary::store(new_nonce_hash3_, s);
+}
+
+void dh_gen_fail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dh_gen_fail");
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("new_nonce_hash3", new_nonce_hash3_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t destroy_auth_key::ID;
+
+object_ptr<destroy_auth_key> destroy_auth_key::fetch(TlParser &p) {
+ return make_tl_object<destroy_auth_key>();
+}
+
+void destroy_auth_key::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-784117408);
+}
+
+void destroy_auth_key::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-784117408);
+}
+
+void destroy_auth_key::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "destroy_auth_key");
+ s.store_class_end();
+ }
+}
+
+destroy_auth_key::ReturnType destroy_auth_key::fetch_result(TlParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<DestroyAuthKeyRes>::parse(p);
+#undef FAIL
+}
+
+get_future_salts::get_future_salts(int32 num_)
+ : num_(num_)
+{}
+
+const std::int32_t get_future_salts::ID;
+
+object_ptr<get_future_salts> get_future_salts::fetch(TlParser &p) {
+ return make_tl_object<get_future_salts>(p);
+}
+
+get_future_salts::get_future_salts(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : num_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void get_future_salts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1188971260);
+ TlStoreBinary::store(num_, s);
+}
+
+void get_future_salts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1188971260);
+ TlStoreBinary::store(num_, s);
+}
+
+void get_future_salts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "get_future_salts");
+ s.store_field("num", num_);
+ s.store_class_end();
+ }
+}
+
+get_future_salts::ReturnType get_future_salts::fetch_result(TlParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<future_salts>, -1370486635>::parse(p);
+#undef FAIL
+}
+
+http_wait::http_wait(int32 max_delay_, int32 wait_after_, int32 max_wait_)
+ : max_delay_(max_delay_)
+ , wait_after_(wait_after_)
+ , max_wait_(max_wait_)
+{}
+
+const std::int32_t http_wait::ID;
+
+object_ptr<http_wait> http_wait::fetch(TlParser &p) {
+ return make_tl_object<http_wait>(p);
+}
+
+http_wait::http_wait(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : max_delay_(TlFetchInt::parse(p))
+ , wait_after_(TlFetchInt::parse(p))
+ , max_wait_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void http_wait::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1835453025);
+ TlStoreBinary::store(max_delay_, s);
+ TlStoreBinary::store(wait_after_, s);
+ TlStoreBinary::store(max_wait_, s);
+}
+
+void http_wait::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1835453025);
+ TlStoreBinary::store(max_delay_, s);
+ TlStoreBinary::store(wait_after_, s);
+ TlStoreBinary::store(max_wait_, s);
+}
+
+void http_wait::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "http_wait");
+ s.store_field("max_delay", max_delay_);
+ s.store_field("wait_after", wait_after_);
+ s.store_field("max_wait", max_wait_);
+ s.store_class_end();
+ }
+}
+
+http_wait::ReturnType http_wait::fetch_result(TlParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<dummyHttpWait>, -919090642>::parse(p);
+#undef FAIL
+}
+
+ping_delay_disconnect::ping_delay_disconnect(int64 ping_id_, int32 disconnect_delay_)
+ : ping_id_(ping_id_)
+ , disconnect_delay_(disconnect_delay_)
+{}
+
+const std::int32_t ping_delay_disconnect::ID;
+
+object_ptr<ping_delay_disconnect> ping_delay_disconnect::fetch(TlParser &p) {
+ return make_tl_object<ping_delay_disconnect>(p);
+}
+
+ping_delay_disconnect::ping_delay_disconnect(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : ping_id_(TlFetchLong::parse(p))
+ , disconnect_delay_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void ping_delay_disconnect::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-213746804);
+ TlStoreBinary::store(ping_id_, s);
+ TlStoreBinary::store(disconnect_delay_, s);
+}
+
+void ping_delay_disconnect::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-213746804);
+ TlStoreBinary::store(ping_id_, s);
+ TlStoreBinary::store(disconnect_delay_, s);
+}
+
+void ping_delay_disconnect::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "ping_delay_disconnect");
+ s.store_field("ping_id", ping_id_);
+ s.store_field("disconnect_delay", disconnect_delay_);
+ s.store_class_end();
+ }
+}
+
+ping_delay_disconnect::ReturnType ping_delay_disconnect::fetch_result(TlParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<pong>, 880243653>::parse(p);
+#undef FAIL
+}
+
+req_DH_params::req_DH_params(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &p_, string const &q_, int64 public_key_fingerprint_, string const &encrypted_data_)
+ : nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , p_(p_)
+ , q_(q_)
+ , public_key_fingerprint_(public_key_fingerprint_)
+ , encrypted_data_(encrypted_data_)
+{}
+
+const std::int32_t req_DH_params::ID;
+
+object_ptr<req_DH_params> req_DH_params::fetch(TlParser &p) {
+ return make_tl_object<req_DH_params>(p);
+}
+
+req_DH_params::req_DH_params(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , p_(TlFetchString<string>::parse(p))
+ , q_(TlFetchString<string>::parse(p))
+ , public_key_fingerprint_(TlFetchLong::parse(p))
+ , encrypted_data_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void req_DH_params::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-686627650);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreString::store(p_, s);
+ TlStoreString::store(q_, s);
+ TlStoreBinary::store(public_key_fingerprint_, s);
+ TlStoreString::store(encrypted_data_, s);
+}
+
+void req_DH_params::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-686627650);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreString::store(p_, s);
+ TlStoreString::store(q_, s);
+ TlStoreBinary::store(public_key_fingerprint_, s);
+ TlStoreString::store(encrypted_data_, s);
+}
+
+void req_DH_params::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "req_DH_params");
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("p", p_);
+ s.store_field("q", q_);
+ s.store_field("public_key_fingerprint", public_key_fingerprint_);
+ s.store_field("encrypted_data", encrypted_data_);
+ s.store_class_end();
+ }
+}
+
+req_DH_params::ReturnType req_DH_params::fetch_result(TlParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<server_DH_params_ok>, -790100132>::parse(p);
+#undef FAIL
+}
+
+req_pq_multi::req_pq_multi(UInt128 const &nonce_)
+ : nonce_(nonce_)
+{}
+
+const std::int32_t req_pq_multi::ID;
+
+object_ptr<req_pq_multi> req_pq_multi::fetch(TlParser &p) {
+ return make_tl_object<req_pq_multi>(p);
+}
+
+req_pq_multi::req_pq_multi(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchInt128::parse(p))
+#undef FAIL
+{}
+
+void req_pq_multi::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1099002127);
+ TlStoreBinary::store(nonce_, s);
+}
+
+void req_pq_multi::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1099002127);
+ TlStoreBinary::store(nonce_, s);
+}
+
+void req_pq_multi::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "req_pq_multi");
+ s.store_field("nonce", nonce_);
+ s.store_class_end();
+ }
+}
+
+req_pq_multi::ReturnType req_pq_multi::fetch_result(TlParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<resPQ>, 85337187>::parse(p);
+#undef FAIL
+}
+
+rpc_drop_answer::rpc_drop_answer(int64 req_msg_id_)
+ : req_msg_id_(req_msg_id_)
+{}
+
+const std::int32_t rpc_drop_answer::ID;
+
+object_ptr<rpc_drop_answer> rpc_drop_answer::fetch(TlParser &p) {
+ return make_tl_object<rpc_drop_answer>(p);
+}
+
+rpc_drop_answer::rpc_drop_answer(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : req_msg_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void rpc_drop_answer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1491380032);
+ TlStoreBinary::store(req_msg_id_, s);
+}
+
+void rpc_drop_answer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1491380032);
+ TlStoreBinary::store(req_msg_id_, s);
+}
+
+void rpc_drop_answer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "rpc_drop_answer");
+ s.store_field("req_msg_id", req_msg_id_);
+ s.store_class_end();
+ }
+}
+
+rpc_drop_answer::ReturnType rpc_drop_answer::fetch_result(TlParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<RpcDropAnswer>::parse(p);
+#undef FAIL
+}
+
+set_client_DH_params::set_client_DH_params(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &encrypted_data_)
+ : nonce_(nonce_)
+ , server_nonce_(server_nonce_)
+ , encrypted_data_(encrypted_data_)
+{}
+
+const std::int32_t set_client_DH_params::ID;
+
+object_ptr<set_client_DH_params> set_client_DH_params::fetch(TlParser &p) {
+ return make_tl_object<set_client_DH_params>(p);
+}
+
+set_client_DH_params::set_client_DH_params(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : nonce_(TlFetchInt128::parse(p))
+ , server_nonce_(TlFetchInt128::parse(p))
+ , encrypted_data_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void set_client_DH_params::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-184262881);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreString::store(encrypted_data_, s);
+}
+
+void set_client_DH_params::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-184262881);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(server_nonce_, s);
+ TlStoreString::store(encrypted_data_, s);
+}
+
+void set_client_DH_params::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "set_client_DH_params");
+ s.store_field("nonce", nonce_);
+ s.store_field("server_nonce", server_nonce_);
+ s.store_field("encrypted_data", encrypted_data_);
+ s.store_class_end();
+ }
+}
+
+set_client_DH_params::ReturnType set_client_DH_params::fetch_result(TlParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Set_client_DH_params_answer>::parse(p);
+#undef FAIL
+}
+} // namespace mtproto_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.h b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.h
new file mode 100644
index 0000000000..457a9a9642
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.h
@@ -0,0 +1,1138 @@
+#pragma once
+
+#include "td/tl/TlObject.h"
+
+#include "td/utils/Slice.h"
+#include "td/utils/UInt.h"
+
+#include <cstdint>
+#include <utility>
+#include <vector>
+
+namespace td {
+class TlStorerCalcLength;
+class TlStorerUnsafe;
+class TlStorerToString;
+class TlParser;
+
+namespace mtproto_api {
+
+using int32 = std::int32_t;
+using int53 = std::int64_t;
+using int64 = std::int64_t;
+
+using string = Slice;
+
+using bytes = Slice;
+
+template <class Type>
+using array = std::vector<Type>;
+
+using BaseObject = ::td::TlObject;
+
+template <class Type>
+using object_ptr = ::td::tl_object_ptr<Type>;
+
+template <class Type, class... Args>
+object_ptr<Type> make_object(Args &&... args) {
+ return object_ptr<Type>(new Type(std::forward<Args>(args)...));
+}
+
+template <class ToType, class FromType>
+object_ptr<ToType> move_object_as(FromType &&from) {
+ return object_ptr<ToType>(static_cast<ToType *>(from.release()));
+}
+
+std::string to_string(const BaseObject &value);
+
+template <class T>
+std::string to_string(const object_ptr<T> &value) {
+ if (value == nullptr) {
+ return "null";
+ }
+
+ return to_string(*value);
+}
+
+template <class T>
+std::string to_string(const std::vector<object_ptr<T>> &values) {
+ std::string result = "{\n";
+ for (const auto &value : values) {
+ if (value == nullptr) {
+ result += "null\n";
+ } else {
+ result += to_string(*value);
+ }
+ }
+ result += "}\n";
+ return result;
+}
+
+class BadMsgNotification;
+
+class bind_auth_key_inner;
+
+class client_DH_inner_data;
+
+class DestroyAuthKeyRes;
+
+class future_salt;
+
+class future_salts;
+
+class gzip_packed;
+
+class dummyHttpWait;
+
+class MsgDetailedInfo;
+
+class msg_resend_req;
+
+class msgs_ack;
+
+class msgs_all_info;
+
+class msgs_state_info;
+
+class msgs_state_req;
+
+class new_session_created;
+
+class P_Q_inner_data;
+
+class pong;
+
+class rsa_public_key;
+
+class resPQ;
+
+class RpcDropAnswer;
+
+class rpc_error;
+
+class server_DH_params_ok;
+
+class server_DH_inner_data;
+
+class Set_client_DH_params_answer;
+
+class Object;
+
+class Object: public TlObject {
+ public:
+
+ static object_ptr<Object> fetch(TlParser &p);
+};
+
+class Function: public TlObject {
+ public:
+
+ static object_ptr<Function> fetch(TlParser &p);
+};
+
+class BadMsgNotification: public Object {
+ public:
+
+ static object_ptr<BadMsgNotification> fetch(TlParser &p);
+};
+
+class bad_msg_notification final : public BadMsgNotification {
+ public:
+ int64 bad_msg_id_;
+ int32 bad_msg_seqno_;
+ int32 error_code_;
+
+ bad_msg_notification(int64 bad_msg_id_, int32 bad_msg_seqno_, int32 error_code_);
+
+ static const std::int32_t ID = -1477445615;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BadMsgNotification> fetch(TlParser &p);
+
+ explicit bad_msg_notification(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class bad_server_salt final : public BadMsgNotification {
+ public:
+ int64 bad_msg_id_;
+ int32 bad_msg_seqno_;
+ int32 error_code_;
+ int64 new_server_salt_;
+
+ bad_server_salt(int64 bad_msg_id_, int32 bad_msg_seqno_, int32 error_code_, int64 new_server_salt_);
+
+ static const std::int32_t ID = -307542917;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BadMsgNotification> fetch(TlParser &p);
+
+ explicit bad_server_salt(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class bind_auth_key_inner final : public Object {
+ public:
+ int64 nonce_;
+ int64 temp_auth_key_id_;
+ int64 perm_auth_key_id_;
+ int64 temp_session_id_;
+ int32 expires_at_;
+
+ bind_auth_key_inner(int64 nonce_, int64 temp_auth_key_id_, int64 perm_auth_key_id_, int64 temp_session_id_, int32 expires_at_);
+
+ static const std::int32_t ID = 1973679973;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<bind_auth_key_inner> fetch(TlParser &p);
+
+ explicit bind_auth_key_inner(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class client_DH_inner_data final : public Object {
+ public:
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ int64 retry_id_;
+ string g_b_;
+
+ client_DH_inner_data(UInt128 const &nonce_, UInt128 const &server_nonce_, int64 retry_id_, string const &g_b_);
+
+ static const std::int32_t ID = 1715713620;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<client_DH_inner_data> fetch(TlParser &p);
+
+ explicit client_DH_inner_data(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class DestroyAuthKeyRes: public Object {
+ public:
+
+ static object_ptr<DestroyAuthKeyRes> fetch(TlParser &p);
+};
+
+class destroy_auth_key_ok final : public DestroyAuthKeyRes {
+ public:
+
+ static const std::int32_t ID = -161422892;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DestroyAuthKeyRes> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class destroy_auth_key_none final : public DestroyAuthKeyRes {
+ public:
+
+ static const std::int32_t ID = 178201177;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DestroyAuthKeyRes> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class destroy_auth_key_fail final : public DestroyAuthKeyRes {
+ public:
+
+ static const std::int32_t ID = -368010477;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DestroyAuthKeyRes> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class future_salt final : public Object {
+ public:
+ int32 valid_since_;
+ int32 valid_until_;
+ int64 salt_;
+
+ future_salt(int32 valid_since_, int32 valid_until_, int64 salt_);
+
+ static const std::int32_t ID = 155834844;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<future_salt> fetch(TlParser &p);
+
+ explicit future_salt(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class future_salts final : public Object {
+ public:
+ int64 req_msg_id_;
+ int32 now_;
+ array<object_ptr<future_salt>> salts_;
+
+ future_salts(int64 req_msg_id_, int32 now_, array<object_ptr<future_salt>> &&salts_);
+
+ static const std::int32_t ID = -1370486635;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<future_salts> fetch(TlParser &p);
+
+ explicit future_salts(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class gzip_packed final : public Object {
+ public:
+ string packed_data_;
+
+ explicit gzip_packed(string const &packed_data_);
+
+ static const std::int32_t ID = 812830625;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<gzip_packed> fetch(TlParser &p);
+
+ explicit gzip_packed(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class dummyHttpWait final : public Object {
+ public:
+
+ static const std::int32_t ID = -919090642;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<dummyHttpWait> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MsgDetailedInfo: public Object {
+ public:
+
+ static object_ptr<MsgDetailedInfo> fetch(TlParser &p);
+};
+
+class msg_detailed_info final : public MsgDetailedInfo {
+ public:
+ int64 msg_id_;
+ int64 answer_msg_id_;
+ int32 bytes_;
+ int32 status_;
+
+ msg_detailed_info(int64 msg_id_, int64 answer_msg_id_, int32 bytes_, int32 status_);
+
+ static const std::int32_t ID = 661470918;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MsgDetailedInfo> fetch(TlParser &p);
+
+ explicit msg_detailed_info(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class msg_new_detailed_info final : public MsgDetailedInfo {
+ public:
+ int64 answer_msg_id_;
+ int32 bytes_;
+ int32 status_;
+
+ msg_new_detailed_info(int64 answer_msg_id_, int32 bytes_, int32 status_);
+
+ static const std::int32_t ID = -2137147681;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MsgDetailedInfo> fetch(TlParser &p);
+
+ explicit msg_new_detailed_info(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class msg_resend_req final : public Object {
+ public:
+ array<int64> msg_ids_;
+
+ explicit msg_resend_req(array<int64> &&msg_ids_);
+
+ static const std::int32_t ID = 2105940488;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<msg_resend_req> fetch(TlParser &p);
+
+ explicit msg_resend_req(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class msgs_ack final : public Object {
+ public:
+ array<int64> msg_ids_;
+
+ explicit msgs_ack(array<int64> &&msg_ids_);
+
+ static const std::int32_t ID = 1658238041;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<msgs_ack> fetch(TlParser &p);
+
+ explicit msgs_ack(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class msgs_all_info final : public Object {
+ public:
+ array<int64> msg_ids_;
+ string info_;
+
+ msgs_all_info(array<int64> &&msg_ids_, string const &info_);
+
+ static const std::int32_t ID = -1933520591;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<msgs_all_info> fetch(TlParser &p);
+
+ explicit msgs_all_info(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class msgs_state_info final : public Object {
+ public:
+ int64 req_msg_id_;
+ string info_;
+
+ msgs_state_info(int64 req_msg_id_, string const &info_);
+
+ static const std::int32_t ID = 81704317;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<msgs_state_info> fetch(TlParser &p);
+
+ explicit msgs_state_info(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class msgs_state_req final : public Object {
+ public:
+ array<int64> msg_ids_;
+
+ explicit msgs_state_req(array<int64> &&msg_ids_);
+
+ static const std::int32_t ID = -630588590;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<msgs_state_req> fetch(TlParser &p);
+
+ explicit msgs_state_req(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class new_session_created final : public Object {
+ public:
+ int64 first_msg_id_;
+ int64 unique_id_;
+ int64 server_salt_;
+
+ new_session_created(int64 first_msg_id_, int64 unique_id_, int64 server_salt_);
+
+ static const std::int32_t ID = -1631450872;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<new_session_created> fetch(TlParser &p);
+
+ explicit new_session_created(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class P_Q_inner_data: public Object {
+ public:
+
+ static object_ptr<P_Q_inner_data> fetch(TlParser &p);
+};
+
+class p_q_inner_data_dc final : public P_Q_inner_data {
+ public:
+ string pq_;
+ string p_;
+ string q_;
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ UInt256 new_nonce_;
+ int32 dc_;
+
+ p_q_inner_data_dc(string const &pq_, string const &p_, string const &q_, UInt128 const &nonce_, UInt128 const &server_nonce_, UInt256 const &new_nonce_, int32 dc_);
+
+ static const std::int32_t ID = -1443537003;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<P_Q_inner_data> fetch(TlParser &p);
+
+ explicit p_q_inner_data_dc(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class p_q_inner_data_temp_dc final : public P_Q_inner_data {
+ public:
+ string pq_;
+ string p_;
+ string q_;
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ UInt256 new_nonce_;
+ int32 dc_;
+ int32 expires_in_;
+
+ p_q_inner_data_temp_dc(string const &pq_, string const &p_, string const &q_, UInt128 const &nonce_, UInt128 const &server_nonce_, UInt256 const &new_nonce_, int32 dc_, int32 expires_in_);
+
+ static const std::int32_t ID = 1459478408;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<P_Q_inner_data> fetch(TlParser &p);
+
+ explicit p_q_inner_data_temp_dc(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pong final : public Object {
+ public:
+ int64 msg_id_;
+ int64 ping_id_;
+
+ pong(int64 msg_id_, int64 ping_id_);
+
+ static const std::int32_t ID = 880243653;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<pong> fetch(TlParser &p);
+
+ explicit pong(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class rsa_public_key final : public Object {
+ public:
+ string n_;
+ string e_;
+
+ rsa_public_key(string const &n_, string const &e_);
+
+ static const std::int32_t ID = 2048510838;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<rsa_public_key> fetch(TlParser &p);
+
+ explicit rsa_public_key(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resPQ final : public Object {
+ public:
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ string pq_;
+ array<int64> server_public_key_fingerprints_;
+
+ resPQ(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &pq_, array<int64> &&server_public_key_fingerprints_);
+
+ static const std::int32_t ID = 85337187;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<resPQ> fetch(TlParser &p);
+
+ explicit resPQ(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class RpcDropAnswer: public Object {
+ public:
+
+ static object_ptr<RpcDropAnswer> fetch(TlParser &p);
+};
+
+class rpc_answer_unknown final : public RpcDropAnswer {
+ public:
+
+ static const std::int32_t ID = 1579864942;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RpcDropAnswer> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class rpc_answer_dropped_running final : public RpcDropAnswer {
+ public:
+
+ static const std::int32_t ID = -847714938;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RpcDropAnswer> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class rpc_answer_dropped final : public RpcDropAnswer {
+ public:
+ int64 msg_id_;
+ int32 seq_no_;
+ int32 bytes_;
+
+ rpc_answer_dropped(int64 msg_id_, int32 seq_no_, int32 bytes_);
+
+ static const std::int32_t ID = -1539647305;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RpcDropAnswer> fetch(TlParser &p);
+
+ explicit rpc_answer_dropped(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class rpc_error final : public Object {
+ public:
+ int32 error_code_;
+ string error_message_;
+
+ rpc_error(int32 error_code_, string const &error_message_);
+
+ static const std::int32_t ID = 558156313;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<rpc_error> fetch(TlParser &p);
+
+ explicit rpc_error(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class server_DH_params_ok final : public Object {
+ public:
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ string encrypted_answer_;
+
+ server_DH_params_ok(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &encrypted_answer_);
+
+ static const std::int32_t ID = -790100132;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<server_DH_params_ok> fetch(TlParser &p);
+
+ explicit server_DH_params_ok(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class server_DH_inner_data final : public Object {
+ public:
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ int32 g_;
+ string dh_prime_;
+ string g_a_;
+ int32 server_time_;
+
+ server_DH_inner_data(UInt128 const &nonce_, UInt128 const &server_nonce_, int32 g_, string const &dh_prime_, string const &g_a_, int32 server_time_);
+
+ static const std::int32_t ID = -1249309254;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<server_DH_inner_data> fetch(TlParser &p);
+
+ explicit server_DH_inner_data(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Set_client_DH_params_answer: public Object {
+ public:
+
+ static object_ptr<Set_client_DH_params_answer> fetch(TlParser &p);
+};
+
+class dh_gen_ok final : public Set_client_DH_params_answer {
+ public:
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ UInt128 new_nonce_hash1_;
+
+ dh_gen_ok(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash1_);
+
+ static const std::int32_t ID = 1003222836;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Set_client_DH_params_answer> fetch(TlParser &p);
+
+ explicit dh_gen_ok(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class dh_gen_retry final : public Set_client_DH_params_answer {
+ public:
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ UInt128 new_nonce_hash2_;
+
+ dh_gen_retry(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash2_);
+
+ static const std::int32_t ID = 1188831161;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Set_client_DH_params_answer> fetch(TlParser &p);
+
+ explicit dh_gen_retry(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class dh_gen_fail final : public Set_client_DH_params_answer {
+ public:
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ UInt128 new_nonce_hash3_;
+
+ dh_gen_fail(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash3_);
+
+ static const std::int32_t ID = -1499615742;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Set_client_DH_params_answer> fetch(TlParser &p);
+
+ explicit dh_gen_fail(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class destroy_auth_key final : public Function {
+ public:
+
+ static const std::int32_t ID = -784117408;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<DestroyAuthKeyRes>;
+
+ static object_ptr<destroy_auth_key> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlParser &p);
+};
+
+class get_future_salts final : public Function {
+ public:
+ int32 num_;
+
+ explicit get_future_salts(int32 num_);
+
+ static const std::int32_t ID = -1188971260;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<future_salts>;
+
+ static object_ptr<get_future_salts> fetch(TlParser &p);
+
+ explicit get_future_salts(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlParser &p);
+};
+
+class http_wait final : public Function {
+ public:
+ int32 max_delay_;
+ int32 wait_after_;
+ int32 max_wait_;
+
+ http_wait(int32 max_delay_, int32 wait_after_, int32 max_wait_);
+
+ static const std::int32_t ID = -1835453025;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<dummyHttpWait>;
+
+ static object_ptr<http_wait> fetch(TlParser &p);
+
+ explicit http_wait(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlParser &p);
+};
+
+class ping_delay_disconnect final : public Function {
+ public:
+ int64 ping_id_;
+ int32 disconnect_delay_;
+
+ ping_delay_disconnect(int64 ping_id_, int32 disconnect_delay_);
+
+ static const std::int32_t ID = -213746804;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<pong>;
+
+ static object_ptr<ping_delay_disconnect> fetch(TlParser &p);
+
+ explicit ping_delay_disconnect(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlParser &p);
+};
+
+class req_DH_params final : public Function {
+ public:
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ string p_;
+ string q_;
+ int64 public_key_fingerprint_;
+ string encrypted_data_;
+
+ req_DH_params(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &p_, string const &q_, int64 public_key_fingerprint_, string const &encrypted_data_);
+
+ static const std::int32_t ID = -686627650;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<server_DH_params_ok>;
+
+ static object_ptr<req_DH_params> fetch(TlParser &p);
+
+ explicit req_DH_params(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlParser &p);
+};
+
+class req_pq_multi final : public Function {
+ public:
+ UInt128 nonce_;
+
+ explicit req_pq_multi(UInt128 const &nonce_);
+
+ static const std::int32_t ID = -1099002127;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<resPQ>;
+
+ static object_ptr<req_pq_multi> fetch(TlParser &p);
+
+ explicit req_pq_multi(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlParser &p);
+};
+
+class rpc_drop_answer final : public Function {
+ public:
+ int64 req_msg_id_;
+
+ explicit rpc_drop_answer(int64 req_msg_id_);
+
+ static const std::int32_t ID = 1491380032;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<RpcDropAnswer>;
+
+ static object_ptr<rpc_drop_answer> fetch(TlParser &p);
+
+ explicit rpc_drop_answer(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlParser &p);
+};
+
+class set_client_DH_params final : public Function {
+ public:
+ UInt128 nonce_;
+ UInt128 server_nonce_;
+ string encrypted_data_;
+
+ set_client_DH_params(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &encrypted_data_);
+
+ static const std::int32_t ID = -184262881;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Set_client_DH_params_answer>;
+
+ static object_ptr<set_client_DH_params> fetch(TlParser &p);
+
+ explicit set_client_DH_params(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlParser &p);
+};
+
+} // namespace mtproto_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.hpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.hpp
new file mode 100644
index 0000000000..3cc60f32a0
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.hpp
@@ -0,0 +1,294 @@
+#pragma once
+
+/**
+ * \file
+ * Contains downcast_call methods for calling a function object on downcasted to
+ * the most derived class TDLib API object.
+ */
+#include "mtproto_api.h"
+
+namespace td {
+namespace mtproto_api {
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Object &obj, const T &func) {
+ switch (obj.get_id()) {
+ case bad_msg_notification::ID:
+ func(static_cast<bad_msg_notification &>(obj));
+ return true;
+ case bad_server_salt::ID:
+ func(static_cast<bad_server_salt &>(obj));
+ return true;
+ case bind_auth_key_inner::ID:
+ func(static_cast<bind_auth_key_inner &>(obj));
+ return true;
+ case client_DH_inner_data::ID:
+ func(static_cast<client_DH_inner_data &>(obj));
+ return true;
+ case destroy_auth_key_ok::ID:
+ func(static_cast<destroy_auth_key_ok &>(obj));
+ return true;
+ case destroy_auth_key_none::ID:
+ func(static_cast<destroy_auth_key_none &>(obj));
+ return true;
+ case destroy_auth_key_fail::ID:
+ func(static_cast<destroy_auth_key_fail &>(obj));
+ return true;
+ case future_salt::ID:
+ func(static_cast<future_salt &>(obj));
+ return true;
+ case future_salts::ID:
+ func(static_cast<future_salts &>(obj));
+ return true;
+ case gzip_packed::ID:
+ func(static_cast<gzip_packed &>(obj));
+ return true;
+ case dummyHttpWait::ID:
+ func(static_cast<dummyHttpWait &>(obj));
+ return true;
+ case msg_detailed_info::ID:
+ func(static_cast<msg_detailed_info &>(obj));
+ return true;
+ case msg_new_detailed_info::ID:
+ func(static_cast<msg_new_detailed_info &>(obj));
+ return true;
+ case msg_resend_req::ID:
+ func(static_cast<msg_resend_req &>(obj));
+ return true;
+ case msgs_ack::ID:
+ func(static_cast<msgs_ack &>(obj));
+ return true;
+ case msgs_all_info::ID:
+ func(static_cast<msgs_all_info &>(obj));
+ return true;
+ case msgs_state_info::ID:
+ func(static_cast<msgs_state_info &>(obj));
+ return true;
+ case msgs_state_req::ID:
+ func(static_cast<msgs_state_req &>(obj));
+ return true;
+ case new_session_created::ID:
+ func(static_cast<new_session_created &>(obj));
+ return true;
+ case p_q_inner_data_dc::ID:
+ func(static_cast<p_q_inner_data_dc &>(obj));
+ return true;
+ case p_q_inner_data_temp_dc::ID:
+ func(static_cast<p_q_inner_data_temp_dc &>(obj));
+ return true;
+ case pong::ID:
+ func(static_cast<pong &>(obj));
+ return true;
+ case rsa_public_key::ID:
+ func(static_cast<rsa_public_key &>(obj));
+ return true;
+ case resPQ::ID:
+ func(static_cast<resPQ &>(obj));
+ return true;
+ case rpc_answer_unknown::ID:
+ func(static_cast<rpc_answer_unknown &>(obj));
+ return true;
+ case rpc_answer_dropped_running::ID:
+ func(static_cast<rpc_answer_dropped_running &>(obj));
+ return true;
+ case rpc_answer_dropped::ID:
+ func(static_cast<rpc_answer_dropped &>(obj));
+ return true;
+ case rpc_error::ID:
+ func(static_cast<rpc_error &>(obj));
+ return true;
+ case server_DH_params_ok::ID:
+ func(static_cast<server_DH_params_ok &>(obj));
+ return true;
+ case server_DH_inner_data::ID:
+ func(static_cast<server_DH_inner_data &>(obj));
+ return true;
+ case dh_gen_ok::ID:
+ func(static_cast<dh_gen_ok &>(obj));
+ return true;
+ case dh_gen_retry::ID:
+ func(static_cast<dh_gen_retry &>(obj));
+ return true;
+ case dh_gen_fail::ID:
+ func(static_cast<dh_gen_fail &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Function &obj, const T &func) {
+ switch (obj.get_id()) {
+ case destroy_auth_key::ID:
+ func(static_cast<destroy_auth_key &>(obj));
+ return true;
+ case get_future_salts::ID:
+ func(static_cast<get_future_salts &>(obj));
+ return true;
+ case http_wait::ID:
+ func(static_cast<http_wait &>(obj));
+ return true;
+ case ping_delay_disconnect::ID:
+ func(static_cast<ping_delay_disconnect &>(obj));
+ return true;
+ case req_DH_params::ID:
+ func(static_cast<req_DH_params &>(obj));
+ return true;
+ case req_pq_multi::ID:
+ func(static_cast<req_pq_multi &>(obj));
+ return true;
+ case rpc_drop_answer::ID:
+ func(static_cast<rpc_drop_answer &>(obj));
+ return true;
+ case set_client_DH_params::ID:
+ func(static_cast<set_client_DH_params &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(BadMsgNotification &obj, const T &func) {
+ switch (obj.get_id()) {
+ case bad_msg_notification::ID:
+ func(static_cast<bad_msg_notification &>(obj));
+ return true;
+ case bad_server_salt::ID:
+ func(static_cast<bad_server_salt &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DestroyAuthKeyRes &obj, const T &func) {
+ switch (obj.get_id()) {
+ case destroy_auth_key_ok::ID:
+ func(static_cast<destroy_auth_key_ok &>(obj));
+ return true;
+ case destroy_auth_key_none::ID:
+ func(static_cast<destroy_auth_key_none &>(obj));
+ return true;
+ case destroy_auth_key_fail::ID:
+ func(static_cast<destroy_auth_key_fail &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MsgDetailedInfo &obj, const T &func) {
+ switch (obj.get_id()) {
+ case msg_detailed_info::ID:
+ func(static_cast<msg_detailed_info &>(obj));
+ return true;
+ case msg_new_detailed_info::ID:
+ func(static_cast<msg_new_detailed_info &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(P_Q_inner_data &obj, const T &func) {
+ switch (obj.get_id()) {
+ case p_q_inner_data_dc::ID:
+ func(static_cast<p_q_inner_data_dc &>(obj));
+ return true;
+ case p_q_inner_data_temp_dc::ID:
+ func(static_cast<p_q_inner_data_temp_dc &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(RpcDropAnswer &obj, const T &func) {
+ switch (obj.get_id()) {
+ case rpc_answer_unknown::ID:
+ func(static_cast<rpc_answer_unknown &>(obj));
+ return true;
+ case rpc_answer_dropped_running::ID:
+ func(static_cast<rpc_answer_dropped_running &>(obj));
+ return true;
+ case rpc_answer_dropped::ID:
+ func(static_cast<rpc_answer_dropped &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Set_client_DH_params_answer &obj, const T &func) {
+ switch (obj.get_id()) {
+ case dh_gen_ok::ID:
+ func(static_cast<dh_gen_ok &>(obj));
+ return true;
+ case dh_gen_retry::ID:
+ func(static_cast<dh_gen_retry &>(obj));
+ return true;
+ case dh_gen_fail::ID:
+ func(static_cast<dh_gen_fail &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+} // namespace mtproto_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.cpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.cpp
new file mode 100644
index 0000000000..6dbfc94299
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.cpp
@@ -0,0 +1,4072 @@
+#include "secret_api.h"
+
+#include "td/tl/tl_object_parse.h"
+#include "td/tl/tl_object_store.h"
+
+#include "td/utils/common.h"
+#include "td/utils/format.h"
+#include "td/utils/logging.h"
+#include "td/utils/SliceBuilder.h"
+#include "td/utils/tl_parsers.h"
+#include "td/utils/tl_storers.h"
+#include "td/utils/TlStorerToString.h"
+
+namespace td {
+namespace secret_api {
+
+std::string to_string(const BaseObject &value) {
+ TlStorerToString storer;
+ value.store(storer, "");
+ return storer.move_as_string();
+}
+
+object_ptr<Object> Object::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case decryptedMessage8::ID:
+ return decryptedMessage8::fetch(p);
+ case decryptedMessageService8::ID:
+ return decryptedMessageService8::fetch(p);
+ case decryptedMessage23::ID:
+ return decryptedMessage23::fetch(p);
+ case decryptedMessageService::ID:
+ return decryptedMessageService::fetch(p);
+ case decryptedMessage46::ID:
+ return decryptedMessage46::fetch(p);
+ case decryptedMessage::ID:
+ return decryptedMessage::fetch(p);
+ case decryptedMessageActionSetMessageTTL::ID:
+ return decryptedMessageActionSetMessageTTL::fetch(p);
+ case decryptedMessageActionReadMessages::ID:
+ return decryptedMessageActionReadMessages::fetch(p);
+ case decryptedMessageActionDeleteMessages::ID:
+ return decryptedMessageActionDeleteMessages::fetch(p);
+ case decryptedMessageActionScreenshotMessages::ID:
+ return decryptedMessageActionScreenshotMessages::fetch(p);
+ case decryptedMessageActionFlushHistory::ID:
+ return decryptedMessageActionFlushHistory::fetch(p);
+ case decryptedMessageActionResend::ID:
+ return decryptedMessageActionResend::fetch(p);
+ case decryptedMessageActionNotifyLayer::ID:
+ return decryptedMessageActionNotifyLayer::fetch(p);
+ case decryptedMessageActionTyping::ID:
+ return decryptedMessageActionTyping::fetch(p);
+ case decryptedMessageActionRequestKey::ID:
+ return decryptedMessageActionRequestKey::fetch(p);
+ case decryptedMessageActionAcceptKey::ID:
+ return decryptedMessageActionAcceptKey::fetch(p);
+ case decryptedMessageActionAbortKey::ID:
+ return decryptedMessageActionAbortKey::fetch(p);
+ case decryptedMessageActionCommitKey::ID:
+ return decryptedMessageActionCommitKey::fetch(p);
+ case decryptedMessageActionNoop::ID:
+ return decryptedMessageActionNoop::fetch(p);
+ case decryptedMessageLayer::ID:
+ return decryptedMessageLayer::fetch(p);
+ case decryptedMessageMediaEmpty::ID:
+ return decryptedMessageMediaEmpty::fetch(p);
+ case decryptedMessageMediaPhoto8::ID:
+ return decryptedMessageMediaPhoto8::fetch(p);
+ case decryptedMessageMediaVideo8::ID:
+ return decryptedMessageMediaVideo8::fetch(p);
+ case decryptedMessageMediaGeoPoint::ID:
+ return decryptedMessageMediaGeoPoint::fetch(p);
+ case decryptedMessageMediaContact::ID:
+ return decryptedMessageMediaContact::fetch(p);
+ case decryptedMessageMediaDocument8::ID:
+ return decryptedMessageMediaDocument8::fetch(p);
+ case decryptedMessageMediaAudio8::ID:
+ return decryptedMessageMediaAudio8::fetch(p);
+ case decryptedMessageMediaVideo23::ID:
+ return decryptedMessageMediaVideo23::fetch(p);
+ case decryptedMessageMediaAudio::ID:
+ return decryptedMessageMediaAudio::fetch(p);
+ case decryptedMessageMediaExternalDocument::ID:
+ return decryptedMessageMediaExternalDocument::fetch(p);
+ case decryptedMessageMediaPhoto::ID:
+ return decryptedMessageMediaPhoto::fetch(p);
+ case decryptedMessageMediaVideo::ID:
+ return decryptedMessageMediaVideo::fetch(p);
+ case decryptedMessageMediaDocument46::ID:
+ return decryptedMessageMediaDocument46::fetch(p);
+ case decryptedMessageMediaVenue::ID:
+ return decryptedMessageMediaVenue::fetch(p);
+ case decryptedMessageMediaWebPage::ID:
+ return decryptedMessageMediaWebPage::fetch(p);
+ case decryptedMessageMediaDocument::ID:
+ return decryptedMessageMediaDocument::fetch(p);
+ case documentAttributeImageSize::ID:
+ return documentAttributeImageSize::fetch(p);
+ case documentAttributeAnimated::ID:
+ return documentAttributeAnimated::fetch(p);
+ case documentAttributeSticker23::ID:
+ return documentAttributeSticker23::fetch(p);
+ case documentAttributeVideo23::ID:
+ return documentAttributeVideo23::fetch(p);
+ case documentAttributeAudio23::ID:
+ return documentAttributeAudio23::fetch(p);
+ case documentAttributeFilename::ID:
+ return documentAttributeFilename::fetch(p);
+ case documentAttributeAudio45::ID:
+ return documentAttributeAudio45::fetch(p);
+ case documentAttributeSticker::ID:
+ return documentAttributeSticker::fetch(p);
+ case documentAttributeAudio::ID:
+ return documentAttributeAudio::fetch(p);
+ case documentAttributeVideo::ID:
+ return documentAttributeVideo::fetch(p);
+ case fileLocationUnavailable::ID:
+ return fileLocationUnavailable::fetch(p);
+ case fileLocation::ID:
+ return fileLocation::fetch(p);
+ case inputStickerSetShortName::ID:
+ return inputStickerSetShortName::fetch(p);
+ case inputStickerSetEmpty::ID:
+ return inputStickerSetEmpty::fetch(p);
+ case messageEntityUnknown::ID:
+ return messageEntityUnknown::fetch(p);
+ case messageEntityMention::ID:
+ return messageEntityMention::fetch(p);
+ case messageEntityHashtag::ID:
+ return messageEntityHashtag::fetch(p);
+ case messageEntityBotCommand::ID:
+ return messageEntityBotCommand::fetch(p);
+ case messageEntityUrl::ID:
+ return messageEntityUrl::fetch(p);
+ case messageEntityEmail::ID:
+ return messageEntityEmail::fetch(p);
+ case messageEntityBold::ID:
+ return messageEntityBold::fetch(p);
+ case messageEntityItalic::ID:
+ return messageEntityItalic::fetch(p);
+ case messageEntityCode::ID:
+ return messageEntityCode::fetch(p);
+ case messageEntityPre::ID:
+ return messageEntityPre::fetch(p);
+ case messageEntityTextUrl::ID:
+ return messageEntityTextUrl::fetch(p);
+ case messageEntityMentionName::ID:
+ return messageEntityMentionName::fetch(p);
+ case messageEntityPhone::ID:
+ return messageEntityPhone::fetch(p);
+ case messageEntityCashtag::ID:
+ return messageEntityCashtag::fetch(p);
+ case messageEntityBankCard::ID:
+ return messageEntityBankCard::fetch(p);
+ case messageEntityUnderline::ID:
+ return messageEntityUnderline::fetch(p);
+ case messageEntityStrike::ID:
+ return messageEntityStrike::fetch(p);
+ case messageEntityBlockquote::ID:
+ return messageEntityBlockquote::fetch(p);
+ case messageEntitySpoiler::ID:
+ return messageEntitySpoiler::fetch(p);
+ case messageEntityCustomEmoji::ID:
+ return messageEntityCustomEmoji::fetch(p);
+ case photoSizeEmpty::ID:
+ return photoSizeEmpty::fetch(p);
+ case photoSize::ID:
+ return photoSize::fetch(p);
+ case photoCachedSize::ID:
+ return photoCachedSize::fetch(p);
+ case sendMessageTypingAction::ID:
+ return sendMessageTypingAction::fetch(p);
+ case sendMessageCancelAction::ID:
+ return sendMessageCancelAction::fetch(p);
+ case sendMessageRecordVideoAction::ID:
+ return sendMessageRecordVideoAction::fetch(p);
+ case sendMessageUploadVideoAction::ID:
+ return sendMessageUploadVideoAction::fetch(p);
+ case sendMessageRecordAudioAction::ID:
+ return sendMessageRecordAudioAction::fetch(p);
+ case sendMessageUploadAudioAction::ID:
+ return sendMessageUploadAudioAction::fetch(p);
+ case sendMessageUploadPhotoAction::ID:
+ return sendMessageUploadPhotoAction::fetch(p);
+ case sendMessageUploadDocumentAction::ID:
+ return sendMessageUploadDocumentAction::fetch(p);
+ case sendMessageGeoLocationAction::ID:
+ return sendMessageGeoLocationAction::fetch(p);
+ case sendMessageChooseContactAction::ID:
+ return sendMessageChooseContactAction::fetch(p);
+ case sendMessageRecordRoundAction::ID:
+ return sendMessageRecordRoundAction::fetch(p);
+ case sendMessageUploadRoundAction::ID:
+ return sendMessageUploadRoundAction::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+object_ptr<Function> Function::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case test_dummyFunction::ID:
+ return test_dummyFunction::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+object_ptr<DecryptedMessage> DecryptedMessage::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case decryptedMessage8::ID:
+ return decryptedMessage8::fetch(p);
+ case decryptedMessageService8::ID:
+ return decryptedMessageService8::fetch(p);
+ case decryptedMessage23::ID:
+ return decryptedMessage23::fetch(p);
+ case decryptedMessageService::ID:
+ return decryptedMessageService::fetch(p);
+ case decryptedMessage46::ID:
+ return decryptedMessage46::fetch(p);
+ case decryptedMessage::ID:
+ return decryptedMessage::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+decryptedMessage8::decryptedMessage8(int64 random_id_, bytes &&random_bytes_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_)
+ : random_id_(random_id_)
+ , random_bytes_(std::move(random_bytes_))
+ , message_(message_)
+ , media_(std::move(media_))
+{}
+
+const std::int32_t decryptedMessage8::ID;
+
+object_ptr<DecryptedMessage> decryptedMessage8::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessage8>(p);
+}
+
+decryptedMessage8::decryptedMessage8(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_id_(TlFetchLong::parse(p))
+ , random_bytes_(TlFetchBytes<bytes>::parse(p))
+ , message_(TlFetchString<string>::parse(p))
+ , media_(TlFetchObject<DecryptedMessageMedia>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessage8::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(random_bytes_, s);
+ TlStoreString::store(message_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+}
+
+void decryptedMessage8::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(random_bytes_, s);
+ TlStoreString::store(message_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+}
+
+void decryptedMessage8::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessage8");
+ s.store_field("random_id", random_id_);
+ s.store_bytes_field("random_bytes", random_bytes_);
+ s.store_field("message", message_);
+ s.store_object_field("media", static_cast<const BaseObject *>(media_.get()));
+ s.store_class_end();
+ }
+}
+
+decryptedMessageService8::decryptedMessageService8(int64 random_id_, bytes &&random_bytes_, object_ptr<DecryptedMessageAction> &&action_)
+ : random_id_(random_id_)
+ , random_bytes_(std::move(random_bytes_))
+ , action_(std::move(action_))
+{}
+
+const std::int32_t decryptedMessageService8::ID;
+
+object_ptr<DecryptedMessage> decryptedMessageService8::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageService8>(p);
+}
+
+decryptedMessageService8::decryptedMessageService8(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_id_(TlFetchLong::parse(p))
+ , random_bytes_(TlFetchBytes<bytes>::parse(p))
+ , action_(TlFetchObject<DecryptedMessageAction>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageService8::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(random_bytes_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(action_, s);
+}
+
+void decryptedMessageService8::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(random_bytes_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(action_, s);
+}
+
+void decryptedMessageService8::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageService8");
+ s.store_field("random_id", random_id_);
+ s.store_bytes_field("random_bytes", random_bytes_);
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+decryptedMessage23::decryptedMessage23(int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_)
+ : random_id_(random_id_)
+ , ttl_(ttl_)
+ , message_(message_)
+ , media_(std::move(media_))
+{}
+
+const std::int32_t decryptedMessage23::ID;
+
+object_ptr<DecryptedMessage> decryptedMessage23::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessage23>(p);
+}
+
+decryptedMessage23::decryptedMessage23(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_id_(TlFetchLong::parse(p))
+ , ttl_(TlFetchInt::parse(p))
+ , message_(TlFetchString<string>::parse(p))
+ , media_(TlFetchObject<DecryptedMessageMedia>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessage23::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreBinary::store(ttl_, s);
+ TlStoreString::store(message_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+}
+
+void decryptedMessage23::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreBinary::store(ttl_, s);
+ TlStoreString::store(message_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+}
+
+void decryptedMessage23::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessage23");
+ s.store_field("random_id", random_id_);
+ s.store_field("ttl", ttl_);
+ s.store_field("message", message_);
+ s.store_object_field("media", static_cast<const BaseObject *>(media_.get()));
+ s.store_class_end();
+ }
+}
+
+decryptedMessageService::decryptedMessageService(int64 random_id_, object_ptr<DecryptedMessageAction> &&action_)
+ : random_id_(random_id_)
+ , action_(std::move(action_))
+{}
+
+const std::int32_t decryptedMessageService::ID;
+
+object_ptr<DecryptedMessage> decryptedMessageService::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageService>(p);
+}
+
+decryptedMessageService::decryptedMessageService(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_id_(TlFetchLong::parse(p))
+ , action_(TlFetchObject<DecryptedMessageAction>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageService::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(action_, s);
+}
+
+void decryptedMessageService::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(action_, s);
+}
+
+void decryptedMessageService::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageService");
+ s.store_field("random_id", random_id_);
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+decryptedMessage46::decryptedMessage46()
+ : flags_()
+ , random_id_()
+ , ttl_()
+ , message_()
+ , media_()
+ , entities_()
+ , via_bot_name_()
+ , reply_to_random_id_()
+{}
+
+decryptedMessage46::decryptedMessage46(int32 flags_, int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_, string const &via_bot_name_, int64 reply_to_random_id_)
+ : flags_(flags_)
+ , random_id_(random_id_)
+ , ttl_(ttl_)
+ , message_(message_)
+ , media_(std::move(media_))
+ , entities_(std::move(entities_))
+ , via_bot_name_(via_bot_name_)
+ , reply_to_random_id_(reply_to_random_id_)
+{}
+
+const std::int32_t decryptedMessage46::ID;
+
+object_ptr<DecryptedMessage> decryptedMessage46::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<decryptedMessage46> res = make_tl_object<decryptedMessage46>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->random_id_ = TlFetchLong::parse(p);
+ res->ttl_ = TlFetchInt::parse(p);
+ res->message_ = TlFetchString<string>::parse(p);
+ if (var0 & 512) { res->media_ = TlFetchObject<DecryptedMessageMedia>::parse(p); }
+ if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (var0 & 2048) { res->via_bot_name_ = TlFetchString<string>::parse(p); }
+ if (var0 & 8) { res->reply_to_random_id_ = TlFetchLong::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void decryptedMessage46::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreBinary::store(ttl_, s);
+ TlStoreString::store(message_, s);
+ if (var0 & 512) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); }
+ if (var0 & 128) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 2048) { TlStoreString::store(via_bot_name_, s); }
+ if (var0 & 8) { TlStoreBinary::store(reply_to_random_id_, s); }
+}
+
+void decryptedMessage46::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreBinary::store(ttl_, s);
+ TlStoreString::store(message_, s);
+ if (var0 & 512) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); }
+ if (var0 & 128) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 2048) { TlStoreString::store(via_bot_name_, s); }
+ if (var0 & 8) { TlStoreBinary::store(reply_to_random_id_, s); }
+}
+
+void decryptedMessage46::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessage46");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("random_id", random_id_);
+ s.store_field("ttl", ttl_);
+ s.store_field("message", message_);
+ if (var0 & 512) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); }
+ if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 2048) { s.store_field("via_bot_name", via_bot_name_); }
+ if (var0 & 8) { s.store_field("reply_to_random_id", reply_to_random_id_); }
+ s.store_class_end();
+ }
+}
+
+decryptedMessage::decryptedMessage()
+ : flags_()
+ , silent_()
+ , random_id_()
+ , ttl_()
+ , message_()
+ , media_()
+ , entities_()
+ , via_bot_name_()
+ , reply_to_random_id_()
+ , grouped_id_()
+{}
+
+decryptedMessage::decryptedMessage(int32 flags_, bool silent_, int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_, string const &via_bot_name_, int64 reply_to_random_id_, int64 grouped_id_)
+ : flags_(flags_)
+ , silent_(silent_)
+ , random_id_(random_id_)
+ , ttl_(ttl_)
+ , message_(message_)
+ , media_(std::move(media_))
+ , entities_(std::move(entities_))
+ , via_bot_name_(via_bot_name_)
+ , reply_to_random_id_(reply_to_random_id_)
+ , grouped_id_(grouped_id_)
+{}
+
+const std::int32_t decryptedMessage::ID;
+
+object_ptr<DecryptedMessage> decryptedMessage::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<decryptedMessage> res = make_tl_object<decryptedMessage>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 32) { res->silent_ = TlFetchTrue::parse(p); }
+ res->random_id_ = TlFetchLong::parse(p);
+ res->ttl_ = TlFetchInt::parse(p);
+ res->message_ = TlFetchString<string>::parse(p);
+ if (var0 & 512) { res->media_ = TlFetchObject<DecryptedMessageMedia>::parse(p); }
+ if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (var0 & 2048) { res->via_bot_name_ = TlFetchString<string>::parse(p); }
+ if (var0 & 8) { res->reply_to_random_id_ = TlFetchLong::parse(p); }
+ if (var0 & 131072) { res->grouped_id_ = TlFetchLong::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void decryptedMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreBinary::store(ttl_, s);
+ TlStoreString::store(message_, s);
+ if (var0 & 512) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); }
+ if (var0 & 128) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 2048) { TlStoreString::store(via_bot_name_, s); }
+ if (var0 & 8) { TlStoreBinary::store(reply_to_random_id_, s); }
+ if (var0 & 131072) { TlStoreBinary::store(grouped_id_, s); }
+}
+
+void decryptedMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreBinary::store(ttl_, s);
+ TlStoreString::store(message_, s);
+ if (var0 & 512) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); }
+ if (var0 & 128) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 2048) { TlStoreString::store(via_bot_name_, s); }
+ if (var0 & 8) { TlStoreBinary::store(reply_to_random_id_, s); }
+ if (var0 & 131072) { TlStoreBinary::store(grouped_id_, s); }
+}
+
+void decryptedMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessage");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("random_id", random_id_);
+ s.store_field("ttl", ttl_);
+ s.store_field("message", message_);
+ if (var0 & 512) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); }
+ if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 2048) { s.store_field("via_bot_name", via_bot_name_); }
+ if (var0 & 8) { s.store_field("reply_to_random_id", reply_to_random_id_); }
+ if (var0 & 131072) { s.store_field("grouped_id", grouped_id_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<DecryptedMessageAction> DecryptedMessageAction::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case decryptedMessageActionSetMessageTTL::ID:
+ return decryptedMessageActionSetMessageTTL::fetch(p);
+ case decryptedMessageActionReadMessages::ID:
+ return decryptedMessageActionReadMessages::fetch(p);
+ case decryptedMessageActionDeleteMessages::ID:
+ return decryptedMessageActionDeleteMessages::fetch(p);
+ case decryptedMessageActionScreenshotMessages::ID:
+ return decryptedMessageActionScreenshotMessages::fetch(p);
+ case decryptedMessageActionFlushHistory::ID:
+ return decryptedMessageActionFlushHistory::fetch(p);
+ case decryptedMessageActionResend::ID:
+ return decryptedMessageActionResend::fetch(p);
+ case decryptedMessageActionNotifyLayer::ID:
+ return decryptedMessageActionNotifyLayer::fetch(p);
+ case decryptedMessageActionTyping::ID:
+ return decryptedMessageActionTyping::fetch(p);
+ case decryptedMessageActionRequestKey::ID:
+ return decryptedMessageActionRequestKey::fetch(p);
+ case decryptedMessageActionAcceptKey::ID:
+ return decryptedMessageActionAcceptKey::fetch(p);
+ case decryptedMessageActionAbortKey::ID:
+ return decryptedMessageActionAbortKey::fetch(p);
+ case decryptedMessageActionCommitKey::ID:
+ return decryptedMessageActionCommitKey::fetch(p);
+ case decryptedMessageActionNoop::ID:
+ return decryptedMessageActionNoop::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+decryptedMessageActionSetMessageTTL::decryptedMessageActionSetMessageTTL(int32 ttl_seconds_)
+ : ttl_seconds_(ttl_seconds_)
+{}
+
+const std::int32_t decryptedMessageActionSetMessageTTL::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionSetMessageTTL::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionSetMessageTTL>(p);
+}
+
+decryptedMessageActionSetMessageTTL::decryptedMessageActionSetMessageTTL(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : ttl_seconds_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionSetMessageTTL::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(ttl_seconds_, s);
+}
+
+void decryptedMessageActionSetMessageTTL::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(ttl_seconds_, s);
+}
+
+void decryptedMessageActionSetMessageTTL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionSetMessageTTL");
+ s.store_field("ttl_seconds", ttl_seconds_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageActionReadMessages::decryptedMessageActionReadMessages(array<int64> &&random_ids_)
+ : random_ids_(std::move(random_ids_))
+{}
+
+const std::int32_t decryptedMessageActionReadMessages::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionReadMessages::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionReadMessages>(p);
+}
+
+decryptedMessageActionReadMessages::decryptedMessageActionReadMessages(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionReadMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s);
+}
+
+void decryptedMessageActionReadMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s);
+}
+
+void decryptedMessageActionReadMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionReadMessages");
+ { s.store_vector_begin("random_ids", random_ids_.size()); for (const auto &_value : random_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+decryptedMessageActionDeleteMessages::decryptedMessageActionDeleteMessages(array<int64> &&random_ids_)
+ : random_ids_(std::move(random_ids_))
+{}
+
+const std::int32_t decryptedMessageActionDeleteMessages::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionDeleteMessages::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionDeleteMessages>(p);
+}
+
+decryptedMessageActionDeleteMessages::decryptedMessageActionDeleteMessages(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionDeleteMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s);
+}
+
+void decryptedMessageActionDeleteMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s);
+}
+
+void decryptedMessageActionDeleteMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionDeleteMessages");
+ { s.store_vector_begin("random_ids", random_ids_.size()); for (const auto &_value : random_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+decryptedMessageActionScreenshotMessages::decryptedMessageActionScreenshotMessages(array<int64> &&random_ids_)
+ : random_ids_(std::move(random_ids_))
+{}
+
+const std::int32_t decryptedMessageActionScreenshotMessages::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionScreenshotMessages::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionScreenshotMessages>(p);
+}
+
+decryptedMessageActionScreenshotMessages::decryptedMessageActionScreenshotMessages(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionScreenshotMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s);
+}
+
+void decryptedMessageActionScreenshotMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s);
+}
+
+void decryptedMessageActionScreenshotMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionScreenshotMessages");
+ { s.store_vector_begin("random_ids", random_ids_.size()); for (const auto &_value : random_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t decryptedMessageActionFlushHistory::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionFlushHistory::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionFlushHistory>();
+}
+
+void decryptedMessageActionFlushHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void decryptedMessageActionFlushHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void decryptedMessageActionFlushHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionFlushHistory");
+ s.store_class_end();
+ }
+}
+
+decryptedMessageActionResend::decryptedMessageActionResend(int32 start_seq_no_, int32 end_seq_no_)
+ : start_seq_no_(start_seq_no_)
+ , end_seq_no_(end_seq_no_)
+{}
+
+const std::int32_t decryptedMessageActionResend::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionResend::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionResend>(p);
+}
+
+decryptedMessageActionResend::decryptedMessageActionResend(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : start_seq_no_(TlFetchInt::parse(p))
+ , end_seq_no_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionResend::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(start_seq_no_, s);
+ TlStoreBinary::store(end_seq_no_, s);
+}
+
+void decryptedMessageActionResend::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(start_seq_no_, s);
+ TlStoreBinary::store(end_seq_no_, s);
+}
+
+void decryptedMessageActionResend::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionResend");
+ s.store_field("start_seq_no", start_seq_no_);
+ s.store_field("end_seq_no", end_seq_no_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageActionNotifyLayer::decryptedMessageActionNotifyLayer(int32 layer_)
+ : layer_(layer_)
+{}
+
+const std::int32_t decryptedMessageActionNotifyLayer::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionNotifyLayer::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionNotifyLayer>(p);
+}
+
+decryptedMessageActionNotifyLayer::decryptedMessageActionNotifyLayer(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : layer_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionNotifyLayer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(layer_, s);
+}
+
+void decryptedMessageActionNotifyLayer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(layer_, s);
+}
+
+void decryptedMessageActionNotifyLayer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionNotifyLayer");
+ s.store_field("layer", layer_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageActionTyping::decryptedMessageActionTyping(object_ptr<SendMessageAction> &&action_)
+ : action_(std::move(action_))
+{}
+
+const std::int32_t decryptedMessageActionTyping::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionTyping::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionTyping>(p);
+}
+
+decryptedMessageActionTyping::decryptedMessageActionTyping(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : action_(TlFetchObject<SendMessageAction>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionTyping::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(action_, s);
+}
+
+void decryptedMessageActionTyping::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(action_, s);
+}
+
+void decryptedMessageActionTyping::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionTyping");
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+decryptedMessageActionRequestKey::decryptedMessageActionRequestKey(int64 exchange_id_, bytes &&g_a_)
+ : exchange_id_(exchange_id_)
+ , g_a_(std::move(g_a_))
+{}
+
+const std::int32_t decryptedMessageActionRequestKey::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionRequestKey::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionRequestKey>(p);
+}
+
+decryptedMessageActionRequestKey::decryptedMessageActionRequestKey(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : exchange_id_(TlFetchLong::parse(p))
+ , g_a_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionRequestKey::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(exchange_id_, s);
+ TlStoreString::store(g_a_, s);
+}
+
+void decryptedMessageActionRequestKey::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(exchange_id_, s);
+ TlStoreString::store(g_a_, s);
+}
+
+void decryptedMessageActionRequestKey::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionRequestKey");
+ s.store_field("exchange_id", exchange_id_);
+ s.store_bytes_field("g_a", g_a_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageActionAcceptKey::decryptedMessageActionAcceptKey(int64 exchange_id_, bytes &&g_b_, int64 key_fingerprint_)
+ : exchange_id_(exchange_id_)
+ , g_b_(std::move(g_b_))
+ , key_fingerprint_(key_fingerprint_)
+{}
+
+const std::int32_t decryptedMessageActionAcceptKey::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionAcceptKey::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionAcceptKey>(p);
+}
+
+decryptedMessageActionAcceptKey::decryptedMessageActionAcceptKey(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : exchange_id_(TlFetchLong::parse(p))
+ , g_b_(TlFetchBytes<bytes>::parse(p))
+ , key_fingerprint_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionAcceptKey::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(exchange_id_, s);
+ TlStoreString::store(g_b_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+}
+
+void decryptedMessageActionAcceptKey::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(exchange_id_, s);
+ TlStoreString::store(g_b_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+}
+
+void decryptedMessageActionAcceptKey::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionAcceptKey");
+ s.store_field("exchange_id", exchange_id_);
+ s.store_bytes_field("g_b", g_b_);
+ s.store_field("key_fingerprint", key_fingerprint_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageActionAbortKey::decryptedMessageActionAbortKey(int64 exchange_id_)
+ : exchange_id_(exchange_id_)
+{}
+
+const std::int32_t decryptedMessageActionAbortKey::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionAbortKey::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionAbortKey>(p);
+}
+
+decryptedMessageActionAbortKey::decryptedMessageActionAbortKey(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : exchange_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionAbortKey::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(exchange_id_, s);
+}
+
+void decryptedMessageActionAbortKey::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(exchange_id_, s);
+}
+
+void decryptedMessageActionAbortKey::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionAbortKey");
+ s.store_field("exchange_id", exchange_id_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageActionCommitKey::decryptedMessageActionCommitKey(int64 exchange_id_, int64 key_fingerprint_)
+ : exchange_id_(exchange_id_)
+ , key_fingerprint_(key_fingerprint_)
+{}
+
+const std::int32_t decryptedMessageActionCommitKey::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionCommitKey::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionCommitKey>(p);
+}
+
+decryptedMessageActionCommitKey::decryptedMessageActionCommitKey(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : exchange_id_(TlFetchLong::parse(p))
+ , key_fingerprint_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageActionCommitKey::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(exchange_id_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+}
+
+void decryptedMessageActionCommitKey::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(exchange_id_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+}
+
+void decryptedMessageActionCommitKey::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionCommitKey");
+ s.store_field("exchange_id", exchange_id_);
+ s.store_field("key_fingerprint", key_fingerprint_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t decryptedMessageActionNoop::ID;
+
+object_ptr<DecryptedMessageAction> decryptedMessageActionNoop::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageActionNoop>();
+}
+
+void decryptedMessageActionNoop::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void decryptedMessageActionNoop::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void decryptedMessageActionNoop::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageActionNoop");
+ s.store_class_end();
+ }
+}
+
+decryptedMessageLayer::decryptedMessageLayer(bytes &&random_bytes_, int32 layer_, int32 in_seq_no_, int32 out_seq_no_, object_ptr<DecryptedMessage> &&message_)
+ : random_bytes_(std::move(random_bytes_))
+ , layer_(layer_)
+ , in_seq_no_(in_seq_no_)
+ , out_seq_no_(out_seq_no_)
+ , message_(std::move(message_))
+{}
+
+const std::int32_t decryptedMessageLayer::ID;
+
+object_ptr<decryptedMessageLayer> decryptedMessageLayer::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageLayer>(p);
+}
+
+decryptedMessageLayer::decryptedMessageLayer(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_bytes_(TlFetchBytes<bytes>::parse(p))
+ , layer_(TlFetchInt::parse(p))
+ , in_seq_no_(TlFetchInt::parse(p))
+ , out_seq_no_(TlFetchInt::parse(p))
+ , message_(TlFetchObject<DecryptedMessage>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageLayer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(random_bytes_, s);
+ TlStoreBinary::store(layer_, s);
+ TlStoreBinary::store(in_seq_no_, s);
+ TlStoreBinary::store(out_seq_no_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(message_, s);
+}
+
+void decryptedMessageLayer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(random_bytes_, s);
+ TlStoreBinary::store(layer_, s);
+ TlStoreBinary::store(in_seq_no_, s);
+ TlStoreBinary::store(out_seq_no_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(message_, s);
+}
+
+void decryptedMessageLayer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageLayer");
+ s.store_bytes_field("random_bytes", random_bytes_);
+ s.store_field("layer", layer_);
+ s.store_field("in_seq_no", in_seq_no_);
+ s.store_field("out_seq_no", out_seq_no_);
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<DecryptedMessageMedia> DecryptedMessageMedia::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case decryptedMessageMediaEmpty::ID:
+ return decryptedMessageMediaEmpty::fetch(p);
+ case decryptedMessageMediaPhoto8::ID:
+ return decryptedMessageMediaPhoto8::fetch(p);
+ case decryptedMessageMediaVideo8::ID:
+ return decryptedMessageMediaVideo8::fetch(p);
+ case decryptedMessageMediaGeoPoint::ID:
+ return decryptedMessageMediaGeoPoint::fetch(p);
+ case decryptedMessageMediaContact::ID:
+ return decryptedMessageMediaContact::fetch(p);
+ case decryptedMessageMediaDocument8::ID:
+ return decryptedMessageMediaDocument8::fetch(p);
+ case decryptedMessageMediaAudio8::ID:
+ return decryptedMessageMediaAudio8::fetch(p);
+ case decryptedMessageMediaVideo23::ID:
+ return decryptedMessageMediaVideo23::fetch(p);
+ case decryptedMessageMediaAudio::ID:
+ return decryptedMessageMediaAudio::fetch(p);
+ case decryptedMessageMediaExternalDocument::ID:
+ return decryptedMessageMediaExternalDocument::fetch(p);
+ case decryptedMessageMediaPhoto::ID:
+ return decryptedMessageMediaPhoto::fetch(p);
+ case decryptedMessageMediaVideo::ID:
+ return decryptedMessageMediaVideo::fetch(p);
+ case decryptedMessageMediaDocument46::ID:
+ return decryptedMessageMediaDocument46::fetch(p);
+ case decryptedMessageMediaVenue::ID:
+ return decryptedMessageMediaVenue::fetch(p);
+ case decryptedMessageMediaWebPage::ID:
+ return decryptedMessageMediaWebPage::fetch(p);
+ case decryptedMessageMediaDocument::ID:
+ return decryptedMessageMediaDocument::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t decryptedMessageMediaEmpty::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaEmpty::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaEmpty>();
+}
+
+void decryptedMessageMediaEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void decryptedMessageMediaEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void decryptedMessageMediaEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaEmpty");
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaPhoto8::decryptedMessageMediaPhoto8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_)
+ : thumb_(std::move(thumb_))
+ , thumb_w_(thumb_w_)
+ , thumb_h_(thumb_h_)
+ , w_(w_)
+ , h_(h_)
+ , size_(size_)
+ , key_(std::move(key_))
+ , iv_(std::move(iv_))
+{}
+
+const std::int32_t decryptedMessageMediaPhoto8::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaPhoto8::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaPhoto8>(p);
+}
+
+decryptedMessageMediaPhoto8::decryptedMessageMediaPhoto8(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : thumb_(TlFetchBytes<bytes>::parse(p))
+ , thumb_w_(TlFetchInt::parse(p))
+ , thumb_h_(TlFetchInt::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , key_(TlFetchBytes<bytes>::parse(p))
+ , iv_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaPhoto8::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaPhoto8::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaPhoto8::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaPhoto8");
+ s.store_bytes_field("thumb", thumb_);
+ s.store_field("thumb_w", thumb_w_);
+ s.store_field("thumb_h", thumb_h_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_field("size", size_);
+ s.store_bytes_field("key", key_);
+ s.store_bytes_field("iv", iv_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaVideo8::decryptedMessageMediaVideo8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_)
+ : thumb_(std::move(thumb_))
+ , thumb_w_(thumb_w_)
+ , thumb_h_(thumb_h_)
+ , duration_(duration_)
+ , w_(w_)
+ , h_(h_)
+ , size_(size_)
+ , key_(std::move(key_))
+ , iv_(std::move(iv_))
+{}
+
+const std::int32_t decryptedMessageMediaVideo8::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaVideo8::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaVideo8>(p);
+}
+
+decryptedMessageMediaVideo8::decryptedMessageMediaVideo8(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : thumb_(TlFetchBytes<bytes>::parse(p))
+ , thumb_w_(TlFetchInt::parse(p))
+ , thumb_h_(TlFetchInt::parse(p))
+ , duration_(TlFetchInt::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , key_(TlFetchBytes<bytes>::parse(p))
+ , iv_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaVideo8::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaVideo8::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaVideo8::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaVideo8");
+ s.store_bytes_field("thumb", thumb_);
+ s.store_field("thumb_w", thumb_w_);
+ s.store_field("thumb_h", thumb_h_);
+ s.store_field("duration", duration_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_field("size", size_);
+ s.store_bytes_field("key", key_);
+ s.store_bytes_field("iv", iv_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaGeoPoint::decryptedMessageMediaGeoPoint(double lat_, double long_)
+ : lat_(lat_)
+ , long_(long_)
+{}
+
+const std::int32_t decryptedMessageMediaGeoPoint::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaGeoPoint::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaGeoPoint>(p);
+}
+
+decryptedMessageMediaGeoPoint::decryptedMessageMediaGeoPoint(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : lat_(TlFetchDouble::parse(p))
+ , long_(TlFetchDouble::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaGeoPoint::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(lat_, s);
+ TlStoreBinary::store(long_, s);
+}
+
+void decryptedMessageMediaGeoPoint::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(lat_, s);
+ TlStoreBinary::store(long_, s);
+}
+
+void decryptedMessageMediaGeoPoint::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaGeoPoint");
+ s.store_field("lat", lat_);
+ s.store_field("long", long_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaContact::decryptedMessageMediaContact(string const &phone_number_, string const &first_name_, string const &last_name_, int32 user_id_)
+ : phone_number_(phone_number_)
+ , first_name_(first_name_)
+ , last_name_(last_name_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t decryptedMessageMediaContact::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaContact::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaContact>(p);
+}
+
+decryptedMessageMediaContact::decryptedMessageMediaContact(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : phone_number_(TlFetchString<string>::parse(p))
+ , first_name_(TlFetchString<string>::parse(p))
+ , last_name_(TlFetchString<string>::parse(p))
+ , user_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaContact::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void decryptedMessageMediaContact::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void decryptedMessageMediaContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaContact");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaDocument8::decryptedMessageMediaDocument8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &file_name_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_)
+ : thumb_(std::move(thumb_))
+ , thumb_w_(thumb_w_)
+ , thumb_h_(thumb_h_)
+ , file_name_(file_name_)
+ , mime_type_(mime_type_)
+ , size_(size_)
+ , key_(std::move(key_))
+ , iv_(std::move(iv_))
+{}
+
+const std::int32_t decryptedMessageMediaDocument8::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaDocument8::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaDocument8>(p);
+}
+
+decryptedMessageMediaDocument8::decryptedMessageMediaDocument8(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : thumb_(TlFetchBytes<bytes>::parse(p))
+ , thumb_w_(TlFetchInt::parse(p))
+ , thumb_h_(TlFetchInt::parse(p))
+ , file_name_(TlFetchString<string>::parse(p))
+ , mime_type_(TlFetchString<string>::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , key_(TlFetchBytes<bytes>::parse(p))
+ , iv_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaDocument8::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreString::store(file_name_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaDocument8::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreString::store(file_name_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaDocument8::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaDocument8");
+ s.store_bytes_field("thumb", thumb_);
+ s.store_field("thumb_w", thumb_w_);
+ s.store_field("thumb_h", thumb_h_);
+ s.store_field("file_name", file_name_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("size", size_);
+ s.store_bytes_field("key", key_);
+ s.store_bytes_field("iv", iv_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaAudio8::decryptedMessageMediaAudio8(int32 duration_, int32 size_, bytes &&key_, bytes &&iv_)
+ : duration_(duration_)
+ , size_(size_)
+ , key_(std::move(key_))
+ , iv_(std::move(iv_))
+{}
+
+const std::int32_t decryptedMessageMediaAudio8::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaAudio8::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaAudio8>(p);
+}
+
+decryptedMessageMediaAudio8::decryptedMessageMediaAudio8(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : duration_(TlFetchInt::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , key_(TlFetchBytes<bytes>::parse(p))
+ , iv_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaAudio8::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaAudio8::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaAudio8::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaAudio8");
+ s.store_field("duration", duration_);
+ s.store_field("size", size_);
+ s.store_bytes_field("key", key_);
+ s.store_bytes_field("iv", iv_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaVideo23::decryptedMessageMediaVideo23(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, string const &mime_type_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_)
+ : thumb_(std::move(thumb_))
+ , thumb_w_(thumb_w_)
+ , thumb_h_(thumb_h_)
+ , duration_(duration_)
+ , mime_type_(mime_type_)
+ , w_(w_)
+ , h_(h_)
+ , size_(size_)
+ , key_(std::move(key_))
+ , iv_(std::move(iv_))
+{}
+
+const std::int32_t decryptedMessageMediaVideo23::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaVideo23::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaVideo23>(p);
+}
+
+decryptedMessageMediaVideo23::decryptedMessageMediaVideo23(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : thumb_(TlFetchBytes<bytes>::parse(p))
+ , thumb_w_(TlFetchInt::parse(p))
+ , thumb_h_(TlFetchInt::parse(p))
+ , duration_(TlFetchInt::parse(p))
+ , mime_type_(TlFetchString<string>::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , key_(TlFetchBytes<bytes>::parse(p))
+ , iv_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaVideo23::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaVideo23::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaVideo23::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaVideo23");
+ s.store_bytes_field("thumb", thumb_);
+ s.store_field("thumb_w", thumb_w_);
+ s.store_field("thumb_h", thumb_h_);
+ s.store_field("duration", duration_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_field("size", size_);
+ s.store_bytes_field("key", key_);
+ s.store_bytes_field("iv", iv_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaAudio::decryptedMessageMediaAudio(int32 duration_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_)
+ : duration_(duration_)
+ , mime_type_(mime_type_)
+ , size_(size_)
+ , key_(std::move(key_))
+ , iv_(std::move(iv_))
+{}
+
+const std::int32_t decryptedMessageMediaAudio::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaAudio::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaAudio>(p);
+}
+
+decryptedMessageMediaAudio::decryptedMessageMediaAudio(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : duration_(TlFetchInt::parse(p))
+ , mime_type_(TlFetchString<string>::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , key_(TlFetchBytes<bytes>::parse(p))
+ , iv_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaAudio::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaAudio::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+}
+
+void decryptedMessageMediaAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaAudio");
+ s.store_field("duration", duration_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("size", size_);
+ s.store_bytes_field("key", key_);
+ s.store_bytes_field("iv", iv_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaExternalDocument::decryptedMessageMediaExternalDocument(int64 id_, int64 access_hash_, int32 date_, string const &mime_type_, int32 size_, object_ptr<PhotoSize> &&thumb_, int32 dc_id_, array<object_ptr<DocumentAttribute>> &&attributes_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+ , date_(date_)
+ , mime_type_(mime_type_)
+ , size_(size_)
+ , thumb_(std::move(thumb_))
+ , dc_id_(dc_id_)
+ , attributes_(std::move(attributes_))
+{}
+
+const std::int32_t decryptedMessageMediaExternalDocument::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaExternalDocument::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaExternalDocument>(p);
+}
+
+decryptedMessageMediaExternalDocument::decryptedMessageMediaExternalDocument(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , mime_type_(TlFetchString<string>::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , thumb_(TlFetchObject<PhotoSize>::parse(p))
+ , dc_id_(TlFetchInt::parse(p))
+ , attributes_(TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaExternalDocument::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreBinary::store(date_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s);
+ TlStoreBinary::store(dc_id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s);
+}
+
+void decryptedMessageMediaExternalDocument::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreBinary::store(date_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s);
+ TlStoreBinary::store(dc_id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s);
+}
+
+void decryptedMessageMediaExternalDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaExternalDocument");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("date", date_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("size", size_);
+ s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get()));
+ s.store_field("dc_id", dc_id_);
+ { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaPhoto::decryptedMessageMediaPhoto(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_, string const &caption_)
+ : thumb_(std::move(thumb_))
+ , thumb_w_(thumb_w_)
+ , thumb_h_(thumb_h_)
+ , w_(w_)
+ , h_(h_)
+ , size_(size_)
+ , key_(std::move(key_))
+ , iv_(std::move(iv_))
+ , caption_(caption_)
+{}
+
+const std::int32_t decryptedMessageMediaPhoto::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaPhoto::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaPhoto>(p);
+}
+
+decryptedMessageMediaPhoto::decryptedMessageMediaPhoto(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : thumb_(TlFetchBytes<bytes>::parse(p))
+ , thumb_w_(TlFetchInt::parse(p))
+ , thumb_h_(TlFetchInt::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , key_(TlFetchBytes<bytes>::parse(p))
+ , iv_(TlFetchBytes<bytes>::parse(p))
+ , caption_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaPhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+ TlStoreString::store(caption_, s);
+}
+
+void decryptedMessageMediaPhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+ TlStoreString::store(caption_, s);
+}
+
+void decryptedMessageMediaPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaPhoto");
+ s.store_bytes_field("thumb", thumb_);
+ s.store_field("thumb_w", thumb_w_);
+ s.store_field("thumb_h", thumb_h_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_field("size", size_);
+ s.store_bytes_field("key", key_);
+ s.store_bytes_field("iv", iv_);
+ s.store_field("caption", caption_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaVideo::decryptedMessageMediaVideo(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, string const &mime_type_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_, string const &caption_)
+ : thumb_(std::move(thumb_))
+ , thumb_w_(thumb_w_)
+ , thumb_h_(thumb_h_)
+ , duration_(duration_)
+ , mime_type_(mime_type_)
+ , w_(w_)
+ , h_(h_)
+ , size_(size_)
+ , key_(std::move(key_))
+ , iv_(std::move(iv_))
+ , caption_(caption_)
+{}
+
+const std::int32_t decryptedMessageMediaVideo::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaVideo::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaVideo>(p);
+}
+
+decryptedMessageMediaVideo::decryptedMessageMediaVideo(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : thumb_(TlFetchBytes<bytes>::parse(p))
+ , thumb_w_(TlFetchInt::parse(p))
+ , thumb_h_(TlFetchInt::parse(p))
+ , duration_(TlFetchInt::parse(p))
+ , mime_type_(TlFetchString<string>::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , key_(TlFetchBytes<bytes>::parse(p))
+ , iv_(TlFetchBytes<bytes>::parse(p))
+ , caption_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaVideo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+ TlStoreString::store(caption_, s);
+}
+
+void decryptedMessageMediaVideo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+ TlStoreString::store(caption_, s);
+}
+
+void decryptedMessageMediaVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaVideo");
+ s.store_bytes_field("thumb", thumb_);
+ s.store_field("thumb_w", thumb_w_);
+ s.store_field("thumb_h", thumb_h_);
+ s.store_field("duration", duration_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_field("size", size_);
+ s.store_bytes_field("key", key_);
+ s.store_bytes_field("iv", iv_);
+ s.store_field("caption", caption_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaDocument46::decryptedMessageMediaDocument46(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_, array<object_ptr<DocumentAttribute>> &&attributes_, string const &caption_)
+ : thumb_(std::move(thumb_))
+ , thumb_w_(thumb_w_)
+ , thumb_h_(thumb_h_)
+ , mime_type_(mime_type_)
+ , size_(size_)
+ , key_(std::move(key_))
+ , iv_(std::move(iv_))
+ , attributes_(std::move(attributes_))
+ , caption_(caption_)
+{}
+
+const std::int32_t decryptedMessageMediaDocument46::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaDocument46::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaDocument46>(p);
+}
+
+decryptedMessageMediaDocument46::decryptedMessageMediaDocument46(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : thumb_(TlFetchBytes<bytes>::parse(p))
+ , thumb_w_(TlFetchInt::parse(p))
+ , thumb_h_(TlFetchInt::parse(p))
+ , mime_type_(TlFetchString<string>::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , key_(TlFetchBytes<bytes>::parse(p))
+ , iv_(TlFetchBytes<bytes>::parse(p))
+ , attributes_(TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p))
+ , caption_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaDocument46::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s);
+ TlStoreString::store(caption_, s);
+}
+
+void decryptedMessageMediaDocument46::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s);
+ TlStoreString::store(caption_, s);
+}
+
+void decryptedMessageMediaDocument46::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaDocument46");
+ s.store_bytes_field("thumb", thumb_);
+ s.store_field("thumb_w", thumb_w_);
+ s.store_field("thumb_h", thumb_h_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("size", size_);
+ s.store_bytes_field("key", key_);
+ s.store_bytes_field("iv", iv_);
+ { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("caption", caption_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaVenue::decryptedMessageMediaVenue(double lat_, double long_, string const &title_, string const &address_, string const &provider_, string const &venue_id_)
+ : lat_(lat_)
+ , long_(long_)
+ , title_(title_)
+ , address_(address_)
+ , provider_(provider_)
+ , venue_id_(venue_id_)
+{}
+
+const std::int32_t decryptedMessageMediaVenue::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaVenue::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaVenue>(p);
+}
+
+decryptedMessageMediaVenue::decryptedMessageMediaVenue(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : lat_(TlFetchDouble::parse(p))
+ , long_(TlFetchDouble::parse(p))
+ , title_(TlFetchString<string>::parse(p))
+ , address_(TlFetchString<string>::parse(p))
+ , provider_(TlFetchString<string>::parse(p))
+ , venue_id_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaVenue::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(lat_, s);
+ TlStoreBinary::store(long_, s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(address_, s);
+ TlStoreString::store(provider_, s);
+ TlStoreString::store(venue_id_, s);
+}
+
+void decryptedMessageMediaVenue::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(lat_, s);
+ TlStoreBinary::store(long_, s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(address_, s);
+ TlStoreString::store(provider_, s);
+ TlStoreString::store(venue_id_, s);
+}
+
+void decryptedMessageMediaVenue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaVenue");
+ s.store_field("lat", lat_);
+ s.store_field("long", long_);
+ s.store_field("title", title_);
+ s.store_field("address", address_);
+ s.store_field("provider", provider_);
+ s.store_field("venue_id", venue_id_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaWebPage::decryptedMessageMediaWebPage(string const &url_)
+ : url_(url_)
+{}
+
+const std::int32_t decryptedMessageMediaWebPage::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaWebPage::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaWebPage>(p);
+}
+
+decryptedMessageMediaWebPage::decryptedMessageMediaWebPage(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaWebPage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(url_, s);
+}
+
+void decryptedMessageMediaWebPage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(url_, s);
+}
+
+void decryptedMessageMediaWebPage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaWebPage");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+decryptedMessageMediaDocument::decryptedMessageMediaDocument(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &mime_type_, int64 size_, bytes &&key_, bytes &&iv_, array<object_ptr<DocumentAttribute>> &&attributes_, string const &caption_)
+ : thumb_(std::move(thumb_))
+ , thumb_w_(thumb_w_)
+ , thumb_h_(thumb_h_)
+ , mime_type_(mime_type_)
+ , size_(size_)
+ , key_(std::move(key_))
+ , iv_(std::move(iv_))
+ , attributes_(std::move(attributes_))
+ , caption_(caption_)
+{}
+
+const std::int32_t decryptedMessageMediaDocument::ID;
+
+object_ptr<DecryptedMessageMedia> decryptedMessageMediaDocument::fetch(TlParser &p) {
+ return make_tl_object<decryptedMessageMediaDocument>(p);
+}
+
+decryptedMessageMediaDocument::decryptedMessageMediaDocument(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : thumb_(TlFetchBytes<bytes>::parse(p))
+ , thumb_w_(TlFetchInt::parse(p))
+ , thumb_h_(TlFetchInt::parse(p))
+ , mime_type_(TlFetchString<string>::parse(p))
+ , size_(TlFetchLong::parse(p))
+ , key_(TlFetchBytes<bytes>::parse(p))
+ , iv_(TlFetchBytes<bytes>::parse(p))
+ , attributes_(TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p))
+ , caption_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void decryptedMessageMediaDocument::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s);
+ TlStoreString::store(caption_, s);
+}
+
+void decryptedMessageMediaDocument::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(thumb_, s);
+ TlStoreBinary::store(thumb_w_, s);
+ TlStoreBinary::store(thumb_h_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(key_, s);
+ TlStoreString::store(iv_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s);
+ TlStoreString::store(caption_, s);
+}
+
+void decryptedMessageMediaDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "decryptedMessageMediaDocument");
+ s.store_bytes_field("thumb", thumb_);
+ s.store_field("thumb_w", thumb_w_);
+ s.store_field("thumb_h", thumb_h_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("size", size_);
+ s.store_bytes_field("key", key_);
+ s.store_bytes_field("iv", iv_);
+ { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("caption", caption_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<DocumentAttribute> DocumentAttribute::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case documentAttributeImageSize::ID:
+ return documentAttributeImageSize::fetch(p);
+ case documentAttributeAnimated::ID:
+ return documentAttributeAnimated::fetch(p);
+ case documentAttributeSticker23::ID:
+ return documentAttributeSticker23::fetch(p);
+ case documentAttributeVideo23::ID:
+ return documentAttributeVideo23::fetch(p);
+ case documentAttributeAudio23::ID:
+ return documentAttributeAudio23::fetch(p);
+ case documentAttributeFilename::ID:
+ return documentAttributeFilename::fetch(p);
+ case documentAttributeAudio45::ID:
+ return documentAttributeAudio45::fetch(p);
+ case documentAttributeSticker::ID:
+ return documentAttributeSticker::fetch(p);
+ case documentAttributeAudio::ID:
+ return documentAttributeAudio::fetch(p);
+ case documentAttributeVideo::ID:
+ return documentAttributeVideo::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+documentAttributeImageSize::documentAttributeImageSize(int32 w_, int32 h_)
+ : w_(w_)
+ , h_(h_)
+{}
+
+const std::int32_t documentAttributeImageSize::ID;
+
+object_ptr<DocumentAttribute> documentAttributeImageSize::fetch(TlParser &p) {
+ return make_tl_object<documentAttributeImageSize>(p);
+}
+
+documentAttributeImageSize::documentAttributeImageSize(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void documentAttributeImageSize::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+}
+
+void documentAttributeImageSize::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+}
+
+void documentAttributeImageSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeImageSize");
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t documentAttributeAnimated::ID;
+
+object_ptr<DocumentAttribute> documentAttributeAnimated::fetch(TlParser &p) {
+ return make_tl_object<documentAttributeAnimated>();
+}
+
+void documentAttributeAnimated::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void documentAttributeAnimated::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void documentAttributeAnimated::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeAnimated");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t documentAttributeSticker23::ID;
+
+object_ptr<DocumentAttribute> documentAttributeSticker23::fetch(TlParser &p) {
+ return make_tl_object<documentAttributeSticker23>();
+}
+
+void documentAttributeSticker23::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void documentAttributeSticker23::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void documentAttributeSticker23::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeSticker23");
+ s.store_class_end();
+ }
+}
+
+documentAttributeVideo23::documentAttributeVideo23(int32 duration_, int32 w_, int32 h_)
+ : duration_(duration_)
+ , w_(w_)
+ , h_(h_)
+{}
+
+const std::int32_t documentAttributeVideo23::ID;
+
+object_ptr<DocumentAttribute> documentAttributeVideo23::fetch(TlParser &p) {
+ return make_tl_object<documentAttributeVideo23>(p);
+}
+
+documentAttributeVideo23::documentAttributeVideo23(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : duration_(TlFetchInt::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void documentAttributeVideo23::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+}
+
+void documentAttributeVideo23::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+}
+
+void documentAttributeVideo23::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeVideo23");
+ s.store_field("duration", duration_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_class_end();
+ }
+}
+
+documentAttributeAudio23::documentAttributeAudio23(int32 duration_)
+ : duration_(duration_)
+{}
+
+const std::int32_t documentAttributeAudio23::ID;
+
+object_ptr<DocumentAttribute> documentAttributeAudio23::fetch(TlParser &p) {
+ return make_tl_object<documentAttributeAudio23>(p);
+}
+
+documentAttributeAudio23::documentAttributeAudio23(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : duration_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void documentAttributeAudio23::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(duration_, s);
+}
+
+void documentAttributeAudio23::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(duration_, s);
+}
+
+void documentAttributeAudio23::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeAudio23");
+ s.store_field("duration", duration_);
+ s.store_class_end();
+ }
+}
+
+documentAttributeFilename::documentAttributeFilename(string const &file_name_)
+ : file_name_(file_name_)
+{}
+
+const std::int32_t documentAttributeFilename::ID;
+
+object_ptr<DocumentAttribute> documentAttributeFilename::fetch(TlParser &p) {
+ return make_tl_object<documentAttributeFilename>(p);
+}
+
+documentAttributeFilename::documentAttributeFilename(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : file_name_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void documentAttributeFilename::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(file_name_, s);
+}
+
+void documentAttributeFilename::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(file_name_, s);
+}
+
+void documentAttributeFilename::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeFilename");
+ s.store_field("file_name", file_name_);
+ s.store_class_end();
+ }
+}
+
+documentAttributeAudio45::documentAttributeAudio45(int32 duration_, string const &title_, string const &performer_)
+ : duration_(duration_)
+ , title_(title_)
+ , performer_(performer_)
+{}
+
+const std::int32_t documentAttributeAudio45::ID;
+
+object_ptr<DocumentAttribute> documentAttributeAudio45::fetch(TlParser &p) {
+ return make_tl_object<documentAttributeAudio45>(p);
+}
+
+documentAttributeAudio45::documentAttributeAudio45(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : duration_(TlFetchInt::parse(p))
+ , title_(TlFetchString<string>::parse(p))
+ , performer_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void documentAttributeAudio45::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(performer_, s);
+}
+
+void documentAttributeAudio45::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(performer_, s);
+}
+
+void documentAttributeAudio45::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeAudio45");
+ s.store_field("duration", duration_);
+ s.store_field("title", title_);
+ s.store_field("performer", performer_);
+ s.store_class_end();
+ }
+}
+
+documentAttributeSticker::documentAttributeSticker(string const &alt_, object_ptr<InputStickerSet> &&stickerset_)
+ : alt_(alt_)
+ , stickerset_(std::move(stickerset_))
+{}
+
+const std::int32_t documentAttributeSticker::ID;
+
+object_ptr<DocumentAttribute> documentAttributeSticker::fetch(TlParser &p) {
+ return make_tl_object<documentAttributeSticker>(p);
+}
+
+documentAttributeSticker::documentAttributeSticker(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : alt_(TlFetchString<string>::parse(p))
+ , stickerset_(TlFetchObject<InputStickerSet>::parse(p))
+#undef FAIL
+{}
+
+void documentAttributeSticker::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(alt_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+}
+
+void documentAttributeSticker::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(alt_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+}
+
+void documentAttributeSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeSticker");
+ s.store_field("alt", alt_);
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_class_end();
+ }
+}
+
+documentAttributeAudio::documentAttributeAudio()
+ : flags_()
+ , voice_()
+ , duration_()
+ , title_()
+ , performer_()
+ , waveform_()
+{}
+
+documentAttributeAudio::documentAttributeAudio(int32 flags_, bool voice_, int32 duration_, string const &title_, string const &performer_, bytes &&waveform_)
+ : flags_(flags_)
+ , voice_(voice_)
+ , duration_(duration_)
+ , title_(title_)
+ , performer_(performer_)
+ , waveform_(std::move(waveform_))
+{}
+
+const std::int32_t documentAttributeAudio::ID;
+
+object_ptr<DocumentAttribute> documentAttributeAudio::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<documentAttributeAudio> res = make_tl_object<documentAttributeAudio>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1024) { res->voice_ = TlFetchTrue::parse(p); }
+ res->duration_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->title_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2) { res->performer_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->waveform_ = TlFetchBytes<bytes>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void documentAttributeAudio::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(duration_, s);
+ if (var0 & 1) { TlStoreString::store(title_, s); }
+ if (var0 & 2) { TlStoreString::store(performer_, s); }
+ if (var0 & 4) { TlStoreString::store(waveform_, s); }
+}
+
+void documentAttributeAudio::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(duration_, s);
+ if (var0 & 1) { TlStoreString::store(title_, s); }
+ if (var0 & 2) { TlStoreString::store(performer_, s); }
+ if (var0 & 4) { TlStoreString::store(waveform_, s); }
+}
+
+void documentAttributeAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeAudio");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("duration", duration_);
+ if (var0 & 1) { s.store_field("title", title_); }
+ if (var0 & 2) { s.store_field("performer", performer_); }
+ if (var0 & 4) { s.store_bytes_field("waveform", waveform_); }
+ s.store_class_end();
+ }
+}
+
+documentAttributeVideo::documentAttributeVideo()
+ : flags_()
+ , round_message_()
+ , duration_()
+ , w_()
+ , h_()
+{}
+
+documentAttributeVideo::documentAttributeVideo(int32 flags_, bool round_message_, int32 duration_, int32 w_, int32 h_)
+ : flags_(flags_)
+ , round_message_(round_message_)
+ , duration_(duration_)
+ , w_(w_)
+ , h_(h_)
+{}
+
+const std::int32_t documentAttributeVideo::ID;
+
+object_ptr<DocumentAttribute> documentAttributeVideo::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<documentAttributeVideo> res = make_tl_object<documentAttributeVideo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->round_message_ = TlFetchTrue::parse(p); }
+ res->duration_ = TlFetchInt::parse(p);
+ res->w_ = TlFetchInt::parse(p);
+ res->h_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void documentAttributeVideo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+}
+
+void documentAttributeVideo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+}
+
+void documentAttributeVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeVideo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("duration", duration_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<FileLocation> FileLocation::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case fileLocationUnavailable::ID:
+ return fileLocationUnavailable::fetch(p);
+ case fileLocation::ID:
+ return fileLocation::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+fileLocationUnavailable::fileLocationUnavailable(int64 volume_id_, int32 local_id_, int64 secret_)
+ : volume_id_(volume_id_)
+ , local_id_(local_id_)
+ , secret_(secret_)
+{}
+
+const std::int32_t fileLocationUnavailable::ID;
+
+object_ptr<FileLocation> fileLocationUnavailable::fetch(TlParser &p) {
+ return make_tl_object<fileLocationUnavailable>(p);
+}
+
+fileLocationUnavailable::fileLocationUnavailable(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : volume_id_(TlFetchLong::parse(p))
+ , local_id_(TlFetchInt::parse(p))
+ , secret_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void fileLocationUnavailable::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+ TlStoreBinary::store(secret_, s);
+}
+
+void fileLocationUnavailable::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+ TlStoreBinary::store(secret_, s);
+}
+
+void fileLocationUnavailable::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileLocationUnavailable");
+ s.store_field("volume_id", volume_id_);
+ s.store_field("local_id", local_id_);
+ s.store_field("secret", secret_);
+ s.store_class_end();
+ }
+}
+
+fileLocation::fileLocation(int32 dc_id_, int64 volume_id_, int32 local_id_, int64 secret_)
+ : dc_id_(dc_id_)
+ , volume_id_(volume_id_)
+ , local_id_(local_id_)
+ , secret_(secret_)
+{}
+
+const std::int32_t fileLocation::ID;
+
+object_ptr<FileLocation> fileLocation::fetch(TlParser &p) {
+ return make_tl_object<fileLocation>(p);
+}
+
+fileLocation::fileLocation(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : dc_id_(TlFetchInt::parse(p))
+ , volume_id_(TlFetchLong::parse(p))
+ , local_id_(TlFetchInt::parse(p))
+ , secret_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void fileLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(dc_id_, s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+ TlStoreBinary::store(secret_, s);
+}
+
+void fileLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(dc_id_, s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+ TlStoreBinary::store(secret_, s);
+}
+
+void fileLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileLocation");
+ s.store_field("dc_id", dc_id_);
+ s.store_field("volume_id", volume_id_);
+ s.store_field("local_id", local_id_);
+ s.store_field("secret", secret_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<InputStickerSet> InputStickerSet::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case inputStickerSetShortName::ID:
+ return inputStickerSetShortName::fetch(p);
+ case inputStickerSetEmpty::ID:
+ return inputStickerSetEmpty::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+inputStickerSetShortName::inputStickerSetShortName(string const &short_name_)
+ : short_name_(short_name_)
+{}
+
+const std::int32_t inputStickerSetShortName::ID;
+
+object_ptr<InputStickerSet> inputStickerSetShortName::fetch(TlParser &p) {
+ return make_tl_object<inputStickerSetShortName>(p);
+}
+
+inputStickerSetShortName::inputStickerSetShortName(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : short_name_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void inputStickerSetShortName::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(short_name_, s);
+}
+
+void inputStickerSetShortName::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(short_name_, s);
+}
+
+void inputStickerSetShortName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetShortName");
+ s.store_field("short_name", short_name_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputStickerSetEmpty::ID;
+
+object_ptr<InputStickerSet> inputStickerSetEmpty::fetch(TlParser &p) {
+ return make_tl_object<inputStickerSetEmpty>();
+}
+
+void inputStickerSetEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetEmpty");
+ s.store_class_end();
+ }
+}
+
+object_ptr<MessageEntity> MessageEntity::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messageEntityUnknown::ID:
+ return messageEntityUnknown::fetch(p);
+ case messageEntityMention::ID:
+ return messageEntityMention::fetch(p);
+ case messageEntityHashtag::ID:
+ return messageEntityHashtag::fetch(p);
+ case messageEntityBotCommand::ID:
+ return messageEntityBotCommand::fetch(p);
+ case messageEntityUrl::ID:
+ return messageEntityUrl::fetch(p);
+ case messageEntityEmail::ID:
+ return messageEntityEmail::fetch(p);
+ case messageEntityBold::ID:
+ return messageEntityBold::fetch(p);
+ case messageEntityItalic::ID:
+ return messageEntityItalic::fetch(p);
+ case messageEntityCode::ID:
+ return messageEntityCode::fetch(p);
+ case messageEntityPre::ID:
+ return messageEntityPre::fetch(p);
+ case messageEntityTextUrl::ID:
+ return messageEntityTextUrl::fetch(p);
+ case messageEntityMentionName::ID:
+ return messageEntityMentionName::fetch(p);
+ case messageEntityPhone::ID:
+ return messageEntityPhone::fetch(p);
+ case messageEntityCashtag::ID:
+ return messageEntityCashtag::fetch(p);
+ case messageEntityBankCard::ID:
+ return messageEntityBankCard::fetch(p);
+ case messageEntityUnderline::ID:
+ return messageEntityUnderline::fetch(p);
+ case messageEntityStrike::ID:
+ return messageEntityStrike::fetch(p);
+ case messageEntityBlockquote::ID:
+ return messageEntityBlockquote::fetch(p);
+ case messageEntitySpoiler::ID:
+ return messageEntitySpoiler::fetch(p);
+ case messageEntityCustomEmoji::ID:
+ return messageEntityCustomEmoji::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+messageEntityUnknown::messageEntityUnknown(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityUnknown::ID;
+
+object_ptr<MessageEntity> messageEntityUnknown::fetch(TlParser &p) {
+ return make_tl_object<messageEntityUnknown>(p);
+}
+
+messageEntityUnknown::messageEntityUnknown(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityUnknown::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUnknown::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUnknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityUnknown");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityMention::messageEntityMention(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityMention::ID;
+
+object_ptr<MessageEntity> messageEntityMention::fetch(TlParser &p) {
+ return make_tl_object<messageEntityMention>(p);
+}
+
+messageEntityMention::messageEntityMention(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityMention::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityMention::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityMention::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityMention");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityHashtag::messageEntityHashtag(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityHashtag::ID;
+
+object_ptr<MessageEntity> messageEntityHashtag::fetch(TlParser &p) {
+ return make_tl_object<messageEntityHashtag>(p);
+}
+
+messageEntityHashtag::messageEntityHashtag(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityHashtag::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityHashtag::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityHashtag::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityHashtag");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityBotCommand::messageEntityBotCommand(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityBotCommand::ID;
+
+object_ptr<MessageEntity> messageEntityBotCommand::fetch(TlParser &p) {
+ return make_tl_object<messageEntityBotCommand>(p);
+}
+
+messageEntityBotCommand::messageEntityBotCommand(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityBotCommand::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBotCommand::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBotCommand::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityBotCommand");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityUrl::messageEntityUrl(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityUrl::ID;
+
+object_ptr<MessageEntity> messageEntityUrl::fetch(TlParser &p) {
+ return make_tl_object<messageEntityUrl>(p);
+}
+
+messageEntityUrl::messageEntityUrl(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityUrl::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUrl::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityUrl");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityEmail::messageEntityEmail(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityEmail::ID;
+
+object_ptr<MessageEntity> messageEntityEmail::fetch(TlParser &p) {
+ return make_tl_object<messageEntityEmail>(p);
+}
+
+messageEntityEmail::messageEntityEmail(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityEmail::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityEmail::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityEmail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityEmail");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityBold::messageEntityBold(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityBold::ID;
+
+object_ptr<MessageEntity> messageEntityBold::fetch(TlParser &p) {
+ return make_tl_object<messageEntityBold>(p);
+}
+
+messageEntityBold::messageEntityBold(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityBold::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBold::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBold::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityBold");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityItalic::messageEntityItalic(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityItalic::ID;
+
+object_ptr<MessageEntity> messageEntityItalic::fetch(TlParser &p) {
+ return make_tl_object<messageEntityItalic>(p);
+}
+
+messageEntityItalic::messageEntityItalic(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityItalic::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityItalic::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityItalic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityItalic");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityCode::messageEntityCode(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityCode::ID;
+
+object_ptr<MessageEntity> messageEntityCode::fetch(TlParser &p) {
+ return make_tl_object<messageEntityCode>(p);
+}
+
+messageEntityCode::messageEntityCode(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityCode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityCode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityCode");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityPre::messageEntityPre(int32 offset_, int32 length_, string const &language_)
+ : offset_(offset_)
+ , length_(length_)
+ , language_(language_)
+{}
+
+const std::int32_t messageEntityPre::ID;
+
+object_ptr<MessageEntity> messageEntityPre::fetch(TlParser &p) {
+ return make_tl_object<messageEntityPre>(p);
+}
+
+messageEntityPre::messageEntityPre(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+ , language_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageEntityPre::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreString::store(language_, s);
+}
+
+void messageEntityPre::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreString::store(language_, s);
+}
+
+void messageEntityPre::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityPre");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_field("language", language_);
+ s.store_class_end();
+ }
+}
+
+messageEntityTextUrl::messageEntityTextUrl(int32 offset_, int32 length_, string const &url_)
+ : offset_(offset_)
+ , length_(length_)
+ , url_(url_)
+{}
+
+const std::int32_t messageEntityTextUrl::ID;
+
+object_ptr<MessageEntity> messageEntityTextUrl::fetch(TlParser &p) {
+ return make_tl_object<messageEntityTextUrl>(p);
+}
+
+messageEntityTextUrl::messageEntityTextUrl(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+ , url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageEntityTextUrl::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreString::store(url_, s);
+}
+
+void messageEntityTextUrl::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreString::store(url_, s);
+}
+
+void messageEntityTextUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityTextUrl");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+messageEntityMentionName::messageEntityMentionName(int32 offset_, int32 length_, int32 user_id_)
+ : offset_(offset_)
+ , length_(length_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t messageEntityMentionName::ID;
+
+object_ptr<MessageEntity> messageEntityMentionName::fetch(TlParser &p) {
+ return make_tl_object<messageEntityMentionName>(p);
+}
+
+messageEntityMentionName::messageEntityMentionName(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+ , user_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityMentionName::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void messageEntityMentionName::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void messageEntityMentionName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityMentionName");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+messageEntityPhone::messageEntityPhone(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityPhone::ID;
+
+object_ptr<MessageEntity> messageEntityPhone::fetch(TlParser &p) {
+ return make_tl_object<messageEntityPhone>(p);
+}
+
+messageEntityPhone::messageEntityPhone(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityPhone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityPhone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityPhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityPhone");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityCashtag::messageEntityCashtag(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityCashtag::ID;
+
+object_ptr<MessageEntity> messageEntityCashtag::fetch(TlParser &p) {
+ return make_tl_object<messageEntityCashtag>(p);
+}
+
+messageEntityCashtag::messageEntityCashtag(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityCashtag::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityCashtag::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityCashtag::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityCashtag");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityBankCard::messageEntityBankCard(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityBankCard::ID;
+
+object_ptr<MessageEntity> messageEntityBankCard::fetch(TlParser &p) {
+ return make_tl_object<messageEntityBankCard>(p);
+}
+
+messageEntityBankCard::messageEntityBankCard(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityBankCard::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBankCard::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBankCard::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityBankCard");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityUnderline::messageEntityUnderline(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityUnderline::ID;
+
+object_ptr<MessageEntity> messageEntityUnderline::fetch(TlParser &p) {
+ return make_tl_object<messageEntityUnderline>(p);
+}
+
+messageEntityUnderline::messageEntityUnderline(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityUnderline::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUnderline::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUnderline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityUnderline");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityStrike::messageEntityStrike(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityStrike::ID;
+
+object_ptr<MessageEntity> messageEntityStrike::fetch(TlParser &p) {
+ return make_tl_object<messageEntityStrike>(p);
+}
+
+messageEntityStrike::messageEntityStrike(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityStrike::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityStrike::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityStrike::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityStrike");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityBlockquote::messageEntityBlockquote(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityBlockquote::ID;
+
+object_ptr<MessageEntity> messageEntityBlockquote::fetch(TlParser &p) {
+ return make_tl_object<messageEntityBlockquote>(p);
+}
+
+messageEntityBlockquote::messageEntityBlockquote(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityBlockquote::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBlockquote::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBlockquote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityBlockquote");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntitySpoiler::messageEntitySpoiler(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntitySpoiler::ID;
+
+object_ptr<MessageEntity> messageEntitySpoiler::fetch(TlParser &p) {
+ return make_tl_object<messageEntitySpoiler>(p);
+}
+
+messageEntitySpoiler::messageEntitySpoiler(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntitySpoiler::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntitySpoiler::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntitySpoiler::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntitySpoiler");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityCustomEmoji::messageEntityCustomEmoji(int32 offset_, int32 length_, int64 document_id_)
+ : offset_(offset_)
+ , length_(length_)
+ , document_id_(document_id_)
+{}
+
+const std::int32_t messageEntityCustomEmoji::ID;
+
+object_ptr<MessageEntity> messageEntityCustomEmoji::fetch(TlParser &p) {
+ return make_tl_object<messageEntityCustomEmoji>(p);
+}
+
+messageEntityCustomEmoji::messageEntityCustomEmoji(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+ , document_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void messageEntityCustomEmoji::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreBinary::store(document_id_, s);
+}
+
+void messageEntityCustomEmoji::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreBinary::store(document_id_, s);
+}
+
+void messageEntityCustomEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityCustomEmoji");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_field("document_id", document_id_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<PhotoSize> PhotoSize::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case photoSizeEmpty::ID:
+ return photoSizeEmpty::fetch(p);
+ case photoSize::ID:
+ return photoSize::fetch(p);
+ case photoCachedSize::ID:
+ return photoCachedSize::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+photoSizeEmpty::photoSizeEmpty(string const &type_)
+ : type_(type_)
+{}
+
+const std::int32_t photoSizeEmpty::ID;
+
+object_ptr<PhotoSize> photoSizeEmpty::fetch(TlParser &p) {
+ return make_tl_object<photoSizeEmpty>(p);
+}
+
+photoSizeEmpty::photoSizeEmpty(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void photoSizeEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(type_, s);
+}
+
+void photoSizeEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(type_, s);
+}
+
+void photoSizeEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoSizeEmpty");
+ s.store_field("type", type_);
+ s.store_class_end();
+ }
+}
+
+photoSize::photoSize(string const &type_, object_ptr<FileLocation> &&location_, int32 w_, int32 h_, int32 size_)
+ : type_(type_)
+ , location_(std::move(location_))
+ , w_(w_)
+ , h_(h_)
+ , size_(size_)
+{}
+
+const std::int32_t photoSize::ID;
+
+object_ptr<PhotoSize> photoSize::fetch(TlParser &p) {
+ return make_tl_object<photoSize>(p);
+}
+
+photoSize::photoSize(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchString<string>::parse(p))
+ , location_(TlFetchObject<FileLocation>::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , size_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void photoSize::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(type_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(location_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+}
+
+void photoSize::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(type_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(location_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(size_, s);
+}
+
+void photoSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoSize");
+ s.store_field("type", type_);
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_field("size", size_);
+ s.store_class_end();
+ }
+}
+
+photoCachedSize::photoCachedSize(string const &type_, object_ptr<FileLocation> &&location_, int32 w_, int32 h_, bytes &&bytes_)
+ : type_(type_)
+ , location_(std::move(location_))
+ , w_(w_)
+ , h_(h_)
+ , bytes_(std::move(bytes_))
+{}
+
+const std::int32_t photoCachedSize::ID;
+
+object_ptr<PhotoSize> photoCachedSize::fetch(TlParser &p) {
+ return make_tl_object<photoCachedSize>(p);
+}
+
+photoCachedSize::photoCachedSize(TlParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchString<string>::parse(p))
+ , location_(TlFetchObject<FileLocation>::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , bytes_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void photoCachedSize::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(type_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(location_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreString::store(bytes_, s);
+}
+
+void photoCachedSize::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(type_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(location_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreString::store(bytes_, s);
+}
+
+void photoCachedSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoCachedSize");
+ s.store_field("type", type_);
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<SendMessageAction> SendMessageAction::fetch(TlParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case sendMessageTypingAction::ID:
+ return sendMessageTypingAction::fetch(p);
+ case sendMessageCancelAction::ID:
+ return sendMessageCancelAction::fetch(p);
+ case sendMessageRecordVideoAction::ID:
+ return sendMessageRecordVideoAction::fetch(p);
+ case sendMessageUploadVideoAction::ID:
+ return sendMessageUploadVideoAction::fetch(p);
+ case sendMessageRecordAudioAction::ID:
+ return sendMessageRecordAudioAction::fetch(p);
+ case sendMessageUploadAudioAction::ID:
+ return sendMessageUploadAudioAction::fetch(p);
+ case sendMessageUploadPhotoAction::ID:
+ return sendMessageUploadPhotoAction::fetch(p);
+ case sendMessageUploadDocumentAction::ID:
+ return sendMessageUploadDocumentAction::fetch(p);
+ case sendMessageGeoLocationAction::ID:
+ return sendMessageGeoLocationAction::fetch(p);
+ case sendMessageChooseContactAction::ID:
+ return sendMessageChooseContactAction::fetch(p);
+ case sendMessageRecordRoundAction::ID:
+ return sendMessageRecordRoundAction::fetch(p);
+ case sendMessageUploadRoundAction::ID:
+ return sendMessageUploadRoundAction::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t sendMessageTypingAction::ID;
+
+object_ptr<SendMessageAction> sendMessageTypingAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageTypingAction>();
+}
+
+void sendMessageTypingAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageTypingAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageTypingAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageTypingAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageCancelAction::ID;
+
+object_ptr<SendMessageAction> sendMessageCancelAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageCancelAction>();
+}
+
+void sendMessageCancelAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageCancelAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageCancelAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageCancelAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageRecordVideoAction::ID;
+
+object_ptr<SendMessageAction> sendMessageRecordVideoAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageRecordVideoAction>();
+}
+
+void sendMessageRecordVideoAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordVideoAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordVideoAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageRecordVideoAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageUploadVideoAction::ID;
+
+object_ptr<SendMessageAction> sendMessageUploadVideoAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageUploadVideoAction>();
+}
+
+void sendMessageUploadVideoAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageUploadVideoAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageUploadVideoAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageUploadVideoAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageRecordAudioAction::ID;
+
+object_ptr<SendMessageAction> sendMessageRecordAudioAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageRecordAudioAction>();
+}
+
+void sendMessageRecordAudioAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordAudioAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordAudioAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageRecordAudioAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageUploadAudioAction::ID;
+
+object_ptr<SendMessageAction> sendMessageUploadAudioAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageUploadAudioAction>();
+}
+
+void sendMessageUploadAudioAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageUploadAudioAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageUploadAudioAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageUploadAudioAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageUploadPhotoAction::ID;
+
+object_ptr<SendMessageAction> sendMessageUploadPhotoAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageUploadPhotoAction>();
+}
+
+void sendMessageUploadPhotoAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageUploadPhotoAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageUploadPhotoAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageUploadPhotoAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageUploadDocumentAction::ID;
+
+object_ptr<SendMessageAction> sendMessageUploadDocumentAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageUploadDocumentAction>();
+}
+
+void sendMessageUploadDocumentAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageUploadDocumentAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageUploadDocumentAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageUploadDocumentAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageGeoLocationAction::ID;
+
+object_ptr<SendMessageAction> sendMessageGeoLocationAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageGeoLocationAction>();
+}
+
+void sendMessageGeoLocationAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageGeoLocationAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageGeoLocationAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageGeoLocationAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageChooseContactAction::ID;
+
+object_ptr<SendMessageAction> sendMessageChooseContactAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageChooseContactAction>();
+}
+
+void sendMessageChooseContactAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageChooseContactAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageChooseContactAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageChooseContactAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageRecordRoundAction::ID;
+
+object_ptr<SendMessageAction> sendMessageRecordRoundAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageRecordRoundAction>();
+}
+
+void sendMessageRecordRoundAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordRoundAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordRoundAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageRecordRoundAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageUploadRoundAction::ID;
+
+object_ptr<SendMessageAction> sendMessageUploadRoundAction::fetch(TlParser &p) {
+ return make_tl_object<sendMessageUploadRoundAction>();
+}
+
+void sendMessageUploadRoundAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageUploadRoundAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageUploadRoundAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageUploadRoundAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t test_dummyFunction::ID;
+
+object_ptr<test_dummyFunction> test_dummyFunction::fetch(TlParser &p) {
+ return make_tl_object<test_dummyFunction>();
+}
+
+void test_dummyFunction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-936020215);
+}
+
+void test_dummyFunction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-936020215);
+}
+
+void test_dummyFunction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "test.dummyFunction");
+ s.store_class_end();
+ }
+}
+
+test_dummyFunction::ReturnType test_dummyFunction::fetch_result(TlParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+} // namespace secret_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.h b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.h
new file mode 100644
index 0000000000..e6da9e2ef2
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.h
@@ -0,0 +1,2138 @@
+#pragma once
+
+#include "td/tl/TlObject.h"
+
+#include "td/utils/buffer.h"
+
+#include <cstdint>
+#include <utility>
+#include <vector>
+
+namespace td {
+class TlStorerCalcLength;
+class TlStorerUnsafe;
+class TlStorerToString;
+class TlParser;
+
+namespace secret_api {
+
+using int32 = std::int32_t;
+using int53 = std::int64_t;
+using int64 = std::int64_t;
+
+using string = std::string;
+
+using bytes = BufferSlice;
+
+template <class Type>
+using array = std::vector<Type>;
+
+using BaseObject = ::td::TlObject;
+
+template <class Type>
+using object_ptr = ::td::tl_object_ptr<Type>;
+
+template <class Type, class... Args>
+object_ptr<Type> make_object(Args &&... args) {
+ return object_ptr<Type>(new Type(std::forward<Args>(args)...));
+}
+
+template <class ToType, class FromType>
+object_ptr<ToType> move_object_as(FromType &&from) {
+ return object_ptr<ToType>(static_cast<ToType *>(from.release()));
+}
+
+std::string to_string(const BaseObject &value);
+
+template <class T>
+std::string to_string(const object_ptr<T> &value) {
+ if (value == nullptr) {
+ return "null";
+ }
+
+ return to_string(*value);
+}
+
+template <class T>
+std::string to_string(const std::vector<object_ptr<T>> &values) {
+ std::string result = "{\n";
+ for (const auto &value : values) {
+ if (value == nullptr) {
+ result += "null\n";
+ } else {
+ result += to_string(*value);
+ }
+ }
+ result += "}\n";
+ return result;
+}
+
+class DecryptedMessage;
+
+class DecryptedMessageAction;
+
+class decryptedMessageLayer;
+
+class DecryptedMessageMedia;
+
+class DocumentAttribute;
+
+class FileLocation;
+
+class InputStickerSet;
+
+class MessageEntity;
+
+class PhotoSize;
+
+class SendMessageAction;
+
+class Object;
+
+class Object: public TlObject {
+ public:
+
+ static object_ptr<Object> fetch(TlParser &p);
+};
+
+class Function: public TlObject {
+ public:
+
+ static object_ptr<Function> fetch(TlParser &p);
+};
+
+class DecryptedMessage: public Object {
+ public:
+
+ static object_ptr<DecryptedMessage> fetch(TlParser &p);
+};
+
+class decryptedMessage8 final : public DecryptedMessage {
+ public:
+ int64 random_id_;
+ bytes random_bytes_;
+ string message_;
+ object_ptr<DecryptedMessageMedia> media_;
+
+ decryptedMessage8(int64 random_id_, bytes &&random_bytes_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_);
+
+ static const std::int32_t ID = 528568095;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessage> fetch(TlParser &p);
+
+ explicit decryptedMessage8(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageService8 final : public DecryptedMessage {
+ public:
+ int64 random_id_;
+ bytes random_bytes_;
+ object_ptr<DecryptedMessageAction> action_;
+
+ decryptedMessageService8(int64 random_id_, bytes &&random_bytes_, object_ptr<DecryptedMessageAction> &&action_);
+
+ static const std::int32_t ID = -1438109059;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessage> fetch(TlParser &p);
+
+ explicit decryptedMessageService8(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessage23 final : public DecryptedMessage {
+ public:
+ int64 random_id_;
+ int32 ttl_;
+ string message_;
+ object_ptr<DecryptedMessageMedia> media_;
+
+ decryptedMessage23(int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_);
+
+ static const std::int32_t ID = 541931640;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessage> fetch(TlParser &p);
+
+ explicit decryptedMessage23(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageService final : public DecryptedMessage {
+ public:
+ int64 random_id_;
+ object_ptr<DecryptedMessageAction> action_;
+
+ decryptedMessageService(int64 random_id_, object_ptr<DecryptedMessageAction> &&action_);
+
+ static const std::int32_t ID = 1930838368;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessage> fetch(TlParser &p);
+
+ explicit decryptedMessageService(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessage46 final : public DecryptedMessage {
+ public:
+ int32 flags_;
+ int64 random_id_;
+ int32 ttl_;
+ string message_;
+ object_ptr<DecryptedMessageMedia> media_;
+ array<object_ptr<MessageEntity>> entities_;
+ string via_bot_name_;
+ int64 reply_to_random_id_;
+ enum Flags : std::int32_t { MEDIA_MASK = 512, ENTITIES_MASK = 128, VIA_BOT_NAME_MASK = 2048, REPLY_TO_RANDOM_ID_MASK = 8 };
+
+ decryptedMessage46();
+
+ decryptedMessage46(int32 flags_, int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_, string const &via_bot_name_, int64 reply_to_random_id_);
+
+ static const std::int32_t ID = 917541342;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessage> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessage final : public DecryptedMessage {
+ public:
+ int32 flags_;
+ bool silent_;
+ int64 random_id_;
+ int32 ttl_;
+ string message_;
+ object_ptr<DecryptedMessageMedia> media_;
+ array<object_ptr<MessageEntity>> entities_;
+ string via_bot_name_;
+ int64 reply_to_random_id_;
+ int64 grouped_id_;
+ enum Flags : std::int32_t { SILENT_MASK = 32, MEDIA_MASK = 512, ENTITIES_MASK = 128, VIA_BOT_NAME_MASK = 2048, REPLY_TO_RANDOM_ID_MASK = 8, GROUPED_ID_MASK = 131072 };
+
+ decryptedMessage();
+
+ decryptedMessage(int32 flags_, bool silent_, int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_, string const &via_bot_name_, int64 reply_to_random_id_, int64 grouped_id_);
+
+ static const std::int32_t ID = -1848883596;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessage> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class DecryptedMessageAction: public Object {
+ public:
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+};
+
+class decryptedMessageActionSetMessageTTL final : public DecryptedMessageAction {
+ public:
+ int32 ttl_seconds_;
+
+ explicit decryptedMessageActionSetMessageTTL(int32 ttl_seconds_);
+
+ static const std::int32_t ID = -1586283796;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionSetMessageTTL(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionReadMessages final : public DecryptedMessageAction {
+ public:
+ array<int64> random_ids_;
+
+ explicit decryptedMessageActionReadMessages(array<int64> &&random_ids_);
+
+ static const std::int32_t ID = 206520510;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionReadMessages(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionDeleteMessages final : public DecryptedMessageAction {
+ public:
+ array<int64> random_ids_;
+
+ explicit decryptedMessageActionDeleteMessages(array<int64> &&random_ids_);
+
+ static const std::int32_t ID = 1700872964;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionDeleteMessages(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionScreenshotMessages final : public DecryptedMessageAction {
+ public:
+ array<int64> random_ids_;
+
+ explicit decryptedMessageActionScreenshotMessages(array<int64> &&random_ids_);
+
+ static const std::int32_t ID = -1967000459;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionScreenshotMessages(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionFlushHistory final : public DecryptedMessageAction {
+ public:
+
+ static const std::int32_t ID = 1729750108;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionResend final : public DecryptedMessageAction {
+ public:
+ int32 start_seq_no_;
+ int32 end_seq_no_;
+
+ decryptedMessageActionResend(int32 start_seq_no_, int32 end_seq_no_);
+
+ static const std::int32_t ID = 1360072880;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionResend(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionNotifyLayer final : public DecryptedMessageAction {
+ public:
+ int32 layer_;
+
+ explicit decryptedMessageActionNotifyLayer(int32 layer_);
+
+ static const std::int32_t ID = -217806717;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionNotifyLayer(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionTyping final : public DecryptedMessageAction {
+ public:
+ object_ptr<SendMessageAction> action_;
+
+ explicit decryptedMessageActionTyping(object_ptr<SendMessageAction> &&action_);
+
+ static const std::int32_t ID = -860719551;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionTyping(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionRequestKey final : public DecryptedMessageAction {
+ public:
+ int64 exchange_id_;
+ bytes g_a_;
+
+ decryptedMessageActionRequestKey(int64 exchange_id_, bytes &&g_a_);
+
+ static const std::int32_t ID = -204906213;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionRequestKey(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionAcceptKey final : public DecryptedMessageAction {
+ public:
+ int64 exchange_id_;
+ bytes g_b_;
+ int64 key_fingerprint_;
+
+ decryptedMessageActionAcceptKey(int64 exchange_id_, bytes &&g_b_, int64 key_fingerprint_);
+
+ static const std::int32_t ID = 1877046107;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionAcceptKey(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionAbortKey final : public DecryptedMessageAction {
+ public:
+ int64 exchange_id_;
+
+ explicit decryptedMessageActionAbortKey(int64 exchange_id_);
+
+ static const std::int32_t ID = -586814357;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionAbortKey(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionCommitKey final : public DecryptedMessageAction {
+ public:
+ int64 exchange_id_;
+ int64 key_fingerprint_;
+
+ decryptedMessageActionCommitKey(int64 exchange_id_, int64 key_fingerprint_);
+
+ static const std::int32_t ID = -332526693;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ explicit decryptedMessageActionCommitKey(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageActionNoop final : public DecryptedMessageAction {
+ public:
+
+ static const std::int32_t ID = -1473258141;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageLayer final : public Object {
+ public:
+ bytes random_bytes_;
+ int32 layer_;
+ int32 in_seq_no_;
+ int32 out_seq_no_;
+ object_ptr<DecryptedMessage> message_;
+
+ decryptedMessageLayer(bytes &&random_bytes_, int32 layer_, int32 in_seq_no_, int32 out_seq_no_, object_ptr<DecryptedMessage> &&message_);
+
+ static const std::int32_t ID = 467867529;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<decryptedMessageLayer> fetch(TlParser &p);
+
+ explicit decryptedMessageLayer(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class DecryptedMessageMedia: public Object {
+ public:
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+};
+
+class decryptedMessageMediaEmpty final : public DecryptedMessageMedia {
+ public:
+
+ static const std::int32_t ID = 144661578;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaPhoto8 final : public DecryptedMessageMedia {
+ public:
+ bytes thumb_;
+ int32 thumb_w_;
+ int32 thumb_h_;
+ int32 w_;
+ int32 h_;
+ int32 size_;
+ bytes key_;
+ bytes iv_;
+
+ decryptedMessageMediaPhoto8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_);
+
+ static const std::int32_t ID = 846826124;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaPhoto8(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaVideo8 final : public DecryptedMessageMedia {
+ public:
+ bytes thumb_;
+ int32 thumb_w_;
+ int32 thumb_h_;
+ int32 duration_;
+ int32 w_;
+ int32 h_;
+ int32 size_;
+ bytes key_;
+ bytes iv_;
+
+ decryptedMessageMediaVideo8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_);
+
+ static const std::int32_t ID = 1290694387;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaVideo8(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaGeoPoint final : public DecryptedMessageMedia {
+ public:
+ double lat_;
+ double long_;
+
+ decryptedMessageMediaGeoPoint(double lat_, double long_);
+
+ static const std::int32_t ID = 893913689;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaGeoPoint(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaContact final : public DecryptedMessageMedia {
+ public:
+ string phone_number_;
+ string first_name_;
+ string last_name_;
+ int32 user_id_;
+
+ decryptedMessageMediaContact(string const &phone_number_, string const &first_name_, string const &last_name_, int32 user_id_);
+
+ static const std::int32_t ID = 1485441687;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaContact(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaDocument8 final : public DecryptedMessageMedia {
+ public:
+ bytes thumb_;
+ int32 thumb_w_;
+ int32 thumb_h_;
+ string file_name_;
+ string mime_type_;
+ int32 size_;
+ bytes key_;
+ bytes iv_;
+
+ decryptedMessageMediaDocument8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &file_name_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_);
+
+ static const std::int32_t ID = -1332395189;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaDocument8(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaAudio8 final : public DecryptedMessageMedia {
+ public:
+ int32 duration_;
+ int32 size_;
+ bytes key_;
+ bytes iv_;
+
+ decryptedMessageMediaAudio8(int32 duration_, int32 size_, bytes &&key_, bytes &&iv_);
+
+ static const std::int32_t ID = 1619031439;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaAudio8(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaVideo23 final : public DecryptedMessageMedia {
+ public:
+ bytes thumb_;
+ int32 thumb_w_;
+ int32 thumb_h_;
+ int32 duration_;
+ string mime_type_;
+ int32 w_;
+ int32 h_;
+ int32 size_;
+ bytes key_;
+ bytes iv_;
+
+ decryptedMessageMediaVideo23(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, string const &mime_type_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_);
+
+ static const std::int32_t ID = 1380598109;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaVideo23(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaAudio final : public DecryptedMessageMedia {
+ public:
+ int32 duration_;
+ string mime_type_;
+ int32 size_;
+ bytes key_;
+ bytes iv_;
+
+ decryptedMessageMediaAudio(int32 duration_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_);
+
+ static const std::int32_t ID = 1474341323;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaAudio(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaExternalDocument final : public DecryptedMessageMedia {
+ public:
+ int64 id_;
+ int64 access_hash_;
+ int32 date_;
+ string mime_type_;
+ int32 size_;
+ object_ptr<PhotoSize> thumb_;
+ int32 dc_id_;
+ array<object_ptr<DocumentAttribute>> attributes_;
+
+ decryptedMessageMediaExternalDocument(int64 id_, int64 access_hash_, int32 date_, string const &mime_type_, int32 size_, object_ptr<PhotoSize> &&thumb_, int32 dc_id_, array<object_ptr<DocumentAttribute>> &&attributes_);
+
+ static const std::int32_t ID = -90853155;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaExternalDocument(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaPhoto final : public DecryptedMessageMedia {
+ public:
+ bytes thumb_;
+ int32 thumb_w_;
+ int32 thumb_h_;
+ int32 w_;
+ int32 h_;
+ int32 size_;
+ bytes key_;
+ bytes iv_;
+ string caption_;
+
+ decryptedMessageMediaPhoto(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_, string const &caption_);
+
+ static const std::int32_t ID = -235238024;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaPhoto(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaVideo final : public DecryptedMessageMedia {
+ public:
+ bytes thumb_;
+ int32 thumb_w_;
+ int32 thumb_h_;
+ int32 duration_;
+ string mime_type_;
+ int32 w_;
+ int32 h_;
+ int32 size_;
+ bytes key_;
+ bytes iv_;
+ string caption_;
+
+ decryptedMessageMediaVideo(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, string const &mime_type_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_, string const &caption_);
+
+ static const std::int32_t ID = -1760785394;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaVideo(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaDocument46 final : public DecryptedMessageMedia {
+ public:
+ bytes thumb_;
+ int32 thumb_w_;
+ int32 thumb_h_;
+ string mime_type_;
+ int32 size_;
+ bytes key_;
+ bytes iv_;
+ array<object_ptr<DocumentAttribute>> attributes_;
+ string caption_;
+
+ decryptedMessageMediaDocument46(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_, array<object_ptr<DocumentAttribute>> &&attributes_, string const &caption_);
+
+ static const std::int32_t ID = 2063502050;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaDocument46(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaVenue final : public DecryptedMessageMedia {
+ public:
+ double lat_;
+ double long_;
+ string title_;
+ string address_;
+ string provider_;
+ string venue_id_;
+
+ decryptedMessageMediaVenue(double lat_, double long_, string const &title_, string const &address_, string const &provider_, string const &venue_id_);
+
+ static const std::int32_t ID = -1978796689;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaVenue(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaWebPage final : public DecryptedMessageMedia {
+ public:
+ string url_;
+
+ explicit decryptedMessageMediaWebPage(string const &url_);
+
+ static const std::int32_t ID = -452652584;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaWebPage(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class decryptedMessageMediaDocument final : public DecryptedMessageMedia {
+ public:
+ bytes thumb_;
+ int32 thumb_w_;
+ int32 thumb_h_;
+ string mime_type_;
+ int64 size_;
+ bytes key_;
+ bytes iv_;
+ array<object_ptr<DocumentAttribute>> attributes_;
+ string caption_;
+
+ decryptedMessageMediaDocument(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &mime_type_, int64 size_, bytes &&key_, bytes &&iv_, array<object_ptr<DocumentAttribute>> &&attributes_, string const &caption_);
+
+ static const std::int32_t ID = 1790809986;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DecryptedMessageMedia> fetch(TlParser &p);
+
+ explicit decryptedMessageMediaDocument(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class DocumentAttribute: public Object {
+ public:
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+};
+
+class documentAttributeImageSize final : public DocumentAttribute {
+ public:
+ int32 w_;
+ int32 h_;
+
+ documentAttributeImageSize(int32 w_, int32 h_);
+
+ static const std::int32_t ID = 1815593308;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+
+ explicit documentAttributeImageSize(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeAnimated final : public DocumentAttribute {
+ public:
+
+ static const std::int32_t ID = 297109817;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeSticker23 final : public DocumentAttribute {
+ public:
+
+ static const std::int32_t ID = -83208409;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeVideo23 final : public DocumentAttribute {
+ public:
+ int32 duration_;
+ int32 w_;
+ int32 h_;
+
+ documentAttributeVideo23(int32 duration_, int32 w_, int32 h_);
+
+ static const std::int32_t ID = 1494273227;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+
+ explicit documentAttributeVideo23(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeAudio23 final : public DocumentAttribute {
+ public:
+ int32 duration_;
+
+ explicit documentAttributeAudio23(int32 duration_);
+
+ static const std::int32_t ID = 85215461;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+
+ explicit documentAttributeAudio23(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeFilename final : public DocumentAttribute {
+ public:
+ string file_name_;
+
+ explicit documentAttributeFilename(string const &file_name_);
+
+ static const std::int32_t ID = 358154344;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+
+ explicit documentAttributeFilename(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeAudio45 final : public DocumentAttribute {
+ public:
+ int32 duration_;
+ string title_;
+ string performer_;
+
+ documentAttributeAudio45(int32 duration_, string const &title_, string const &performer_);
+
+ static const std::int32_t ID = -556656416;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+
+ explicit documentAttributeAudio45(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeSticker final : public DocumentAttribute {
+ public:
+ string alt_;
+ object_ptr<InputStickerSet> stickerset_;
+
+ documentAttributeSticker(string const &alt_, object_ptr<InputStickerSet> &&stickerset_);
+
+ static const std::int32_t ID = 978674434;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+
+ explicit documentAttributeSticker(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeAudio final : public DocumentAttribute {
+ public:
+ int32 flags_;
+ bool voice_;
+ int32 duration_;
+ string title_;
+ string performer_;
+ bytes waveform_;
+ enum Flags : std::int32_t { VOICE_MASK = 1024, TITLE_MASK = 1, PERFORMER_MASK = 2, WAVEFORM_MASK = 4 };
+
+ documentAttributeAudio();
+
+ documentAttributeAudio(int32 flags_, bool voice_, int32 duration_, string const &title_, string const &performer_, bytes &&waveform_);
+
+ static const std::int32_t ID = -1739392570;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeVideo final : public DocumentAttribute {
+ public:
+ int32 flags_;
+ bool round_message_;
+ int32 duration_;
+ int32 w_;
+ int32 h_;
+ enum Flags : std::int32_t { ROUND_MESSAGE_MASK = 1 };
+
+ documentAttributeVideo();
+
+ documentAttributeVideo(int32 flags_, bool round_message_, int32 duration_, int32 w_, int32 h_);
+
+ static const std::int32_t ID = 250621158;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class FileLocation: public Object {
+ public:
+
+ static object_ptr<FileLocation> fetch(TlParser &p);
+};
+
+class fileLocationUnavailable final : public FileLocation {
+ public:
+ int64 volume_id_;
+ int32 local_id_;
+ int64 secret_;
+
+ fileLocationUnavailable(int64 volume_id_, int32 local_id_, int64 secret_);
+
+ static const std::int32_t ID = 2086234950;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<FileLocation> fetch(TlParser &p);
+
+ explicit fileLocationUnavailable(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileLocation final : public FileLocation {
+ public:
+ int32 dc_id_;
+ int64 volume_id_;
+ int32 local_id_;
+ int64 secret_;
+
+ fileLocation(int32 dc_id_, int64 volume_id_, int32 local_id_, int64 secret_);
+
+ static const std::int32_t ID = 1406570614;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<FileLocation> fetch(TlParser &p);
+
+ explicit fileLocation(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputStickerSet: public Object {
+ public:
+
+ static object_ptr<InputStickerSet> fetch(TlParser &p);
+};
+
+class inputStickerSetShortName final : public InputStickerSet {
+ public:
+ string short_name_;
+
+ explicit inputStickerSetShortName(string const &short_name_);
+
+ static const std::int32_t ID = -2044933984;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlParser &p);
+
+ explicit inputStickerSetShortName(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetEmpty final : public InputStickerSet {
+ public:
+
+ static const std::int32_t ID = -4838507;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageEntity: public Object {
+ public:
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+};
+
+class messageEntityUnknown final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityUnknown(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -1148011883;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityUnknown(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityMention final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityMention(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -100378723;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityMention(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityHashtag final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityHashtag(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1868782349;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityHashtag(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityBotCommand final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityBotCommand(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1827637959;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityBotCommand(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityUrl final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityUrl(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1859134776;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityUrl(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityEmail final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityEmail(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1692693954;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityEmail(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityBold final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityBold(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -1117713463;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityBold(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityItalic final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityItalic(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -2106619040;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityItalic(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityCode final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityCode(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 681706865;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityCode(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityPre final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+ string language_;
+
+ messageEntityPre(int32 offset_, int32 length_, string const &language_);
+
+ static const std::int32_t ID = 1938967520;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityPre(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityTextUrl final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+ string url_;
+
+ messageEntityTextUrl(int32 offset_, int32 length_, string const &url_);
+
+ static const std::int32_t ID = 1990644519;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityTextUrl(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityMentionName final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+ int32 user_id_;
+
+ messageEntityMentionName(int32 offset_, int32 length_, int32 user_id_);
+
+ static const std::int32_t ID = 892193368;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityMentionName(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityPhone final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityPhone(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -1687559349;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityPhone(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityCashtag final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityCashtag(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1280209983;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityCashtag(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityBankCard final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityBankCard(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1981704948;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityBankCard(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityUnderline final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityUnderline(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -1672577397;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityUnderline(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityStrike final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityStrike(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -1090087980;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityStrike(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityBlockquote final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityBlockquote(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 34469328;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityBlockquote(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntitySpoiler final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntitySpoiler(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 852137487;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntitySpoiler(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityCustomEmoji final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+ int64 document_id_;
+
+ messageEntityCustomEmoji(int32 offset_, int32 length_, int64 document_id_);
+
+ static const std::int32_t ID = -925956616;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlParser &p);
+
+ explicit messageEntityCustomEmoji(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PhotoSize: public Object {
+ public:
+
+ static object_ptr<PhotoSize> fetch(TlParser &p);
+};
+
+class photoSizeEmpty final : public PhotoSize {
+ public:
+ string type_;
+
+ explicit photoSizeEmpty(string const &type_);
+
+ static const std::int32_t ID = 236446268;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhotoSize> fetch(TlParser &p);
+
+ explicit photoSizeEmpty(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photoSize final : public PhotoSize {
+ public:
+ string type_;
+ object_ptr<FileLocation> location_;
+ int32 w_;
+ int32 h_;
+ int32 size_;
+
+ photoSize(string const &type_, object_ptr<FileLocation> &&location_, int32 w_, int32 h_, int32 size_);
+
+ static const std::int32_t ID = 2009052699;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhotoSize> fetch(TlParser &p);
+
+ explicit photoSize(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photoCachedSize final : public PhotoSize {
+ public:
+ string type_;
+ object_ptr<FileLocation> location_;
+ int32 w_;
+ int32 h_;
+ bytes bytes_;
+
+ photoCachedSize(string const &type_, object_ptr<FileLocation> &&location_, int32 w_, int32 h_, bytes &&bytes_);
+
+ static const std::int32_t ID = -374917894;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhotoSize> fetch(TlParser &p);
+
+ explicit photoCachedSize(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SendMessageAction: public Object {
+ public:
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+};
+
+class sendMessageTypingAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = 381645902;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageCancelAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -44119819;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageRecordVideoAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -1584933265;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageUploadVideoAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -1845219337;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageRecordAudioAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -718310409;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageUploadAudioAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -424899985;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageUploadPhotoAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -1727382502;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageUploadDocumentAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -1884362354;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageGeoLocationAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = 393186209;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageChooseContactAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = 1653390447;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageRecordRoundAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -1997373508;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageUploadRoundAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -1150187996;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class test_dummyFunction final : public Function {
+ public:
+
+ static const std::int32_t ID = -936020215;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ static object_ptr<test_dummyFunction> fetch(TlParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlParser &p);
+};
+
+} // namespace secret_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.hpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.hpp
new file mode 100644
index 0000000000..43795cf6f1
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.hpp
@@ -0,0 +1,678 @@
+#pragma once
+
+/**
+ * \file
+ * Contains downcast_call methods for calling a function object on downcasted to
+ * the most derived class TDLib API object.
+ */
+#include "secret_api.h"
+
+namespace td {
+namespace secret_api {
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Object &obj, const T &func) {
+ switch (obj.get_id()) {
+ case decryptedMessage8::ID:
+ func(static_cast<decryptedMessage8 &>(obj));
+ return true;
+ case decryptedMessageService8::ID:
+ func(static_cast<decryptedMessageService8 &>(obj));
+ return true;
+ case decryptedMessage23::ID:
+ func(static_cast<decryptedMessage23 &>(obj));
+ return true;
+ case decryptedMessageService::ID:
+ func(static_cast<decryptedMessageService &>(obj));
+ return true;
+ case decryptedMessage46::ID:
+ func(static_cast<decryptedMessage46 &>(obj));
+ return true;
+ case decryptedMessage::ID:
+ func(static_cast<decryptedMessage &>(obj));
+ return true;
+ case decryptedMessageActionSetMessageTTL::ID:
+ func(static_cast<decryptedMessageActionSetMessageTTL &>(obj));
+ return true;
+ case decryptedMessageActionReadMessages::ID:
+ func(static_cast<decryptedMessageActionReadMessages &>(obj));
+ return true;
+ case decryptedMessageActionDeleteMessages::ID:
+ func(static_cast<decryptedMessageActionDeleteMessages &>(obj));
+ return true;
+ case decryptedMessageActionScreenshotMessages::ID:
+ func(static_cast<decryptedMessageActionScreenshotMessages &>(obj));
+ return true;
+ case decryptedMessageActionFlushHistory::ID:
+ func(static_cast<decryptedMessageActionFlushHistory &>(obj));
+ return true;
+ case decryptedMessageActionResend::ID:
+ func(static_cast<decryptedMessageActionResend &>(obj));
+ return true;
+ case decryptedMessageActionNotifyLayer::ID:
+ func(static_cast<decryptedMessageActionNotifyLayer &>(obj));
+ return true;
+ case decryptedMessageActionTyping::ID:
+ func(static_cast<decryptedMessageActionTyping &>(obj));
+ return true;
+ case decryptedMessageActionRequestKey::ID:
+ func(static_cast<decryptedMessageActionRequestKey &>(obj));
+ return true;
+ case decryptedMessageActionAcceptKey::ID:
+ func(static_cast<decryptedMessageActionAcceptKey &>(obj));
+ return true;
+ case decryptedMessageActionAbortKey::ID:
+ func(static_cast<decryptedMessageActionAbortKey &>(obj));
+ return true;
+ case decryptedMessageActionCommitKey::ID:
+ func(static_cast<decryptedMessageActionCommitKey &>(obj));
+ return true;
+ case decryptedMessageActionNoop::ID:
+ func(static_cast<decryptedMessageActionNoop &>(obj));
+ return true;
+ case decryptedMessageLayer::ID:
+ func(static_cast<decryptedMessageLayer &>(obj));
+ return true;
+ case decryptedMessageMediaEmpty::ID:
+ func(static_cast<decryptedMessageMediaEmpty &>(obj));
+ return true;
+ case decryptedMessageMediaPhoto8::ID:
+ func(static_cast<decryptedMessageMediaPhoto8 &>(obj));
+ return true;
+ case decryptedMessageMediaVideo8::ID:
+ func(static_cast<decryptedMessageMediaVideo8 &>(obj));
+ return true;
+ case decryptedMessageMediaGeoPoint::ID:
+ func(static_cast<decryptedMessageMediaGeoPoint &>(obj));
+ return true;
+ case decryptedMessageMediaContact::ID:
+ func(static_cast<decryptedMessageMediaContact &>(obj));
+ return true;
+ case decryptedMessageMediaDocument8::ID:
+ func(static_cast<decryptedMessageMediaDocument8 &>(obj));
+ return true;
+ case decryptedMessageMediaAudio8::ID:
+ func(static_cast<decryptedMessageMediaAudio8 &>(obj));
+ return true;
+ case decryptedMessageMediaVideo23::ID:
+ func(static_cast<decryptedMessageMediaVideo23 &>(obj));
+ return true;
+ case decryptedMessageMediaAudio::ID:
+ func(static_cast<decryptedMessageMediaAudio &>(obj));
+ return true;
+ case decryptedMessageMediaExternalDocument::ID:
+ func(static_cast<decryptedMessageMediaExternalDocument &>(obj));
+ return true;
+ case decryptedMessageMediaPhoto::ID:
+ func(static_cast<decryptedMessageMediaPhoto &>(obj));
+ return true;
+ case decryptedMessageMediaVideo::ID:
+ func(static_cast<decryptedMessageMediaVideo &>(obj));
+ return true;
+ case decryptedMessageMediaDocument46::ID:
+ func(static_cast<decryptedMessageMediaDocument46 &>(obj));
+ return true;
+ case decryptedMessageMediaVenue::ID:
+ func(static_cast<decryptedMessageMediaVenue &>(obj));
+ return true;
+ case decryptedMessageMediaWebPage::ID:
+ func(static_cast<decryptedMessageMediaWebPage &>(obj));
+ return true;
+ case decryptedMessageMediaDocument::ID:
+ func(static_cast<decryptedMessageMediaDocument &>(obj));
+ return true;
+ case documentAttributeImageSize::ID:
+ func(static_cast<documentAttributeImageSize &>(obj));
+ return true;
+ case documentAttributeAnimated::ID:
+ func(static_cast<documentAttributeAnimated &>(obj));
+ return true;
+ case documentAttributeSticker23::ID:
+ func(static_cast<documentAttributeSticker23 &>(obj));
+ return true;
+ case documentAttributeVideo23::ID:
+ func(static_cast<documentAttributeVideo23 &>(obj));
+ return true;
+ case documentAttributeAudio23::ID:
+ func(static_cast<documentAttributeAudio23 &>(obj));
+ return true;
+ case documentAttributeFilename::ID:
+ func(static_cast<documentAttributeFilename &>(obj));
+ return true;
+ case documentAttributeAudio45::ID:
+ func(static_cast<documentAttributeAudio45 &>(obj));
+ return true;
+ case documentAttributeSticker::ID:
+ func(static_cast<documentAttributeSticker &>(obj));
+ return true;
+ case documentAttributeAudio::ID:
+ func(static_cast<documentAttributeAudio &>(obj));
+ return true;
+ case documentAttributeVideo::ID:
+ func(static_cast<documentAttributeVideo &>(obj));
+ return true;
+ case fileLocationUnavailable::ID:
+ func(static_cast<fileLocationUnavailable &>(obj));
+ return true;
+ case fileLocation::ID:
+ func(static_cast<fileLocation &>(obj));
+ return true;
+ case inputStickerSetShortName::ID:
+ func(static_cast<inputStickerSetShortName &>(obj));
+ return true;
+ case inputStickerSetEmpty::ID:
+ func(static_cast<inputStickerSetEmpty &>(obj));
+ return true;
+ case messageEntityUnknown::ID:
+ func(static_cast<messageEntityUnknown &>(obj));
+ return true;
+ case messageEntityMention::ID:
+ func(static_cast<messageEntityMention &>(obj));
+ return true;
+ case messageEntityHashtag::ID:
+ func(static_cast<messageEntityHashtag &>(obj));
+ return true;
+ case messageEntityBotCommand::ID:
+ func(static_cast<messageEntityBotCommand &>(obj));
+ return true;
+ case messageEntityUrl::ID:
+ func(static_cast<messageEntityUrl &>(obj));
+ return true;
+ case messageEntityEmail::ID:
+ func(static_cast<messageEntityEmail &>(obj));
+ return true;
+ case messageEntityBold::ID:
+ func(static_cast<messageEntityBold &>(obj));
+ return true;
+ case messageEntityItalic::ID:
+ func(static_cast<messageEntityItalic &>(obj));
+ return true;
+ case messageEntityCode::ID:
+ func(static_cast<messageEntityCode &>(obj));
+ return true;
+ case messageEntityPre::ID:
+ func(static_cast<messageEntityPre &>(obj));
+ return true;
+ case messageEntityTextUrl::ID:
+ func(static_cast<messageEntityTextUrl &>(obj));
+ return true;
+ case messageEntityMentionName::ID:
+ func(static_cast<messageEntityMentionName &>(obj));
+ return true;
+ case messageEntityPhone::ID:
+ func(static_cast<messageEntityPhone &>(obj));
+ return true;
+ case messageEntityCashtag::ID:
+ func(static_cast<messageEntityCashtag &>(obj));
+ return true;
+ case messageEntityBankCard::ID:
+ func(static_cast<messageEntityBankCard &>(obj));
+ return true;
+ case messageEntityUnderline::ID:
+ func(static_cast<messageEntityUnderline &>(obj));
+ return true;
+ case messageEntityStrike::ID:
+ func(static_cast<messageEntityStrike &>(obj));
+ return true;
+ case messageEntityBlockquote::ID:
+ func(static_cast<messageEntityBlockquote &>(obj));
+ return true;
+ case messageEntitySpoiler::ID:
+ func(static_cast<messageEntitySpoiler &>(obj));
+ return true;
+ case messageEntityCustomEmoji::ID:
+ func(static_cast<messageEntityCustomEmoji &>(obj));
+ return true;
+ case photoSizeEmpty::ID:
+ func(static_cast<photoSizeEmpty &>(obj));
+ return true;
+ case photoSize::ID:
+ func(static_cast<photoSize &>(obj));
+ return true;
+ case photoCachedSize::ID:
+ func(static_cast<photoCachedSize &>(obj));
+ return true;
+ case sendMessageTypingAction::ID:
+ func(static_cast<sendMessageTypingAction &>(obj));
+ return true;
+ case sendMessageCancelAction::ID:
+ func(static_cast<sendMessageCancelAction &>(obj));
+ return true;
+ case sendMessageRecordVideoAction::ID:
+ func(static_cast<sendMessageRecordVideoAction &>(obj));
+ return true;
+ case sendMessageUploadVideoAction::ID:
+ func(static_cast<sendMessageUploadVideoAction &>(obj));
+ return true;
+ case sendMessageRecordAudioAction::ID:
+ func(static_cast<sendMessageRecordAudioAction &>(obj));
+ return true;
+ case sendMessageUploadAudioAction::ID:
+ func(static_cast<sendMessageUploadAudioAction &>(obj));
+ return true;
+ case sendMessageUploadPhotoAction::ID:
+ func(static_cast<sendMessageUploadPhotoAction &>(obj));
+ return true;
+ case sendMessageUploadDocumentAction::ID:
+ func(static_cast<sendMessageUploadDocumentAction &>(obj));
+ return true;
+ case sendMessageGeoLocationAction::ID:
+ func(static_cast<sendMessageGeoLocationAction &>(obj));
+ return true;
+ case sendMessageChooseContactAction::ID:
+ func(static_cast<sendMessageChooseContactAction &>(obj));
+ return true;
+ case sendMessageRecordRoundAction::ID:
+ func(static_cast<sendMessageRecordRoundAction &>(obj));
+ return true;
+ case sendMessageUploadRoundAction::ID:
+ func(static_cast<sendMessageUploadRoundAction &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Function &obj, const T &func) {
+ switch (obj.get_id()) {
+ case test_dummyFunction::ID:
+ func(static_cast<test_dummyFunction &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DecryptedMessage &obj, const T &func) {
+ switch (obj.get_id()) {
+ case decryptedMessage8::ID:
+ func(static_cast<decryptedMessage8 &>(obj));
+ return true;
+ case decryptedMessageService8::ID:
+ func(static_cast<decryptedMessageService8 &>(obj));
+ return true;
+ case decryptedMessage23::ID:
+ func(static_cast<decryptedMessage23 &>(obj));
+ return true;
+ case decryptedMessageService::ID:
+ func(static_cast<decryptedMessageService &>(obj));
+ return true;
+ case decryptedMessage46::ID:
+ func(static_cast<decryptedMessage46 &>(obj));
+ return true;
+ case decryptedMessage::ID:
+ func(static_cast<decryptedMessage &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DecryptedMessageAction &obj, const T &func) {
+ switch (obj.get_id()) {
+ case decryptedMessageActionSetMessageTTL::ID:
+ func(static_cast<decryptedMessageActionSetMessageTTL &>(obj));
+ return true;
+ case decryptedMessageActionReadMessages::ID:
+ func(static_cast<decryptedMessageActionReadMessages &>(obj));
+ return true;
+ case decryptedMessageActionDeleteMessages::ID:
+ func(static_cast<decryptedMessageActionDeleteMessages &>(obj));
+ return true;
+ case decryptedMessageActionScreenshotMessages::ID:
+ func(static_cast<decryptedMessageActionScreenshotMessages &>(obj));
+ return true;
+ case decryptedMessageActionFlushHistory::ID:
+ func(static_cast<decryptedMessageActionFlushHistory &>(obj));
+ return true;
+ case decryptedMessageActionResend::ID:
+ func(static_cast<decryptedMessageActionResend &>(obj));
+ return true;
+ case decryptedMessageActionNotifyLayer::ID:
+ func(static_cast<decryptedMessageActionNotifyLayer &>(obj));
+ return true;
+ case decryptedMessageActionTyping::ID:
+ func(static_cast<decryptedMessageActionTyping &>(obj));
+ return true;
+ case decryptedMessageActionRequestKey::ID:
+ func(static_cast<decryptedMessageActionRequestKey &>(obj));
+ return true;
+ case decryptedMessageActionAcceptKey::ID:
+ func(static_cast<decryptedMessageActionAcceptKey &>(obj));
+ return true;
+ case decryptedMessageActionAbortKey::ID:
+ func(static_cast<decryptedMessageActionAbortKey &>(obj));
+ return true;
+ case decryptedMessageActionCommitKey::ID:
+ func(static_cast<decryptedMessageActionCommitKey &>(obj));
+ return true;
+ case decryptedMessageActionNoop::ID:
+ func(static_cast<decryptedMessageActionNoop &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DecryptedMessageMedia &obj, const T &func) {
+ switch (obj.get_id()) {
+ case decryptedMessageMediaEmpty::ID:
+ func(static_cast<decryptedMessageMediaEmpty &>(obj));
+ return true;
+ case decryptedMessageMediaPhoto8::ID:
+ func(static_cast<decryptedMessageMediaPhoto8 &>(obj));
+ return true;
+ case decryptedMessageMediaVideo8::ID:
+ func(static_cast<decryptedMessageMediaVideo8 &>(obj));
+ return true;
+ case decryptedMessageMediaGeoPoint::ID:
+ func(static_cast<decryptedMessageMediaGeoPoint &>(obj));
+ return true;
+ case decryptedMessageMediaContact::ID:
+ func(static_cast<decryptedMessageMediaContact &>(obj));
+ return true;
+ case decryptedMessageMediaDocument8::ID:
+ func(static_cast<decryptedMessageMediaDocument8 &>(obj));
+ return true;
+ case decryptedMessageMediaAudio8::ID:
+ func(static_cast<decryptedMessageMediaAudio8 &>(obj));
+ return true;
+ case decryptedMessageMediaVideo23::ID:
+ func(static_cast<decryptedMessageMediaVideo23 &>(obj));
+ return true;
+ case decryptedMessageMediaAudio::ID:
+ func(static_cast<decryptedMessageMediaAudio &>(obj));
+ return true;
+ case decryptedMessageMediaExternalDocument::ID:
+ func(static_cast<decryptedMessageMediaExternalDocument &>(obj));
+ return true;
+ case decryptedMessageMediaPhoto::ID:
+ func(static_cast<decryptedMessageMediaPhoto &>(obj));
+ return true;
+ case decryptedMessageMediaVideo::ID:
+ func(static_cast<decryptedMessageMediaVideo &>(obj));
+ return true;
+ case decryptedMessageMediaDocument46::ID:
+ func(static_cast<decryptedMessageMediaDocument46 &>(obj));
+ return true;
+ case decryptedMessageMediaVenue::ID:
+ func(static_cast<decryptedMessageMediaVenue &>(obj));
+ return true;
+ case decryptedMessageMediaWebPage::ID:
+ func(static_cast<decryptedMessageMediaWebPage &>(obj));
+ return true;
+ case decryptedMessageMediaDocument::ID:
+ func(static_cast<decryptedMessageMediaDocument &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DocumentAttribute &obj, const T &func) {
+ switch (obj.get_id()) {
+ case documentAttributeImageSize::ID:
+ func(static_cast<documentAttributeImageSize &>(obj));
+ return true;
+ case documentAttributeAnimated::ID:
+ func(static_cast<documentAttributeAnimated &>(obj));
+ return true;
+ case documentAttributeSticker23::ID:
+ func(static_cast<documentAttributeSticker23 &>(obj));
+ return true;
+ case documentAttributeVideo23::ID:
+ func(static_cast<documentAttributeVideo23 &>(obj));
+ return true;
+ case documentAttributeAudio23::ID:
+ func(static_cast<documentAttributeAudio23 &>(obj));
+ return true;
+ case documentAttributeFilename::ID:
+ func(static_cast<documentAttributeFilename &>(obj));
+ return true;
+ case documentAttributeAudio45::ID:
+ func(static_cast<documentAttributeAudio45 &>(obj));
+ return true;
+ case documentAttributeSticker::ID:
+ func(static_cast<documentAttributeSticker &>(obj));
+ return true;
+ case documentAttributeAudio::ID:
+ func(static_cast<documentAttributeAudio &>(obj));
+ return true;
+ case documentAttributeVideo::ID:
+ func(static_cast<documentAttributeVideo &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(FileLocation &obj, const T &func) {
+ switch (obj.get_id()) {
+ case fileLocationUnavailable::ID:
+ func(static_cast<fileLocationUnavailable &>(obj));
+ return true;
+ case fileLocation::ID:
+ func(static_cast<fileLocation &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputStickerSet &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputStickerSetShortName::ID:
+ func(static_cast<inputStickerSetShortName &>(obj));
+ return true;
+ case inputStickerSetEmpty::ID:
+ func(static_cast<inputStickerSetEmpty &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageEntity &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageEntityUnknown::ID:
+ func(static_cast<messageEntityUnknown &>(obj));
+ return true;
+ case messageEntityMention::ID:
+ func(static_cast<messageEntityMention &>(obj));
+ return true;
+ case messageEntityHashtag::ID:
+ func(static_cast<messageEntityHashtag &>(obj));
+ return true;
+ case messageEntityBotCommand::ID:
+ func(static_cast<messageEntityBotCommand &>(obj));
+ return true;
+ case messageEntityUrl::ID:
+ func(static_cast<messageEntityUrl &>(obj));
+ return true;
+ case messageEntityEmail::ID:
+ func(static_cast<messageEntityEmail &>(obj));
+ return true;
+ case messageEntityBold::ID:
+ func(static_cast<messageEntityBold &>(obj));
+ return true;
+ case messageEntityItalic::ID:
+ func(static_cast<messageEntityItalic &>(obj));
+ return true;
+ case messageEntityCode::ID:
+ func(static_cast<messageEntityCode &>(obj));
+ return true;
+ case messageEntityPre::ID:
+ func(static_cast<messageEntityPre &>(obj));
+ return true;
+ case messageEntityTextUrl::ID:
+ func(static_cast<messageEntityTextUrl &>(obj));
+ return true;
+ case messageEntityMentionName::ID:
+ func(static_cast<messageEntityMentionName &>(obj));
+ return true;
+ case messageEntityPhone::ID:
+ func(static_cast<messageEntityPhone &>(obj));
+ return true;
+ case messageEntityCashtag::ID:
+ func(static_cast<messageEntityCashtag &>(obj));
+ return true;
+ case messageEntityBankCard::ID:
+ func(static_cast<messageEntityBankCard &>(obj));
+ return true;
+ case messageEntityUnderline::ID:
+ func(static_cast<messageEntityUnderline &>(obj));
+ return true;
+ case messageEntityStrike::ID:
+ func(static_cast<messageEntityStrike &>(obj));
+ return true;
+ case messageEntityBlockquote::ID:
+ func(static_cast<messageEntityBlockquote &>(obj));
+ return true;
+ case messageEntitySpoiler::ID:
+ func(static_cast<messageEntitySpoiler &>(obj));
+ return true;
+ case messageEntityCustomEmoji::ID:
+ func(static_cast<messageEntityCustomEmoji &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PhotoSize &obj, const T &func) {
+ switch (obj.get_id()) {
+ case photoSizeEmpty::ID:
+ func(static_cast<photoSizeEmpty &>(obj));
+ return true;
+ case photoSize::ID:
+ func(static_cast<photoSize &>(obj));
+ return true;
+ case photoCachedSize::ID:
+ func(static_cast<photoCachedSize &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SendMessageAction &obj, const T &func) {
+ switch (obj.get_id()) {
+ case sendMessageTypingAction::ID:
+ func(static_cast<sendMessageTypingAction &>(obj));
+ return true;
+ case sendMessageCancelAction::ID:
+ func(static_cast<sendMessageCancelAction &>(obj));
+ return true;
+ case sendMessageRecordVideoAction::ID:
+ func(static_cast<sendMessageRecordVideoAction &>(obj));
+ return true;
+ case sendMessageUploadVideoAction::ID:
+ func(static_cast<sendMessageUploadVideoAction &>(obj));
+ return true;
+ case sendMessageRecordAudioAction::ID:
+ func(static_cast<sendMessageRecordAudioAction &>(obj));
+ return true;
+ case sendMessageUploadAudioAction::ID:
+ func(static_cast<sendMessageUploadAudioAction &>(obj));
+ return true;
+ case sendMessageUploadPhotoAction::ID:
+ func(static_cast<sendMessageUploadPhotoAction &>(obj));
+ return true;
+ case sendMessageUploadDocumentAction::ID:
+ func(static_cast<sendMessageUploadDocumentAction &>(obj));
+ return true;
+ case sendMessageGeoLocationAction::ID:
+ func(static_cast<sendMessageGeoLocationAction &>(obj));
+ return true;
+ case sendMessageChooseContactAction::ID:
+ func(static_cast<sendMessageChooseContactAction &>(obj));
+ return true;
+ case sendMessageRecordRoundAction::ID:
+ func(static_cast<sendMessageRecordRoundAction &>(obj));
+ return true;
+ case sendMessageUploadRoundAction::ID:
+ func(static_cast<sendMessageUploadRoundAction &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+} // namespace secret_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.cpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.cpp
new file mode 100644
index 0000000000..5942d45622
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.cpp
@@ -0,0 +1,33908 @@
+#include "td_api.h"
+
+#include "td/utils/common.h"
+#include "td/utils/format.h"
+#include "td/utils/logging.h"
+#include "td/utils/SliceBuilder.h"
+#include "td/utils/tl_parsers.h"
+#include "td/utils/tl_storers.h"
+#include "td/utils/TlStorerToString.h"
+
+namespace td {
+namespace td_api {
+
+std::string to_string(const BaseObject &value) {
+ TlStorerToString storer;
+ value.store(storer, "");
+ return storer.move_as_string();
+}
+
+accountTtl::accountTtl()
+ : days_()
+{}
+
+accountTtl::accountTtl(int32 days_)
+ : days_(days_)
+{}
+
+const std::int32_t accountTtl::ID;
+
+void accountTtl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "accountTtl");
+ s.store_field("days", days_);
+ s.store_class_end();
+ }
+}
+
+addedReaction::addedReaction()
+ : type_()
+ , sender_id_()
+{}
+
+addedReaction::addedReaction(object_ptr<ReactionType> &&type_, object_ptr<MessageSender> &&sender_id_)
+ : type_(std::move(type_))
+ , sender_id_(std::move(sender_id_))
+{}
+
+const std::int32_t addedReaction::ID;
+
+void addedReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addedReaction");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get()));
+ s.store_class_end();
+ }
+}
+
+addedReactions::addedReactions()
+ : total_count_()
+ , reactions_()
+ , next_offset_()
+{}
+
+addedReactions::addedReactions(int32 total_count_, array<object_ptr<addedReaction>> &&reactions_, string const &next_offset_)
+ : total_count_(total_count_)
+ , reactions_(std::move(reactions_))
+ , next_offset_(next_offset_)
+{}
+
+const std::int32_t addedReactions::ID;
+
+void addedReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addedReactions");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("next_offset", next_offset_);
+ s.store_class_end();
+ }
+}
+
+address::address()
+ : country_code_()
+ , state_()
+ , city_()
+ , street_line1_()
+ , street_line2_()
+ , postal_code_()
+{}
+
+address::address(string const &country_code_, string const &state_, string const &city_, string const &street_line1_, string const &street_line2_, string const &postal_code_)
+ : country_code_(country_code_)
+ , state_(state_)
+ , city_(city_)
+ , street_line1_(street_line1_)
+ , street_line2_(street_line2_)
+ , postal_code_(postal_code_)
+{}
+
+const std::int32_t address::ID;
+
+void address::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "address");
+ s.store_field("country_code", country_code_);
+ s.store_field("state", state_);
+ s.store_field("city", city_);
+ s.store_field("street_line1", street_line1_);
+ s.store_field("street_line2", street_line2_);
+ s.store_field("postal_code", postal_code_);
+ s.store_class_end();
+ }
+}
+
+animatedChatPhoto::animatedChatPhoto()
+ : length_()
+ , file_()
+ , main_frame_timestamp_()
+{}
+
+animatedChatPhoto::animatedChatPhoto(int32 length_, object_ptr<file> &&file_, double main_frame_timestamp_)
+ : length_(length_)
+ , file_(std::move(file_))
+ , main_frame_timestamp_(main_frame_timestamp_)
+{}
+
+const std::int32_t animatedChatPhoto::ID;
+
+void animatedChatPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "animatedChatPhoto");
+ s.store_field("length", length_);
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_field("main_frame_timestamp", main_frame_timestamp_);
+ s.store_class_end();
+ }
+}
+
+animatedEmoji::animatedEmoji()
+ : sticker_()
+ , sticker_width_()
+ , sticker_height_()
+ , fitzpatrick_type_()
+ , sound_()
+{}
+
+animatedEmoji::animatedEmoji(object_ptr<sticker> &&sticker_, int32 sticker_width_, int32 sticker_height_, int32 fitzpatrick_type_, object_ptr<file> &&sound_)
+ : sticker_(std::move(sticker_))
+ , sticker_width_(sticker_width_)
+ , sticker_height_(sticker_height_)
+ , fitzpatrick_type_(fitzpatrick_type_)
+ , sound_(std::move(sound_))
+{}
+
+const std::int32_t animatedEmoji::ID;
+
+void animatedEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "animatedEmoji");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_field("sticker_width", sticker_width_);
+ s.store_field("sticker_height", sticker_height_);
+ s.store_field("fitzpatrick_type", fitzpatrick_type_);
+ s.store_object_field("sound", static_cast<const BaseObject *>(sound_.get()));
+ s.store_class_end();
+ }
+}
+
+animation::animation()
+ : duration_()
+ , width_()
+ , height_()
+ , file_name_()
+ , mime_type_()
+ , has_stickers_()
+ , minithumbnail_()
+ , thumbnail_()
+ , animation_()
+{}
+
+animation::animation(int32 duration_, int32 width_, int32 height_, string const &file_name_, string const &mime_type_, bool has_stickers_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&animation_)
+ : duration_(duration_)
+ , width_(width_)
+ , height_(height_)
+ , file_name_(file_name_)
+ , mime_type_(mime_type_)
+ , has_stickers_(has_stickers_)
+ , minithumbnail_(std::move(minithumbnail_))
+ , thumbnail_(std::move(thumbnail_))
+ , animation_(std::move(animation_))
+{}
+
+const std::int32_t animation::ID;
+
+void animation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "animation");
+ s.store_field("duration", duration_);
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_field("file_name", file_name_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("has_stickers", has_stickers_);
+ s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_class_end();
+ }
+}
+
+animations::animations()
+ : animations_()
+{}
+
+animations::animations(array<object_ptr<animation>> &&animations_)
+ : animations_(std::move(animations_))
+{}
+
+const std::int32_t animations::ID;
+
+void animations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "animations");
+ { s.store_vector_begin("animations", animations_.size()); for (const auto &_value : animations_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+attachmentMenuBot::attachmentMenuBot()
+ : bot_user_id_()
+ , supports_self_chat_()
+ , supports_user_chats_()
+ , supports_bot_chats_()
+ , supports_group_chats_()
+ , supports_channel_chats_()
+ , supports_settings_()
+ , name_()
+ , name_color_()
+ , default_icon_()
+ , ios_static_icon_()
+ , ios_animated_icon_()
+ , android_icon_()
+ , macos_icon_()
+ , icon_color_()
+ , web_app_placeholder_()
+{}
+
+attachmentMenuBot::attachmentMenuBot(int53 bot_user_id_, bool supports_self_chat_, bool supports_user_chats_, bool supports_bot_chats_, bool supports_group_chats_, bool supports_channel_chats_, bool supports_settings_, string const &name_, object_ptr<attachmentMenuBotColor> &&name_color_, object_ptr<file> &&default_icon_, object_ptr<file> &&ios_static_icon_, object_ptr<file> &&ios_animated_icon_, object_ptr<file> &&android_icon_, object_ptr<file> &&macos_icon_, object_ptr<attachmentMenuBotColor> &&icon_color_, object_ptr<file> &&web_app_placeholder_)
+ : bot_user_id_(bot_user_id_)
+ , supports_self_chat_(supports_self_chat_)
+ , supports_user_chats_(supports_user_chats_)
+ , supports_bot_chats_(supports_bot_chats_)
+ , supports_group_chats_(supports_group_chats_)
+ , supports_channel_chats_(supports_channel_chats_)
+ , supports_settings_(supports_settings_)
+ , name_(name_)
+ , name_color_(std::move(name_color_))
+ , default_icon_(std::move(default_icon_))
+ , ios_static_icon_(std::move(ios_static_icon_))
+ , ios_animated_icon_(std::move(ios_animated_icon_))
+ , android_icon_(std::move(android_icon_))
+ , macos_icon_(std::move(macos_icon_))
+ , icon_color_(std::move(icon_color_))
+ , web_app_placeholder_(std::move(web_app_placeholder_))
+{}
+
+const std::int32_t attachmentMenuBot::ID;
+
+void attachmentMenuBot::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachmentMenuBot");
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("supports_self_chat", supports_self_chat_);
+ s.store_field("supports_user_chats", supports_user_chats_);
+ s.store_field("supports_bot_chats", supports_bot_chats_);
+ s.store_field("supports_group_chats", supports_group_chats_);
+ s.store_field("supports_channel_chats", supports_channel_chats_);
+ s.store_field("supports_settings", supports_settings_);
+ s.store_field("name", name_);
+ s.store_object_field("name_color", static_cast<const BaseObject *>(name_color_.get()));
+ s.store_object_field("default_icon", static_cast<const BaseObject *>(default_icon_.get()));
+ s.store_object_field("ios_static_icon", static_cast<const BaseObject *>(ios_static_icon_.get()));
+ s.store_object_field("ios_animated_icon", static_cast<const BaseObject *>(ios_animated_icon_.get()));
+ s.store_object_field("android_icon", static_cast<const BaseObject *>(android_icon_.get()));
+ s.store_object_field("macos_icon", static_cast<const BaseObject *>(macos_icon_.get()));
+ s.store_object_field("icon_color", static_cast<const BaseObject *>(icon_color_.get()));
+ s.store_object_field("web_app_placeholder", static_cast<const BaseObject *>(web_app_placeholder_.get()));
+ s.store_class_end();
+ }
+}
+
+attachmentMenuBotColor::attachmentMenuBotColor()
+ : light_color_()
+ , dark_color_()
+{}
+
+attachmentMenuBotColor::attachmentMenuBotColor(int32 light_color_, int32 dark_color_)
+ : light_color_(light_color_)
+ , dark_color_(dark_color_)
+{}
+
+const std::int32_t attachmentMenuBotColor::ID;
+
+void attachmentMenuBotColor::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachmentMenuBotColor");
+ s.store_field("light_color", light_color_);
+ s.store_field("dark_color", dark_color_);
+ s.store_class_end();
+ }
+}
+
+audio::audio()
+ : duration_()
+ , title_()
+ , performer_()
+ , file_name_()
+ , mime_type_()
+ , album_cover_minithumbnail_()
+ , album_cover_thumbnail_()
+ , external_album_covers_()
+ , audio_()
+{}
+
+audio::audio(int32 duration_, string const &title_, string const &performer_, string const &file_name_, string const &mime_type_, object_ptr<minithumbnail> &&album_cover_minithumbnail_, object_ptr<thumbnail> &&album_cover_thumbnail_, array<object_ptr<thumbnail>> &&external_album_covers_, object_ptr<file> &&audio_)
+ : duration_(duration_)
+ , title_(title_)
+ , performer_(performer_)
+ , file_name_(file_name_)
+ , mime_type_(mime_type_)
+ , album_cover_minithumbnail_(std::move(album_cover_minithumbnail_))
+ , album_cover_thumbnail_(std::move(album_cover_thumbnail_))
+ , external_album_covers_(std::move(external_album_covers_))
+ , audio_(std::move(audio_))
+{}
+
+const std::int32_t audio::ID;
+
+void audio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "audio");
+ s.store_field("duration", duration_);
+ s.store_field("title", title_);
+ s.store_field("performer", performer_);
+ s.store_field("file_name", file_name_);
+ s.store_field("mime_type", mime_type_);
+ s.store_object_field("album_cover_minithumbnail", static_cast<const BaseObject *>(album_cover_minithumbnail_.get()));
+ s.store_object_field("album_cover_thumbnail", static_cast<const BaseObject *>(album_cover_thumbnail_.get()));
+ { s.store_vector_begin("external_album_covers", external_album_covers_.size()); for (const auto &_value : external_album_covers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get()));
+ s.store_class_end();
+ }
+}
+
+authenticationCodeInfo::authenticationCodeInfo()
+ : phone_number_()
+ , type_()
+ , next_type_()
+ , timeout_()
+{}
+
+authenticationCodeInfo::authenticationCodeInfo(string const &phone_number_, object_ptr<AuthenticationCodeType> &&type_, object_ptr<AuthenticationCodeType> &&next_type_, int32 timeout_)
+ : phone_number_(phone_number_)
+ , type_(std::move(type_))
+ , next_type_(std::move(next_type_))
+ , timeout_(timeout_)
+{}
+
+const std::int32_t authenticationCodeInfo::ID;
+
+void authenticationCodeInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authenticationCodeInfo");
+ s.store_field("phone_number", phone_number_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_object_field("next_type", static_cast<const BaseObject *>(next_type_.get()));
+ s.store_field("timeout", timeout_);
+ s.store_class_end();
+ }
+}
+
+authenticationCodeTypeTelegramMessage::authenticationCodeTypeTelegramMessage()
+ : length_()
+{}
+
+authenticationCodeTypeTelegramMessage::authenticationCodeTypeTelegramMessage(int32 length_)
+ : length_(length_)
+{}
+
+const std::int32_t authenticationCodeTypeTelegramMessage::ID;
+
+void authenticationCodeTypeTelegramMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authenticationCodeTypeTelegramMessage");
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+authenticationCodeTypeSms::authenticationCodeTypeSms()
+ : length_()
+{}
+
+authenticationCodeTypeSms::authenticationCodeTypeSms(int32 length_)
+ : length_(length_)
+{}
+
+const std::int32_t authenticationCodeTypeSms::ID;
+
+void authenticationCodeTypeSms::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authenticationCodeTypeSms");
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+authenticationCodeTypeCall::authenticationCodeTypeCall()
+ : length_()
+{}
+
+authenticationCodeTypeCall::authenticationCodeTypeCall(int32 length_)
+ : length_(length_)
+{}
+
+const std::int32_t authenticationCodeTypeCall::ID;
+
+void authenticationCodeTypeCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authenticationCodeTypeCall");
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+authenticationCodeTypeFlashCall::authenticationCodeTypeFlashCall()
+ : pattern_()
+{}
+
+authenticationCodeTypeFlashCall::authenticationCodeTypeFlashCall(string const &pattern_)
+ : pattern_(pattern_)
+{}
+
+const std::int32_t authenticationCodeTypeFlashCall::ID;
+
+void authenticationCodeTypeFlashCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authenticationCodeTypeFlashCall");
+ s.store_field("pattern", pattern_);
+ s.store_class_end();
+ }
+}
+
+authenticationCodeTypeMissedCall::authenticationCodeTypeMissedCall()
+ : phone_number_prefix_()
+ , length_()
+{}
+
+authenticationCodeTypeMissedCall::authenticationCodeTypeMissedCall(string const &phone_number_prefix_, int32 length_)
+ : phone_number_prefix_(phone_number_prefix_)
+ , length_(length_)
+{}
+
+const std::int32_t authenticationCodeTypeMissedCall::ID;
+
+void authenticationCodeTypeMissedCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authenticationCodeTypeMissedCall");
+ s.store_field("phone_number_prefix", phone_number_prefix_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+authorizationStateWaitTdlibParameters::authorizationStateWaitTdlibParameters() {
+}
+
+const std::int32_t authorizationStateWaitTdlibParameters::ID;
+
+void authorizationStateWaitTdlibParameters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateWaitTdlibParameters");
+ s.store_class_end();
+ }
+}
+
+authorizationStateWaitPhoneNumber::authorizationStateWaitPhoneNumber() {
+}
+
+const std::int32_t authorizationStateWaitPhoneNumber::ID;
+
+void authorizationStateWaitPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateWaitPhoneNumber");
+ s.store_class_end();
+ }
+}
+
+authorizationStateWaitEmailAddress::authorizationStateWaitEmailAddress()
+ : allow_apple_id_()
+ , allow_google_id_()
+{}
+
+authorizationStateWaitEmailAddress::authorizationStateWaitEmailAddress(bool allow_apple_id_, bool allow_google_id_)
+ : allow_apple_id_(allow_apple_id_)
+ , allow_google_id_(allow_google_id_)
+{}
+
+const std::int32_t authorizationStateWaitEmailAddress::ID;
+
+void authorizationStateWaitEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateWaitEmailAddress");
+ s.store_field("allow_apple_id", allow_apple_id_);
+ s.store_field("allow_google_id", allow_google_id_);
+ s.store_class_end();
+ }
+}
+
+authorizationStateWaitEmailCode::authorizationStateWaitEmailCode()
+ : allow_apple_id_()
+ , allow_google_id_()
+ , code_info_()
+ , next_phone_number_authorization_date_()
+{}
+
+authorizationStateWaitEmailCode::authorizationStateWaitEmailCode(bool allow_apple_id_, bool allow_google_id_, object_ptr<emailAddressAuthenticationCodeInfo> &&code_info_, int32 next_phone_number_authorization_date_)
+ : allow_apple_id_(allow_apple_id_)
+ , allow_google_id_(allow_google_id_)
+ , code_info_(std::move(code_info_))
+ , next_phone_number_authorization_date_(next_phone_number_authorization_date_)
+{}
+
+const std::int32_t authorizationStateWaitEmailCode::ID;
+
+void authorizationStateWaitEmailCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateWaitEmailCode");
+ s.store_field("allow_apple_id", allow_apple_id_);
+ s.store_field("allow_google_id", allow_google_id_);
+ s.store_object_field("code_info", static_cast<const BaseObject *>(code_info_.get()));
+ s.store_field("next_phone_number_authorization_date", next_phone_number_authorization_date_);
+ s.store_class_end();
+ }
+}
+
+authorizationStateWaitCode::authorizationStateWaitCode()
+ : code_info_()
+{}
+
+authorizationStateWaitCode::authorizationStateWaitCode(object_ptr<authenticationCodeInfo> &&code_info_)
+ : code_info_(std::move(code_info_))
+{}
+
+const std::int32_t authorizationStateWaitCode::ID;
+
+void authorizationStateWaitCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateWaitCode");
+ s.store_object_field("code_info", static_cast<const BaseObject *>(code_info_.get()));
+ s.store_class_end();
+ }
+}
+
+authorizationStateWaitOtherDeviceConfirmation::authorizationStateWaitOtherDeviceConfirmation()
+ : link_()
+{}
+
+authorizationStateWaitOtherDeviceConfirmation::authorizationStateWaitOtherDeviceConfirmation(string const &link_)
+ : link_(link_)
+{}
+
+const std::int32_t authorizationStateWaitOtherDeviceConfirmation::ID;
+
+void authorizationStateWaitOtherDeviceConfirmation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateWaitOtherDeviceConfirmation");
+ s.store_field("link", link_);
+ s.store_class_end();
+ }
+}
+
+authorizationStateWaitRegistration::authorizationStateWaitRegistration()
+ : terms_of_service_()
+{}
+
+authorizationStateWaitRegistration::authorizationStateWaitRegistration(object_ptr<termsOfService> &&terms_of_service_)
+ : terms_of_service_(std::move(terms_of_service_))
+{}
+
+const std::int32_t authorizationStateWaitRegistration::ID;
+
+void authorizationStateWaitRegistration::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateWaitRegistration");
+ s.store_object_field("terms_of_service", static_cast<const BaseObject *>(terms_of_service_.get()));
+ s.store_class_end();
+ }
+}
+
+authorizationStateWaitPassword::authorizationStateWaitPassword()
+ : password_hint_()
+ , has_recovery_email_address_()
+ , recovery_email_address_pattern_()
+{}
+
+authorizationStateWaitPassword::authorizationStateWaitPassword(string const &password_hint_, bool has_recovery_email_address_, string const &recovery_email_address_pattern_)
+ : password_hint_(password_hint_)
+ , has_recovery_email_address_(has_recovery_email_address_)
+ , recovery_email_address_pattern_(recovery_email_address_pattern_)
+{}
+
+const std::int32_t authorizationStateWaitPassword::ID;
+
+void authorizationStateWaitPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateWaitPassword");
+ s.store_field("password_hint", password_hint_);
+ s.store_field("has_recovery_email_address", has_recovery_email_address_);
+ s.store_field("recovery_email_address_pattern", recovery_email_address_pattern_);
+ s.store_class_end();
+ }
+}
+
+authorizationStateReady::authorizationStateReady() {
+}
+
+const std::int32_t authorizationStateReady::ID;
+
+void authorizationStateReady::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateReady");
+ s.store_class_end();
+ }
+}
+
+authorizationStateLoggingOut::authorizationStateLoggingOut() {
+}
+
+const std::int32_t authorizationStateLoggingOut::ID;
+
+void authorizationStateLoggingOut::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateLoggingOut");
+ s.store_class_end();
+ }
+}
+
+authorizationStateClosing::authorizationStateClosing() {
+}
+
+const std::int32_t authorizationStateClosing::ID;
+
+void authorizationStateClosing::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateClosing");
+ s.store_class_end();
+ }
+}
+
+authorizationStateClosed::authorizationStateClosed() {
+}
+
+const std::int32_t authorizationStateClosed::ID;
+
+void authorizationStateClosed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorizationStateClosed");
+ s.store_class_end();
+ }
+}
+
+autoDownloadSettings::autoDownloadSettings()
+ : is_auto_download_enabled_()
+ , max_photo_file_size_()
+ , max_video_file_size_()
+ , max_other_file_size_()
+ , video_upload_bitrate_()
+ , preload_large_videos_()
+ , preload_next_audio_()
+ , use_less_data_for_calls_()
+{}
+
+autoDownloadSettings::autoDownloadSettings(bool is_auto_download_enabled_, int32 max_photo_file_size_, int53 max_video_file_size_, int53 max_other_file_size_, int32 video_upload_bitrate_, bool preload_large_videos_, bool preload_next_audio_, bool use_less_data_for_calls_)
+ : is_auto_download_enabled_(is_auto_download_enabled_)
+ , max_photo_file_size_(max_photo_file_size_)
+ , max_video_file_size_(max_video_file_size_)
+ , max_other_file_size_(max_other_file_size_)
+ , video_upload_bitrate_(video_upload_bitrate_)
+ , preload_large_videos_(preload_large_videos_)
+ , preload_next_audio_(preload_next_audio_)
+ , use_less_data_for_calls_(use_less_data_for_calls_)
+{}
+
+const std::int32_t autoDownloadSettings::ID;
+
+void autoDownloadSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "autoDownloadSettings");
+ s.store_field("is_auto_download_enabled", is_auto_download_enabled_);
+ s.store_field("max_photo_file_size", max_photo_file_size_);
+ s.store_field("max_video_file_size", max_video_file_size_);
+ s.store_field("max_other_file_size", max_other_file_size_);
+ s.store_field("video_upload_bitrate", video_upload_bitrate_);
+ s.store_field("preload_large_videos", preload_large_videos_);
+ s.store_field("preload_next_audio", preload_next_audio_);
+ s.store_field("use_less_data_for_calls", use_less_data_for_calls_);
+ s.store_class_end();
+ }
+}
+
+autoDownloadSettingsPresets::autoDownloadSettingsPresets()
+ : low_()
+ , medium_()
+ , high_()
+{}
+
+autoDownloadSettingsPresets::autoDownloadSettingsPresets(object_ptr<autoDownloadSettings> &&low_, object_ptr<autoDownloadSettings> &&medium_, object_ptr<autoDownloadSettings> &&high_)
+ : low_(std::move(low_))
+ , medium_(std::move(medium_))
+ , high_(std::move(high_))
+{}
+
+const std::int32_t autoDownloadSettingsPresets::ID;
+
+void autoDownloadSettingsPresets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "autoDownloadSettingsPresets");
+ s.store_object_field("low", static_cast<const BaseObject *>(low_.get()));
+ s.store_object_field("medium", static_cast<const BaseObject *>(medium_.get()));
+ s.store_object_field("high", static_cast<const BaseObject *>(high_.get()));
+ s.store_class_end();
+ }
+}
+
+availableReaction::availableReaction()
+ : type_()
+ , needs_premium_()
+{}
+
+availableReaction::availableReaction(object_ptr<ReactionType> &&type_, bool needs_premium_)
+ : type_(std::move(type_))
+ , needs_premium_(needs_premium_)
+{}
+
+const std::int32_t availableReaction::ID;
+
+void availableReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "availableReaction");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("needs_premium", needs_premium_);
+ s.store_class_end();
+ }
+}
+
+availableReactions::availableReactions()
+ : top_reactions_()
+ , recent_reactions_()
+ , popular_reactions_()
+ , allow_custom_emoji_()
+{}
+
+availableReactions::availableReactions(array<object_ptr<availableReaction>> &&top_reactions_, array<object_ptr<availableReaction>> &&recent_reactions_, array<object_ptr<availableReaction>> &&popular_reactions_, bool allow_custom_emoji_)
+ : top_reactions_(std::move(top_reactions_))
+ , recent_reactions_(std::move(recent_reactions_))
+ , popular_reactions_(std::move(popular_reactions_))
+ , allow_custom_emoji_(allow_custom_emoji_)
+{}
+
+const std::int32_t availableReactions::ID;
+
+void availableReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "availableReactions");
+ { s.store_vector_begin("top_reactions", top_reactions_.size()); for (const auto &_value : top_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("recent_reactions", recent_reactions_.size()); for (const auto &_value : recent_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("popular_reactions", popular_reactions_.size()); for (const auto &_value : popular_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("allow_custom_emoji", allow_custom_emoji_);
+ s.store_class_end();
+ }
+}
+
+background::background()
+ : id_()
+ , is_default_()
+ , is_dark_()
+ , name_()
+ , document_()
+ , type_()
+{}
+
+background::background(int64 id_, bool is_default_, bool is_dark_, string const &name_, object_ptr<document> &&document_, object_ptr<BackgroundType> &&type_)
+ : id_(id_)
+ , is_default_(is_default_)
+ , is_dark_(is_dark_)
+ , name_(name_)
+ , document_(std::move(document_))
+ , type_(std::move(type_))
+{}
+
+const std::int32_t background::ID;
+
+void background::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "background");
+ s.store_field("id", id_);
+ s.store_field("is_default", is_default_);
+ s.store_field("is_dark", is_dark_);
+ s.store_field("name", name_);
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+backgroundFillSolid::backgroundFillSolid()
+ : color_()
+{}
+
+backgroundFillSolid::backgroundFillSolid(int32 color_)
+ : color_(color_)
+{}
+
+const std::int32_t backgroundFillSolid::ID;
+
+void backgroundFillSolid::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "backgroundFillSolid");
+ s.store_field("color", color_);
+ s.store_class_end();
+ }
+}
+
+backgroundFillGradient::backgroundFillGradient()
+ : top_color_()
+ , bottom_color_()
+ , rotation_angle_()
+{}
+
+backgroundFillGradient::backgroundFillGradient(int32 top_color_, int32 bottom_color_, int32 rotation_angle_)
+ : top_color_(top_color_)
+ , bottom_color_(bottom_color_)
+ , rotation_angle_(rotation_angle_)
+{}
+
+const std::int32_t backgroundFillGradient::ID;
+
+void backgroundFillGradient::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "backgroundFillGradient");
+ s.store_field("top_color", top_color_);
+ s.store_field("bottom_color", bottom_color_);
+ s.store_field("rotation_angle", rotation_angle_);
+ s.store_class_end();
+ }
+}
+
+backgroundFillFreeformGradient::backgroundFillFreeformGradient()
+ : colors_()
+{}
+
+backgroundFillFreeformGradient::backgroundFillFreeformGradient(array<int32> &&colors_)
+ : colors_(std::move(colors_))
+{}
+
+const std::int32_t backgroundFillFreeformGradient::ID;
+
+void backgroundFillFreeformGradient::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "backgroundFillFreeformGradient");
+ { s.store_vector_begin("colors", colors_.size()); for (const auto &_value : colors_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+backgroundTypeWallpaper::backgroundTypeWallpaper()
+ : is_blurred_()
+ , is_moving_()
+{}
+
+backgroundTypeWallpaper::backgroundTypeWallpaper(bool is_blurred_, bool is_moving_)
+ : is_blurred_(is_blurred_)
+ , is_moving_(is_moving_)
+{}
+
+const std::int32_t backgroundTypeWallpaper::ID;
+
+void backgroundTypeWallpaper::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "backgroundTypeWallpaper");
+ s.store_field("is_blurred", is_blurred_);
+ s.store_field("is_moving", is_moving_);
+ s.store_class_end();
+ }
+}
+
+backgroundTypePattern::backgroundTypePattern()
+ : fill_()
+ , intensity_()
+ , is_inverted_()
+ , is_moving_()
+{}
+
+backgroundTypePattern::backgroundTypePattern(object_ptr<BackgroundFill> &&fill_, int32 intensity_, bool is_inverted_, bool is_moving_)
+ : fill_(std::move(fill_))
+ , intensity_(intensity_)
+ , is_inverted_(is_inverted_)
+ , is_moving_(is_moving_)
+{}
+
+const std::int32_t backgroundTypePattern::ID;
+
+void backgroundTypePattern::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "backgroundTypePattern");
+ s.store_object_field("fill", static_cast<const BaseObject *>(fill_.get()));
+ s.store_field("intensity", intensity_);
+ s.store_field("is_inverted", is_inverted_);
+ s.store_field("is_moving", is_moving_);
+ s.store_class_end();
+ }
+}
+
+backgroundTypeFill::backgroundTypeFill()
+ : fill_()
+{}
+
+backgroundTypeFill::backgroundTypeFill(object_ptr<BackgroundFill> &&fill_)
+ : fill_(std::move(fill_))
+{}
+
+const std::int32_t backgroundTypeFill::ID;
+
+void backgroundTypeFill::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "backgroundTypeFill");
+ s.store_object_field("fill", static_cast<const BaseObject *>(fill_.get()));
+ s.store_class_end();
+ }
+}
+
+backgrounds::backgrounds()
+ : backgrounds_()
+{}
+
+backgrounds::backgrounds(array<object_ptr<background>> &&backgrounds_)
+ : backgrounds_(std::move(backgrounds_))
+{}
+
+const std::int32_t backgrounds::ID;
+
+void backgrounds::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "backgrounds");
+ { s.store_vector_begin("backgrounds", backgrounds_.size()); for (const auto &_value : backgrounds_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+bankCardActionOpenUrl::bankCardActionOpenUrl()
+ : text_()
+ , url_()
+{}
+
+bankCardActionOpenUrl::bankCardActionOpenUrl(string const &text_, string const &url_)
+ : text_(text_)
+ , url_(url_)
+{}
+
+const std::int32_t bankCardActionOpenUrl::ID;
+
+void bankCardActionOpenUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bankCardActionOpenUrl");
+ s.store_field("text", text_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+bankCardInfo::bankCardInfo()
+ : title_()
+ , actions_()
+{}
+
+bankCardInfo::bankCardInfo(string const &title_, array<object_ptr<bankCardActionOpenUrl>> &&actions_)
+ : title_(title_)
+ , actions_(std::move(actions_))
+{}
+
+const std::int32_t bankCardInfo::ID;
+
+void bankCardInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bankCardInfo");
+ s.store_field("title", title_);
+ { s.store_vector_begin("actions", actions_.size()); for (const auto &_value : actions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+basicGroup::basicGroup()
+ : id_()
+ , member_count_()
+ , status_()
+ , is_active_()
+ , upgraded_to_supergroup_id_()
+{}
+
+basicGroup::basicGroup(int53 id_, int32 member_count_, object_ptr<ChatMemberStatus> &&status_, bool is_active_, int53 upgraded_to_supergroup_id_)
+ : id_(id_)
+ , member_count_(member_count_)
+ , status_(std::move(status_))
+ , is_active_(is_active_)
+ , upgraded_to_supergroup_id_(upgraded_to_supergroup_id_)
+{}
+
+const std::int32_t basicGroup::ID;
+
+void basicGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "basicGroup");
+ s.store_field("id", id_);
+ s.store_field("member_count", member_count_);
+ s.store_object_field("status", static_cast<const BaseObject *>(status_.get()));
+ s.store_field("is_active", is_active_);
+ s.store_field("upgraded_to_supergroup_id", upgraded_to_supergroup_id_);
+ s.store_class_end();
+ }
+}
+
+basicGroupFullInfo::basicGroupFullInfo()
+ : photo_()
+ , description_()
+ , creator_user_id_()
+ , members_()
+ , invite_link_()
+ , bot_commands_()
+{}
+
+basicGroupFullInfo::basicGroupFullInfo(object_ptr<chatPhoto> &&photo_, string const &description_, int53 creator_user_id_, array<object_ptr<chatMember>> &&members_, object_ptr<chatInviteLink> &&invite_link_, array<object_ptr<botCommands>> &&bot_commands_)
+ : photo_(std::move(photo_))
+ , description_(description_)
+ , creator_user_id_(creator_user_id_)
+ , members_(std::move(members_))
+ , invite_link_(std::move(invite_link_))
+ , bot_commands_(std::move(bot_commands_))
+{}
+
+const std::int32_t basicGroupFullInfo::ID;
+
+void basicGroupFullInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "basicGroupFullInfo");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("description", description_);
+ s.store_field("creator_user_id", creator_user_id_);
+ { s.store_vector_begin("members", members_.size()); for (const auto &_value : members_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get()));
+ { s.store_vector_begin("bot_commands", bot_commands_.size()); for (const auto &_value : bot_commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+botCommand::botCommand()
+ : command_()
+ , description_()
+{}
+
+botCommand::botCommand(string const &command_, string const &description_)
+ : command_(command_)
+ , description_(description_)
+{}
+
+const std::int32_t botCommand::ID;
+
+void botCommand::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommand");
+ s.store_field("command", command_);
+ s.store_field("description", description_);
+ s.store_class_end();
+ }
+}
+
+botCommandScopeDefault::botCommandScopeDefault() {
+}
+
+const std::int32_t botCommandScopeDefault::ID;
+
+void botCommandScopeDefault::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeDefault");
+ s.store_class_end();
+ }
+}
+
+botCommandScopeAllPrivateChats::botCommandScopeAllPrivateChats() {
+}
+
+const std::int32_t botCommandScopeAllPrivateChats::ID;
+
+void botCommandScopeAllPrivateChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeAllPrivateChats");
+ s.store_class_end();
+ }
+}
+
+botCommandScopeAllGroupChats::botCommandScopeAllGroupChats() {
+}
+
+const std::int32_t botCommandScopeAllGroupChats::ID;
+
+void botCommandScopeAllGroupChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeAllGroupChats");
+ s.store_class_end();
+ }
+}
+
+botCommandScopeAllChatAdministrators::botCommandScopeAllChatAdministrators() {
+}
+
+const std::int32_t botCommandScopeAllChatAdministrators::ID;
+
+void botCommandScopeAllChatAdministrators::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeAllChatAdministrators");
+ s.store_class_end();
+ }
+}
+
+botCommandScopeChat::botCommandScopeChat()
+ : chat_id_()
+{}
+
+botCommandScopeChat::botCommandScopeChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t botCommandScopeChat::ID;
+
+void botCommandScopeChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+botCommandScopeChatAdministrators::botCommandScopeChatAdministrators()
+ : chat_id_()
+{}
+
+botCommandScopeChatAdministrators::botCommandScopeChatAdministrators(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t botCommandScopeChatAdministrators::ID;
+
+void botCommandScopeChatAdministrators::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeChatAdministrators");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+botCommandScopeChatMember::botCommandScopeChatMember()
+ : chat_id_()
+ , user_id_()
+{}
+
+botCommandScopeChatMember::botCommandScopeChatMember(int53 chat_id_, int53 user_id_)
+ : chat_id_(chat_id_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t botCommandScopeChatMember::ID;
+
+void botCommandScopeChatMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeChatMember");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+botCommands::botCommands()
+ : bot_user_id_()
+ , commands_()
+{}
+
+botCommands::botCommands(int53 bot_user_id_, array<object_ptr<botCommand>> &&commands_)
+ : bot_user_id_(bot_user_id_)
+ , commands_(std::move(commands_))
+{}
+
+const std::int32_t botCommands::ID;
+
+void botCommands::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommands");
+ s.store_field("bot_user_id", bot_user_id_);
+ { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+botInfo::botInfo()
+ : share_text_()
+ , description_()
+ , photo_()
+ , animation_()
+ , menu_button_()
+ , commands_()
+ , default_group_administrator_rights_()
+ , default_channel_administrator_rights_()
+{}
+
+botInfo::botInfo(string const &share_text_, string const &description_, object_ptr<photo> &&photo_, object_ptr<animation> &&animation_, object_ptr<botMenuButton> &&menu_button_, array<object_ptr<botCommand>> &&commands_, object_ptr<chatAdministratorRights> &&default_group_administrator_rights_, object_ptr<chatAdministratorRights> &&default_channel_administrator_rights_)
+ : share_text_(share_text_)
+ , description_(description_)
+ , photo_(std::move(photo_))
+ , animation_(std::move(animation_))
+ , menu_button_(std::move(menu_button_))
+ , commands_(std::move(commands_))
+ , default_group_administrator_rights_(std::move(default_group_administrator_rights_))
+ , default_channel_administrator_rights_(std::move(default_channel_administrator_rights_))
+{}
+
+const std::int32_t botInfo::ID;
+
+void botInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botInfo");
+ s.store_field("share_text", share_text_);
+ s.store_field("description", description_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_object_field("menu_button", static_cast<const BaseObject *>(menu_button_.get()));
+ { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("default_group_administrator_rights", static_cast<const BaseObject *>(default_group_administrator_rights_.get()));
+ s.store_object_field("default_channel_administrator_rights", static_cast<const BaseObject *>(default_channel_administrator_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+botMenuButton::botMenuButton()
+ : text_()
+ , url_()
+{}
+
+botMenuButton::botMenuButton(string const &text_, string const &url_)
+ : text_(text_)
+ , url_(url_)
+{}
+
+const std::int32_t botMenuButton::ID;
+
+void botMenuButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botMenuButton");
+ s.store_field("text", text_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+call::call()
+ : id_()
+ , user_id_()
+ , is_outgoing_()
+ , is_video_()
+ , state_()
+{}
+
+call::call(int32 id_, int53 user_id_, bool is_outgoing_, bool is_video_, object_ptr<CallState> &&state_)
+ : id_(id_)
+ , user_id_(user_id_)
+ , is_outgoing_(is_outgoing_)
+ , is_video_(is_video_)
+ , state_(std::move(state_))
+{}
+
+const std::int32_t call::ID;
+
+void call::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "call");
+ s.store_field("id", id_);
+ s.store_field("user_id", user_id_);
+ s.store_field("is_outgoing", is_outgoing_);
+ s.store_field("is_video", is_video_);
+ s.store_object_field("state", static_cast<const BaseObject *>(state_.get()));
+ s.store_class_end();
+ }
+}
+
+callDiscardReasonEmpty::callDiscardReasonEmpty() {
+}
+
+const std::int32_t callDiscardReasonEmpty::ID;
+
+void callDiscardReasonEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callDiscardReasonEmpty");
+ s.store_class_end();
+ }
+}
+
+callDiscardReasonMissed::callDiscardReasonMissed() {
+}
+
+const std::int32_t callDiscardReasonMissed::ID;
+
+void callDiscardReasonMissed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callDiscardReasonMissed");
+ s.store_class_end();
+ }
+}
+
+callDiscardReasonDeclined::callDiscardReasonDeclined() {
+}
+
+const std::int32_t callDiscardReasonDeclined::ID;
+
+void callDiscardReasonDeclined::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callDiscardReasonDeclined");
+ s.store_class_end();
+ }
+}
+
+callDiscardReasonDisconnected::callDiscardReasonDisconnected() {
+}
+
+const std::int32_t callDiscardReasonDisconnected::ID;
+
+void callDiscardReasonDisconnected::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callDiscardReasonDisconnected");
+ s.store_class_end();
+ }
+}
+
+callDiscardReasonHungUp::callDiscardReasonHungUp() {
+}
+
+const std::int32_t callDiscardReasonHungUp::ID;
+
+void callDiscardReasonHungUp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callDiscardReasonHungUp");
+ s.store_class_end();
+ }
+}
+
+callId::callId()
+ : id_()
+{}
+
+callId::callId(int32 id_)
+ : id_(id_)
+{}
+
+const std::int32_t callId::ID;
+
+void callId::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callId");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+callProblemEcho::callProblemEcho() {
+}
+
+const std::int32_t callProblemEcho::ID;
+
+void callProblemEcho::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callProblemEcho");
+ s.store_class_end();
+ }
+}
+
+callProblemNoise::callProblemNoise() {
+}
+
+const std::int32_t callProblemNoise::ID;
+
+void callProblemNoise::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callProblemNoise");
+ s.store_class_end();
+ }
+}
+
+callProblemInterruptions::callProblemInterruptions() {
+}
+
+const std::int32_t callProblemInterruptions::ID;
+
+void callProblemInterruptions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callProblemInterruptions");
+ s.store_class_end();
+ }
+}
+
+callProblemDistortedSpeech::callProblemDistortedSpeech() {
+}
+
+const std::int32_t callProblemDistortedSpeech::ID;
+
+void callProblemDistortedSpeech::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callProblemDistortedSpeech");
+ s.store_class_end();
+ }
+}
+
+callProblemSilentLocal::callProblemSilentLocal() {
+}
+
+const std::int32_t callProblemSilentLocal::ID;
+
+void callProblemSilentLocal::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callProblemSilentLocal");
+ s.store_class_end();
+ }
+}
+
+callProblemSilentRemote::callProblemSilentRemote() {
+}
+
+const std::int32_t callProblemSilentRemote::ID;
+
+void callProblemSilentRemote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callProblemSilentRemote");
+ s.store_class_end();
+ }
+}
+
+callProblemDropped::callProblemDropped() {
+}
+
+const std::int32_t callProblemDropped::ID;
+
+void callProblemDropped::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callProblemDropped");
+ s.store_class_end();
+ }
+}
+
+callProblemDistortedVideo::callProblemDistortedVideo() {
+}
+
+const std::int32_t callProblemDistortedVideo::ID;
+
+void callProblemDistortedVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callProblemDistortedVideo");
+ s.store_class_end();
+ }
+}
+
+callProblemPixelatedVideo::callProblemPixelatedVideo() {
+}
+
+const std::int32_t callProblemPixelatedVideo::ID;
+
+void callProblemPixelatedVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callProblemPixelatedVideo");
+ s.store_class_end();
+ }
+}
+
+callProtocol::callProtocol()
+ : udp_p2p_()
+ , udp_reflector_()
+ , min_layer_()
+ , max_layer_()
+ , library_versions_()
+{}
+
+callProtocol::callProtocol(bool udp_p2p_, bool udp_reflector_, int32 min_layer_, int32 max_layer_, array<string> &&library_versions_)
+ : udp_p2p_(udp_p2p_)
+ , udp_reflector_(udp_reflector_)
+ , min_layer_(min_layer_)
+ , max_layer_(max_layer_)
+ , library_versions_(std::move(library_versions_))
+{}
+
+const std::int32_t callProtocol::ID;
+
+void callProtocol::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callProtocol");
+ s.store_field("udp_p2p", udp_p2p_);
+ s.store_field("udp_reflector", udp_reflector_);
+ s.store_field("min_layer", min_layer_);
+ s.store_field("max_layer", max_layer_);
+ { s.store_vector_begin("library_versions", library_versions_.size()); for (const auto &_value : library_versions_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+callServer::callServer()
+ : id_()
+ , ip_address_()
+ , ipv6_address_()
+ , port_()
+ , type_()
+{}
+
+callServer::callServer(int64 id_, string const &ip_address_, string const &ipv6_address_, int32 port_, object_ptr<CallServerType> &&type_)
+ : id_(id_)
+ , ip_address_(ip_address_)
+ , ipv6_address_(ipv6_address_)
+ , port_(port_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t callServer::ID;
+
+void callServer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callServer");
+ s.store_field("id", id_);
+ s.store_field("ip_address", ip_address_);
+ s.store_field("ipv6_address", ipv6_address_);
+ s.store_field("port", port_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+callServerTypeTelegramReflector::callServerTypeTelegramReflector()
+ : peer_tag_()
+ , is_tcp_()
+{}
+
+callServerTypeTelegramReflector::callServerTypeTelegramReflector(bytes const &peer_tag_, bool is_tcp_)
+ : peer_tag_(std::move(peer_tag_))
+ , is_tcp_(is_tcp_)
+{}
+
+const std::int32_t callServerTypeTelegramReflector::ID;
+
+void callServerTypeTelegramReflector::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callServerTypeTelegramReflector");
+ s.store_bytes_field("peer_tag", peer_tag_);
+ s.store_field("is_tcp", is_tcp_);
+ s.store_class_end();
+ }
+}
+
+callServerTypeWebrtc::callServerTypeWebrtc()
+ : username_()
+ , password_()
+ , supports_turn_()
+ , supports_stun_()
+{}
+
+callServerTypeWebrtc::callServerTypeWebrtc(string const &username_, string const &password_, bool supports_turn_, bool supports_stun_)
+ : username_(username_)
+ , password_(password_)
+ , supports_turn_(supports_turn_)
+ , supports_stun_(supports_stun_)
+{}
+
+const std::int32_t callServerTypeWebrtc::ID;
+
+void callServerTypeWebrtc::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callServerTypeWebrtc");
+ s.store_field("username", username_);
+ s.store_field("password", password_);
+ s.store_field("supports_turn", supports_turn_);
+ s.store_field("supports_stun", supports_stun_);
+ s.store_class_end();
+ }
+}
+
+callStatePending::callStatePending()
+ : is_created_()
+ , is_received_()
+{}
+
+callStatePending::callStatePending(bool is_created_, bool is_received_)
+ : is_created_(is_created_)
+ , is_received_(is_received_)
+{}
+
+const std::int32_t callStatePending::ID;
+
+void callStatePending::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callStatePending");
+ s.store_field("is_created", is_created_);
+ s.store_field("is_received", is_received_);
+ s.store_class_end();
+ }
+}
+
+callStateExchangingKeys::callStateExchangingKeys() {
+}
+
+const std::int32_t callStateExchangingKeys::ID;
+
+void callStateExchangingKeys::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callStateExchangingKeys");
+ s.store_class_end();
+ }
+}
+
+callStateReady::callStateReady()
+ : protocol_()
+ , servers_()
+ , config_()
+ , encryption_key_()
+ , emojis_()
+ , allow_p2p_()
+{}
+
+callStateReady::callStateReady(object_ptr<callProtocol> &&protocol_, array<object_ptr<callServer>> &&servers_, string const &config_, bytes const &encryption_key_, array<string> &&emojis_, bool allow_p2p_)
+ : protocol_(std::move(protocol_))
+ , servers_(std::move(servers_))
+ , config_(config_)
+ , encryption_key_(std::move(encryption_key_))
+ , emojis_(std::move(emojis_))
+ , allow_p2p_(allow_p2p_)
+{}
+
+const std::int32_t callStateReady::ID;
+
+void callStateReady::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callStateReady");
+ s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get()));
+ { s.store_vector_begin("servers", servers_.size()); for (const auto &_value : servers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("config", config_);
+ s.store_bytes_field("encryption_key", encryption_key_);
+ { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("allow_p2p", allow_p2p_);
+ s.store_class_end();
+ }
+}
+
+callStateHangingUp::callStateHangingUp() {
+}
+
+const std::int32_t callStateHangingUp::ID;
+
+void callStateHangingUp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callStateHangingUp");
+ s.store_class_end();
+ }
+}
+
+callStateDiscarded::callStateDiscarded()
+ : reason_()
+ , need_rating_()
+ , need_debug_information_()
+ , need_log_()
+{}
+
+callStateDiscarded::callStateDiscarded(object_ptr<CallDiscardReason> &&reason_, bool need_rating_, bool need_debug_information_, bool need_log_)
+ : reason_(std::move(reason_))
+ , need_rating_(need_rating_)
+ , need_debug_information_(need_debug_information_)
+ , need_log_(need_log_)
+{}
+
+const std::int32_t callStateDiscarded::ID;
+
+void callStateDiscarded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callStateDiscarded");
+ s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get()));
+ s.store_field("need_rating", need_rating_);
+ s.store_field("need_debug_information", need_debug_information_);
+ s.store_field("need_log", need_log_);
+ s.store_class_end();
+ }
+}
+
+callStateError::callStateError()
+ : error_()
+{}
+
+callStateError::callStateError(object_ptr<error> &&error_)
+ : error_(std::move(error_))
+{}
+
+const std::int32_t callStateError::ID;
+
+void callStateError::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callStateError");
+ s.store_object_field("error", static_cast<const BaseObject *>(error_.get()));
+ s.store_class_end();
+ }
+}
+
+callbackQueryAnswer::callbackQueryAnswer()
+ : text_()
+ , show_alert_()
+ , url_()
+{}
+
+callbackQueryAnswer::callbackQueryAnswer(string const &text_, bool show_alert_, string const &url_)
+ : text_(text_)
+ , show_alert_(show_alert_)
+ , url_(url_)
+{}
+
+const std::int32_t callbackQueryAnswer::ID;
+
+void callbackQueryAnswer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callbackQueryAnswer");
+ s.store_field("text", text_);
+ s.store_field("show_alert", show_alert_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+callbackQueryPayloadData::callbackQueryPayloadData()
+ : data_()
+{}
+
+callbackQueryPayloadData::callbackQueryPayloadData(bytes const &data_)
+ : data_(std::move(data_))
+{}
+
+const std::int32_t callbackQueryPayloadData::ID;
+
+void callbackQueryPayloadData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callbackQueryPayloadData");
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+callbackQueryPayloadDataWithPassword::callbackQueryPayloadDataWithPassword()
+ : password_()
+ , data_()
+{}
+
+callbackQueryPayloadDataWithPassword::callbackQueryPayloadDataWithPassword(string const &password_, bytes const &data_)
+ : password_(password_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t callbackQueryPayloadDataWithPassword::ID;
+
+void callbackQueryPayloadDataWithPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callbackQueryPayloadDataWithPassword");
+ s.store_field("password", password_);
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+callbackQueryPayloadGame::callbackQueryPayloadGame()
+ : game_short_name_()
+{}
+
+callbackQueryPayloadGame::callbackQueryPayloadGame(string const &game_short_name_)
+ : game_short_name_(game_short_name_)
+{}
+
+const std::int32_t callbackQueryPayloadGame::ID;
+
+void callbackQueryPayloadGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "callbackQueryPayloadGame");
+ s.store_field("game_short_name", game_short_name_);
+ s.store_class_end();
+ }
+}
+
+canTransferOwnershipResultOk::canTransferOwnershipResultOk() {
+}
+
+const std::int32_t canTransferOwnershipResultOk::ID;
+
+void canTransferOwnershipResultOk::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "canTransferOwnershipResultOk");
+ s.store_class_end();
+ }
+}
+
+canTransferOwnershipResultPasswordNeeded::canTransferOwnershipResultPasswordNeeded() {
+}
+
+const std::int32_t canTransferOwnershipResultPasswordNeeded::ID;
+
+void canTransferOwnershipResultPasswordNeeded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "canTransferOwnershipResultPasswordNeeded");
+ s.store_class_end();
+ }
+}
+
+canTransferOwnershipResultPasswordTooFresh::canTransferOwnershipResultPasswordTooFresh()
+ : retry_after_()
+{}
+
+canTransferOwnershipResultPasswordTooFresh::canTransferOwnershipResultPasswordTooFresh(int32 retry_after_)
+ : retry_after_(retry_after_)
+{}
+
+const std::int32_t canTransferOwnershipResultPasswordTooFresh::ID;
+
+void canTransferOwnershipResultPasswordTooFresh::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "canTransferOwnershipResultPasswordTooFresh");
+ s.store_field("retry_after", retry_after_);
+ s.store_class_end();
+ }
+}
+
+canTransferOwnershipResultSessionTooFresh::canTransferOwnershipResultSessionTooFresh()
+ : retry_after_()
+{}
+
+canTransferOwnershipResultSessionTooFresh::canTransferOwnershipResultSessionTooFresh(int32 retry_after_)
+ : retry_after_(retry_after_)
+{}
+
+const std::int32_t canTransferOwnershipResultSessionTooFresh::ID;
+
+void canTransferOwnershipResultSessionTooFresh::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "canTransferOwnershipResultSessionTooFresh");
+ s.store_field("retry_after", retry_after_);
+ s.store_class_end();
+ }
+}
+
+chat::chat()
+ : id_()
+ , type_()
+ , title_()
+ , photo_()
+ , permissions_()
+ , last_message_()
+ , positions_()
+ , message_sender_id_()
+ , has_protected_content_()
+ , is_marked_as_unread_()
+ , is_blocked_()
+ , has_scheduled_messages_()
+ , can_be_deleted_only_for_self_()
+ , can_be_deleted_for_all_users_()
+ , can_be_reported_()
+ , default_disable_notification_()
+ , unread_count_()
+ , last_read_inbox_message_id_()
+ , last_read_outbox_message_id_()
+ , unread_mention_count_()
+ , unread_reaction_count_()
+ , notification_settings_()
+ , available_reactions_()
+ , message_ttl_()
+ , theme_name_()
+ , action_bar_()
+ , video_chat_()
+ , pending_join_requests_()
+ , reply_markup_message_id_()
+ , draft_message_()
+ , client_data_()
+{}
+
+chat::chat(int53 id_, object_ptr<ChatType> &&type_, string const &title_, object_ptr<chatPhotoInfo> &&photo_, object_ptr<chatPermissions> &&permissions_, object_ptr<message> &&last_message_, array<object_ptr<chatPosition>> &&positions_, object_ptr<MessageSender> &&message_sender_id_, bool has_protected_content_, bool is_marked_as_unread_, bool is_blocked_, bool has_scheduled_messages_, bool can_be_deleted_only_for_self_, bool can_be_deleted_for_all_users_, bool can_be_reported_, bool default_disable_notification_, int32 unread_count_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int32 unread_mention_count_, int32 unread_reaction_count_, object_ptr<chatNotificationSettings> &&notification_settings_, object_ptr<ChatAvailableReactions> &&available_reactions_, int32 message_ttl_, string const &theme_name_, object_ptr<ChatActionBar> &&action_bar_, object_ptr<videoChat> &&video_chat_, object_ptr<chatJoinRequestsInfo> &&pending_join_requests_, int53 reply_markup_message_id_, object_ptr<draftMessage> &&draft_message_, string const &client_data_)
+ : id_(id_)
+ , type_(std::move(type_))
+ , title_(title_)
+ , photo_(std::move(photo_))
+ , permissions_(std::move(permissions_))
+ , last_message_(std::move(last_message_))
+ , positions_(std::move(positions_))
+ , message_sender_id_(std::move(message_sender_id_))
+ , has_protected_content_(has_protected_content_)
+ , is_marked_as_unread_(is_marked_as_unread_)
+ , is_blocked_(is_blocked_)
+ , has_scheduled_messages_(has_scheduled_messages_)
+ , can_be_deleted_only_for_self_(can_be_deleted_only_for_self_)
+ , can_be_deleted_for_all_users_(can_be_deleted_for_all_users_)
+ , can_be_reported_(can_be_reported_)
+ , default_disable_notification_(default_disable_notification_)
+ , unread_count_(unread_count_)
+ , last_read_inbox_message_id_(last_read_inbox_message_id_)
+ , last_read_outbox_message_id_(last_read_outbox_message_id_)
+ , unread_mention_count_(unread_mention_count_)
+ , unread_reaction_count_(unread_reaction_count_)
+ , notification_settings_(std::move(notification_settings_))
+ , available_reactions_(std::move(available_reactions_))
+ , message_ttl_(message_ttl_)
+ , theme_name_(theme_name_)
+ , action_bar_(std::move(action_bar_))
+ , video_chat_(std::move(video_chat_))
+ , pending_join_requests_(std::move(pending_join_requests_))
+ , reply_markup_message_id_(reply_markup_message_id_)
+ , draft_message_(std::move(draft_message_))
+ , client_data_(client_data_)
+{}
+
+const std::int32_t chat::ID;
+
+void chat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chat");
+ s.store_field("id", id_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("title", title_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_object_field("permissions", static_cast<const BaseObject *>(permissions_.get()));
+ s.store_object_field("last_message", static_cast<const BaseObject *>(last_message_.get()));
+ { s.store_vector_begin("positions", positions_.size()); for (const auto &_value : positions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("message_sender_id", static_cast<const BaseObject *>(message_sender_id_.get()));
+ s.store_field("has_protected_content", has_protected_content_);
+ s.store_field("is_marked_as_unread", is_marked_as_unread_);
+ s.store_field("is_blocked", is_blocked_);
+ s.store_field("has_scheduled_messages", has_scheduled_messages_);
+ s.store_field("can_be_deleted_only_for_self", can_be_deleted_only_for_self_);
+ s.store_field("can_be_deleted_for_all_users", can_be_deleted_for_all_users_);
+ s.store_field("can_be_reported", can_be_reported_);
+ s.store_field("default_disable_notification", default_disable_notification_);
+ s.store_field("unread_count", unread_count_);
+ s.store_field("last_read_inbox_message_id", last_read_inbox_message_id_);
+ s.store_field("last_read_outbox_message_id", last_read_outbox_message_id_);
+ s.store_field("unread_mention_count", unread_mention_count_);
+ s.store_field("unread_reaction_count", unread_reaction_count_);
+ s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get()));
+ s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get()));
+ s.store_field("message_ttl", message_ttl_);
+ s.store_field("theme_name", theme_name_);
+ s.store_object_field("action_bar", static_cast<const BaseObject *>(action_bar_.get()));
+ s.store_object_field("video_chat", static_cast<const BaseObject *>(video_chat_.get()));
+ s.store_object_field("pending_join_requests", static_cast<const BaseObject *>(pending_join_requests_.get()));
+ s.store_field("reply_markup_message_id", reply_markup_message_id_);
+ s.store_object_field("draft_message", static_cast<const BaseObject *>(draft_message_.get()));
+ s.store_field("client_data", client_data_);
+ s.store_class_end();
+ }
+}
+
+chatActionTyping::chatActionTyping() {
+}
+
+const std::int32_t chatActionTyping::ID;
+
+void chatActionTyping::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionTyping");
+ s.store_class_end();
+ }
+}
+
+chatActionRecordingVideo::chatActionRecordingVideo() {
+}
+
+const std::int32_t chatActionRecordingVideo::ID;
+
+void chatActionRecordingVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionRecordingVideo");
+ s.store_class_end();
+ }
+}
+
+chatActionUploadingVideo::chatActionUploadingVideo()
+ : progress_()
+{}
+
+chatActionUploadingVideo::chatActionUploadingVideo(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t chatActionUploadingVideo::ID;
+
+void chatActionUploadingVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionUploadingVideo");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+chatActionRecordingVoiceNote::chatActionRecordingVoiceNote() {
+}
+
+const std::int32_t chatActionRecordingVoiceNote::ID;
+
+void chatActionRecordingVoiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionRecordingVoiceNote");
+ s.store_class_end();
+ }
+}
+
+chatActionUploadingVoiceNote::chatActionUploadingVoiceNote()
+ : progress_()
+{}
+
+chatActionUploadingVoiceNote::chatActionUploadingVoiceNote(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t chatActionUploadingVoiceNote::ID;
+
+void chatActionUploadingVoiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionUploadingVoiceNote");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+chatActionUploadingPhoto::chatActionUploadingPhoto()
+ : progress_()
+{}
+
+chatActionUploadingPhoto::chatActionUploadingPhoto(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t chatActionUploadingPhoto::ID;
+
+void chatActionUploadingPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionUploadingPhoto");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+chatActionUploadingDocument::chatActionUploadingDocument()
+ : progress_()
+{}
+
+chatActionUploadingDocument::chatActionUploadingDocument(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t chatActionUploadingDocument::ID;
+
+void chatActionUploadingDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionUploadingDocument");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+chatActionChoosingSticker::chatActionChoosingSticker() {
+}
+
+const std::int32_t chatActionChoosingSticker::ID;
+
+void chatActionChoosingSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionChoosingSticker");
+ s.store_class_end();
+ }
+}
+
+chatActionChoosingLocation::chatActionChoosingLocation() {
+}
+
+const std::int32_t chatActionChoosingLocation::ID;
+
+void chatActionChoosingLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionChoosingLocation");
+ s.store_class_end();
+ }
+}
+
+chatActionChoosingContact::chatActionChoosingContact() {
+}
+
+const std::int32_t chatActionChoosingContact::ID;
+
+void chatActionChoosingContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionChoosingContact");
+ s.store_class_end();
+ }
+}
+
+chatActionStartPlayingGame::chatActionStartPlayingGame() {
+}
+
+const std::int32_t chatActionStartPlayingGame::ID;
+
+void chatActionStartPlayingGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionStartPlayingGame");
+ s.store_class_end();
+ }
+}
+
+chatActionRecordingVideoNote::chatActionRecordingVideoNote() {
+}
+
+const std::int32_t chatActionRecordingVideoNote::ID;
+
+void chatActionRecordingVideoNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionRecordingVideoNote");
+ s.store_class_end();
+ }
+}
+
+chatActionUploadingVideoNote::chatActionUploadingVideoNote()
+ : progress_()
+{}
+
+chatActionUploadingVideoNote::chatActionUploadingVideoNote(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t chatActionUploadingVideoNote::ID;
+
+void chatActionUploadingVideoNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionUploadingVideoNote");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+chatActionWatchingAnimations::chatActionWatchingAnimations()
+ : emoji_()
+{}
+
+chatActionWatchingAnimations::chatActionWatchingAnimations(string const &emoji_)
+ : emoji_(emoji_)
+{}
+
+const std::int32_t chatActionWatchingAnimations::ID;
+
+void chatActionWatchingAnimations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionWatchingAnimations");
+ s.store_field("emoji", emoji_);
+ s.store_class_end();
+ }
+}
+
+chatActionCancel::chatActionCancel() {
+}
+
+const std::int32_t chatActionCancel::ID;
+
+void chatActionCancel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionCancel");
+ s.store_class_end();
+ }
+}
+
+chatActionBarReportSpam::chatActionBarReportSpam()
+ : can_unarchive_()
+{}
+
+chatActionBarReportSpam::chatActionBarReportSpam(bool can_unarchive_)
+ : can_unarchive_(can_unarchive_)
+{}
+
+const std::int32_t chatActionBarReportSpam::ID;
+
+void chatActionBarReportSpam::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionBarReportSpam");
+ s.store_field("can_unarchive", can_unarchive_);
+ s.store_class_end();
+ }
+}
+
+chatActionBarReportUnrelatedLocation::chatActionBarReportUnrelatedLocation() {
+}
+
+const std::int32_t chatActionBarReportUnrelatedLocation::ID;
+
+void chatActionBarReportUnrelatedLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionBarReportUnrelatedLocation");
+ s.store_class_end();
+ }
+}
+
+chatActionBarInviteMembers::chatActionBarInviteMembers() {
+}
+
+const std::int32_t chatActionBarInviteMembers::ID;
+
+void chatActionBarInviteMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionBarInviteMembers");
+ s.store_class_end();
+ }
+}
+
+chatActionBarReportAddBlock::chatActionBarReportAddBlock()
+ : can_unarchive_()
+ , distance_()
+{}
+
+chatActionBarReportAddBlock::chatActionBarReportAddBlock(bool can_unarchive_, int32 distance_)
+ : can_unarchive_(can_unarchive_)
+ , distance_(distance_)
+{}
+
+const std::int32_t chatActionBarReportAddBlock::ID;
+
+void chatActionBarReportAddBlock::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionBarReportAddBlock");
+ s.store_field("can_unarchive", can_unarchive_);
+ s.store_field("distance", distance_);
+ s.store_class_end();
+ }
+}
+
+chatActionBarAddContact::chatActionBarAddContact() {
+}
+
+const std::int32_t chatActionBarAddContact::ID;
+
+void chatActionBarAddContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionBarAddContact");
+ s.store_class_end();
+ }
+}
+
+chatActionBarSharePhoneNumber::chatActionBarSharePhoneNumber() {
+}
+
+const std::int32_t chatActionBarSharePhoneNumber::ID;
+
+void chatActionBarSharePhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionBarSharePhoneNumber");
+ s.store_class_end();
+ }
+}
+
+chatActionBarJoinRequest::chatActionBarJoinRequest()
+ : title_()
+ , is_channel_()
+ , request_date_()
+{}
+
+chatActionBarJoinRequest::chatActionBarJoinRequest(string const &title_, bool is_channel_, int32 request_date_)
+ : title_(title_)
+ , is_channel_(is_channel_)
+ , request_date_(request_date_)
+{}
+
+const std::int32_t chatActionBarJoinRequest::ID;
+
+void chatActionBarJoinRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatActionBarJoinRequest");
+ s.store_field("title", title_);
+ s.store_field("is_channel", is_channel_);
+ s.store_field("request_date", request_date_);
+ s.store_class_end();
+ }
+}
+
+chatAdministrator::chatAdministrator()
+ : user_id_()
+ , custom_title_()
+ , is_owner_()
+{}
+
+chatAdministrator::chatAdministrator(int53 user_id_, string const &custom_title_, bool is_owner_)
+ : user_id_(user_id_)
+ , custom_title_(custom_title_)
+ , is_owner_(is_owner_)
+{}
+
+const std::int32_t chatAdministrator::ID;
+
+void chatAdministrator::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatAdministrator");
+ s.store_field("user_id", user_id_);
+ s.store_field("custom_title", custom_title_);
+ s.store_field("is_owner", is_owner_);
+ s.store_class_end();
+ }
+}
+
+chatAdministratorRights::chatAdministratorRights()
+ : can_manage_chat_()
+ , can_change_info_()
+ , can_post_messages_()
+ , can_edit_messages_()
+ , can_delete_messages_()
+ , can_invite_users_()
+ , can_restrict_members_()
+ , can_pin_messages_()
+ , can_manage_topics_()
+ , can_promote_members_()
+ , can_manage_video_chats_()
+ , is_anonymous_()
+{}
+
+chatAdministratorRights::chatAdministratorRights(bool can_manage_chat_, bool can_change_info_, bool can_post_messages_, bool can_edit_messages_, bool can_delete_messages_, bool can_invite_users_, bool can_restrict_members_, bool can_pin_messages_, bool can_manage_topics_, bool can_promote_members_, bool can_manage_video_chats_, bool is_anonymous_)
+ : can_manage_chat_(can_manage_chat_)
+ , can_change_info_(can_change_info_)
+ , can_post_messages_(can_post_messages_)
+ , can_edit_messages_(can_edit_messages_)
+ , can_delete_messages_(can_delete_messages_)
+ , can_invite_users_(can_invite_users_)
+ , can_restrict_members_(can_restrict_members_)
+ , can_pin_messages_(can_pin_messages_)
+ , can_manage_topics_(can_manage_topics_)
+ , can_promote_members_(can_promote_members_)
+ , can_manage_video_chats_(can_manage_video_chats_)
+ , is_anonymous_(is_anonymous_)
+{}
+
+const std::int32_t chatAdministratorRights::ID;
+
+void chatAdministratorRights::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatAdministratorRights");
+ s.store_field("can_manage_chat", can_manage_chat_);
+ s.store_field("can_change_info", can_change_info_);
+ s.store_field("can_post_messages", can_post_messages_);
+ s.store_field("can_edit_messages", can_edit_messages_);
+ s.store_field("can_delete_messages", can_delete_messages_);
+ s.store_field("can_invite_users", can_invite_users_);
+ s.store_field("can_restrict_members", can_restrict_members_);
+ s.store_field("can_pin_messages", can_pin_messages_);
+ s.store_field("can_manage_topics", can_manage_topics_);
+ s.store_field("can_promote_members", can_promote_members_);
+ s.store_field("can_manage_video_chats", can_manage_video_chats_);
+ s.store_field("is_anonymous", is_anonymous_);
+ s.store_class_end();
+ }
+}
+
+chatAdministrators::chatAdministrators()
+ : administrators_()
+{}
+
+chatAdministrators::chatAdministrators(array<object_ptr<chatAdministrator>> &&administrators_)
+ : administrators_(std::move(administrators_))
+{}
+
+const std::int32_t chatAdministrators::ID;
+
+void chatAdministrators::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatAdministrators");
+ { s.store_vector_begin("administrators", administrators_.size()); for (const auto &_value : administrators_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatAvailableReactionsAll::chatAvailableReactionsAll() {
+}
+
+const std::int32_t chatAvailableReactionsAll::ID;
+
+void chatAvailableReactionsAll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatAvailableReactionsAll");
+ s.store_class_end();
+ }
+}
+
+chatAvailableReactionsSome::chatAvailableReactionsSome()
+ : reactions_()
+{}
+
+chatAvailableReactionsSome::chatAvailableReactionsSome(array<object_ptr<ReactionType>> &&reactions_)
+ : reactions_(std::move(reactions_))
+{}
+
+const std::int32_t chatAvailableReactionsSome::ID;
+
+void chatAvailableReactionsSome::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatAvailableReactionsSome");
+ { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatEvent::chatEvent()
+ : id_()
+ , date_()
+ , member_id_()
+ , action_()
+{}
+
+chatEvent::chatEvent(int64 id_, int32 date_, object_ptr<MessageSender> &&member_id_, object_ptr<ChatEventAction> &&action_)
+ : id_(id_)
+ , date_(date_)
+ , member_id_(std::move(member_id_))
+ , action_(std::move(action_))
+{}
+
+const std::int32_t chatEvent::ID;
+
+void chatEvent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEvent");
+ s.store_field("id", id_);
+ s.store_field("date", date_);
+ s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get()));
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventMessageEdited::chatEventMessageEdited()
+ : old_message_()
+ , new_message_()
+{}
+
+chatEventMessageEdited::chatEventMessageEdited(object_ptr<message> &&old_message_, object_ptr<message> &&new_message_)
+ : old_message_(std::move(old_message_))
+ , new_message_(std::move(new_message_))
+{}
+
+const std::int32_t chatEventMessageEdited::ID;
+
+void chatEventMessageEdited::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMessageEdited");
+ s.store_object_field("old_message", static_cast<const BaseObject *>(old_message_.get()));
+ s.store_object_field("new_message", static_cast<const BaseObject *>(new_message_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventMessageDeleted::chatEventMessageDeleted()
+ : message_()
+{}
+
+chatEventMessageDeleted::chatEventMessageDeleted(object_ptr<message> &&message_)
+ : message_(std::move(message_))
+{}
+
+const std::int32_t chatEventMessageDeleted::ID;
+
+void chatEventMessageDeleted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMessageDeleted");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventMessagePinned::chatEventMessagePinned()
+ : message_()
+{}
+
+chatEventMessagePinned::chatEventMessagePinned(object_ptr<message> &&message_)
+ : message_(std::move(message_))
+{}
+
+const std::int32_t chatEventMessagePinned::ID;
+
+void chatEventMessagePinned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMessagePinned");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventMessageUnpinned::chatEventMessageUnpinned()
+ : message_()
+{}
+
+chatEventMessageUnpinned::chatEventMessageUnpinned(object_ptr<message> &&message_)
+ : message_(std::move(message_))
+{}
+
+const std::int32_t chatEventMessageUnpinned::ID;
+
+void chatEventMessageUnpinned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMessageUnpinned");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventPollStopped::chatEventPollStopped()
+ : message_()
+{}
+
+chatEventPollStopped::chatEventPollStopped(object_ptr<message> &&message_)
+ : message_(std::move(message_))
+{}
+
+const std::int32_t chatEventPollStopped::ID;
+
+void chatEventPollStopped::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventPollStopped");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventMemberJoined::chatEventMemberJoined() {
+}
+
+const std::int32_t chatEventMemberJoined::ID;
+
+void chatEventMemberJoined::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMemberJoined");
+ s.store_class_end();
+ }
+}
+
+chatEventMemberJoinedByInviteLink::chatEventMemberJoinedByInviteLink()
+ : invite_link_()
+{}
+
+chatEventMemberJoinedByInviteLink::chatEventMemberJoinedByInviteLink(object_ptr<chatInviteLink> &&invite_link_)
+ : invite_link_(std::move(invite_link_))
+{}
+
+const std::int32_t chatEventMemberJoinedByInviteLink::ID;
+
+void chatEventMemberJoinedByInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMemberJoinedByInviteLink");
+ s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventMemberJoinedByRequest::chatEventMemberJoinedByRequest()
+ : approver_user_id_()
+ , invite_link_()
+{}
+
+chatEventMemberJoinedByRequest::chatEventMemberJoinedByRequest(int53 approver_user_id_, object_ptr<chatInviteLink> &&invite_link_)
+ : approver_user_id_(approver_user_id_)
+ , invite_link_(std::move(invite_link_))
+{}
+
+const std::int32_t chatEventMemberJoinedByRequest::ID;
+
+void chatEventMemberJoinedByRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMemberJoinedByRequest");
+ s.store_field("approver_user_id", approver_user_id_);
+ s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventMemberInvited::chatEventMemberInvited()
+ : user_id_()
+ , status_()
+{}
+
+chatEventMemberInvited::chatEventMemberInvited(int53 user_id_, object_ptr<ChatMemberStatus> &&status_)
+ : user_id_(user_id_)
+ , status_(std::move(status_))
+{}
+
+const std::int32_t chatEventMemberInvited::ID;
+
+void chatEventMemberInvited::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMemberInvited");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("status", static_cast<const BaseObject *>(status_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventMemberLeft::chatEventMemberLeft() {
+}
+
+const std::int32_t chatEventMemberLeft::ID;
+
+void chatEventMemberLeft::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMemberLeft");
+ s.store_class_end();
+ }
+}
+
+chatEventMemberPromoted::chatEventMemberPromoted()
+ : user_id_()
+ , old_status_()
+ , new_status_()
+{}
+
+chatEventMemberPromoted::chatEventMemberPromoted(int53 user_id_, object_ptr<ChatMemberStatus> &&old_status_, object_ptr<ChatMemberStatus> &&new_status_)
+ : user_id_(user_id_)
+ , old_status_(std::move(old_status_))
+ , new_status_(std::move(new_status_))
+{}
+
+const std::int32_t chatEventMemberPromoted::ID;
+
+void chatEventMemberPromoted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMemberPromoted");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("old_status", static_cast<const BaseObject *>(old_status_.get()));
+ s.store_object_field("new_status", static_cast<const BaseObject *>(new_status_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventMemberRestricted::chatEventMemberRestricted()
+ : member_id_()
+ , old_status_()
+ , new_status_()
+{}
+
+chatEventMemberRestricted::chatEventMemberRestricted(object_ptr<MessageSender> &&member_id_, object_ptr<ChatMemberStatus> &&old_status_, object_ptr<ChatMemberStatus> &&new_status_)
+ : member_id_(std::move(member_id_))
+ , old_status_(std::move(old_status_))
+ , new_status_(std::move(new_status_))
+{}
+
+const std::int32_t chatEventMemberRestricted::ID;
+
+void chatEventMemberRestricted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMemberRestricted");
+ s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get()));
+ s.store_object_field("old_status", static_cast<const BaseObject *>(old_status_.get()));
+ s.store_object_field("new_status", static_cast<const BaseObject *>(new_status_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventAvailableReactionsChanged::chatEventAvailableReactionsChanged()
+ : old_available_reactions_()
+ , new_available_reactions_()
+{}
+
+chatEventAvailableReactionsChanged::chatEventAvailableReactionsChanged(object_ptr<ChatAvailableReactions> &&old_available_reactions_, object_ptr<ChatAvailableReactions> &&new_available_reactions_)
+ : old_available_reactions_(std::move(old_available_reactions_))
+ , new_available_reactions_(std::move(new_available_reactions_))
+{}
+
+const std::int32_t chatEventAvailableReactionsChanged::ID;
+
+void chatEventAvailableReactionsChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventAvailableReactionsChanged");
+ s.store_object_field("old_available_reactions", static_cast<const BaseObject *>(old_available_reactions_.get()));
+ s.store_object_field("new_available_reactions", static_cast<const BaseObject *>(new_available_reactions_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventDescriptionChanged::chatEventDescriptionChanged()
+ : old_description_()
+ , new_description_()
+{}
+
+chatEventDescriptionChanged::chatEventDescriptionChanged(string const &old_description_, string const &new_description_)
+ : old_description_(old_description_)
+ , new_description_(new_description_)
+{}
+
+const std::int32_t chatEventDescriptionChanged::ID;
+
+void chatEventDescriptionChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventDescriptionChanged");
+ s.store_field("old_description", old_description_);
+ s.store_field("new_description", new_description_);
+ s.store_class_end();
+ }
+}
+
+chatEventLinkedChatChanged::chatEventLinkedChatChanged()
+ : old_linked_chat_id_()
+ , new_linked_chat_id_()
+{}
+
+chatEventLinkedChatChanged::chatEventLinkedChatChanged(int53 old_linked_chat_id_, int53 new_linked_chat_id_)
+ : old_linked_chat_id_(old_linked_chat_id_)
+ , new_linked_chat_id_(new_linked_chat_id_)
+{}
+
+const std::int32_t chatEventLinkedChatChanged::ID;
+
+void chatEventLinkedChatChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventLinkedChatChanged");
+ s.store_field("old_linked_chat_id", old_linked_chat_id_);
+ s.store_field("new_linked_chat_id", new_linked_chat_id_);
+ s.store_class_end();
+ }
+}
+
+chatEventLocationChanged::chatEventLocationChanged()
+ : old_location_()
+ , new_location_()
+{}
+
+chatEventLocationChanged::chatEventLocationChanged(object_ptr<chatLocation> &&old_location_, object_ptr<chatLocation> &&new_location_)
+ : old_location_(std::move(old_location_))
+ , new_location_(std::move(new_location_))
+{}
+
+const std::int32_t chatEventLocationChanged::ID;
+
+void chatEventLocationChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventLocationChanged");
+ s.store_object_field("old_location", static_cast<const BaseObject *>(old_location_.get()));
+ s.store_object_field("new_location", static_cast<const BaseObject *>(new_location_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventMessageTtlChanged::chatEventMessageTtlChanged()
+ : old_message_ttl_()
+ , new_message_ttl_()
+{}
+
+chatEventMessageTtlChanged::chatEventMessageTtlChanged(int32 old_message_ttl_, int32 new_message_ttl_)
+ : old_message_ttl_(old_message_ttl_)
+ , new_message_ttl_(new_message_ttl_)
+{}
+
+const std::int32_t chatEventMessageTtlChanged::ID;
+
+void chatEventMessageTtlChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventMessageTtlChanged");
+ s.store_field("old_message_ttl", old_message_ttl_);
+ s.store_field("new_message_ttl", new_message_ttl_);
+ s.store_class_end();
+ }
+}
+
+chatEventPermissionsChanged::chatEventPermissionsChanged()
+ : old_permissions_()
+ , new_permissions_()
+{}
+
+chatEventPermissionsChanged::chatEventPermissionsChanged(object_ptr<chatPermissions> &&old_permissions_, object_ptr<chatPermissions> &&new_permissions_)
+ : old_permissions_(std::move(old_permissions_))
+ , new_permissions_(std::move(new_permissions_))
+{}
+
+const std::int32_t chatEventPermissionsChanged::ID;
+
+void chatEventPermissionsChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventPermissionsChanged");
+ s.store_object_field("old_permissions", static_cast<const BaseObject *>(old_permissions_.get()));
+ s.store_object_field("new_permissions", static_cast<const BaseObject *>(new_permissions_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventPhotoChanged::chatEventPhotoChanged()
+ : old_photo_()
+ , new_photo_()
+{}
+
+chatEventPhotoChanged::chatEventPhotoChanged(object_ptr<chatPhoto> &&old_photo_, object_ptr<chatPhoto> &&new_photo_)
+ : old_photo_(std::move(old_photo_))
+ , new_photo_(std::move(new_photo_))
+{}
+
+const std::int32_t chatEventPhotoChanged::ID;
+
+void chatEventPhotoChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventPhotoChanged");
+ s.store_object_field("old_photo", static_cast<const BaseObject *>(old_photo_.get()));
+ s.store_object_field("new_photo", static_cast<const BaseObject *>(new_photo_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventSlowModeDelayChanged::chatEventSlowModeDelayChanged()
+ : old_slow_mode_delay_()
+ , new_slow_mode_delay_()
+{}
+
+chatEventSlowModeDelayChanged::chatEventSlowModeDelayChanged(int32 old_slow_mode_delay_, int32 new_slow_mode_delay_)
+ : old_slow_mode_delay_(old_slow_mode_delay_)
+ , new_slow_mode_delay_(new_slow_mode_delay_)
+{}
+
+const std::int32_t chatEventSlowModeDelayChanged::ID;
+
+void chatEventSlowModeDelayChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventSlowModeDelayChanged");
+ s.store_field("old_slow_mode_delay", old_slow_mode_delay_);
+ s.store_field("new_slow_mode_delay", new_slow_mode_delay_);
+ s.store_class_end();
+ }
+}
+
+chatEventStickerSetChanged::chatEventStickerSetChanged()
+ : old_sticker_set_id_()
+ , new_sticker_set_id_()
+{}
+
+chatEventStickerSetChanged::chatEventStickerSetChanged(int64 old_sticker_set_id_, int64 new_sticker_set_id_)
+ : old_sticker_set_id_(old_sticker_set_id_)
+ , new_sticker_set_id_(new_sticker_set_id_)
+{}
+
+const std::int32_t chatEventStickerSetChanged::ID;
+
+void chatEventStickerSetChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventStickerSetChanged");
+ s.store_field("old_sticker_set_id", old_sticker_set_id_);
+ s.store_field("new_sticker_set_id", new_sticker_set_id_);
+ s.store_class_end();
+ }
+}
+
+chatEventTitleChanged::chatEventTitleChanged()
+ : old_title_()
+ , new_title_()
+{}
+
+chatEventTitleChanged::chatEventTitleChanged(string const &old_title_, string const &new_title_)
+ : old_title_(old_title_)
+ , new_title_(new_title_)
+{}
+
+const std::int32_t chatEventTitleChanged::ID;
+
+void chatEventTitleChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventTitleChanged");
+ s.store_field("old_title", old_title_);
+ s.store_field("new_title", new_title_);
+ s.store_class_end();
+ }
+}
+
+chatEventUsernameChanged::chatEventUsernameChanged()
+ : old_username_()
+ , new_username_()
+{}
+
+chatEventUsernameChanged::chatEventUsernameChanged(string const &old_username_, string const &new_username_)
+ : old_username_(old_username_)
+ , new_username_(new_username_)
+{}
+
+const std::int32_t chatEventUsernameChanged::ID;
+
+void chatEventUsernameChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventUsernameChanged");
+ s.store_field("old_username", old_username_);
+ s.store_field("new_username", new_username_);
+ s.store_class_end();
+ }
+}
+
+chatEventActiveUsernamesChanged::chatEventActiveUsernamesChanged()
+ : old_usernames_()
+ , new_usernames_()
+{}
+
+chatEventActiveUsernamesChanged::chatEventActiveUsernamesChanged(array<string> &&old_usernames_, array<string> &&new_usernames_)
+ : old_usernames_(std::move(old_usernames_))
+ , new_usernames_(std::move(new_usernames_))
+{}
+
+const std::int32_t chatEventActiveUsernamesChanged::ID;
+
+void chatEventActiveUsernamesChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventActiveUsernamesChanged");
+ { s.store_vector_begin("old_usernames", old_usernames_.size()); for (const auto &_value : old_usernames_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("new_usernames", new_usernames_.size()); for (const auto &_value : new_usernames_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatEventHasProtectedContentToggled::chatEventHasProtectedContentToggled()
+ : has_protected_content_()
+{}
+
+chatEventHasProtectedContentToggled::chatEventHasProtectedContentToggled(bool has_protected_content_)
+ : has_protected_content_(has_protected_content_)
+{}
+
+const std::int32_t chatEventHasProtectedContentToggled::ID;
+
+void chatEventHasProtectedContentToggled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventHasProtectedContentToggled");
+ s.store_field("has_protected_content", has_protected_content_);
+ s.store_class_end();
+ }
+}
+
+chatEventInvitesToggled::chatEventInvitesToggled()
+ : can_invite_users_()
+{}
+
+chatEventInvitesToggled::chatEventInvitesToggled(bool can_invite_users_)
+ : can_invite_users_(can_invite_users_)
+{}
+
+const std::int32_t chatEventInvitesToggled::ID;
+
+void chatEventInvitesToggled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventInvitesToggled");
+ s.store_field("can_invite_users", can_invite_users_);
+ s.store_class_end();
+ }
+}
+
+chatEventIsAllHistoryAvailableToggled::chatEventIsAllHistoryAvailableToggled()
+ : is_all_history_available_()
+{}
+
+chatEventIsAllHistoryAvailableToggled::chatEventIsAllHistoryAvailableToggled(bool is_all_history_available_)
+ : is_all_history_available_(is_all_history_available_)
+{}
+
+const std::int32_t chatEventIsAllHistoryAvailableToggled::ID;
+
+void chatEventIsAllHistoryAvailableToggled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventIsAllHistoryAvailableToggled");
+ s.store_field("is_all_history_available", is_all_history_available_);
+ s.store_class_end();
+ }
+}
+
+chatEventSignMessagesToggled::chatEventSignMessagesToggled()
+ : sign_messages_()
+{}
+
+chatEventSignMessagesToggled::chatEventSignMessagesToggled(bool sign_messages_)
+ : sign_messages_(sign_messages_)
+{}
+
+const std::int32_t chatEventSignMessagesToggled::ID;
+
+void chatEventSignMessagesToggled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventSignMessagesToggled");
+ s.store_field("sign_messages", sign_messages_);
+ s.store_class_end();
+ }
+}
+
+chatEventInviteLinkEdited::chatEventInviteLinkEdited()
+ : old_invite_link_()
+ , new_invite_link_()
+{}
+
+chatEventInviteLinkEdited::chatEventInviteLinkEdited(object_ptr<chatInviteLink> &&old_invite_link_, object_ptr<chatInviteLink> &&new_invite_link_)
+ : old_invite_link_(std::move(old_invite_link_))
+ , new_invite_link_(std::move(new_invite_link_))
+{}
+
+const std::int32_t chatEventInviteLinkEdited::ID;
+
+void chatEventInviteLinkEdited::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventInviteLinkEdited");
+ s.store_object_field("old_invite_link", static_cast<const BaseObject *>(old_invite_link_.get()));
+ s.store_object_field("new_invite_link", static_cast<const BaseObject *>(new_invite_link_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventInviteLinkRevoked::chatEventInviteLinkRevoked()
+ : invite_link_()
+{}
+
+chatEventInviteLinkRevoked::chatEventInviteLinkRevoked(object_ptr<chatInviteLink> &&invite_link_)
+ : invite_link_(std::move(invite_link_))
+{}
+
+const std::int32_t chatEventInviteLinkRevoked::ID;
+
+void chatEventInviteLinkRevoked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventInviteLinkRevoked");
+ s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventInviteLinkDeleted::chatEventInviteLinkDeleted()
+ : invite_link_()
+{}
+
+chatEventInviteLinkDeleted::chatEventInviteLinkDeleted(object_ptr<chatInviteLink> &&invite_link_)
+ : invite_link_(std::move(invite_link_))
+{}
+
+const std::int32_t chatEventInviteLinkDeleted::ID;
+
+void chatEventInviteLinkDeleted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventInviteLinkDeleted");
+ s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventVideoChatCreated::chatEventVideoChatCreated()
+ : group_call_id_()
+{}
+
+chatEventVideoChatCreated::chatEventVideoChatCreated(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t chatEventVideoChatCreated::ID;
+
+void chatEventVideoChatCreated::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventVideoChatCreated");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+chatEventVideoChatEnded::chatEventVideoChatEnded()
+ : group_call_id_()
+{}
+
+chatEventVideoChatEnded::chatEventVideoChatEnded(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t chatEventVideoChatEnded::ID;
+
+void chatEventVideoChatEnded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventVideoChatEnded");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+chatEventVideoChatMuteNewParticipantsToggled::chatEventVideoChatMuteNewParticipantsToggled()
+ : mute_new_participants_()
+{}
+
+chatEventVideoChatMuteNewParticipantsToggled::chatEventVideoChatMuteNewParticipantsToggled(bool mute_new_participants_)
+ : mute_new_participants_(mute_new_participants_)
+{}
+
+const std::int32_t chatEventVideoChatMuteNewParticipantsToggled::ID;
+
+void chatEventVideoChatMuteNewParticipantsToggled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventVideoChatMuteNewParticipantsToggled");
+ s.store_field("mute_new_participants", mute_new_participants_);
+ s.store_class_end();
+ }
+}
+
+chatEventVideoChatParticipantIsMutedToggled::chatEventVideoChatParticipantIsMutedToggled()
+ : participant_id_()
+ , is_muted_()
+{}
+
+chatEventVideoChatParticipantIsMutedToggled::chatEventVideoChatParticipantIsMutedToggled(object_ptr<MessageSender> &&participant_id_, bool is_muted_)
+ : participant_id_(std::move(participant_id_))
+ , is_muted_(is_muted_)
+{}
+
+const std::int32_t chatEventVideoChatParticipantIsMutedToggled::ID;
+
+void chatEventVideoChatParticipantIsMutedToggled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventVideoChatParticipantIsMutedToggled");
+ s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get()));
+ s.store_field("is_muted", is_muted_);
+ s.store_class_end();
+ }
+}
+
+chatEventVideoChatParticipantVolumeLevelChanged::chatEventVideoChatParticipantVolumeLevelChanged()
+ : participant_id_()
+ , volume_level_()
+{}
+
+chatEventVideoChatParticipantVolumeLevelChanged::chatEventVideoChatParticipantVolumeLevelChanged(object_ptr<MessageSender> &&participant_id_, int32 volume_level_)
+ : participant_id_(std::move(participant_id_))
+ , volume_level_(volume_level_)
+{}
+
+const std::int32_t chatEventVideoChatParticipantVolumeLevelChanged::ID;
+
+void chatEventVideoChatParticipantVolumeLevelChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventVideoChatParticipantVolumeLevelChanged");
+ s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get()));
+ s.store_field("volume_level", volume_level_);
+ s.store_class_end();
+ }
+}
+
+chatEventIsForumToggled::chatEventIsForumToggled()
+ : is_forum_()
+{}
+
+chatEventIsForumToggled::chatEventIsForumToggled(bool is_forum_)
+ : is_forum_(is_forum_)
+{}
+
+const std::int32_t chatEventIsForumToggled::ID;
+
+void chatEventIsForumToggled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventIsForumToggled");
+ s.store_field("is_forum", is_forum_);
+ s.store_class_end();
+ }
+}
+
+chatEventForumTopicCreated::chatEventForumTopicCreated()
+ : topic_info_()
+{}
+
+chatEventForumTopicCreated::chatEventForumTopicCreated(object_ptr<forumTopicInfo> &&topic_info_)
+ : topic_info_(std::move(topic_info_))
+{}
+
+const std::int32_t chatEventForumTopicCreated::ID;
+
+void chatEventForumTopicCreated::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventForumTopicCreated");
+ s.store_object_field("topic_info", static_cast<const BaseObject *>(topic_info_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventForumTopicEdited::chatEventForumTopicEdited()
+ : old_topic_info_()
+ , new_topic_info_()
+{}
+
+chatEventForumTopicEdited::chatEventForumTopicEdited(object_ptr<forumTopicInfo> &&old_topic_info_, object_ptr<forumTopicInfo> &&new_topic_info_)
+ : old_topic_info_(std::move(old_topic_info_))
+ , new_topic_info_(std::move(new_topic_info_))
+{}
+
+const std::int32_t chatEventForumTopicEdited::ID;
+
+void chatEventForumTopicEdited::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventForumTopicEdited");
+ s.store_object_field("old_topic_info", static_cast<const BaseObject *>(old_topic_info_.get()));
+ s.store_object_field("new_topic_info", static_cast<const BaseObject *>(new_topic_info_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventForumTopicToggleIsClosed::chatEventForumTopicToggleIsClosed()
+ : topic_info_()
+{}
+
+chatEventForumTopicToggleIsClosed::chatEventForumTopicToggleIsClosed(object_ptr<forumTopicInfo> &&topic_info_)
+ : topic_info_(std::move(topic_info_))
+{}
+
+const std::int32_t chatEventForumTopicToggleIsClosed::ID;
+
+void chatEventForumTopicToggleIsClosed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventForumTopicToggleIsClosed");
+ s.store_object_field("topic_info", static_cast<const BaseObject *>(topic_info_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventForumTopicDeleted::chatEventForumTopicDeleted()
+ : topic_info_()
+{}
+
+chatEventForumTopicDeleted::chatEventForumTopicDeleted(object_ptr<forumTopicInfo> &&topic_info_)
+ : topic_info_(std::move(topic_info_))
+{}
+
+const std::int32_t chatEventForumTopicDeleted::ID;
+
+void chatEventForumTopicDeleted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventForumTopicDeleted");
+ s.store_object_field("topic_info", static_cast<const BaseObject *>(topic_info_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventForumTopicPinned::chatEventForumTopicPinned()
+ : old_topic_info_()
+ , new_topic_info_()
+{}
+
+chatEventForumTopicPinned::chatEventForumTopicPinned(object_ptr<forumTopicInfo> &&old_topic_info_, object_ptr<forumTopicInfo> &&new_topic_info_)
+ : old_topic_info_(std::move(old_topic_info_))
+ , new_topic_info_(std::move(new_topic_info_))
+{}
+
+const std::int32_t chatEventForumTopicPinned::ID;
+
+void chatEventForumTopicPinned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventForumTopicPinned");
+ s.store_object_field("old_topic_info", static_cast<const BaseObject *>(old_topic_info_.get()));
+ s.store_object_field("new_topic_info", static_cast<const BaseObject *>(new_topic_info_.get()));
+ s.store_class_end();
+ }
+}
+
+chatEventLogFilters::chatEventLogFilters()
+ : message_edits_()
+ , message_deletions_()
+ , message_pins_()
+ , member_joins_()
+ , member_leaves_()
+ , member_invites_()
+ , member_promotions_()
+ , member_restrictions_()
+ , info_changes_()
+ , setting_changes_()
+ , invite_link_changes_()
+ , video_chat_changes_()
+ , forum_changes_()
+{}
+
+chatEventLogFilters::chatEventLogFilters(bool message_edits_, bool message_deletions_, bool message_pins_, bool member_joins_, bool member_leaves_, bool member_invites_, bool member_promotions_, bool member_restrictions_, bool info_changes_, bool setting_changes_, bool invite_link_changes_, bool video_chat_changes_, bool forum_changes_)
+ : message_edits_(message_edits_)
+ , message_deletions_(message_deletions_)
+ , message_pins_(message_pins_)
+ , member_joins_(member_joins_)
+ , member_leaves_(member_leaves_)
+ , member_invites_(member_invites_)
+ , member_promotions_(member_promotions_)
+ , member_restrictions_(member_restrictions_)
+ , info_changes_(info_changes_)
+ , setting_changes_(setting_changes_)
+ , invite_link_changes_(invite_link_changes_)
+ , video_chat_changes_(video_chat_changes_)
+ , forum_changes_(forum_changes_)
+{}
+
+const std::int32_t chatEventLogFilters::ID;
+
+void chatEventLogFilters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEventLogFilters");
+ s.store_field("message_edits", message_edits_);
+ s.store_field("message_deletions", message_deletions_);
+ s.store_field("message_pins", message_pins_);
+ s.store_field("member_joins", member_joins_);
+ s.store_field("member_leaves", member_leaves_);
+ s.store_field("member_invites", member_invites_);
+ s.store_field("member_promotions", member_promotions_);
+ s.store_field("member_restrictions", member_restrictions_);
+ s.store_field("info_changes", info_changes_);
+ s.store_field("setting_changes", setting_changes_);
+ s.store_field("invite_link_changes", invite_link_changes_);
+ s.store_field("video_chat_changes", video_chat_changes_);
+ s.store_field("forum_changes", forum_changes_);
+ s.store_class_end();
+ }
+}
+
+chatEvents::chatEvents()
+ : events_()
+{}
+
+chatEvents::chatEvents(array<object_ptr<chatEvent>> &&events_)
+ : events_(std::move(events_))
+{}
+
+const std::int32_t chatEvents::ID;
+
+void chatEvents::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEvents");
+ { s.store_vector_begin("events", events_.size()); for (const auto &_value : events_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatFilter::chatFilter()
+ : title_()
+ , icon_name_()
+ , pinned_chat_ids_()
+ , included_chat_ids_()
+ , excluded_chat_ids_()
+ , exclude_muted_()
+ , exclude_read_()
+ , exclude_archived_()
+ , include_contacts_()
+ , include_non_contacts_()
+ , include_bots_()
+ , include_groups_()
+ , include_channels_()
+{}
+
+chatFilter::chatFilter(string const &title_, string const &icon_name_, array<int53> &&pinned_chat_ids_, array<int53> &&included_chat_ids_, array<int53> &&excluded_chat_ids_, bool exclude_muted_, bool exclude_read_, bool exclude_archived_, bool include_contacts_, bool include_non_contacts_, bool include_bots_, bool include_groups_, bool include_channels_)
+ : title_(title_)
+ , icon_name_(icon_name_)
+ , pinned_chat_ids_(std::move(pinned_chat_ids_))
+ , included_chat_ids_(std::move(included_chat_ids_))
+ , excluded_chat_ids_(std::move(excluded_chat_ids_))
+ , exclude_muted_(exclude_muted_)
+ , exclude_read_(exclude_read_)
+ , exclude_archived_(exclude_archived_)
+ , include_contacts_(include_contacts_)
+ , include_non_contacts_(include_non_contacts_)
+ , include_bots_(include_bots_)
+ , include_groups_(include_groups_)
+ , include_channels_(include_channels_)
+{}
+
+const std::int32_t chatFilter::ID;
+
+void chatFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatFilter");
+ s.store_field("title", title_);
+ s.store_field("icon_name", icon_name_);
+ { s.store_vector_begin("pinned_chat_ids", pinned_chat_ids_.size()); for (const auto &_value : pinned_chat_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("included_chat_ids", included_chat_ids_.size()); for (const auto &_value : included_chat_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("excluded_chat_ids", excluded_chat_ids_.size()); for (const auto &_value : excluded_chat_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("exclude_muted", exclude_muted_);
+ s.store_field("exclude_read", exclude_read_);
+ s.store_field("exclude_archived", exclude_archived_);
+ s.store_field("include_contacts", include_contacts_);
+ s.store_field("include_non_contacts", include_non_contacts_);
+ s.store_field("include_bots", include_bots_);
+ s.store_field("include_groups", include_groups_);
+ s.store_field("include_channels", include_channels_);
+ s.store_class_end();
+ }
+}
+
+chatFilterInfo::chatFilterInfo()
+ : id_()
+ , title_()
+ , icon_name_()
+{}
+
+chatFilterInfo::chatFilterInfo(int32 id_, string const &title_, string const &icon_name_)
+ : id_(id_)
+ , title_(title_)
+ , icon_name_(icon_name_)
+{}
+
+const std::int32_t chatFilterInfo::ID;
+
+void chatFilterInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatFilterInfo");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_field("icon_name", icon_name_);
+ s.store_class_end();
+ }
+}
+
+chatInviteLink::chatInviteLink()
+ : invite_link_()
+ , name_()
+ , creator_user_id_()
+ , date_()
+ , edit_date_()
+ , expiration_date_()
+ , member_limit_()
+ , member_count_()
+ , pending_join_request_count_()
+ , creates_join_request_()
+ , is_primary_()
+ , is_revoked_()
+{}
+
+chatInviteLink::chatInviteLink(string const &invite_link_, string const &name_, int53 creator_user_id_, int32 date_, int32 edit_date_, int32 expiration_date_, int32 member_limit_, int32 member_count_, int32 pending_join_request_count_, bool creates_join_request_, bool is_primary_, bool is_revoked_)
+ : invite_link_(invite_link_)
+ , name_(name_)
+ , creator_user_id_(creator_user_id_)
+ , date_(date_)
+ , edit_date_(edit_date_)
+ , expiration_date_(expiration_date_)
+ , member_limit_(member_limit_)
+ , member_count_(member_count_)
+ , pending_join_request_count_(pending_join_request_count_)
+ , creates_join_request_(creates_join_request_)
+ , is_primary_(is_primary_)
+ , is_revoked_(is_revoked_)
+{}
+
+const std::int32_t chatInviteLink::ID;
+
+void chatInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInviteLink");
+ s.store_field("invite_link", invite_link_);
+ s.store_field("name", name_);
+ s.store_field("creator_user_id", creator_user_id_);
+ s.store_field("date", date_);
+ s.store_field("edit_date", edit_date_);
+ s.store_field("expiration_date", expiration_date_);
+ s.store_field("member_limit", member_limit_);
+ s.store_field("member_count", member_count_);
+ s.store_field("pending_join_request_count", pending_join_request_count_);
+ s.store_field("creates_join_request", creates_join_request_);
+ s.store_field("is_primary", is_primary_);
+ s.store_field("is_revoked", is_revoked_);
+ s.store_class_end();
+ }
+}
+
+chatInviteLinkCount::chatInviteLinkCount()
+ : user_id_()
+ , invite_link_count_()
+ , revoked_invite_link_count_()
+{}
+
+chatInviteLinkCount::chatInviteLinkCount(int53 user_id_, int32 invite_link_count_, int32 revoked_invite_link_count_)
+ : user_id_(user_id_)
+ , invite_link_count_(invite_link_count_)
+ , revoked_invite_link_count_(revoked_invite_link_count_)
+{}
+
+const std::int32_t chatInviteLinkCount::ID;
+
+void chatInviteLinkCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInviteLinkCount");
+ s.store_field("user_id", user_id_);
+ s.store_field("invite_link_count", invite_link_count_);
+ s.store_field("revoked_invite_link_count", revoked_invite_link_count_);
+ s.store_class_end();
+ }
+}
+
+chatInviteLinkCounts::chatInviteLinkCounts()
+ : invite_link_counts_()
+{}
+
+chatInviteLinkCounts::chatInviteLinkCounts(array<object_ptr<chatInviteLinkCount>> &&invite_link_counts_)
+ : invite_link_counts_(std::move(invite_link_counts_))
+{}
+
+const std::int32_t chatInviteLinkCounts::ID;
+
+void chatInviteLinkCounts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInviteLinkCounts");
+ { s.store_vector_begin("invite_link_counts", invite_link_counts_.size()); for (const auto &_value : invite_link_counts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatInviteLinkInfo::chatInviteLinkInfo()
+ : chat_id_()
+ , accessible_for_()
+ , type_()
+ , title_()
+ , photo_()
+ , description_()
+ , member_count_()
+ , member_user_ids_()
+ , creates_join_request_()
+ , is_public_()
+{}
+
+chatInviteLinkInfo::chatInviteLinkInfo(int53 chat_id_, int32 accessible_for_, object_ptr<ChatType> &&type_, string const &title_, object_ptr<chatPhotoInfo> &&photo_, string const &description_, int32 member_count_, array<int53> &&member_user_ids_, bool creates_join_request_, bool is_public_)
+ : chat_id_(chat_id_)
+ , accessible_for_(accessible_for_)
+ , type_(std::move(type_))
+ , title_(title_)
+ , photo_(std::move(photo_))
+ , description_(description_)
+ , member_count_(member_count_)
+ , member_user_ids_(std::move(member_user_ids_))
+ , creates_join_request_(creates_join_request_)
+ , is_public_(is_public_)
+{}
+
+const std::int32_t chatInviteLinkInfo::ID;
+
+void chatInviteLinkInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInviteLinkInfo");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("accessible_for", accessible_for_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("title", title_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("description", description_);
+ s.store_field("member_count", member_count_);
+ { s.store_vector_begin("member_user_ids", member_user_ids_.size()); for (const auto &_value : member_user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("creates_join_request", creates_join_request_);
+ s.store_field("is_public", is_public_);
+ s.store_class_end();
+ }
+}
+
+chatInviteLinkMember::chatInviteLinkMember()
+ : user_id_()
+ , joined_chat_date_()
+ , approver_user_id_()
+{}
+
+chatInviteLinkMember::chatInviteLinkMember(int53 user_id_, int32 joined_chat_date_, int53 approver_user_id_)
+ : user_id_(user_id_)
+ , joined_chat_date_(joined_chat_date_)
+ , approver_user_id_(approver_user_id_)
+{}
+
+const std::int32_t chatInviteLinkMember::ID;
+
+void chatInviteLinkMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInviteLinkMember");
+ s.store_field("user_id", user_id_);
+ s.store_field("joined_chat_date", joined_chat_date_);
+ s.store_field("approver_user_id", approver_user_id_);
+ s.store_class_end();
+ }
+}
+
+chatInviteLinkMembers::chatInviteLinkMembers()
+ : total_count_()
+ , members_()
+{}
+
+chatInviteLinkMembers::chatInviteLinkMembers(int32 total_count_, array<object_ptr<chatInviteLinkMember>> &&members_)
+ : total_count_(total_count_)
+ , members_(std::move(members_))
+{}
+
+const std::int32_t chatInviteLinkMembers::ID;
+
+void chatInviteLinkMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInviteLinkMembers");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("members", members_.size()); for (const auto &_value : members_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatInviteLinks::chatInviteLinks()
+ : total_count_()
+ , invite_links_()
+{}
+
+chatInviteLinks::chatInviteLinks(int32 total_count_, array<object_ptr<chatInviteLink>> &&invite_links_)
+ : total_count_(total_count_)
+ , invite_links_(std::move(invite_links_))
+{}
+
+const std::int32_t chatInviteLinks::ID;
+
+void chatInviteLinks::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInviteLinks");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("invite_links", invite_links_.size()); for (const auto &_value : invite_links_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatJoinRequest::chatJoinRequest()
+ : user_id_()
+ , date_()
+ , bio_()
+{}
+
+chatJoinRequest::chatJoinRequest(int53 user_id_, int32 date_, string const &bio_)
+ : user_id_(user_id_)
+ , date_(date_)
+ , bio_(bio_)
+{}
+
+const std::int32_t chatJoinRequest::ID;
+
+void chatJoinRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatJoinRequest");
+ s.store_field("user_id", user_id_);
+ s.store_field("date", date_);
+ s.store_field("bio", bio_);
+ s.store_class_end();
+ }
+}
+
+chatJoinRequests::chatJoinRequests()
+ : total_count_()
+ , requests_()
+{}
+
+chatJoinRequests::chatJoinRequests(int32 total_count_, array<object_ptr<chatJoinRequest>> &&requests_)
+ : total_count_(total_count_)
+ , requests_(std::move(requests_))
+{}
+
+const std::int32_t chatJoinRequests::ID;
+
+void chatJoinRequests::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatJoinRequests");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("requests", requests_.size()); for (const auto &_value : requests_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatJoinRequestsInfo::chatJoinRequestsInfo()
+ : total_count_()
+ , user_ids_()
+{}
+
+chatJoinRequestsInfo::chatJoinRequestsInfo(int32 total_count_, array<int53> &&user_ids_)
+ : total_count_(total_count_)
+ , user_ids_(std::move(user_ids_))
+{}
+
+const std::int32_t chatJoinRequestsInfo::ID;
+
+void chatJoinRequestsInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatJoinRequestsInfo");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatListMain::chatListMain() {
+}
+
+const std::int32_t chatListMain::ID;
+
+void chatListMain::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatListMain");
+ s.store_class_end();
+ }
+}
+
+chatListArchive::chatListArchive() {
+}
+
+const std::int32_t chatListArchive::ID;
+
+void chatListArchive::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatListArchive");
+ s.store_class_end();
+ }
+}
+
+chatListFilter::chatListFilter()
+ : chat_filter_id_()
+{}
+
+chatListFilter::chatListFilter(int32 chat_filter_id_)
+ : chat_filter_id_(chat_filter_id_)
+{}
+
+const std::int32_t chatListFilter::ID;
+
+void chatListFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatListFilter");
+ s.store_field("chat_filter_id", chat_filter_id_);
+ s.store_class_end();
+ }
+}
+
+chatLists::chatLists()
+ : chat_lists_()
+{}
+
+chatLists::chatLists(array<object_ptr<ChatList>> &&chat_lists_)
+ : chat_lists_(std::move(chat_lists_))
+{}
+
+const std::int32_t chatLists::ID;
+
+void chatLists::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatLists");
+ { s.store_vector_begin("chat_lists", chat_lists_.size()); for (const auto &_value : chat_lists_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatLocation::chatLocation()
+ : location_()
+ , address_()
+{}
+
+chatLocation::chatLocation(object_ptr<location> &&location_, string const &address_)
+ : location_(std::move(location_))
+ , address_(address_)
+{}
+
+const std::int32_t chatLocation::ID;
+
+void chatLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatLocation");
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("address", address_);
+ s.store_class_end();
+ }
+}
+
+chatMember::chatMember()
+ : member_id_()
+ , inviter_user_id_()
+ , joined_chat_date_()
+ , status_()
+{}
+
+chatMember::chatMember(object_ptr<MessageSender> &&member_id_, int53 inviter_user_id_, int32 joined_chat_date_, object_ptr<ChatMemberStatus> &&status_)
+ : member_id_(std::move(member_id_))
+ , inviter_user_id_(inviter_user_id_)
+ , joined_chat_date_(joined_chat_date_)
+ , status_(std::move(status_))
+{}
+
+const std::int32_t chatMember::ID;
+
+void chatMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMember");
+ s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get()));
+ s.store_field("inviter_user_id", inviter_user_id_);
+ s.store_field("joined_chat_date", joined_chat_date_);
+ s.store_object_field("status", static_cast<const BaseObject *>(status_.get()));
+ s.store_class_end();
+ }
+}
+
+chatMemberStatusCreator::chatMemberStatusCreator()
+ : custom_title_()
+ , is_anonymous_()
+ , is_member_()
+{}
+
+chatMemberStatusCreator::chatMemberStatusCreator(string const &custom_title_, bool is_anonymous_, bool is_member_)
+ : custom_title_(custom_title_)
+ , is_anonymous_(is_anonymous_)
+ , is_member_(is_member_)
+{}
+
+const std::int32_t chatMemberStatusCreator::ID;
+
+void chatMemberStatusCreator::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMemberStatusCreator");
+ s.store_field("custom_title", custom_title_);
+ s.store_field("is_anonymous", is_anonymous_);
+ s.store_field("is_member", is_member_);
+ s.store_class_end();
+ }
+}
+
+chatMemberStatusAdministrator::chatMemberStatusAdministrator()
+ : custom_title_()
+ , can_be_edited_()
+ , rights_()
+{}
+
+chatMemberStatusAdministrator::chatMemberStatusAdministrator(string const &custom_title_, bool can_be_edited_, object_ptr<chatAdministratorRights> &&rights_)
+ : custom_title_(custom_title_)
+ , can_be_edited_(can_be_edited_)
+ , rights_(std::move(rights_))
+{}
+
+const std::int32_t chatMemberStatusAdministrator::ID;
+
+void chatMemberStatusAdministrator::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMemberStatusAdministrator");
+ s.store_field("custom_title", custom_title_);
+ s.store_field("can_be_edited", can_be_edited_);
+ s.store_object_field("rights", static_cast<const BaseObject *>(rights_.get()));
+ s.store_class_end();
+ }
+}
+
+chatMemberStatusMember::chatMemberStatusMember() {
+}
+
+const std::int32_t chatMemberStatusMember::ID;
+
+void chatMemberStatusMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMemberStatusMember");
+ s.store_class_end();
+ }
+}
+
+chatMemberStatusRestricted::chatMemberStatusRestricted()
+ : is_member_()
+ , restricted_until_date_()
+ , permissions_()
+{}
+
+chatMemberStatusRestricted::chatMemberStatusRestricted(bool is_member_, int32 restricted_until_date_, object_ptr<chatPermissions> &&permissions_)
+ : is_member_(is_member_)
+ , restricted_until_date_(restricted_until_date_)
+ , permissions_(std::move(permissions_))
+{}
+
+const std::int32_t chatMemberStatusRestricted::ID;
+
+void chatMemberStatusRestricted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMemberStatusRestricted");
+ s.store_field("is_member", is_member_);
+ s.store_field("restricted_until_date", restricted_until_date_);
+ s.store_object_field("permissions", static_cast<const BaseObject *>(permissions_.get()));
+ s.store_class_end();
+ }
+}
+
+chatMemberStatusLeft::chatMemberStatusLeft() {
+}
+
+const std::int32_t chatMemberStatusLeft::ID;
+
+void chatMemberStatusLeft::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMemberStatusLeft");
+ s.store_class_end();
+ }
+}
+
+chatMemberStatusBanned::chatMemberStatusBanned()
+ : banned_until_date_()
+{}
+
+chatMemberStatusBanned::chatMemberStatusBanned(int32 banned_until_date_)
+ : banned_until_date_(banned_until_date_)
+{}
+
+const std::int32_t chatMemberStatusBanned::ID;
+
+void chatMemberStatusBanned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMemberStatusBanned");
+ s.store_field("banned_until_date", banned_until_date_);
+ s.store_class_end();
+ }
+}
+
+chatMembers::chatMembers()
+ : total_count_()
+ , members_()
+{}
+
+chatMembers::chatMembers(int32 total_count_, array<object_ptr<chatMember>> &&members_)
+ : total_count_(total_count_)
+ , members_(std::move(members_))
+{}
+
+const std::int32_t chatMembers::ID;
+
+void chatMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMembers");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("members", members_.size()); for (const auto &_value : members_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatMembersFilterContacts::chatMembersFilterContacts() {
+}
+
+const std::int32_t chatMembersFilterContacts::ID;
+
+void chatMembersFilterContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMembersFilterContacts");
+ s.store_class_end();
+ }
+}
+
+chatMembersFilterAdministrators::chatMembersFilterAdministrators() {
+}
+
+const std::int32_t chatMembersFilterAdministrators::ID;
+
+void chatMembersFilterAdministrators::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMembersFilterAdministrators");
+ s.store_class_end();
+ }
+}
+
+chatMembersFilterMembers::chatMembersFilterMembers() {
+}
+
+const std::int32_t chatMembersFilterMembers::ID;
+
+void chatMembersFilterMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMembersFilterMembers");
+ s.store_class_end();
+ }
+}
+
+chatMembersFilterMention::chatMembersFilterMention()
+ : message_thread_id_()
+{}
+
+chatMembersFilterMention::chatMembersFilterMention(int53 message_thread_id_)
+ : message_thread_id_(message_thread_id_)
+{}
+
+const std::int32_t chatMembersFilterMention::ID;
+
+void chatMembersFilterMention::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMembersFilterMention");
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_class_end();
+ }
+}
+
+chatMembersFilterRestricted::chatMembersFilterRestricted() {
+}
+
+const std::int32_t chatMembersFilterRestricted::ID;
+
+void chatMembersFilterRestricted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMembersFilterRestricted");
+ s.store_class_end();
+ }
+}
+
+chatMembersFilterBanned::chatMembersFilterBanned() {
+}
+
+const std::int32_t chatMembersFilterBanned::ID;
+
+void chatMembersFilterBanned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMembersFilterBanned");
+ s.store_class_end();
+ }
+}
+
+chatMembersFilterBots::chatMembersFilterBots() {
+}
+
+const std::int32_t chatMembersFilterBots::ID;
+
+void chatMembersFilterBots::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMembersFilterBots");
+ s.store_class_end();
+ }
+}
+
+chatMessageSender::chatMessageSender()
+ : sender_()
+ , needs_premium_()
+{}
+
+chatMessageSender::chatMessageSender(object_ptr<MessageSender> &&sender_, bool needs_premium_)
+ : sender_(std::move(sender_))
+ , needs_premium_(needs_premium_)
+{}
+
+const std::int32_t chatMessageSender::ID;
+
+void chatMessageSender::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMessageSender");
+ s.store_object_field("sender", static_cast<const BaseObject *>(sender_.get()));
+ s.store_field("needs_premium", needs_premium_);
+ s.store_class_end();
+ }
+}
+
+chatMessageSenders::chatMessageSenders()
+ : senders_()
+{}
+
+chatMessageSenders::chatMessageSenders(array<object_ptr<chatMessageSender>> &&senders_)
+ : senders_(std::move(senders_))
+{}
+
+const std::int32_t chatMessageSenders::ID;
+
+void chatMessageSenders::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatMessageSenders");
+ { s.store_vector_begin("senders", senders_.size()); for (const auto &_value : senders_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatNearby::chatNearby()
+ : chat_id_()
+ , distance_()
+{}
+
+chatNearby::chatNearby(int53 chat_id_, int32 distance_)
+ : chat_id_(chat_id_)
+ , distance_(distance_)
+{}
+
+const std::int32_t chatNearby::ID;
+
+void chatNearby::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatNearby");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("distance", distance_);
+ s.store_class_end();
+ }
+}
+
+chatNotificationSettings::chatNotificationSettings()
+ : use_default_mute_for_()
+ , mute_for_()
+ , use_default_sound_()
+ , sound_id_()
+ , use_default_show_preview_()
+ , show_preview_()
+ , use_default_disable_pinned_message_notifications_()
+ , disable_pinned_message_notifications_()
+ , use_default_disable_mention_notifications_()
+ , disable_mention_notifications_()
+{}
+
+chatNotificationSettings::chatNotificationSettings(bool use_default_mute_for_, int32 mute_for_, bool use_default_sound_, int64 sound_id_, bool use_default_show_preview_, bool show_preview_, bool use_default_disable_pinned_message_notifications_, bool disable_pinned_message_notifications_, bool use_default_disable_mention_notifications_, bool disable_mention_notifications_)
+ : use_default_mute_for_(use_default_mute_for_)
+ , mute_for_(mute_for_)
+ , use_default_sound_(use_default_sound_)
+ , sound_id_(sound_id_)
+ , use_default_show_preview_(use_default_show_preview_)
+ , show_preview_(show_preview_)
+ , use_default_disable_pinned_message_notifications_(use_default_disable_pinned_message_notifications_)
+ , disable_pinned_message_notifications_(disable_pinned_message_notifications_)
+ , use_default_disable_mention_notifications_(use_default_disable_mention_notifications_)
+ , disable_mention_notifications_(disable_mention_notifications_)
+{}
+
+const std::int32_t chatNotificationSettings::ID;
+
+void chatNotificationSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatNotificationSettings");
+ s.store_field("use_default_mute_for", use_default_mute_for_);
+ s.store_field("mute_for", mute_for_);
+ s.store_field("use_default_sound", use_default_sound_);
+ s.store_field("sound_id", sound_id_);
+ s.store_field("use_default_show_preview", use_default_show_preview_);
+ s.store_field("show_preview", show_preview_);
+ s.store_field("use_default_disable_pinned_message_notifications", use_default_disable_pinned_message_notifications_);
+ s.store_field("disable_pinned_message_notifications", disable_pinned_message_notifications_);
+ s.store_field("use_default_disable_mention_notifications", use_default_disable_mention_notifications_);
+ s.store_field("disable_mention_notifications", disable_mention_notifications_);
+ s.store_class_end();
+ }
+}
+
+chatPermissions::chatPermissions()
+ : can_send_messages_()
+ , can_send_media_messages_()
+ , can_send_polls_()
+ , can_send_other_messages_()
+ , can_add_web_page_previews_()
+ , can_change_info_()
+ , can_invite_users_()
+ , can_pin_messages_()
+ , can_manage_topics_()
+{}
+
+chatPermissions::chatPermissions(bool can_send_messages_, bool can_send_media_messages_, bool can_send_polls_, bool can_send_other_messages_, bool can_add_web_page_previews_, bool can_change_info_, bool can_invite_users_, bool can_pin_messages_, bool can_manage_topics_)
+ : can_send_messages_(can_send_messages_)
+ , can_send_media_messages_(can_send_media_messages_)
+ , can_send_polls_(can_send_polls_)
+ , can_send_other_messages_(can_send_other_messages_)
+ , can_add_web_page_previews_(can_add_web_page_previews_)
+ , can_change_info_(can_change_info_)
+ , can_invite_users_(can_invite_users_)
+ , can_pin_messages_(can_pin_messages_)
+ , can_manage_topics_(can_manage_topics_)
+{}
+
+const std::int32_t chatPermissions::ID;
+
+void chatPermissions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatPermissions");
+ s.store_field("can_send_messages", can_send_messages_);
+ s.store_field("can_send_media_messages", can_send_media_messages_);
+ s.store_field("can_send_polls", can_send_polls_);
+ s.store_field("can_send_other_messages", can_send_other_messages_);
+ s.store_field("can_add_web_page_previews", can_add_web_page_previews_);
+ s.store_field("can_change_info", can_change_info_);
+ s.store_field("can_invite_users", can_invite_users_);
+ s.store_field("can_pin_messages", can_pin_messages_);
+ s.store_field("can_manage_topics", can_manage_topics_);
+ s.store_class_end();
+ }
+}
+
+chatPhoto::chatPhoto()
+ : id_()
+ , added_date_()
+ , minithumbnail_()
+ , sizes_()
+ , animation_()
+ , small_animation_()
+{}
+
+chatPhoto::chatPhoto(int64 id_, int32 added_date_, object_ptr<minithumbnail> &&minithumbnail_, array<object_ptr<photoSize>> &&sizes_, object_ptr<animatedChatPhoto> &&animation_, object_ptr<animatedChatPhoto> &&small_animation_)
+ : id_(id_)
+ , added_date_(added_date_)
+ , minithumbnail_(std::move(minithumbnail_))
+ , sizes_(std::move(sizes_))
+ , animation_(std::move(animation_))
+ , small_animation_(std::move(small_animation_))
+{}
+
+const std::int32_t chatPhoto::ID;
+
+void chatPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatPhoto");
+ s.store_field("id", id_);
+ s.store_field("added_date", added_date_);
+ s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get()));
+ { s.store_vector_begin("sizes", sizes_.size()); for (const auto &_value : sizes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_object_field("small_animation", static_cast<const BaseObject *>(small_animation_.get()));
+ s.store_class_end();
+ }
+}
+
+chatPhotoInfo::chatPhotoInfo()
+ : small_()
+ , big_()
+ , minithumbnail_()
+ , has_animation_()
+{}
+
+chatPhotoInfo::chatPhotoInfo(object_ptr<file> &&small_, object_ptr<file> &&big_, object_ptr<minithumbnail> &&minithumbnail_, bool has_animation_)
+ : small_(std::move(small_))
+ , big_(std::move(big_))
+ , minithumbnail_(std::move(minithumbnail_))
+ , has_animation_(has_animation_)
+{}
+
+const std::int32_t chatPhotoInfo::ID;
+
+void chatPhotoInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatPhotoInfo");
+ s.store_object_field("small", static_cast<const BaseObject *>(small_.get()));
+ s.store_object_field("big", static_cast<const BaseObject *>(big_.get()));
+ s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get()));
+ s.store_field("has_animation", has_animation_);
+ s.store_class_end();
+ }
+}
+
+chatPhotos::chatPhotos()
+ : total_count_()
+ , photos_()
+{}
+
+chatPhotos::chatPhotos(int32 total_count_, array<object_ptr<chatPhoto>> &&photos_)
+ : total_count_(total_count_)
+ , photos_(std::move(photos_))
+{}
+
+const std::int32_t chatPhotos::ID;
+
+void chatPhotos::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatPhotos");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("photos", photos_.size()); for (const auto &_value : photos_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatPosition::chatPosition()
+ : list_()
+ , order_()
+ , is_pinned_()
+ , source_()
+{}
+
+chatPosition::chatPosition(object_ptr<ChatList> &&list_, int64 order_, bool is_pinned_, object_ptr<ChatSource> &&source_)
+ : list_(std::move(list_))
+ , order_(order_)
+ , is_pinned_(is_pinned_)
+ , source_(std::move(source_))
+{}
+
+const std::int32_t chatPosition::ID;
+
+void chatPosition::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatPosition");
+ s.store_object_field("list", static_cast<const BaseObject *>(list_.get()));
+ s.store_field("order", order_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_object_field("source", static_cast<const BaseObject *>(source_.get()));
+ s.store_class_end();
+ }
+}
+
+chatReportReasonSpam::chatReportReasonSpam() {
+}
+
+const std::int32_t chatReportReasonSpam::ID;
+
+void chatReportReasonSpam::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReportReasonSpam");
+ s.store_class_end();
+ }
+}
+
+chatReportReasonViolence::chatReportReasonViolence() {
+}
+
+const std::int32_t chatReportReasonViolence::ID;
+
+void chatReportReasonViolence::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReportReasonViolence");
+ s.store_class_end();
+ }
+}
+
+chatReportReasonPornography::chatReportReasonPornography() {
+}
+
+const std::int32_t chatReportReasonPornography::ID;
+
+void chatReportReasonPornography::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReportReasonPornography");
+ s.store_class_end();
+ }
+}
+
+chatReportReasonChildAbuse::chatReportReasonChildAbuse() {
+}
+
+const std::int32_t chatReportReasonChildAbuse::ID;
+
+void chatReportReasonChildAbuse::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReportReasonChildAbuse");
+ s.store_class_end();
+ }
+}
+
+chatReportReasonCopyright::chatReportReasonCopyright() {
+}
+
+const std::int32_t chatReportReasonCopyright::ID;
+
+void chatReportReasonCopyright::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReportReasonCopyright");
+ s.store_class_end();
+ }
+}
+
+chatReportReasonUnrelatedLocation::chatReportReasonUnrelatedLocation() {
+}
+
+const std::int32_t chatReportReasonUnrelatedLocation::ID;
+
+void chatReportReasonUnrelatedLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReportReasonUnrelatedLocation");
+ s.store_class_end();
+ }
+}
+
+chatReportReasonFake::chatReportReasonFake() {
+}
+
+const std::int32_t chatReportReasonFake::ID;
+
+void chatReportReasonFake::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReportReasonFake");
+ s.store_class_end();
+ }
+}
+
+chatReportReasonIllegalDrugs::chatReportReasonIllegalDrugs() {
+}
+
+const std::int32_t chatReportReasonIllegalDrugs::ID;
+
+void chatReportReasonIllegalDrugs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReportReasonIllegalDrugs");
+ s.store_class_end();
+ }
+}
+
+chatReportReasonPersonalDetails::chatReportReasonPersonalDetails() {
+}
+
+const std::int32_t chatReportReasonPersonalDetails::ID;
+
+void chatReportReasonPersonalDetails::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReportReasonPersonalDetails");
+ s.store_class_end();
+ }
+}
+
+chatReportReasonCustom::chatReportReasonCustom() {
+}
+
+const std::int32_t chatReportReasonCustom::ID;
+
+void chatReportReasonCustom::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReportReasonCustom");
+ s.store_class_end();
+ }
+}
+
+chatSourceMtprotoProxy::chatSourceMtprotoProxy() {
+}
+
+const std::int32_t chatSourceMtprotoProxy::ID;
+
+void chatSourceMtprotoProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatSourceMtprotoProxy");
+ s.store_class_end();
+ }
+}
+
+chatSourcePublicServiceAnnouncement::chatSourcePublicServiceAnnouncement()
+ : type_()
+ , text_()
+{}
+
+chatSourcePublicServiceAnnouncement::chatSourcePublicServiceAnnouncement(string const &type_, string const &text_)
+ : type_(type_)
+ , text_(text_)
+{}
+
+const std::int32_t chatSourcePublicServiceAnnouncement::ID;
+
+void chatSourcePublicServiceAnnouncement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatSourcePublicServiceAnnouncement");
+ s.store_field("type", type_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+chatStatisticsSupergroup::chatStatisticsSupergroup()
+ : period_()
+ , member_count_()
+ , message_count_()
+ , viewer_count_()
+ , sender_count_()
+ , member_count_graph_()
+ , join_graph_()
+ , join_by_source_graph_()
+ , language_graph_()
+ , message_content_graph_()
+ , action_graph_()
+ , day_graph_()
+ , week_graph_()
+ , top_senders_()
+ , top_administrators_()
+ , top_inviters_()
+{}
+
+chatStatisticsSupergroup::chatStatisticsSupergroup(object_ptr<dateRange> &&period_, object_ptr<statisticalValue> &&member_count_, object_ptr<statisticalValue> &&message_count_, object_ptr<statisticalValue> &&viewer_count_, object_ptr<statisticalValue> &&sender_count_, object_ptr<StatisticalGraph> &&member_count_graph_, object_ptr<StatisticalGraph> &&join_graph_, object_ptr<StatisticalGraph> &&join_by_source_graph_, object_ptr<StatisticalGraph> &&language_graph_, object_ptr<StatisticalGraph> &&message_content_graph_, object_ptr<StatisticalGraph> &&action_graph_, object_ptr<StatisticalGraph> &&day_graph_, object_ptr<StatisticalGraph> &&week_graph_, array<object_ptr<chatStatisticsMessageSenderInfo>> &&top_senders_, array<object_ptr<chatStatisticsAdministratorActionsInfo>> &&top_administrators_, array<object_ptr<chatStatisticsInviterInfo>> &&top_inviters_)
+ : period_(std::move(period_))
+ , member_count_(std::move(member_count_))
+ , message_count_(std::move(message_count_))
+ , viewer_count_(std::move(viewer_count_))
+ , sender_count_(std::move(sender_count_))
+ , member_count_graph_(std::move(member_count_graph_))
+ , join_graph_(std::move(join_graph_))
+ , join_by_source_graph_(std::move(join_by_source_graph_))
+ , language_graph_(std::move(language_graph_))
+ , message_content_graph_(std::move(message_content_graph_))
+ , action_graph_(std::move(action_graph_))
+ , day_graph_(std::move(day_graph_))
+ , week_graph_(std::move(week_graph_))
+ , top_senders_(std::move(top_senders_))
+ , top_administrators_(std::move(top_administrators_))
+ , top_inviters_(std::move(top_inviters_))
+{}
+
+const std::int32_t chatStatisticsSupergroup::ID;
+
+void chatStatisticsSupergroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatStatisticsSupergroup");
+ s.store_object_field("period", static_cast<const BaseObject *>(period_.get()));
+ s.store_object_field("member_count", static_cast<const BaseObject *>(member_count_.get()));
+ s.store_object_field("message_count", static_cast<const BaseObject *>(message_count_.get()));
+ s.store_object_field("viewer_count", static_cast<const BaseObject *>(viewer_count_.get()));
+ s.store_object_field("sender_count", static_cast<const BaseObject *>(sender_count_.get()));
+ s.store_object_field("member_count_graph", static_cast<const BaseObject *>(member_count_graph_.get()));
+ s.store_object_field("join_graph", static_cast<const BaseObject *>(join_graph_.get()));
+ s.store_object_field("join_by_source_graph", static_cast<const BaseObject *>(join_by_source_graph_.get()));
+ s.store_object_field("language_graph", static_cast<const BaseObject *>(language_graph_.get()));
+ s.store_object_field("message_content_graph", static_cast<const BaseObject *>(message_content_graph_.get()));
+ s.store_object_field("action_graph", static_cast<const BaseObject *>(action_graph_.get()));
+ s.store_object_field("day_graph", static_cast<const BaseObject *>(day_graph_.get()));
+ s.store_object_field("week_graph", static_cast<const BaseObject *>(week_graph_.get()));
+ { s.store_vector_begin("top_senders", top_senders_.size()); for (const auto &_value : top_senders_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("top_administrators", top_administrators_.size()); for (const auto &_value : top_administrators_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("top_inviters", top_inviters_.size()); for (const auto &_value : top_inviters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatStatisticsChannel::chatStatisticsChannel()
+ : period_()
+ , member_count_()
+ , mean_view_count_()
+ , mean_share_count_()
+ , enabled_notifications_percentage_()
+ , member_count_graph_()
+ , join_graph_()
+ , mute_graph_()
+ , view_count_by_hour_graph_()
+ , view_count_by_source_graph_()
+ , join_by_source_graph_()
+ , language_graph_()
+ , message_interaction_graph_()
+ , instant_view_interaction_graph_()
+ , recent_message_interactions_()
+{}
+
+chatStatisticsChannel::chatStatisticsChannel(object_ptr<dateRange> &&period_, object_ptr<statisticalValue> &&member_count_, object_ptr<statisticalValue> &&mean_view_count_, object_ptr<statisticalValue> &&mean_share_count_, double enabled_notifications_percentage_, object_ptr<StatisticalGraph> &&member_count_graph_, object_ptr<StatisticalGraph> &&join_graph_, object_ptr<StatisticalGraph> &&mute_graph_, object_ptr<StatisticalGraph> &&view_count_by_hour_graph_, object_ptr<StatisticalGraph> &&view_count_by_source_graph_, object_ptr<StatisticalGraph> &&join_by_source_graph_, object_ptr<StatisticalGraph> &&language_graph_, object_ptr<StatisticalGraph> &&message_interaction_graph_, object_ptr<StatisticalGraph> &&instant_view_interaction_graph_, array<object_ptr<chatStatisticsMessageInteractionInfo>> &&recent_message_interactions_)
+ : period_(std::move(period_))
+ , member_count_(std::move(member_count_))
+ , mean_view_count_(std::move(mean_view_count_))
+ , mean_share_count_(std::move(mean_share_count_))
+ , enabled_notifications_percentage_(enabled_notifications_percentage_)
+ , member_count_graph_(std::move(member_count_graph_))
+ , join_graph_(std::move(join_graph_))
+ , mute_graph_(std::move(mute_graph_))
+ , view_count_by_hour_graph_(std::move(view_count_by_hour_graph_))
+ , view_count_by_source_graph_(std::move(view_count_by_source_graph_))
+ , join_by_source_graph_(std::move(join_by_source_graph_))
+ , language_graph_(std::move(language_graph_))
+ , message_interaction_graph_(std::move(message_interaction_graph_))
+ , instant_view_interaction_graph_(std::move(instant_view_interaction_graph_))
+ , recent_message_interactions_(std::move(recent_message_interactions_))
+{}
+
+const std::int32_t chatStatisticsChannel::ID;
+
+void chatStatisticsChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatStatisticsChannel");
+ s.store_object_field("period", static_cast<const BaseObject *>(period_.get()));
+ s.store_object_field("member_count", static_cast<const BaseObject *>(member_count_.get()));
+ s.store_object_field("mean_view_count", static_cast<const BaseObject *>(mean_view_count_.get()));
+ s.store_object_field("mean_share_count", static_cast<const BaseObject *>(mean_share_count_.get()));
+ s.store_field("enabled_notifications_percentage", enabled_notifications_percentage_);
+ s.store_object_field("member_count_graph", static_cast<const BaseObject *>(member_count_graph_.get()));
+ s.store_object_field("join_graph", static_cast<const BaseObject *>(join_graph_.get()));
+ s.store_object_field("mute_graph", static_cast<const BaseObject *>(mute_graph_.get()));
+ s.store_object_field("view_count_by_hour_graph", static_cast<const BaseObject *>(view_count_by_hour_graph_.get()));
+ s.store_object_field("view_count_by_source_graph", static_cast<const BaseObject *>(view_count_by_source_graph_.get()));
+ s.store_object_field("join_by_source_graph", static_cast<const BaseObject *>(join_by_source_graph_.get()));
+ s.store_object_field("language_graph", static_cast<const BaseObject *>(language_graph_.get()));
+ s.store_object_field("message_interaction_graph", static_cast<const BaseObject *>(message_interaction_graph_.get()));
+ s.store_object_field("instant_view_interaction_graph", static_cast<const BaseObject *>(instant_view_interaction_graph_.get()));
+ { s.store_vector_begin("recent_message_interactions", recent_message_interactions_.size()); for (const auto &_value : recent_message_interactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatStatisticsAdministratorActionsInfo::chatStatisticsAdministratorActionsInfo()
+ : user_id_()
+ , deleted_message_count_()
+ , banned_user_count_()
+ , restricted_user_count_()
+{}
+
+chatStatisticsAdministratorActionsInfo::chatStatisticsAdministratorActionsInfo(int53 user_id_, int32 deleted_message_count_, int32 banned_user_count_, int32 restricted_user_count_)
+ : user_id_(user_id_)
+ , deleted_message_count_(deleted_message_count_)
+ , banned_user_count_(banned_user_count_)
+ , restricted_user_count_(restricted_user_count_)
+{}
+
+const std::int32_t chatStatisticsAdministratorActionsInfo::ID;
+
+void chatStatisticsAdministratorActionsInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatStatisticsAdministratorActionsInfo");
+ s.store_field("user_id", user_id_);
+ s.store_field("deleted_message_count", deleted_message_count_);
+ s.store_field("banned_user_count", banned_user_count_);
+ s.store_field("restricted_user_count", restricted_user_count_);
+ s.store_class_end();
+ }
+}
+
+chatStatisticsInviterInfo::chatStatisticsInviterInfo()
+ : user_id_()
+ , added_member_count_()
+{}
+
+chatStatisticsInviterInfo::chatStatisticsInviterInfo(int53 user_id_, int32 added_member_count_)
+ : user_id_(user_id_)
+ , added_member_count_(added_member_count_)
+{}
+
+const std::int32_t chatStatisticsInviterInfo::ID;
+
+void chatStatisticsInviterInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatStatisticsInviterInfo");
+ s.store_field("user_id", user_id_);
+ s.store_field("added_member_count", added_member_count_);
+ s.store_class_end();
+ }
+}
+
+chatStatisticsMessageInteractionInfo::chatStatisticsMessageInteractionInfo()
+ : message_id_()
+ , view_count_()
+ , forward_count_()
+{}
+
+chatStatisticsMessageInteractionInfo::chatStatisticsMessageInteractionInfo(int53 message_id_, int32 view_count_, int32 forward_count_)
+ : message_id_(message_id_)
+ , view_count_(view_count_)
+ , forward_count_(forward_count_)
+{}
+
+const std::int32_t chatStatisticsMessageInteractionInfo::ID;
+
+void chatStatisticsMessageInteractionInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatStatisticsMessageInteractionInfo");
+ s.store_field("message_id", message_id_);
+ s.store_field("view_count", view_count_);
+ s.store_field("forward_count", forward_count_);
+ s.store_class_end();
+ }
+}
+
+chatStatisticsMessageSenderInfo::chatStatisticsMessageSenderInfo()
+ : user_id_()
+ , sent_message_count_()
+ , average_character_count_()
+{}
+
+chatStatisticsMessageSenderInfo::chatStatisticsMessageSenderInfo(int53 user_id_, int32 sent_message_count_, int32 average_character_count_)
+ : user_id_(user_id_)
+ , sent_message_count_(sent_message_count_)
+ , average_character_count_(average_character_count_)
+{}
+
+const std::int32_t chatStatisticsMessageSenderInfo::ID;
+
+void chatStatisticsMessageSenderInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatStatisticsMessageSenderInfo");
+ s.store_field("user_id", user_id_);
+ s.store_field("sent_message_count", sent_message_count_);
+ s.store_field("average_character_count", average_character_count_);
+ s.store_class_end();
+ }
+}
+
+chatTheme::chatTheme()
+ : name_()
+ , light_settings_()
+ , dark_settings_()
+{}
+
+chatTheme::chatTheme(string const &name_, object_ptr<themeSettings> &&light_settings_, object_ptr<themeSettings> &&dark_settings_)
+ : name_(name_)
+ , light_settings_(std::move(light_settings_))
+ , dark_settings_(std::move(dark_settings_))
+{}
+
+const std::int32_t chatTheme::ID;
+
+void chatTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatTheme");
+ s.store_field("name", name_);
+ s.store_object_field("light_settings", static_cast<const BaseObject *>(light_settings_.get()));
+ s.store_object_field("dark_settings", static_cast<const BaseObject *>(dark_settings_.get()));
+ s.store_class_end();
+ }
+}
+
+chatTypePrivate::chatTypePrivate()
+ : user_id_()
+{}
+
+chatTypePrivate::chatTypePrivate(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t chatTypePrivate::ID;
+
+void chatTypePrivate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatTypePrivate");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+chatTypeBasicGroup::chatTypeBasicGroup()
+ : basic_group_id_()
+{}
+
+chatTypeBasicGroup::chatTypeBasicGroup(int53 basic_group_id_)
+ : basic_group_id_(basic_group_id_)
+{}
+
+const std::int32_t chatTypeBasicGroup::ID;
+
+void chatTypeBasicGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatTypeBasicGroup");
+ s.store_field("basic_group_id", basic_group_id_);
+ s.store_class_end();
+ }
+}
+
+chatTypeSupergroup::chatTypeSupergroup()
+ : supergroup_id_()
+ , is_channel_()
+{}
+
+chatTypeSupergroup::chatTypeSupergroup(int53 supergroup_id_, bool is_channel_)
+ : supergroup_id_(supergroup_id_)
+ , is_channel_(is_channel_)
+{}
+
+const std::int32_t chatTypeSupergroup::ID;
+
+void chatTypeSupergroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatTypeSupergroup");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_field("is_channel", is_channel_);
+ s.store_class_end();
+ }
+}
+
+chatTypeSecret::chatTypeSecret()
+ : secret_chat_id_()
+ , user_id_()
+{}
+
+chatTypeSecret::chatTypeSecret(int32 secret_chat_id_, int53 user_id_)
+ : secret_chat_id_(secret_chat_id_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t chatTypeSecret::ID;
+
+void chatTypeSecret::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatTypeSecret");
+ s.store_field("secret_chat_id", secret_chat_id_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+chats::chats()
+ : total_count_()
+ , chat_ids_()
+{}
+
+chats::chats(int32 total_count_, array<int53> &&chat_ids_)
+ : total_count_(total_count_)
+ , chat_ids_(std::move(chat_ids_))
+{}
+
+const std::int32_t chats::ID;
+
+void chats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chats");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("chat_ids", chat_ids_.size()); for (const auto &_value : chat_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+chatsNearby::chatsNearby()
+ : users_nearby_()
+ , supergroups_nearby_()
+{}
+
+chatsNearby::chatsNearby(array<object_ptr<chatNearby>> &&users_nearby_, array<object_ptr<chatNearby>> &&supergroups_nearby_)
+ : users_nearby_(std::move(users_nearby_))
+ , supergroups_nearby_(std::move(supergroups_nearby_))
+{}
+
+const std::int32_t chatsNearby::ID;
+
+void chatsNearby::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatsNearby");
+ { s.store_vector_begin("users_nearby", users_nearby_.size()); for (const auto &_value : users_nearby_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("supergroups_nearby", supergroups_nearby_.size()); for (const auto &_value : supergroups_nearby_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+checkChatUsernameResultOk::checkChatUsernameResultOk() {
+}
+
+const std::int32_t checkChatUsernameResultOk::ID;
+
+void checkChatUsernameResultOk::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkChatUsernameResultOk");
+ s.store_class_end();
+ }
+}
+
+checkChatUsernameResultUsernameInvalid::checkChatUsernameResultUsernameInvalid() {
+}
+
+const std::int32_t checkChatUsernameResultUsernameInvalid::ID;
+
+void checkChatUsernameResultUsernameInvalid::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkChatUsernameResultUsernameInvalid");
+ s.store_class_end();
+ }
+}
+
+checkChatUsernameResultUsernameOccupied::checkChatUsernameResultUsernameOccupied() {
+}
+
+const std::int32_t checkChatUsernameResultUsernameOccupied::ID;
+
+void checkChatUsernameResultUsernameOccupied::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkChatUsernameResultUsernameOccupied");
+ s.store_class_end();
+ }
+}
+
+checkChatUsernameResultPublicChatsTooMuch::checkChatUsernameResultPublicChatsTooMuch() {
+}
+
+const std::int32_t checkChatUsernameResultPublicChatsTooMuch::ID;
+
+void checkChatUsernameResultPublicChatsTooMuch::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkChatUsernameResultPublicChatsTooMuch");
+ s.store_class_end();
+ }
+}
+
+checkChatUsernameResultPublicGroupsUnavailable::checkChatUsernameResultPublicGroupsUnavailable() {
+}
+
+const std::int32_t checkChatUsernameResultPublicGroupsUnavailable::ID;
+
+void checkChatUsernameResultPublicGroupsUnavailable::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkChatUsernameResultPublicGroupsUnavailable");
+ s.store_class_end();
+ }
+}
+
+checkStickerSetNameResultOk::checkStickerSetNameResultOk() {
+}
+
+const std::int32_t checkStickerSetNameResultOk::ID;
+
+void checkStickerSetNameResultOk::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkStickerSetNameResultOk");
+ s.store_class_end();
+ }
+}
+
+checkStickerSetNameResultNameInvalid::checkStickerSetNameResultNameInvalid() {
+}
+
+const std::int32_t checkStickerSetNameResultNameInvalid::ID;
+
+void checkStickerSetNameResultNameInvalid::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkStickerSetNameResultNameInvalid");
+ s.store_class_end();
+ }
+}
+
+checkStickerSetNameResultNameOccupied::checkStickerSetNameResultNameOccupied() {
+}
+
+const std::int32_t checkStickerSetNameResultNameOccupied::ID;
+
+void checkStickerSetNameResultNameOccupied::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkStickerSetNameResultNameOccupied");
+ s.store_class_end();
+ }
+}
+
+closedVectorPath::closedVectorPath()
+ : commands_()
+{}
+
+closedVectorPath::closedVectorPath(array<object_ptr<VectorPathCommand>> &&commands_)
+ : commands_(std::move(commands_))
+{}
+
+const std::int32_t closedVectorPath::ID;
+
+void closedVectorPath::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "closedVectorPath");
+ { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+connectedWebsite::connectedWebsite()
+ : id_()
+ , domain_name_()
+ , bot_user_id_()
+ , browser_()
+ , platform_()
+ , log_in_date_()
+ , last_active_date_()
+ , ip_()
+ , location_()
+{}
+
+connectedWebsite::connectedWebsite(int64 id_, string const &domain_name_, int53 bot_user_id_, string const &browser_, string const &platform_, int32 log_in_date_, int32 last_active_date_, string const &ip_, string const &location_)
+ : id_(id_)
+ , domain_name_(domain_name_)
+ , bot_user_id_(bot_user_id_)
+ , browser_(browser_)
+ , platform_(platform_)
+ , log_in_date_(log_in_date_)
+ , last_active_date_(last_active_date_)
+ , ip_(ip_)
+ , location_(location_)
+{}
+
+const std::int32_t connectedWebsite::ID;
+
+void connectedWebsite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "connectedWebsite");
+ s.store_field("id", id_);
+ s.store_field("domain_name", domain_name_);
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("browser", browser_);
+ s.store_field("platform", platform_);
+ s.store_field("log_in_date", log_in_date_);
+ s.store_field("last_active_date", last_active_date_);
+ s.store_field("ip", ip_);
+ s.store_field("location", location_);
+ s.store_class_end();
+ }
+}
+
+connectedWebsites::connectedWebsites()
+ : websites_()
+{}
+
+connectedWebsites::connectedWebsites(array<object_ptr<connectedWebsite>> &&websites_)
+ : websites_(std::move(websites_))
+{}
+
+const std::int32_t connectedWebsites::ID;
+
+void connectedWebsites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "connectedWebsites");
+ { s.store_vector_begin("websites", websites_.size()); for (const auto &_value : websites_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+connectionStateWaitingForNetwork::connectionStateWaitingForNetwork() {
+}
+
+const std::int32_t connectionStateWaitingForNetwork::ID;
+
+void connectionStateWaitingForNetwork::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "connectionStateWaitingForNetwork");
+ s.store_class_end();
+ }
+}
+
+connectionStateConnectingToProxy::connectionStateConnectingToProxy() {
+}
+
+const std::int32_t connectionStateConnectingToProxy::ID;
+
+void connectionStateConnectingToProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "connectionStateConnectingToProxy");
+ s.store_class_end();
+ }
+}
+
+connectionStateConnecting::connectionStateConnecting() {
+}
+
+const std::int32_t connectionStateConnecting::ID;
+
+void connectionStateConnecting::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "connectionStateConnecting");
+ s.store_class_end();
+ }
+}
+
+connectionStateUpdating::connectionStateUpdating() {
+}
+
+const std::int32_t connectionStateUpdating::ID;
+
+void connectionStateUpdating::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "connectionStateUpdating");
+ s.store_class_end();
+ }
+}
+
+connectionStateReady::connectionStateReady() {
+}
+
+const std::int32_t connectionStateReady::ID;
+
+void connectionStateReady::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "connectionStateReady");
+ s.store_class_end();
+ }
+}
+
+contact::contact()
+ : phone_number_()
+ , first_name_()
+ , last_name_()
+ , vcard_()
+ , user_id_()
+{}
+
+contact::contact(string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_, int53 user_id_)
+ : phone_number_(phone_number_)
+ , first_name_(first_name_)
+ , last_name_(last_name_)
+ , vcard_(vcard_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t contact::ID;
+
+void contact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contact");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_field("vcard", vcard_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+count::count()
+ : count_()
+{}
+
+count::count(int32 count_)
+ : count_(count_)
+{}
+
+const std::int32_t count::ID;
+
+void count::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "count");
+ s.store_field("count", count_);
+ s.store_class_end();
+ }
+}
+
+countries::countries()
+ : countries_()
+{}
+
+countries::countries(array<object_ptr<countryInfo>> &&countries_)
+ : countries_(std::move(countries_))
+{}
+
+const std::int32_t countries::ID;
+
+void countries::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "countries");
+ { s.store_vector_begin("countries", countries_.size()); for (const auto &_value : countries_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+countryInfo::countryInfo()
+ : country_code_()
+ , name_()
+ , english_name_()
+ , is_hidden_()
+ , calling_codes_()
+{}
+
+countryInfo::countryInfo(string const &country_code_, string const &name_, string const &english_name_, bool is_hidden_, array<string> &&calling_codes_)
+ : country_code_(country_code_)
+ , name_(name_)
+ , english_name_(english_name_)
+ , is_hidden_(is_hidden_)
+ , calling_codes_(std::move(calling_codes_))
+{}
+
+const std::int32_t countryInfo::ID;
+
+void countryInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "countryInfo");
+ s.store_field("country_code", country_code_);
+ s.store_field("name", name_);
+ s.store_field("english_name", english_name_);
+ s.store_field("is_hidden", is_hidden_);
+ { s.store_vector_begin("calling_codes", calling_codes_.size()); for (const auto &_value : calling_codes_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+customRequestResult::customRequestResult()
+ : result_()
+{}
+
+customRequestResult::customRequestResult(string const &result_)
+ : result_(result_)
+{}
+
+const std::int32_t customRequestResult::ID;
+
+void customRequestResult::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "customRequestResult");
+ s.store_field("result", result_);
+ s.store_class_end();
+ }
+}
+
+databaseStatistics::databaseStatistics()
+ : statistics_()
+{}
+
+databaseStatistics::databaseStatistics(string const &statistics_)
+ : statistics_(statistics_)
+{}
+
+const std::int32_t databaseStatistics::ID;
+
+void databaseStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "databaseStatistics");
+ s.store_field("statistics", statistics_);
+ s.store_class_end();
+ }
+}
+
+date::date()
+ : day_()
+ , month_()
+ , year_()
+{}
+
+date::date(int32 day_, int32 month_, int32 year_)
+ : day_(day_)
+ , month_(month_)
+ , year_(year_)
+{}
+
+const std::int32_t date::ID;
+
+void date::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "date");
+ s.store_field("day", day_);
+ s.store_field("month", month_);
+ s.store_field("year", year_);
+ s.store_class_end();
+ }
+}
+
+dateRange::dateRange()
+ : start_date_()
+ , end_date_()
+{}
+
+dateRange::dateRange(int32 start_date_, int32 end_date_)
+ : start_date_(start_date_)
+ , end_date_(end_date_)
+{}
+
+const std::int32_t dateRange::ID;
+
+void dateRange::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dateRange");
+ s.store_field("start_date", start_date_);
+ s.store_field("end_date", end_date_);
+ s.store_class_end();
+ }
+}
+
+datedFile::datedFile()
+ : file_()
+ , date_()
+{}
+
+datedFile::datedFile(object_ptr<file> &&file_, int32 date_)
+ : file_(std::move(file_))
+ , date_(date_)
+{}
+
+const std::int32_t datedFile::ID;
+
+void datedFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "datedFile");
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+deepLinkInfo::deepLinkInfo()
+ : text_()
+ , need_update_application_()
+{}
+
+deepLinkInfo::deepLinkInfo(object_ptr<formattedText> &&text_, bool need_update_application_)
+ : text_(std::move(text_))
+ , need_update_application_(need_update_application_)
+{}
+
+const std::int32_t deepLinkInfo::ID;
+
+void deepLinkInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deepLinkInfo");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("need_update_application", need_update_application_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenFirebaseCloudMessaging::deviceTokenFirebaseCloudMessaging()
+ : token_()
+ , encrypt_()
+{}
+
+deviceTokenFirebaseCloudMessaging::deviceTokenFirebaseCloudMessaging(string const &token_, bool encrypt_)
+ : token_(token_)
+ , encrypt_(encrypt_)
+{}
+
+const std::int32_t deviceTokenFirebaseCloudMessaging::ID;
+
+void deviceTokenFirebaseCloudMessaging::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenFirebaseCloudMessaging");
+ s.store_field("token", token_);
+ s.store_field("encrypt", encrypt_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenApplePush::deviceTokenApplePush()
+ : device_token_()
+ , is_app_sandbox_()
+{}
+
+deviceTokenApplePush::deviceTokenApplePush(string const &device_token_, bool is_app_sandbox_)
+ : device_token_(device_token_)
+ , is_app_sandbox_(is_app_sandbox_)
+{}
+
+const std::int32_t deviceTokenApplePush::ID;
+
+void deviceTokenApplePush::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenApplePush");
+ s.store_field("device_token", device_token_);
+ s.store_field("is_app_sandbox", is_app_sandbox_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenApplePushVoIP::deviceTokenApplePushVoIP()
+ : device_token_()
+ , is_app_sandbox_()
+ , encrypt_()
+{}
+
+deviceTokenApplePushVoIP::deviceTokenApplePushVoIP(string const &device_token_, bool is_app_sandbox_, bool encrypt_)
+ : device_token_(device_token_)
+ , is_app_sandbox_(is_app_sandbox_)
+ , encrypt_(encrypt_)
+{}
+
+const std::int32_t deviceTokenApplePushVoIP::ID;
+
+void deviceTokenApplePushVoIP::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenApplePushVoIP");
+ s.store_field("device_token", device_token_);
+ s.store_field("is_app_sandbox", is_app_sandbox_);
+ s.store_field("encrypt", encrypt_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenWindowsPush::deviceTokenWindowsPush()
+ : access_token_()
+{}
+
+deviceTokenWindowsPush::deviceTokenWindowsPush(string const &access_token_)
+ : access_token_(access_token_)
+{}
+
+const std::int32_t deviceTokenWindowsPush::ID;
+
+void deviceTokenWindowsPush::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenWindowsPush");
+ s.store_field("access_token", access_token_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenMicrosoftPush::deviceTokenMicrosoftPush()
+ : channel_uri_()
+{}
+
+deviceTokenMicrosoftPush::deviceTokenMicrosoftPush(string const &channel_uri_)
+ : channel_uri_(channel_uri_)
+{}
+
+const std::int32_t deviceTokenMicrosoftPush::ID;
+
+void deviceTokenMicrosoftPush::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenMicrosoftPush");
+ s.store_field("channel_uri", channel_uri_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenMicrosoftPushVoIP::deviceTokenMicrosoftPushVoIP()
+ : channel_uri_()
+{}
+
+deviceTokenMicrosoftPushVoIP::deviceTokenMicrosoftPushVoIP(string const &channel_uri_)
+ : channel_uri_(channel_uri_)
+{}
+
+const std::int32_t deviceTokenMicrosoftPushVoIP::ID;
+
+void deviceTokenMicrosoftPushVoIP::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenMicrosoftPushVoIP");
+ s.store_field("channel_uri", channel_uri_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenWebPush::deviceTokenWebPush()
+ : endpoint_()
+ , p256dh_base64url_()
+ , auth_base64url_()
+{}
+
+deviceTokenWebPush::deviceTokenWebPush(string const &endpoint_, string const &p256dh_base64url_, string const &auth_base64url_)
+ : endpoint_(endpoint_)
+ , p256dh_base64url_(p256dh_base64url_)
+ , auth_base64url_(auth_base64url_)
+{}
+
+const std::int32_t deviceTokenWebPush::ID;
+
+void deviceTokenWebPush::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenWebPush");
+ s.store_field("endpoint", endpoint_);
+ s.store_field("p256dh_base64url", p256dh_base64url_);
+ s.store_field("auth_base64url", auth_base64url_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenSimplePush::deviceTokenSimplePush()
+ : endpoint_()
+{}
+
+deviceTokenSimplePush::deviceTokenSimplePush(string const &endpoint_)
+ : endpoint_(endpoint_)
+{}
+
+const std::int32_t deviceTokenSimplePush::ID;
+
+void deviceTokenSimplePush::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenSimplePush");
+ s.store_field("endpoint", endpoint_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenUbuntuPush::deviceTokenUbuntuPush()
+ : token_()
+{}
+
+deviceTokenUbuntuPush::deviceTokenUbuntuPush(string const &token_)
+ : token_(token_)
+{}
+
+const std::int32_t deviceTokenUbuntuPush::ID;
+
+void deviceTokenUbuntuPush::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenUbuntuPush");
+ s.store_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenBlackBerryPush::deviceTokenBlackBerryPush()
+ : token_()
+{}
+
+deviceTokenBlackBerryPush::deviceTokenBlackBerryPush(string const &token_)
+ : token_(token_)
+{}
+
+const std::int32_t deviceTokenBlackBerryPush::ID;
+
+void deviceTokenBlackBerryPush::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenBlackBerryPush");
+ s.store_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+deviceTokenTizenPush::deviceTokenTizenPush()
+ : reg_id_()
+{}
+
+deviceTokenTizenPush::deviceTokenTizenPush(string const &reg_id_)
+ : reg_id_(reg_id_)
+{}
+
+const std::int32_t deviceTokenTizenPush::ID;
+
+void deviceTokenTizenPush::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deviceTokenTizenPush");
+ s.store_field("reg_id", reg_id_);
+ s.store_class_end();
+ }
+}
+
+diceStickersRegular::diceStickersRegular()
+ : sticker_()
+{}
+
+diceStickersRegular::diceStickersRegular(object_ptr<sticker> &&sticker_)
+ : sticker_(std::move(sticker_))
+{}
+
+const std::int32_t diceStickersRegular::ID;
+
+void diceStickersRegular::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "diceStickersRegular");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+diceStickersSlotMachine::diceStickersSlotMachine()
+ : background_()
+ , lever_()
+ , left_reel_()
+ , center_reel_()
+ , right_reel_()
+{}
+
+diceStickersSlotMachine::diceStickersSlotMachine(object_ptr<sticker> &&background_, object_ptr<sticker> &&lever_, object_ptr<sticker> &&left_reel_, object_ptr<sticker> &&center_reel_, object_ptr<sticker> &&right_reel_)
+ : background_(std::move(background_))
+ , lever_(std::move(lever_))
+ , left_reel_(std::move(left_reel_))
+ , center_reel_(std::move(center_reel_))
+ , right_reel_(std::move(right_reel_))
+{}
+
+const std::int32_t diceStickersSlotMachine::ID;
+
+void diceStickersSlotMachine::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "diceStickersSlotMachine");
+ s.store_object_field("background", static_cast<const BaseObject *>(background_.get()));
+ s.store_object_field("lever", static_cast<const BaseObject *>(lever_.get()));
+ s.store_object_field("left_reel", static_cast<const BaseObject *>(left_reel_.get()));
+ s.store_object_field("center_reel", static_cast<const BaseObject *>(center_reel_.get()));
+ s.store_object_field("right_reel", static_cast<const BaseObject *>(right_reel_.get()));
+ s.store_class_end();
+ }
+}
+
+document::document()
+ : file_name_()
+ , mime_type_()
+ , minithumbnail_()
+ , thumbnail_()
+ , document_()
+{}
+
+document::document(string const &file_name_, string const &mime_type_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&document_)
+ : file_name_(file_name_)
+ , mime_type_(mime_type_)
+ , minithumbnail_(std::move(minithumbnail_))
+ , thumbnail_(std::move(thumbnail_))
+ , document_(std::move(document_))
+{}
+
+const std::int32_t document::ID;
+
+void document::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "document");
+ s.store_field("file_name", file_name_);
+ s.store_field("mime_type", mime_type_);
+ s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_class_end();
+ }
+}
+
+downloadedFileCounts::downloadedFileCounts()
+ : active_count_()
+ , paused_count_()
+ , completed_count_()
+{}
+
+downloadedFileCounts::downloadedFileCounts(int32 active_count_, int32 paused_count_, int32 completed_count_)
+ : active_count_(active_count_)
+ , paused_count_(paused_count_)
+ , completed_count_(completed_count_)
+{}
+
+const std::int32_t downloadedFileCounts::ID;
+
+void downloadedFileCounts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "downloadedFileCounts");
+ s.store_field("active_count", active_count_);
+ s.store_field("paused_count", paused_count_);
+ s.store_field("completed_count", completed_count_);
+ s.store_class_end();
+ }
+}
+
+draftMessage::draftMessage()
+ : reply_to_message_id_()
+ , date_()
+ , input_message_text_()
+{}
+
+draftMessage::draftMessage(int53 reply_to_message_id_, int32 date_, object_ptr<InputMessageContent> &&input_message_text_)
+ : reply_to_message_id_(reply_to_message_id_)
+ , date_(date_)
+ , input_message_text_(std::move(input_message_text_))
+{}
+
+const std::int32_t draftMessage::ID;
+
+void draftMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "draftMessage");
+ s.store_field("reply_to_message_id", reply_to_message_id_);
+ s.store_field("date", date_);
+ s.store_object_field("input_message_text", static_cast<const BaseObject *>(input_message_text_.get()));
+ s.store_class_end();
+ }
+}
+
+emailAddressAuthenticationCode::emailAddressAuthenticationCode()
+ : code_()
+{}
+
+emailAddressAuthenticationCode::emailAddressAuthenticationCode(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t emailAddressAuthenticationCode::ID;
+
+void emailAddressAuthenticationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emailAddressAuthenticationCode");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+emailAddressAuthenticationAppleId::emailAddressAuthenticationAppleId()
+ : token_()
+{}
+
+emailAddressAuthenticationAppleId::emailAddressAuthenticationAppleId(string const &token_)
+ : token_(token_)
+{}
+
+const std::int32_t emailAddressAuthenticationAppleId::ID;
+
+void emailAddressAuthenticationAppleId::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emailAddressAuthenticationAppleId");
+ s.store_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+emailAddressAuthenticationGoogleId::emailAddressAuthenticationGoogleId()
+ : token_()
+{}
+
+emailAddressAuthenticationGoogleId::emailAddressAuthenticationGoogleId(string const &token_)
+ : token_(token_)
+{}
+
+const std::int32_t emailAddressAuthenticationGoogleId::ID;
+
+void emailAddressAuthenticationGoogleId::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emailAddressAuthenticationGoogleId");
+ s.store_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+emailAddressAuthenticationCodeInfo::emailAddressAuthenticationCodeInfo()
+ : email_address_pattern_()
+ , length_()
+{}
+
+emailAddressAuthenticationCodeInfo::emailAddressAuthenticationCodeInfo(string const &email_address_pattern_, int32 length_)
+ : email_address_pattern_(email_address_pattern_)
+ , length_(length_)
+{}
+
+const std::int32_t emailAddressAuthenticationCodeInfo::ID;
+
+void emailAddressAuthenticationCodeInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emailAddressAuthenticationCodeInfo");
+ s.store_field("email_address_pattern", email_address_pattern_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+emojiReaction::emojiReaction()
+ : emoji_()
+ , title_()
+ , is_active_()
+ , static_icon_()
+ , appear_animation_()
+ , select_animation_()
+ , activate_animation_()
+ , effect_animation_()
+ , around_animation_()
+ , center_animation_()
+{}
+
+emojiReaction::emojiReaction(string const &emoji_, string const &title_, bool is_active_, object_ptr<sticker> &&static_icon_, object_ptr<sticker> &&appear_animation_, object_ptr<sticker> &&select_animation_, object_ptr<sticker> &&activate_animation_, object_ptr<sticker> &&effect_animation_, object_ptr<sticker> &&around_animation_, object_ptr<sticker> &&center_animation_)
+ : emoji_(emoji_)
+ , title_(title_)
+ , is_active_(is_active_)
+ , static_icon_(std::move(static_icon_))
+ , appear_animation_(std::move(appear_animation_))
+ , select_animation_(std::move(select_animation_))
+ , activate_animation_(std::move(activate_animation_))
+ , effect_animation_(std::move(effect_animation_))
+ , around_animation_(std::move(around_animation_))
+ , center_animation_(std::move(center_animation_))
+{}
+
+const std::int32_t emojiReaction::ID;
+
+void emojiReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiReaction");
+ s.store_field("emoji", emoji_);
+ s.store_field("title", title_);
+ s.store_field("is_active", is_active_);
+ s.store_object_field("static_icon", static_cast<const BaseObject *>(static_icon_.get()));
+ s.store_object_field("appear_animation", static_cast<const BaseObject *>(appear_animation_.get()));
+ s.store_object_field("select_animation", static_cast<const BaseObject *>(select_animation_.get()));
+ s.store_object_field("activate_animation", static_cast<const BaseObject *>(activate_animation_.get()));
+ s.store_object_field("effect_animation", static_cast<const BaseObject *>(effect_animation_.get()));
+ s.store_object_field("around_animation", static_cast<const BaseObject *>(around_animation_.get()));
+ s.store_object_field("center_animation", static_cast<const BaseObject *>(center_animation_.get()));
+ s.store_class_end();
+ }
+}
+
+emojiStatus::emojiStatus()
+ : custom_emoji_id_()
+{}
+
+emojiStatus::emojiStatus(int64 custom_emoji_id_)
+ : custom_emoji_id_(custom_emoji_id_)
+{}
+
+const std::int32_t emojiStatus::ID;
+
+void emojiStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiStatus");
+ s.store_field("custom_emoji_id", custom_emoji_id_);
+ s.store_class_end();
+ }
+}
+
+emojiStatuses::emojiStatuses()
+ : emoji_statuses_()
+{}
+
+emojiStatuses::emojiStatuses(array<object_ptr<emojiStatus>> &&emoji_statuses_)
+ : emoji_statuses_(std::move(emoji_statuses_))
+{}
+
+const std::int32_t emojiStatuses::ID;
+
+void emojiStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiStatuses");
+ { s.store_vector_begin("emoji_statuses", emoji_statuses_.size()); for (const auto &_value : emoji_statuses_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+emojis::emojis()
+ : emojis_()
+{}
+
+emojis::emojis(array<string> &&emojis_)
+ : emojis_(std::move(emojis_))
+{}
+
+const std::int32_t emojis::ID;
+
+void emojis::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojis");
+ { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+encryptedCredentials::encryptedCredentials()
+ : data_()
+ , hash_()
+ , secret_()
+{}
+
+encryptedCredentials::encryptedCredentials(bytes const &data_, bytes const &hash_, bytes const &secret_)
+ : data_(std::move(data_))
+ , hash_(std::move(hash_))
+ , secret_(std::move(secret_))
+{}
+
+const std::int32_t encryptedCredentials::ID;
+
+void encryptedCredentials::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedCredentials");
+ s.store_bytes_field("data", data_);
+ s.store_bytes_field("hash", hash_);
+ s.store_bytes_field("secret", secret_);
+ s.store_class_end();
+ }
+}
+
+encryptedPassportElement::encryptedPassportElement()
+ : type_()
+ , data_()
+ , front_side_()
+ , reverse_side_()
+ , selfie_()
+ , translation_()
+ , files_()
+ , value_()
+ , hash_()
+{}
+
+encryptedPassportElement::encryptedPassportElement(object_ptr<PassportElementType> &&type_, bytes const &data_, object_ptr<datedFile> &&front_side_, object_ptr<datedFile> &&reverse_side_, object_ptr<datedFile> &&selfie_, array<object_ptr<datedFile>> &&translation_, array<object_ptr<datedFile>> &&files_, string const &value_, string const &hash_)
+ : type_(std::move(type_))
+ , data_(std::move(data_))
+ , front_side_(std::move(front_side_))
+ , reverse_side_(std::move(reverse_side_))
+ , selfie_(std::move(selfie_))
+ , translation_(std::move(translation_))
+ , files_(std::move(files_))
+ , value_(value_)
+ , hash_(hash_)
+{}
+
+const std::int32_t encryptedPassportElement::ID;
+
+void encryptedPassportElement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedPassportElement");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_bytes_field("data", data_);
+ s.store_object_field("front_side", static_cast<const BaseObject *>(front_side_.get()));
+ s.store_object_field("reverse_side", static_cast<const BaseObject *>(reverse_side_.get()));
+ s.store_object_field("selfie", static_cast<const BaseObject *>(selfie_.get()));
+ { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("value", value_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+error::error()
+ : code_()
+ , message_()
+{}
+
+error::error(int32 code_, string const &message_)
+ : code_(code_)
+ , message_(message_)
+{}
+
+const std::int32_t error::ID;
+
+void error::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "error");
+ s.store_field("code", code_);
+ s.store_field("message", message_);
+ s.store_class_end();
+ }
+}
+
+file::file()
+ : id_()
+ , size_()
+ , expected_size_()
+ , local_()
+ , remote_()
+{}
+
+file::file(int32 id_, int53 size_, int53 expected_size_, object_ptr<localFile> &&local_, object_ptr<remoteFile> &&remote_)
+ : id_(id_)
+ , size_(size_)
+ , expected_size_(expected_size_)
+ , local_(std::move(local_))
+ , remote_(std::move(remote_))
+{}
+
+const std::int32_t file::ID;
+
+void file::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "file");
+ s.store_field("id", id_);
+ s.store_field("size", size_);
+ s.store_field("expected_size", expected_size_);
+ s.store_object_field("local", static_cast<const BaseObject *>(local_.get()));
+ s.store_object_field("remote", static_cast<const BaseObject *>(remote_.get()));
+ s.store_class_end();
+ }
+}
+
+fileDownload::fileDownload()
+ : file_id_()
+ , message_()
+ , add_date_()
+ , complete_date_()
+ , is_paused_()
+{}
+
+fileDownload::fileDownload(int32 file_id_, object_ptr<message> &&message_, int32 add_date_, int32 complete_date_, bool is_paused_)
+ : file_id_(file_id_)
+ , message_(std::move(message_))
+ , add_date_(add_date_)
+ , complete_date_(complete_date_)
+ , is_paused_(is_paused_)
+{}
+
+const std::int32_t fileDownload::ID;
+
+void fileDownload::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileDownload");
+ s.store_field("file_id", file_id_);
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("add_date", add_date_);
+ s.store_field("complete_date", complete_date_);
+ s.store_field("is_paused", is_paused_);
+ s.store_class_end();
+ }
+}
+
+fileDownloadedPrefixSize::fileDownloadedPrefixSize()
+ : size_()
+{}
+
+fileDownloadedPrefixSize::fileDownloadedPrefixSize(int53 size_)
+ : size_(size_)
+{}
+
+const std::int32_t fileDownloadedPrefixSize::ID;
+
+void fileDownloadedPrefixSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileDownloadedPrefixSize");
+ s.store_field("size", size_);
+ s.store_class_end();
+ }
+}
+
+filePart::filePart()
+ : data_()
+{}
+
+filePart::filePart(bytes const &data_)
+ : data_(std::move(data_))
+{}
+
+const std::int32_t filePart::ID;
+
+void filePart::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "filePart");
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+fileTypeNone::fileTypeNone() {
+}
+
+const std::int32_t fileTypeNone::ID;
+
+void fileTypeNone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeNone");
+ s.store_class_end();
+ }
+}
+
+fileTypeAnimation::fileTypeAnimation() {
+}
+
+const std::int32_t fileTypeAnimation::ID;
+
+void fileTypeAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeAnimation");
+ s.store_class_end();
+ }
+}
+
+fileTypeAudio::fileTypeAudio() {
+}
+
+const std::int32_t fileTypeAudio::ID;
+
+void fileTypeAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeAudio");
+ s.store_class_end();
+ }
+}
+
+fileTypeDocument::fileTypeDocument() {
+}
+
+const std::int32_t fileTypeDocument::ID;
+
+void fileTypeDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeDocument");
+ s.store_class_end();
+ }
+}
+
+fileTypeNotificationSound::fileTypeNotificationSound() {
+}
+
+const std::int32_t fileTypeNotificationSound::ID;
+
+void fileTypeNotificationSound::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeNotificationSound");
+ s.store_class_end();
+ }
+}
+
+fileTypePhoto::fileTypePhoto() {
+}
+
+const std::int32_t fileTypePhoto::ID;
+
+void fileTypePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypePhoto");
+ s.store_class_end();
+ }
+}
+
+fileTypeProfilePhoto::fileTypeProfilePhoto() {
+}
+
+const std::int32_t fileTypeProfilePhoto::ID;
+
+void fileTypeProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeProfilePhoto");
+ s.store_class_end();
+ }
+}
+
+fileTypeSecret::fileTypeSecret() {
+}
+
+const std::int32_t fileTypeSecret::ID;
+
+void fileTypeSecret::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeSecret");
+ s.store_class_end();
+ }
+}
+
+fileTypeSecretThumbnail::fileTypeSecretThumbnail() {
+}
+
+const std::int32_t fileTypeSecretThumbnail::ID;
+
+void fileTypeSecretThumbnail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeSecretThumbnail");
+ s.store_class_end();
+ }
+}
+
+fileTypeSecure::fileTypeSecure() {
+}
+
+const std::int32_t fileTypeSecure::ID;
+
+void fileTypeSecure::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeSecure");
+ s.store_class_end();
+ }
+}
+
+fileTypeSticker::fileTypeSticker() {
+}
+
+const std::int32_t fileTypeSticker::ID;
+
+void fileTypeSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeSticker");
+ s.store_class_end();
+ }
+}
+
+fileTypeThumbnail::fileTypeThumbnail() {
+}
+
+const std::int32_t fileTypeThumbnail::ID;
+
+void fileTypeThumbnail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeThumbnail");
+ s.store_class_end();
+ }
+}
+
+fileTypeUnknown::fileTypeUnknown() {
+}
+
+const std::int32_t fileTypeUnknown::ID;
+
+void fileTypeUnknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeUnknown");
+ s.store_class_end();
+ }
+}
+
+fileTypeVideo::fileTypeVideo() {
+}
+
+const std::int32_t fileTypeVideo::ID;
+
+void fileTypeVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeVideo");
+ s.store_class_end();
+ }
+}
+
+fileTypeVideoNote::fileTypeVideoNote() {
+}
+
+const std::int32_t fileTypeVideoNote::ID;
+
+void fileTypeVideoNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeVideoNote");
+ s.store_class_end();
+ }
+}
+
+fileTypeVoiceNote::fileTypeVoiceNote() {
+}
+
+const std::int32_t fileTypeVoiceNote::ID;
+
+void fileTypeVoiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeVoiceNote");
+ s.store_class_end();
+ }
+}
+
+fileTypeWallpaper::fileTypeWallpaper() {
+}
+
+const std::int32_t fileTypeWallpaper::ID;
+
+void fileTypeWallpaper::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileTypeWallpaper");
+ s.store_class_end();
+ }
+}
+
+formattedText::formattedText()
+ : text_()
+ , entities_()
+{}
+
+formattedText::formattedText(string const &text_, array<object_ptr<textEntity>> &&entities_)
+ : text_(text_)
+ , entities_(std::move(entities_))
+{}
+
+const std::int32_t formattedText::ID;
+
+void formattedText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "formattedText");
+ s.store_field("text", text_);
+ { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+forumTopic::forumTopic()
+ : info_()
+ , last_message_()
+ , is_pinned_()
+ , unread_count_()
+ , last_read_inbox_message_id_()
+ , last_read_outbox_message_id_()
+ , unread_mention_count_()
+ , unread_reaction_count_()
+ , notification_settings_()
+ , draft_message_()
+{}
+
+forumTopic::forumTopic(object_ptr<forumTopicInfo> &&info_, object_ptr<message> &&last_message_, bool is_pinned_, int32 unread_count_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int32 unread_mention_count_, int32 unread_reaction_count_, object_ptr<chatNotificationSettings> &&notification_settings_, object_ptr<draftMessage> &&draft_message_)
+ : info_(std::move(info_))
+ , last_message_(std::move(last_message_))
+ , is_pinned_(is_pinned_)
+ , unread_count_(unread_count_)
+ , last_read_inbox_message_id_(last_read_inbox_message_id_)
+ , last_read_outbox_message_id_(last_read_outbox_message_id_)
+ , unread_mention_count_(unread_mention_count_)
+ , unread_reaction_count_(unread_reaction_count_)
+ , notification_settings_(std::move(notification_settings_))
+ , draft_message_(std::move(draft_message_))
+{}
+
+const std::int32_t forumTopic::ID;
+
+void forumTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "forumTopic");
+ s.store_object_field("info", static_cast<const BaseObject *>(info_.get()));
+ s.store_object_field("last_message", static_cast<const BaseObject *>(last_message_.get()));
+ s.store_field("is_pinned", is_pinned_);
+ s.store_field("unread_count", unread_count_);
+ s.store_field("last_read_inbox_message_id", last_read_inbox_message_id_);
+ s.store_field("last_read_outbox_message_id", last_read_outbox_message_id_);
+ s.store_field("unread_mention_count", unread_mention_count_);
+ s.store_field("unread_reaction_count", unread_reaction_count_);
+ s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get()));
+ s.store_object_field("draft_message", static_cast<const BaseObject *>(draft_message_.get()));
+ s.store_class_end();
+ }
+}
+
+forumTopicIcon::forumTopicIcon()
+ : color_()
+ , custom_emoji_id_()
+{}
+
+forumTopicIcon::forumTopicIcon(int32 color_, int64 custom_emoji_id_)
+ : color_(color_)
+ , custom_emoji_id_(custom_emoji_id_)
+{}
+
+const std::int32_t forumTopicIcon::ID;
+
+void forumTopicIcon::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "forumTopicIcon");
+ s.store_field("color", color_);
+ s.store_field("custom_emoji_id", custom_emoji_id_);
+ s.store_class_end();
+ }
+}
+
+forumTopicInfo::forumTopicInfo()
+ : message_thread_id_()
+ , name_()
+ , icon_()
+ , creation_date_()
+ , creator_id_()
+ , is_outgoing_()
+ , is_closed_()
+{}
+
+forumTopicInfo::forumTopicInfo(int53 message_thread_id_, string const &name_, object_ptr<forumTopicIcon> &&icon_, int32 creation_date_, object_ptr<MessageSender> &&creator_id_, bool is_outgoing_, bool is_closed_)
+ : message_thread_id_(message_thread_id_)
+ , name_(name_)
+ , icon_(std::move(icon_))
+ , creation_date_(creation_date_)
+ , creator_id_(std::move(creator_id_))
+ , is_outgoing_(is_outgoing_)
+ , is_closed_(is_closed_)
+{}
+
+const std::int32_t forumTopicInfo::ID;
+
+void forumTopicInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "forumTopicInfo");
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_field("name", name_);
+ s.store_object_field("icon", static_cast<const BaseObject *>(icon_.get()));
+ s.store_field("creation_date", creation_date_);
+ s.store_object_field("creator_id", static_cast<const BaseObject *>(creator_id_.get()));
+ s.store_field("is_outgoing", is_outgoing_);
+ s.store_field("is_closed", is_closed_);
+ s.store_class_end();
+ }
+}
+
+foundFileDownloads::foundFileDownloads()
+ : total_counts_()
+ , files_()
+ , next_offset_()
+{}
+
+foundFileDownloads::foundFileDownloads(object_ptr<downloadedFileCounts> &&total_counts_, array<object_ptr<fileDownload>> &&files_, string const &next_offset_)
+ : total_counts_(std::move(total_counts_))
+ , files_(std::move(files_))
+ , next_offset_(next_offset_)
+{}
+
+const std::int32_t foundFileDownloads::ID;
+
+void foundFileDownloads::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "foundFileDownloads");
+ s.store_object_field("total_counts", static_cast<const BaseObject *>(total_counts_.get()));
+ { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("next_offset", next_offset_);
+ s.store_class_end();
+ }
+}
+
+foundMessages::foundMessages()
+ : total_count_()
+ , messages_()
+ , next_offset_()
+{}
+
+foundMessages::foundMessages(int32 total_count_, array<object_ptr<message>> &&messages_, string const &next_offset_)
+ : total_count_(total_count_)
+ , messages_(std::move(messages_))
+ , next_offset_(next_offset_)
+{}
+
+const std::int32_t foundMessages::ID;
+
+void foundMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "foundMessages");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("next_offset", next_offset_);
+ s.store_class_end();
+ }
+}
+
+game::game()
+ : id_()
+ , short_name_()
+ , title_()
+ , text_()
+ , description_()
+ , photo_()
+ , animation_()
+{}
+
+game::game(int64 id_, string const &short_name_, string const &title_, object_ptr<formattedText> &&text_, string const &description_, object_ptr<photo> &&photo_, object_ptr<animation> &&animation_)
+ : id_(id_)
+ , short_name_(short_name_)
+ , title_(title_)
+ , text_(std::move(text_))
+ , description_(description_)
+ , photo_(std::move(photo_))
+ , animation_(std::move(animation_))
+{}
+
+const std::int32_t game::ID;
+
+void game::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "game");
+ s.store_field("id", id_);
+ s.store_field("short_name", short_name_);
+ s.store_field("title", title_);
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("description", description_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_class_end();
+ }
+}
+
+gameHighScore::gameHighScore()
+ : position_()
+ , user_id_()
+ , score_()
+{}
+
+gameHighScore::gameHighScore(int32 position_, int53 user_id_, int32 score_)
+ : position_(position_)
+ , user_id_(user_id_)
+ , score_(score_)
+{}
+
+const std::int32_t gameHighScore::ID;
+
+void gameHighScore::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "gameHighScore");
+ s.store_field("position", position_);
+ s.store_field("user_id", user_id_);
+ s.store_field("score", score_);
+ s.store_class_end();
+ }
+}
+
+gameHighScores::gameHighScores()
+ : scores_()
+{}
+
+gameHighScores::gameHighScores(array<object_ptr<gameHighScore>> &&scores_)
+ : scores_(std::move(scores_))
+{}
+
+const std::int32_t gameHighScores::ID;
+
+void gameHighScores::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "gameHighScores");
+ { s.store_vector_begin("scores", scores_.size()); for (const auto &_value : scores_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+groupCall::groupCall()
+ : id_()
+ , title_()
+ , scheduled_start_date_()
+ , enabled_start_notification_()
+ , is_active_()
+ , is_rtmp_stream_()
+ , is_joined_()
+ , need_rejoin_()
+ , can_be_managed_()
+ , participant_count_()
+ , has_hidden_listeners_()
+ , loaded_all_participants_()
+ , recent_speakers_()
+ , is_my_video_enabled_()
+ , is_my_video_paused_()
+ , can_enable_video_()
+ , mute_new_participants_()
+ , can_toggle_mute_new_participants_()
+ , record_duration_()
+ , is_video_recorded_()
+ , duration_()
+{}
+
+groupCall::groupCall(int32 id_, string const &title_, int32 scheduled_start_date_, bool enabled_start_notification_, bool is_active_, bool is_rtmp_stream_, bool is_joined_, bool need_rejoin_, bool can_be_managed_, int32 participant_count_, bool has_hidden_listeners_, bool loaded_all_participants_, array<object_ptr<groupCallRecentSpeaker>> &&recent_speakers_, bool is_my_video_enabled_, bool is_my_video_paused_, bool can_enable_video_, bool mute_new_participants_, bool can_toggle_mute_new_participants_, int32 record_duration_, bool is_video_recorded_, int32 duration_)
+ : id_(id_)
+ , title_(title_)
+ , scheduled_start_date_(scheduled_start_date_)
+ , enabled_start_notification_(enabled_start_notification_)
+ , is_active_(is_active_)
+ , is_rtmp_stream_(is_rtmp_stream_)
+ , is_joined_(is_joined_)
+ , need_rejoin_(need_rejoin_)
+ , can_be_managed_(can_be_managed_)
+ , participant_count_(participant_count_)
+ , has_hidden_listeners_(has_hidden_listeners_)
+ , loaded_all_participants_(loaded_all_participants_)
+ , recent_speakers_(std::move(recent_speakers_))
+ , is_my_video_enabled_(is_my_video_enabled_)
+ , is_my_video_paused_(is_my_video_paused_)
+ , can_enable_video_(can_enable_video_)
+ , mute_new_participants_(mute_new_participants_)
+ , can_toggle_mute_new_participants_(can_toggle_mute_new_participants_)
+ , record_duration_(record_duration_)
+ , is_video_recorded_(is_video_recorded_)
+ , duration_(duration_)
+{}
+
+const std::int32_t groupCall::ID;
+
+void groupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCall");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_field("scheduled_start_date", scheduled_start_date_);
+ s.store_field("enabled_start_notification", enabled_start_notification_);
+ s.store_field("is_active", is_active_);
+ s.store_field("is_rtmp_stream", is_rtmp_stream_);
+ s.store_field("is_joined", is_joined_);
+ s.store_field("need_rejoin", need_rejoin_);
+ s.store_field("can_be_managed", can_be_managed_);
+ s.store_field("participant_count", participant_count_);
+ s.store_field("has_hidden_listeners", has_hidden_listeners_);
+ s.store_field("loaded_all_participants", loaded_all_participants_);
+ { s.store_vector_begin("recent_speakers", recent_speakers_.size()); for (const auto &_value : recent_speakers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("is_my_video_enabled", is_my_video_enabled_);
+ s.store_field("is_my_video_paused", is_my_video_paused_);
+ s.store_field("can_enable_video", can_enable_video_);
+ s.store_field("mute_new_participants", mute_new_participants_);
+ s.store_field("can_toggle_mute_new_participants", can_toggle_mute_new_participants_);
+ s.store_field("record_duration", record_duration_);
+ s.store_field("is_video_recorded", is_video_recorded_);
+ s.store_field("duration", duration_);
+ s.store_class_end();
+ }
+}
+
+groupCallId::groupCallId()
+ : id_()
+{}
+
+groupCallId::groupCallId(int32 id_)
+ : id_(id_)
+{}
+
+const std::int32_t groupCallId::ID;
+
+void groupCallId::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallId");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+groupCallParticipant::groupCallParticipant()
+ : participant_id_()
+ , audio_source_id_()
+ , screen_sharing_audio_source_id_()
+ , video_info_()
+ , screen_sharing_video_info_()
+ , bio_()
+ , is_current_user_()
+ , is_speaking_()
+ , is_hand_raised_()
+ , can_be_muted_for_all_users_()
+ , can_be_unmuted_for_all_users_()
+ , can_be_muted_for_current_user_()
+ , can_be_unmuted_for_current_user_()
+ , is_muted_for_all_users_()
+ , is_muted_for_current_user_()
+ , can_unmute_self_()
+ , volume_level_()
+ , order_()
+{}
+
+groupCallParticipant::groupCallParticipant(object_ptr<MessageSender> &&participant_id_, int32 audio_source_id_, int32 screen_sharing_audio_source_id_, object_ptr<groupCallParticipantVideoInfo> &&video_info_, object_ptr<groupCallParticipantVideoInfo> &&screen_sharing_video_info_, string const &bio_, bool is_current_user_, bool is_speaking_, bool is_hand_raised_, bool can_be_muted_for_all_users_, bool can_be_unmuted_for_all_users_, bool can_be_muted_for_current_user_, bool can_be_unmuted_for_current_user_, bool is_muted_for_all_users_, bool is_muted_for_current_user_, bool can_unmute_self_, int32 volume_level_, string const &order_)
+ : participant_id_(std::move(participant_id_))
+ , audio_source_id_(audio_source_id_)
+ , screen_sharing_audio_source_id_(screen_sharing_audio_source_id_)
+ , video_info_(std::move(video_info_))
+ , screen_sharing_video_info_(std::move(screen_sharing_video_info_))
+ , bio_(bio_)
+ , is_current_user_(is_current_user_)
+ , is_speaking_(is_speaking_)
+ , is_hand_raised_(is_hand_raised_)
+ , can_be_muted_for_all_users_(can_be_muted_for_all_users_)
+ , can_be_unmuted_for_all_users_(can_be_unmuted_for_all_users_)
+ , can_be_muted_for_current_user_(can_be_muted_for_current_user_)
+ , can_be_unmuted_for_current_user_(can_be_unmuted_for_current_user_)
+ , is_muted_for_all_users_(is_muted_for_all_users_)
+ , is_muted_for_current_user_(is_muted_for_current_user_)
+ , can_unmute_self_(can_unmute_self_)
+ , volume_level_(volume_level_)
+ , order_(order_)
+{}
+
+const std::int32_t groupCallParticipant::ID;
+
+void groupCallParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallParticipant");
+ s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get()));
+ s.store_field("audio_source_id", audio_source_id_);
+ s.store_field("screen_sharing_audio_source_id", screen_sharing_audio_source_id_);
+ s.store_object_field("video_info", static_cast<const BaseObject *>(video_info_.get()));
+ s.store_object_field("screen_sharing_video_info", static_cast<const BaseObject *>(screen_sharing_video_info_.get()));
+ s.store_field("bio", bio_);
+ s.store_field("is_current_user", is_current_user_);
+ s.store_field("is_speaking", is_speaking_);
+ s.store_field("is_hand_raised", is_hand_raised_);
+ s.store_field("can_be_muted_for_all_users", can_be_muted_for_all_users_);
+ s.store_field("can_be_unmuted_for_all_users", can_be_unmuted_for_all_users_);
+ s.store_field("can_be_muted_for_current_user", can_be_muted_for_current_user_);
+ s.store_field("can_be_unmuted_for_current_user", can_be_unmuted_for_current_user_);
+ s.store_field("is_muted_for_all_users", is_muted_for_all_users_);
+ s.store_field("is_muted_for_current_user", is_muted_for_current_user_);
+ s.store_field("can_unmute_self", can_unmute_self_);
+ s.store_field("volume_level", volume_level_);
+ s.store_field("order", order_);
+ s.store_class_end();
+ }
+}
+
+groupCallParticipantVideoInfo::groupCallParticipantVideoInfo()
+ : source_groups_()
+ , endpoint_id_()
+ , is_paused_()
+{}
+
+groupCallParticipantVideoInfo::groupCallParticipantVideoInfo(array<object_ptr<groupCallVideoSourceGroup>> &&source_groups_, string const &endpoint_id_, bool is_paused_)
+ : source_groups_(std::move(source_groups_))
+ , endpoint_id_(endpoint_id_)
+ , is_paused_(is_paused_)
+{}
+
+const std::int32_t groupCallParticipantVideoInfo::ID;
+
+void groupCallParticipantVideoInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallParticipantVideoInfo");
+ { s.store_vector_begin("source_groups", source_groups_.size()); for (const auto &_value : source_groups_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("endpoint_id", endpoint_id_);
+ s.store_field("is_paused", is_paused_);
+ s.store_class_end();
+ }
+}
+
+groupCallRecentSpeaker::groupCallRecentSpeaker()
+ : participant_id_()
+ , is_speaking_()
+{}
+
+groupCallRecentSpeaker::groupCallRecentSpeaker(object_ptr<MessageSender> &&participant_id_, bool is_speaking_)
+ : participant_id_(std::move(participant_id_))
+ , is_speaking_(is_speaking_)
+{}
+
+const std::int32_t groupCallRecentSpeaker::ID;
+
+void groupCallRecentSpeaker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallRecentSpeaker");
+ s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get()));
+ s.store_field("is_speaking", is_speaking_);
+ s.store_class_end();
+ }
+}
+
+groupCallStream::groupCallStream()
+ : channel_id_()
+ , scale_()
+ , time_offset_()
+{}
+
+groupCallStream::groupCallStream(int32 channel_id_, int32 scale_, int53 time_offset_)
+ : channel_id_(channel_id_)
+ , scale_(scale_)
+ , time_offset_(time_offset_)
+{}
+
+const std::int32_t groupCallStream::ID;
+
+void groupCallStream::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallStream");
+ s.store_field("channel_id", channel_id_);
+ s.store_field("scale", scale_);
+ s.store_field("time_offset", time_offset_);
+ s.store_class_end();
+ }
+}
+
+groupCallStreams::groupCallStreams()
+ : streams_()
+{}
+
+groupCallStreams::groupCallStreams(array<object_ptr<groupCallStream>> &&streams_)
+ : streams_(std::move(streams_))
+{}
+
+const std::int32_t groupCallStreams::ID;
+
+void groupCallStreams::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallStreams");
+ { s.store_vector_begin("streams", streams_.size()); for (const auto &_value : streams_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+groupCallVideoQualityThumbnail::groupCallVideoQualityThumbnail() {
+}
+
+const std::int32_t groupCallVideoQualityThumbnail::ID;
+
+void groupCallVideoQualityThumbnail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallVideoQualityThumbnail");
+ s.store_class_end();
+ }
+}
+
+groupCallVideoQualityMedium::groupCallVideoQualityMedium() {
+}
+
+const std::int32_t groupCallVideoQualityMedium::ID;
+
+void groupCallVideoQualityMedium::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallVideoQualityMedium");
+ s.store_class_end();
+ }
+}
+
+groupCallVideoQualityFull::groupCallVideoQualityFull() {
+}
+
+const std::int32_t groupCallVideoQualityFull::ID;
+
+void groupCallVideoQualityFull::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallVideoQualityFull");
+ s.store_class_end();
+ }
+}
+
+groupCallVideoSourceGroup::groupCallVideoSourceGroup()
+ : semantics_()
+ , source_ids_()
+{}
+
+groupCallVideoSourceGroup::groupCallVideoSourceGroup(string const &semantics_, array<int32> &&source_ids_)
+ : semantics_(semantics_)
+ , source_ids_(std::move(source_ids_))
+{}
+
+const std::int32_t groupCallVideoSourceGroup::ID;
+
+void groupCallVideoSourceGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallVideoSourceGroup");
+ s.store_field("semantics", semantics_);
+ { s.store_vector_begin("source_ids", source_ids_.size()); for (const auto &_value : source_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+hashtags::hashtags()
+ : hashtags_()
+{}
+
+hashtags::hashtags(array<string> &&hashtags_)
+ : hashtags_(std::move(hashtags_))
+{}
+
+const std::int32_t hashtags::ID;
+
+void hashtags::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "hashtags");
+ { s.store_vector_begin("hashtags", hashtags_.size()); for (const auto &_value : hashtags_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+httpUrl::httpUrl()
+ : url_()
+{}
+
+httpUrl::httpUrl(string const &url_)
+ : url_(url_)
+{}
+
+const std::int32_t httpUrl::ID;
+
+void httpUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "httpUrl");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+identityDocument::identityDocument()
+ : number_()
+ , expiry_date_()
+ , front_side_()
+ , reverse_side_()
+ , selfie_()
+ , translation_()
+{}
+
+identityDocument::identityDocument(string const &number_, object_ptr<date> &&expiry_date_, object_ptr<datedFile> &&front_side_, object_ptr<datedFile> &&reverse_side_, object_ptr<datedFile> &&selfie_, array<object_ptr<datedFile>> &&translation_)
+ : number_(number_)
+ , expiry_date_(std::move(expiry_date_))
+ , front_side_(std::move(front_side_))
+ , reverse_side_(std::move(reverse_side_))
+ , selfie_(std::move(selfie_))
+ , translation_(std::move(translation_))
+{}
+
+const std::int32_t identityDocument::ID;
+
+void identityDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "identityDocument");
+ s.store_field("number", number_);
+ s.store_object_field("expiry_date", static_cast<const BaseObject *>(expiry_date_.get()));
+ s.store_object_field("front_side", static_cast<const BaseObject *>(front_side_.get()));
+ s.store_object_field("reverse_side", static_cast<const BaseObject *>(reverse_side_.get()));
+ s.store_object_field("selfie", static_cast<const BaseObject *>(selfie_.get()));
+ { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+importedContacts::importedContacts()
+ : user_ids_()
+ , importer_count_()
+{}
+
+importedContacts::importedContacts(array<int53> &&user_ids_, array<int32> &&importer_count_)
+ : user_ids_(std::move(user_ids_))
+ , importer_count_(std::move(importer_count_))
+{}
+
+const std::int32_t importedContacts::ID;
+
+void importedContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "importedContacts");
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("importer_count", importer_count_.size()); for (const auto &_value : importer_count_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+inlineKeyboardButton::inlineKeyboardButton()
+ : text_()
+ , type_()
+{}
+
+inlineKeyboardButton::inlineKeyboardButton(string const &text_, object_ptr<InlineKeyboardButtonType> &&type_)
+ : text_(text_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t inlineKeyboardButton::ID;
+
+void inlineKeyboardButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineKeyboardButton");
+ s.store_field("text", text_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+inlineKeyboardButtonTypeUrl::inlineKeyboardButtonTypeUrl()
+ : url_()
+{}
+
+inlineKeyboardButtonTypeUrl::inlineKeyboardButtonTypeUrl(string const &url_)
+ : url_(url_)
+{}
+
+const std::int32_t inlineKeyboardButtonTypeUrl::ID;
+
+void inlineKeyboardButtonTypeUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineKeyboardButtonTypeUrl");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+inlineKeyboardButtonTypeLoginUrl::inlineKeyboardButtonTypeLoginUrl()
+ : url_()
+ , id_()
+ , forward_text_()
+{}
+
+inlineKeyboardButtonTypeLoginUrl::inlineKeyboardButtonTypeLoginUrl(string const &url_, int53 id_, string const &forward_text_)
+ : url_(url_)
+ , id_(id_)
+ , forward_text_(forward_text_)
+{}
+
+const std::int32_t inlineKeyboardButtonTypeLoginUrl::ID;
+
+void inlineKeyboardButtonTypeLoginUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineKeyboardButtonTypeLoginUrl");
+ s.store_field("url", url_);
+ s.store_field("id", id_);
+ s.store_field("forward_text", forward_text_);
+ s.store_class_end();
+ }
+}
+
+inlineKeyboardButtonTypeWebApp::inlineKeyboardButtonTypeWebApp()
+ : url_()
+{}
+
+inlineKeyboardButtonTypeWebApp::inlineKeyboardButtonTypeWebApp(string const &url_)
+ : url_(url_)
+{}
+
+const std::int32_t inlineKeyboardButtonTypeWebApp::ID;
+
+void inlineKeyboardButtonTypeWebApp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineKeyboardButtonTypeWebApp");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+inlineKeyboardButtonTypeCallback::inlineKeyboardButtonTypeCallback()
+ : data_()
+{}
+
+inlineKeyboardButtonTypeCallback::inlineKeyboardButtonTypeCallback(bytes const &data_)
+ : data_(std::move(data_))
+{}
+
+const std::int32_t inlineKeyboardButtonTypeCallback::ID;
+
+void inlineKeyboardButtonTypeCallback::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineKeyboardButtonTypeCallback");
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+inlineKeyboardButtonTypeCallbackWithPassword::inlineKeyboardButtonTypeCallbackWithPassword()
+ : data_()
+{}
+
+inlineKeyboardButtonTypeCallbackWithPassword::inlineKeyboardButtonTypeCallbackWithPassword(bytes const &data_)
+ : data_(std::move(data_))
+{}
+
+const std::int32_t inlineKeyboardButtonTypeCallbackWithPassword::ID;
+
+void inlineKeyboardButtonTypeCallbackWithPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineKeyboardButtonTypeCallbackWithPassword");
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+inlineKeyboardButtonTypeCallbackGame::inlineKeyboardButtonTypeCallbackGame() {
+}
+
+const std::int32_t inlineKeyboardButtonTypeCallbackGame::ID;
+
+void inlineKeyboardButtonTypeCallbackGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineKeyboardButtonTypeCallbackGame");
+ s.store_class_end();
+ }
+}
+
+inlineKeyboardButtonTypeSwitchInline::inlineKeyboardButtonTypeSwitchInline()
+ : query_()
+ , in_current_chat_()
+{}
+
+inlineKeyboardButtonTypeSwitchInline::inlineKeyboardButtonTypeSwitchInline(string const &query_, bool in_current_chat_)
+ : query_(query_)
+ , in_current_chat_(in_current_chat_)
+{}
+
+const std::int32_t inlineKeyboardButtonTypeSwitchInline::ID;
+
+void inlineKeyboardButtonTypeSwitchInline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineKeyboardButtonTypeSwitchInline");
+ s.store_field("query", query_);
+ s.store_field("in_current_chat", in_current_chat_);
+ s.store_class_end();
+ }
+}
+
+inlineKeyboardButtonTypeBuy::inlineKeyboardButtonTypeBuy() {
+}
+
+const std::int32_t inlineKeyboardButtonTypeBuy::ID;
+
+void inlineKeyboardButtonTypeBuy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineKeyboardButtonTypeBuy");
+ s.store_class_end();
+ }
+}
+
+inlineKeyboardButtonTypeUser::inlineKeyboardButtonTypeUser()
+ : user_id_()
+{}
+
+inlineKeyboardButtonTypeUser::inlineKeyboardButtonTypeUser(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t inlineKeyboardButtonTypeUser::ID;
+
+void inlineKeyboardButtonTypeUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineKeyboardButtonTypeUser");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultArticle::inlineQueryResultArticle()
+ : id_()
+ , url_()
+ , hide_url_()
+ , title_()
+ , description_()
+ , thumbnail_()
+{}
+
+inlineQueryResultArticle::inlineQueryResultArticle(string const &id_, string const &url_, bool hide_url_, string const &title_, string const &description_, object_ptr<thumbnail> &&thumbnail_)
+ : id_(id_)
+ , url_(url_)
+ , hide_url_(hide_url_)
+ , title_(title_)
+ , description_(description_)
+ , thumbnail_(std::move(thumbnail_))
+{}
+
+const std::int32_t inlineQueryResultArticle::ID;
+
+void inlineQueryResultArticle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultArticle");
+ s.store_field("id", id_);
+ s.store_field("url", url_);
+ s.store_field("hide_url", hide_url_);
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultContact::inlineQueryResultContact()
+ : id_()
+ , contact_()
+ , thumbnail_()
+{}
+
+inlineQueryResultContact::inlineQueryResultContact(string const &id_, object_ptr<contact> &&contact_, object_ptr<thumbnail> &&thumbnail_)
+ : id_(id_)
+ , contact_(std::move(contact_))
+ , thumbnail_(std::move(thumbnail_))
+{}
+
+const std::int32_t inlineQueryResultContact::ID;
+
+void inlineQueryResultContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultContact");
+ s.store_field("id", id_);
+ s.store_object_field("contact", static_cast<const BaseObject *>(contact_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultLocation::inlineQueryResultLocation()
+ : id_()
+ , location_()
+ , title_()
+ , thumbnail_()
+{}
+
+inlineQueryResultLocation::inlineQueryResultLocation(string const &id_, object_ptr<location> &&location_, string const &title_, object_ptr<thumbnail> &&thumbnail_)
+ : id_(id_)
+ , location_(std::move(location_))
+ , title_(title_)
+ , thumbnail_(std::move(thumbnail_))
+{}
+
+const std::int32_t inlineQueryResultLocation::ID;
+
+void inlineQueryResultLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultLocation");
+ s.store_field("id", id_);
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("title", title_);
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultVenue::inlineQueryResultVenue()
+ : id_()
+ , venue_()
+ , thumbnail_()
+{}
+
+inlineQueryResultVenue::inlineQueryResultVenue(string const &id_, object_ptr<venue> &&venue_, object_ptr<thumbnail> &&thumbnail_)
+ : id_(id_)
+ , venue_(std::move(venue_))
+ , thumbnail_(std::move(thumbnail_))
+{}
+
+const std::int32_t inlineQueryResultVenue::ID;
+
+void inlineQueryResultVenue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultVenue");
+ s.store_field("id", id_);
+ s.store_object_field("venue", static_cast<const BaseObject *>(venue_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultGame::inlineQueryResultGame()
+ : id_()
+ , game_()
+{}
+
+inlineQueryResultGame::inlineQueryResultGame(string const &id_, object_ptr<game> &&game_)
+ : id_(id_)
+ , game_(std::move(game_))
+{}
+
+const std::int32_t inlineQueryResultGame::ID;
+
+void inlineQueryResultGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultGame");
+ s.store_field("id", id_);
+ s.store_object_field("game", static_cast<const BaseObject *>(game_.get()));
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultAnimation::inlineQueryResultAnimation()
+ : id_()
+ , animation_()
+ , title_()
+{}
+
+inlineQueryResultAnimation::inlineQueryResultAnimation(string const &id_, object_ptr<animation> &&animation_, string const &title_)
+ : id_(id_)
+ , animation_(std::move(animation_))
+ , title_(title_)
+{}
+
+const std::int32_t inlineQueryResultAnimation::ID;
+
+void inlineQueryResultAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultAnimation");
+ s.store_field("id", id_);
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultAudio::inlineQueryResultAudio()
+ : id_()
+ , audio_()
+{}
+
+inlineQueryResultAudio::inlineQueryResultAudio(string const &id_, object_ptr<audio> &&audio_)
+ : id_(id_)
+ , audio_(std::move(audio_))
+{}
+
+const std::int32_t inlineQueryResultAudio::ID;
+
+void inlineQueryResultAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultAudio");
+ s.store_field("id", id_);
+ s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get()));
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultDocument::inlineQueryResultDocument()
+ : id_()
+ , document_()
+ , title_()
+ , description_()
+{}
+
+inlineQueryResultDocument::inlineQueryResultDocument(string const &id_, object_ptr<document> &&document_, string const &title_, string const &description_)
+ : id_(id_)
+ , document_(std::move(document_))
+ , title_(title_)
+ , description_(description_)
+{}
+
+const std::int32_t inlineQueryResultDocument::ID;
+
+void inlineQueryResultDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultDocument");
+ s.store_field("id", id_);
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultPhoto::inlineQueryResultPhoto()
+ : id_()
+ , photo_()
+ , title_()
+ , description_()
+{}
+
+inlineQueryResultPhoto::inlineQueryResultPhoto(string const &id_, object_ptr<photo> &&photo_, string const &title_, string const &description_)
+ : id_(id_)
+ , photo_(std::move(photo_))
+ , title_(title_)
+ , description_(description_)
+{}
+
+const std::int32_t inlineQueryResultPhoto::ID;
+
+void inlineQueryResultPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultPhoto");
+ s.store_field("id", id_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultSticker::inlineQueryResultSticker()
+ : id_()
+ , sticker_()
+{}
+
+inlineQueryResultSticker::inlineQueryResultSticker(string const &id_, object_ptr<sticker> &&sticker_)
+ : id_(id_)
+ , sticker_(std::move(sticker_))
+{}
+
+const std::int32_t inlineQueryResultSticker::ID;
+
+void inlineQueryResultSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultSticker");
+ s.store_field("id", id_);
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultVideo::inlineQueryResultVideo()
+ : id_()
+ , video_()
+ , title_()
+ , description_()
+{}
+
+inlineQueryResultVideo::inlineQueryResultVideo(string const &id_, object_ptr<video> &&video_, string const &title_, string const &description_)
+ : id_(id_)
+ , video_(std::move(video_))
+ , title_(title_)
+ , description_(description_)
+{}
+
+const std::int32_t inlineQueryResultVideo::ID;
+
+void inlineQueryResultVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultVideo");
+ s.store_field("id", id_);
+ s.store_object_field("video", static_cast<const BaseObject *>(video_.get()));
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_class_end();
+ }
+}
+
+inlineQueryResultVoiceNote::inlineQueryResultVoiceNote()
+ : id_()
+ , voice_note_()
+ , title_()
+{}
+
+inlineQueryResultVoiceNote::inlineQueryResultVoiceNote(string const &id_, object_ptr<voiceNote> &&voice_note_, string const &title_)
+ : id_(id_)
+ , voice_note_(std::move(voice_note_))
+ , title_(title_)
+{}
+
+const std::int32_t inlineQueryResultVoiceNote::ID;
+
+void inlineQueryResultVoiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResultVoiceNote");
+ s.store_field("id", id_);
+ s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get()));
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+inlineQueryResults::inlineQueryResults()
+ : inline_query_id_()
+ , next_offset_()
+ , results_()
+ , switch_pm_text_()
+ , switch_pm_parameter_()
+{}
+
+inlineQueryResults::inlineQueryResults(int64 inline_query_id_, string const &next_offset_, array<object_ptr<InlineQueryResult>> &&results_, string const &switch_pm_text_, string const &switch_pm_parameter_)
+ : inline_query_id_(inline_query_id_)
+ , next_offset_(next_offset_)
+ , results_(std::move(results_))
+ , switch_pm_text_(switch_pm_text_)
+ , switch_pm_parameter_(switch_pm_parameter_)
+{}
+
+const std::int32_t inlineQueryResults::ID;
+
+void inlineQueryResults::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryResults");
+ s.store_field("inline_query_id", inline_query_id_);
+ s.store_field("next_offset", next_offset_);
+ { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("switch_pm_text", switch_pm_text_);
+ s.store_field("switch_pm_parameter", switch_pm_parameter_);
+ s.store_class_end();
+ }
+}
+
+inputBackgroundLocal::inputBackgroundLocal()
+ : background_()
+{}
+
+inputBackgroundLocal::inputBackgroundLocal(object_ptr<InputFile> &&background_)
+ : background_(std::move(background_))
+{}
+
+const std::int32_t inputBackgroundLocal::ID;
+
+void inputBackgroundLocal::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBackgroundLocal");
+ s.store_object_field("background", static_cast<const BaseObject *>(background_.get()));
+ s.store_class_end();
+ }
+}
+
+inputBackgroundRemote::inputBackgroundRemote()
+ : background_id_()
+{}
+
+inputBackgroundRemote::inputBackgroundRemote(int64 background_id_)
+ : background_id_(background_id_)
+{}
+
+const std::int32_t inputBackgroundRemote::ID;
+
+void inputBackgroundRemote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBackgroundRemote");
+ s.store_field("background_id", background_id_);
+ s.store_class_end();
+ }
+}
+
+inputChatPhotoPrevious::inputChatPhotoPrevious()
+ : chat_photo_id_()
+{}
+
+inputChatPhotoPrevious::inputChatPhotoPrevious(int64 chat_photo_id_)
+ : chat_photo_id_(chat_photo_id_)
+{}
+
+const std::int32_t inputChatPhotoPrevious::ID;
+
+void inputChatPhotoPrevious::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputChatPhotoPrevious");
+ s.store_field("chat_photo_id", chat_photo_id_);
+ s.store_class_end();
+ }
+}
+
+inputChatPhotoStatic::inputChatPhotoStatic()
+ : photo_()
+{}
+
+inputChatPhotoStatic::inputChatPhotoStatic(object_ptr<InputFile> &&photo_)
+ : photo_(std::move(photo_))
+{}
+
+const std::int32_t inputChatPhotoStatic::ID;
+
+void inputChatPhotoStatic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputChatPhotoStatic");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_class_end();
+ }
+}
+
+inputChatPhotoAnimation::inputChatPhotoAnimation()
+ : animation_()
+ , main_frame_timestamp_()
+{}
+
+inputChatPhotoAnimation::inputChatPhotoAnimation(object_ptr<InputFile> &&animation_, double main_frame_timestamp_)
+ : animation_(std::move(animation_))
+ , main_frame_timestamp_(main_frame_timestamp_)
+{}
+
+const std::int32_t inputChatPhotoAnimation::ID;
+
+void inputChatPhotoAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputChatPhotoAnimation");
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_field("main_frame_timestamp", main_frame_timestamp_);
+ s.store_class_end();
+ }
+}
+
+inputCredentialsSaved::inputCredentialsSaved()
+ : saved_credentials_id_()
+{}
+
+inputCredentialsSaved::inputCredentialsSaved(string const &saved_credentials_id_)
+ : saved_credentials_id_(saved_credentials_id_)
+{}
+
+const std::int32_t inputCredentialsSaved::ID;
+
+void inputCredentialsSaved::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputCredentialsSaved");
+ s.store_field("saved_credentials_id", saved_credentials_id_);
+ s.store_class_end();
+ }
+}
+
+inputCredentialsNew::inputCredentialsNew()
+ : data_()
+ , allow_save_()
+{}
+
+inputCredentialsNew::inputCredentialsNew(string const &data_, bool allow_save_)
+ : data_(data_)
+ , allow_save_(allow_save_)
+{}
+
+const std::int32_t inputCredentialsNew::ID;
+
+void inputCredentialsNew::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputCredentialsNew");
+ s.store_field("data", data_);
+ s.store_field("allow_save", allow_save_);
+ s.store_class_end();
+ }
+}
+
+inputCredentialsApplePay::inputCredentialsApplePay()
+ : data_()
+{}
+
+inputCredentialsApplePay::inputCredentialsApplePay(string const &data_)
+ : data_(data_)
+{}
+
+const std::int32_t inputCredentialsApplePay::ID;
+
+void inputCredentialsApplePay::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputCredentialsApplePay");
+ s.store_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+inputCredentialsGooglePay::inputCredentialsGooglePay()
+ : data_()
+{}
+
+inputCredentialsGooglePay::inputCredentialsGooglePay(string const &data_)
+ : data_(data_)
+{}
+
+const std::int32_t inputCredentialsGooglePay::ID;
+
+void inputCredentialsGooglePay::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputCredentialsGooglePay");
+ s.store_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+inputFileId::inputFileId()
+ : id_()
+{}
+
+inputFileId::inputFileId(int32 id_)
+ : id_(id_)
+{}
+
+const std::int32_t inputFileId::ID;
+
+void inputFileId::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputFileId");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+inputFileRemote::inputFileRemote()
+ : id_()
+{}
+
+inputFileRemote::inputFileRemote(string const &id_)
+ : id_(id_)
+{}
+
+const std::int32_t inputFileRemote::ID;
+
+void inputFileRemote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputFileRemote");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+inputFileLocal::inputFileLocal()
+ : path_()
+{}
+
+inputFileLocal::inputFileLocal(string const &path_)
+ : path_(path_)
+{}
+
+const std::int32_t inputFileLocal::ID;
+
+void inputFileLocal::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputFileLocal");
+ s.store_field("path", path_);
+ s.store_class_end();
+ }
+}
+
+inputFileGenerated::inputFileGenerated()
+ : original_path_()
+ , conversion_()
+ , expected_size_()
+{}
+
+inputFileGenerated::inputFileGenerated(string const &original_path_, string const &conversion_, int53 expected_size_)
+ : original_path_(original_path_)
+ , conversion_(conversion_)
+ , expected_size_(expected_size_)
+{}
+
+const std::int32_t inputFileGenerated::ID;
+
+void inputFileGenerated::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputFileGenerated");
+ s.store_field("original_path", original_path_);
+ s.store_field("conversion", conversion_);
+ s.store_field("expected_size", expected_size_);
+ s.store_class_end();
+ }
+}
+
+inputIdentityDocument::inputIdentityDocument()
+ : number_()
+ , expiry_date_()
+ , front_side_()
+ , reverse_side_()
+ , selfie_()
+ , translation_()
+{}
+
+inputIdentityDocument::inputIdentityDocument(string const &number_, object_ptr<date> &&expiry_date_, object_ptr<InputFile> &&front_side_, object_ptr<InputFile> &&reverse_side_, object_ptr<InputFile> &&selfie_, array<object_ptr<InputFile>> &&translation_)
+ : number_(number_)
+ , expiry_date_(std::move(expiry_date_))
+ , front_side_(std::move(front_side_))
+ , reverse_side_(std::move(reverse_side_))
+ , selfie_(std::move(selfie_))
+ , translation_(std::move(translation_))
+{}
+
+const std::int32_t inputIdentityDocument::ID;
+
+void inputIdentityDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputIdentityDocument");
+ s.store_field("number", number_);
+ s.store_object_field("expiry_date", static_cast<const BaseObject *>(expiry_date_.get()));
+ s.store_object_field("front_side", static_cast<const BaseObject *>(front_side_.get()));
+ s.store_object_field("reverse_side", static_cast<const BaseObject *>(reverse_side_.get()));
+ s.store_object_field("selfie", static_cast<const BaseObject *>(selfie_.get()));
+ { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultAnimation::inputInlineQueryResultAnimation()
+ : id_()
+ , title_()
+ , thumbnail_url_()
+ , thumbnail_mime_type_()
+ , video_url_()
+ , video_mime_type_()
+ , video_duration_()
+ , video_width_()
+ , video_height_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultAnimation::inputInlineQueryResultAnimation(string const &id_, string const &title_, string const &thumbnail_url_, string const &thumbnail_mime_type_, string const &video_url_, string const &video_mime_type_, int32 video_duration_, int32 video_width_, int32 video_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , title_(title_)
+ , thumbnail_url_(thumbnail_url_)
+ , thumbnail_mime_type_(thumbnail_mime_type_)
+ , video_url_(video_url_)
+ , video_mime_type_(video_mime_type_)
+ , video_duration_(video_duration_)
+ , video_width_(video_width_)
+ , video_height_(video_height_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultAnimation::ID;
+
+void inputInlineQueryResultAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultAnimation");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_field("thumbnail_url", thumbnail_url_);
+ s.store_field("thumbnail_mime_type", thumbnail_mime_type_);
+ s.store_field("video_url", video_url_);
+ s.store_field("video_mime_type", video_mime_type_);
+ s.store_field("video_duration", video_duration_);
+ s.store_field("video_width", video_width_);
+ s.store_field("video_height", video_height_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultArticle::inputInlineQueryResultArticle()
+ : id_()
+ , url_()
+ , hide_url_()
+ , title_()
+ , description_()
+ , thumbnail_url_()
+ , thumbnail_width_()
+ , thumbnail_height_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultArticle::inputInlineQueryResultArticle(string const &id_, string const &url_, bool hide_url_, string const &title_, string const &description_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , url_(url_)
+ , hide_url_(hide_url_)
+ , title_(title_)
+ , description_(description_)
+ , thumbnail_url_(thumbnail_url_)
+ , thumbnail_width_(thumbnail_width_)
+ , thumbnail_height_(thumbnail_height_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultArticle::ID;
+
+void inputInlineQueryResultArticle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultArticle");
+ s.store_field("id", id_);
+ s.store_field("url", url_);
+ s.store_field("hide_url", hide_url_);
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_field("thumbnail_url", thumbnail_url_);
+ s.store_field("thumbnail_width", thumbnail_width_);
+ s.store_field("thumbnail_height", thumbnail_height_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultAudio::inputInlineQueryResultAudio()
+ : id_()
+ , title_()
+ , performer_()
+ , audio_url_()
+ , audio_duration_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultAudio::inputInlineQueryResultAudio(string const &id_, string const &title_, string const &performer_, string const &audio_url_, int32 audio_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , title_(title_)
+ , performer_(performer_)
+ , audio_url_(audio_url_)
+ , audio_duration_(audio_duration_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultAudio::ID;
+
+void inputInlineQueryResultAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultAudio");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_field("performer", performer_);
+ s.store_field("audio_url", audio_url_);
+ s.store_field("audio_duration", audio_duration_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultContact::inputInlineQueryResultContact()
+ : id_()
+ , contact_()
+ , thumbnail_url_()
+ , thumbnail_width_()
+ , thumbnail_height_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultContact::inputInlineQueryResultContact(string const &id_, object_ptr<contact> &&contact_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , contact_(std::move(contact_))
+ , thumbnail_url_(thumbnail_url_)
+ , thumbnail_width_(thumbnail_width_)
+ , thumbnail_height_(thumbnail_height_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultContact::ID;
+
+void inputInlineQueryResultContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultContact");
+ s.store_field("id", id_);
+ s.store_object_field("contact", static_cast<const BaseObject *>(contact_.get()));
+ s.store_field("thumbnail_url", thumbnail_url_);
+ s.store_field("thumbnail_width", thumbnail_width_);
+ s.store_field("thumbnail_height", thumbnail_height_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultDocument::inputInlineQueryResultDocument()
+ : id_()
+ , title_()
+ , description_()
+ , document_url_()
+ , mime_type_()
+ , thumbnail_url_()
+ , thumbnail_width_()
+ , thumbnail_height_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultDocument::inputInlineQueryResultDocument(string const &id_, string const &title_, string const &description_, string const &document_url_, string const &mime_type_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , title_(title_)
+ , description_(description_)
+ , document_url_(document_url_)
+ , mime_type_(mime_type_)
+ , thumbnail_url_(thumbnail_url_)
+ , thumbnail_width_(thumbnail_width_)
+ , thumbnail_height_(thumbnail_height_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultDocument::ID;
+
+void inputInlineQueryResultDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultDocument");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_field("document_url", document_url_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("thumbnail_url", thumbnail_url_);
+ s.store_field("thumbnail_width", thumbnail_width_);
+ s.store_field("thumbnail_height", thumbnail_height_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultGame::inputInlineQueryResultGame()
+ : id_()
+ , game_short_name_()
+ , reply_markup_()
+{}
+
+inputInlineQueryResultGame::inputInlineQueryResultGame(string const &id_, string const &game_short_name_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : id_(id_)
+ , game_short_name_(game_short_name_)
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t inputInlineQueryResultGame::ID;
+
+void inputInlineQueryResultGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultGame");
+ s.store_field("id", id_);
+ s.store_field("game_short_name", game_short_name_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultLocation::inputInlineQueryResultLocation()
+ : id_()
+ , location_()
+ , live_period_()
+ , title_()
+ , thumbnail_url_()
+ , thumbnail_width_()
+ , thumbnail_height_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultLocation::inputInlineQueryResultLocation(string const &id_, object_ptr<location> &&location_, int32 live_period_, string const &title_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , location_(std::move(location_))
+ , live_period_(live_period_)
+ , title_(title_)
+ , thumbnail_url_(thumbnail_url_)
+ , thumbnail_width_(thumbnail_width_)
+ , thumbnail_height_(thumbnail_height_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultLocation::ID;
+
+void inputInlineQueryResultLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultLocation");
+ s.store_field("id", id_);
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("live_period", live_period_);
+ s.store_field("title", title_);
+ s.store_field("thumbnail_url", thumbnail_url_);
+ s.store_field("thumbnail_width", thumbnail_width_);
+ s.store_field("thumbnail_height", thumbnail_height_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultPhoto::inputInlineQueryResultPhoto()
+ : id_()
+ , title_()
+ , description_()
+ , thumbnail_url_()
+ , photo_url_()
+ , photo_width_()
+ , photo_height_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultPhoto::inputInlineQueryResultPhoto(string const &id_, string const &title_, string const &description_, string const &thumbnail_url_, string const &photo_url_, int32 photo_width_, int32 photo_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , title_(title_)
+ , description_(description_)
+ , thumbnail_url_(thumbnail_url_)
+ , photo_url_(photo_url_)
+ , photo_width_(photo_width_)
+ , photo_height_(photo_height_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultPhoto::ID;
+
+void inputInlineQueryResultPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultPhoto");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_field("thumbnail_url", thumbnail_url_);
+ s.store_field("photo_url", photo_url_);
+ s.store_field("photo_width", photo_width_);
+ s.store_field("photo_height", photo_height_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultSticker::inputInlineQueryResultSticker()
+ : id_()
+ , thumbnail_url_()
+ , sticker_url_()
+ , sticker_width_()
+ , sticker_height_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultSticker::inputInlineQueryResultSticker(string const &id_, string const &thumbnail_url_, string const &sticker_url_, int32 sticker_width_, int32 sticker_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , thumbnail_url_(thumbnail_url_)
+ , sticker_url_(sticker_url_)
+ , sticker_width_(sticker_width_)
+ , sticker_height_(sticker_height_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultSticker::ID;
+
+void inputInlineQueryResultSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultSticker");
+ s.store_field("id", id_);
+ s.store_field("thumbnail_url", thumbnail_url_);
+ s.store_field("sticker_url", sticker_url_);
+ s.store_field("sticker_width", sticker_width_);
+ s.store_field("sticker_height", sticker_height_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultVenue::inputInlineQueryResultVenue()
+ : id_()
+ , venue_()
+ , thumbnail_url_()
+ , thumbnail_width_()
+ , thumbnail_height_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultVenue::inputInlineQueryResultVenue(string const &id_, object_ptr<venue> &&venue_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , venue_(std::move(venue_))
+ , thumbnail_url_(thumbnail_url_)
+ , thumbnail_width_(thumbnail_width_)
+ , thumbnail_height_(thumbnail_height_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultVenue::ID;
+
+void inputInlineQueryResultVenue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultVenue");
+ s.store_field("id", id_);
+ s.store_object_field("venue", static_cast<const BaseObject *>(venue_.get()));
+ s.store_field("thumbnail_url", thumbnail_url_);
+ s.store_field("thumbnail_width", thumbnail_width_);
+ s.store_field("thumbnail_height", thumbnail_height_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultVideo::inputInlineQueryResultVideo()
+ : id_()
+ , title_()
+ , description_()
+ , thumbnail_url_()
+ , video_url_()
+ , mime_type_()
+ , video_width_()
+ , video_height_()
+ , video_duration_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultVideo::inputInlineQueryResultVideo(string const &id_, string const &title_, string const &description_, string const &thumbnail_url_, string const &video_url_, string const &mime_type_, int32 video_width_, int32 video_height_, int32 video_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , title_(title_)
+ , description_(description_)
+ , thumbnail_url_(thumbnail_url_)
+ , video_url_(video_url_)
+ , mime_type_(mime_type_)
+ , video_width_(video_width_)
+ , video_height_(video_height_)
+ , video_duration_(video_duration_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultVideo::ID;
+
+void inputInlineQueryResultVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultVideo");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_field("thumbnail_url", thumbnail_url_);
+ s.store_field("video_url", video_url_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("video_width", video_width_);
+ s.store_field("video_height", video_height_);
+ s.store_field("video_duration", video_duration_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInlineQueryResultVoiceNote::inputInlineQueryResultVoiceNote()
+ : id_()
+ , title_()
+ , voice_note_url_()
+ , voice_note_duration_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+inputInlineQueryResultVoiceNote::inputInlineQueryResultVoiceNote(string const &id_, string const &title_, string const &voice_note_url_, int32 voice_note_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : id_(id_)
+ , title_(title_)
+ , voice_note_url_(voice_note_url_)
+ , voice_note_duration_(voice_note_duration_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t inputInlineQueryResultVoiceNote::ID;
+
+void inputInlineQueryResultVoiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInlineQueryResultVoiceNote");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_field("voice_note_url", voice_note_url_);
+ s.store_field("voice_note_duration", voice_note_duration_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputInvoiceMessage::inputInvoiceMessage()
+ : chat_id_()
+ , message_id_()
+{}
+
+inputInvoiceMessage::inputInvoiceMessage(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t inputInvoiceMessage::ID;
+
+void inputInvoiceMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInvoiceMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+inputInvoiceName::inputInvoiceName()
+ : name_()
+{}
+
+inputInvoiceName::inputInvoiceName(string const &name_)
+ : name_(name_)
+{}
+
+const std::int32_t inputInvoiceName::ID;
+
+void inputInvoiceName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInvoiceName");
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+inputMessageText::inputMessageText()
+ : text_()
+ , disable_web_page_preview_()
+ , clear_draft_()
+{}
+
+inputMessageText::inputMessageText(object_ptr<formattedText> &&text_, bool disable_web_page_preview_, bool clear_draft_)
+ : text_(std::move(text_))
+ , disable_web_page_preview_(disable_web_page_preview_)
+ , clear_draft_(clear_draft_)
+{}
+
+const std::int32_t inputMessageText::ID;
+
+void inputMessageText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageText");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("disable_web_page_preview", disable_web_page_preview_);
+ s.store_field("clear_draft", clear_draft_);
+ s.store_class_end();
+ }
+}
+
+inputMessageAnimation::inputMessageAnimation()
+ : animation_()
+ , thumbnail_()
+ , added_sticker_file_ids_()
+ , duration_()
+ , width_()
+ , height_()
+ , caption_()
+{}
+
+inputMessageAnimation::inputMessageAnimation(object_ptr<InputFile> &&animation_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 duration_, int32 width_, int32 height_, object_ptr<formattedText> &&caption_)
+ : animation_(std::move(animation_))
+ , thumbnail_(std::move(thumbnail_))
+ , added_sticker_file_ids_(std::move(added_sticker_file_ids_))
+ , duration_(duration_)
+ , width_(width_)
+ , height_(height_)
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t inputMessageAnimation::ID;
+
+void inputMessageAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageAnimation");
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ { s.store_vector_begin("added_sticker_file_ids", added_sticker_file_ids_.size()); for (const auto &_value : added_sticker_file_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("duration", duration_);
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+inputMessageAudio::inputMessageAudio()
+ : audio_()
+ , album_cover_thumbnail_()
+ , duration_()
+ , title_()
+ , performer_()
+ , caption_()
+{}
+
+inputMessageAudio::inputMessageAudio(object_ptr<InputFile> &&audio_, object_ptr<inputThumbnail> &&album_cover_thumbnail_, int32 duration_, string const &title_, string const &performer_, object_ptr<formattedText> &&caption_)
+ : audio_(std::move(audio_))
+ , album_cover_thumbnail_(std::move(album_cover_thumbnail_))
+ , duration_(duration_)
+ , title_(title_)
+ , performer_(performer_)
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t inputMessageAudio::ID;
+
+void inputMessageAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageAudio");
+ s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get()));
+ s.store_object_field("album_cover_thumbnail", static_cast<const BaseObject *>(album_cover_thumbnail_.get()));
+ s.store_field("duration", duration_);
+ s.store_field("title", title_);
+ s.store_field("performer", performer_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+inputMessageDocument::inputMessageDocument()
+ : document_()
+ , thumbnail_()
+ , disable_content_type_detection_()
+ , caption_()
+{}
+
+inputMessageDocument::inputMessageDocument(object_ptr<InputFile> &&document_, object_ptr<inputThumbnail> &&thumbnail_, bool disable_content_type_detection_, object_ptr<formattedText> &&caption_)
+ : document_(std::move(document_))
+ , thumbnail_(std::move(thumbnail_))
+ , disable_content_type_detection_(disable_content_type_detection_)
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t inputMessageDocument::ID;
+
+void inputMessageDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageDocument");
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_field("disable_content_type_detection", disable_content_type_detection_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+inputMessagePhoto::inputMessagePhoto()
+ : photo_()
+ , thumbnail_()
+ , added_sticker_file_ids_()
+ , width_()
+ , height_()
+ , caption_()
+ , ttl_()
+{}
+
+inputMessagePhoto::inputMessagePhoto(object_ptr<InputFile> &&photo_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 width_, int32 height_, object_ptr<formattedText> &&caption_, int32 ttl_)
+ : photo_(std::move(photo_))
+ , thumbnail_(std::move(thumbnail_))
+ , added_sticker_file_ids_(std::move(added_sticker_file_ids_))
+ , width_(width_)
+ , height_(height_)
+ , caption_(std::move(caption_))
+ , ttl_(ttl_)
+{}
+
+const std::int32_t inputMessagePhoto::ID;
+
+void inputMessagePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagePhoto");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ { s.store_vector_begin("added_sticker_file_ids", added_sticker_file_ids_.size()); for (const auto &_value : added_sticker_file_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_field("ttl", ttl_);
+ s.store_class_end();
+ }
+}
+
+inputMessageSticker::inputMessageSticker()
+ : sticker_()
+ , thumbnail_()
+ , width_()
+ , height_()
+ , emoji_()
+{}
+
+inputMessageSticker::inputMessageSticker(object_ptr<InputFile> &&sticker_, object_ptr<inputThumbnail> &&thumbnail_, int32 width_, int32 height_, string const &emoji_)
+ : sticker_(std::move(sticker_))
+ , thumbnail_(std::move(thumbnail_))
+ , width_(width_)
+ , height_(height_)
+ , emoji_(emoji_)
+{}
+
+const std::int32_t inputMessageSticker::ID;
+
+void inputMessageSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageSticker");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_field("emoji", emoji_);
+ s.store_class_end();
+ }
+}
+
+inputMessageVideo::inputMessageVideo()
+ : video_()
+ , thumbnail_()
+ , added_sticker_file_ids_()
+ , duration_()
+ , width_()
+ , height_()
+ , supports_streaming_()
+ , caption_()
+ , ttl_()
+{}
+
+inputMessageVideo::inputMessageVideo(object_ptr<InputFile> &&video_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 duration_, int32 width_, int32 height_, bool supports_streaming_, object_ptr<formattedText> &&caption_, int32 ttl_)
+ : video_(std::move(video_))
+ , thumbnail_(std::move(thumbnail_))
+ , added_sticker_file_ids_(std::move(added_sticker_file_ids_))
+ , duration_(duration_)
+ , width_(width_)
+ , height_(height_)
+ , supports_streaming_(supports_streaming_)
+ , caption_(std::move(caption_))
+ , ttl_(ttl_)
+{}
+
+const std::int32_t inputMessageVideo::ID;
+
+void inputMessageVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageVideo");
+ s.store_object_field("video", static_cast<const BaseObject *>(video_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ { s.store_vector_begin("added_sticker_file_ids", added_sticker_file_ids_.size()); for (const auto &_value : added_sticker_file_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("duration", duration_);
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_field("supports_streaming", supports_streaming_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_field("ttl", ttl_);
+ s.store_class_end();
+ }
+}
+
+inputMessageVideoNote::inputMessageVideoNote()
+ : video_note_()
+ , thumbnail_()
+ , duration_()
+ , length_()
+{}
+
+inputMessageVideoNote::inputMessageVideoNote(object_ptr<InputFile> &&video_note_, object_ptr<inputThumbnail> &&thumbnail_, int32 duration_, int32 length_)
+ : video_note_(std::move(video_note_))
+ , thumbnail_(std::move(thumbnail_))
+ , duration_(duration_)
+ , length_(length_)
+{}
+
+const std::int32_t inputMessageVideoNote::ID;
+
+void inputMessageVideoNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageVideoNote");
+ s.store_object_field("video_note", static_cast<const BaseObject *>(video_note_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_field("duration", duration_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+inputMessageVoiceNote::inputMessageVoiceNote()
+ : voice_note_()
+ , duration_()
+ , waveform_()
+ , caption_()
+{}
+
+inputMessageVoiceNote::inputMessageVoiceNote(object_ptr<InputFile> &&voice_note_, int32 duration_, bytes const &waveform_, object_ptr<formattedText> &&caption_)
+ : voice_note_(std::move(voice_note_))
+ , duration_(duration_)
+ , waveform_(std::move(waveform_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t inputMessageVoiceNote::ID;
+
+void inputMessageVoiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageVoiceNote");
+ s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get()));
+ s.store_field("duration", duration_);
+ s.store_bytes_field("waveform", waveform_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+inputMessageLocation::inputMessageLocation()
+ : location_()
+ , live_period_()
+ , heading_()
+ , proximity_alert_radius_()
+{}
+
+inputMessageLocation::inputMessageLocation(object_ptr<location> &&location_, int32 live_period_, int32 heading_, int32 proximity_alert_radius_)
+ : location_(std::move(location_))
+ , live_period_(live_period_)
+ , heading_(heading_)
+ , proximity_alert_radius_(proximity_alert_radius_)
+{}
+
+const std::int32_t inputMessageLocation::ID;
+
+void inputMessageLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageLocation");
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("live_period", live_period_);
+ s.store_field("heading", heading_);
+ s.store_field("proximity_alert_radius", proximity_alert_radius_);
+ s.store_class_end();
+ }
+}
+
+inputMessageVenue::inputMessageVenue()
+ : venue_()
+{}
+
+inputMessageVenue::inputMessageVenue(object_ptr<venue> &&venue_)
+ : venue_(std::move(venue_))
+{}
+
+const std::int32_t inputMessageVenue::ID;
+
+void inputMessageVenue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageVenue");
+ s.store_object_field("venue", static_cast<const BaseObject *>(venue_.get()));
+ s.store_class_end();
+ }
+}
+
+inputMessageContact::inputMessageContact()
+ : contact_()
+{}
+
+inputMessageContact::inputMessageContact(object_ptr<contact> &&contact_)
+ : contact_(std::move(contact_))
+{}
+
+const std::int32_t inputMessageContact::ID;
+
+void inputMessageContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageContact");
+ s.store_object_field("contact", static_cast<const BaseObject *>(contact_.get()));
+ s.store_class_end();
+ }
+}
+
+inputMessageDice::inputMessageDice()
+ : emoji_()
+ , clear_draft_()
+{}
+
+inputMessageDice::inputMessageDice(string const &emoji_, bool clear_draft_)
+ : emoji_(emoji_)
+ , clear_draft_(clear_draft_)
+{}
+
+const std::int32_t inputMessageDice::ID;
+
+void inputMessageDice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageDice");
+ s.store_field("emoji", emoji_);
+ s.store_field("clear_draft", clear_draft_);
+ s.store_class_end();
+ }
+}
+
+inputMessageGame::inputMessageGame()
+ : bot_user_id_()
+ , game_short_name_()
+{}
+
+inputMessageGame::inputMessageGame(int53 bot_user_id_, string const &game_short_name_)
+ : bot_user_id_(bot_user_id_)
+ , game_short_name_(game_short_name_)
+{}
+
+const std::int32_t inputMessageGame::ID;
+
+void inputMessageGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageGame");
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("game_short_name", game_short_name_);
+ s.store_class_end();
+ }
+}
+
+inputMessageInvoice::inputMessageInvoice()
+ : invoice_()
+ , title_()
+ , description_()
+ , photo_url_()
+ , photo_size_()
+ , photo_width_()
+ , photo_height_()
+ , payload_()
+ , provider_token_()
+ , provider_data_()
+ , start_parameter_()
+ , extended_media_content_()
+{}
+
+inputMessageInvoice::inputMessageInvoice(object_ptr<invoice> &&invoice_, string const &title_, string const &description_, string const &photo_url_, int32 photo_size_, int32 photo_width_, int32 photo_height_, bytes const &payload_, string const &provider_token_, string const &provider_data_, string const &start_parameter_, object_ptr<InputMessageContent> &&extended_media_content_)
+ : invoice_(std::move(invoice_))
+ , title_(title_)
+ , description_(description_)
+ , photo_url_(photo_url_)
+ , photo_size_(photo_size_)
+ , photo_width_(photo_width_)
+ , photo_height_(photo_height_)
+ , payload_(std::move(payload_))
+ , provider_token_(provider_token_)
+ , provider_data_(provider_data_)
+ , start_parameter_(start_parameter_)
+ , extended_media_content_(std::move(extended_media_content_))
+{}
+
+const std::int32_t inputMessageInvoice::ID;
+
+void inputMessageInvoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageInvoice");
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_field("photo_url", photo_url_);
+ s.store_field("photo_size", photo_size_);
+ s.store_field("photo_width", photo_width_);
+ s.store_field("photo_height", photo_height_);
+ s.store_bytes_field("payload", payload_);
+ s.store_field("provider_token", provider_token_);
+ s.store_field("provider_data", provider_data_);
+ s.store_field("start_parameter", start_parameter_);
+ s.store_object_field("extended_media_content", static_cast<const BaseObject *>(extended_media_content_.get()));
+ s.store_class_end();
+ }
+}
+
+inputMessagePoll::inputMessagePoll()
+ : question_()
+ , options_()
+ , is_anonymous_()
+ , type_()
+ , open_period_()
+ , close_date_()
+ , is_closed_()
+{}
+
+inputMessagePoll::inputMessagePoll(string const &question_, array<string> &&options_, bool is_anonymous_, object_ptr<PollType> &&type_, int32 open_period_, int32 close_date_, bool is_closed_)
+ : question_(question_)
+ , options_(std::move(options_))
+ , is_anonymous_(is_anonymous_)
+ , type_(std::move(type_))
+ , open_period_(open_period_)
+ , close_date_(close_date_)
+ , is_closed_(is_closed_)
+{}
+
+const std::int32_t inputMessagePoll::ID;
+
+void inputMessagePoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagePoll");
+ s.store_field("question", question_);
+ { s.store_vector_begin("options", options_.size()); for (const auto &_value : options_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("is_anonymous", is_anonymous_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("open_period", open_period_);
+ s.store_field("close_date", close_date_);
+ s.store_field("is_closed", is_closed_);
+ s.store_class_end();
+ }
+}
+
+inputMessageForwarded::inputMessageForwarded()
+ : from_chat_id_()
+ , message_id_()
+ , in_game_share_()
+ , copy_options_()
+{}
+
+inputMessageForwarded::inputMessageForwarded(int53 from_chat_id_, int53 message_id_, bool in_game_share_, object_ptr<messageCopyOptions> &&copy_options_)
+ : from_chat_id_(from_chat_id_)
+ , message_id_(message_id_)
+ , in_game_share_(in_game_share_)
+ , copy_options_(std::move(copy_options_))
+{}
+
+const std::int32_t inputMessageForwarded::ID;
+
+void inputMessageForwarded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageForwarded");
+ s.store_field("from_chat_id", from_chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("in_game_share", in_game_share_);
+ s.store_object_field("copy_options", static_cast<const BaseObject *>(copy_options_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementPersonalDetails::inputPassportElementPersonalDetails()
+ : personal_details_()
+{}
+
+inputPassportElementPersonalDetails::inputPassportElementPersonalDetails(object_ptr<personalDetails> &&personal_details_)
+ : personal_details_(std::move(personal_details_))
+{}
+
+const std::int32_t inputPassportElementPersonalDetails::ID;
+
+void inputPassportElementPersonalDetails::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementPersonalDetails");
+ s.store_object_field("personal_details", static_cast<const BaseObject *>(personal_details_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementPassport::inputPassportElementPassport()
+ : passport_()
+{}
+
+inputPassportElementPassport::inputPassportElementPassport(object_ptr<inputIdentityDocument> &&passport_)
+ : passport_(std::move(passport_))
+{}
+
+const std::int32_t inputPassportElementPassport::ID;
+
+void inputPassportElementPassport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementPassport");
+ s.store_object_field("passport", static_cast<const BaseObject *>(passport_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementDriverLicense::inputPassportElementDriverLicense()
+ : driver_license_()
+{}
+
+inputPassportElementDriverLicense::inputPassportElementDriverLicense(object_ptr<inputIdentityDocument> &&driver_license_)
+ : driver_license_(std::move(driver_license_))
+{}
+
+const std::int32_t inputPassportElementDriverLicense::ID;
+
+void inputPassportElementDriverLicense::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementDriverLicense");
+ s.store_object_field("driver_license", static_cast<const BaseObject *>(driver_license_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementIdentityCard::inputPassportElementIdentityCard()
+ : identity_card_()
+{}
+
+inputPassportElementIdentityCard::inputPassportElementIdentityCard(object_ptr<inputIdentityDocument> &&identity_card_)
+ : identity_card_(std::move(identity_card_))
+{}
+
+const std::int32_t inputPassportElementIdentityCard::ID;
+
+void inputPassportElementIdentityCard::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementIdentityCard");
+ s.store_object_field("identity_card", static_cast<const BaseObject *>(identity_card_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementInternalPassport::inputPassportElementInternalPassport()
+ : internal_passport_()
+{}
+
+inputPassportElementInternalPassport::inputPassportElementInternalPassport(object_ptr<inputIdentityDocument> &&internal_passport_)
+ : internal_passport_(std::move(internal_passport_))
+{}
+
+const std::int32_t inputPassportElementInternalPassport::ID;
+
+void inputPassportElementInternalPassport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementInternalPassport");
+ s.store_object_field("internal_passport", static_cast<const BaseObject *>(internal_passport_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementAddress::inputPassportElementAddress()
+ : address_()
+{}
+
+inputPassportElementAddress::inputPassportElementAddress(object_ptr<address> &&address_)
+ : address_(std::move(address_))
+{}
+
+const std::int32_t inputPassportElementAddress::ID;
+
+void inputPassportElementAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementAddress");
+ s.store_object_field("address", static_cast<const BaseObject *>(address_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementUtilityBill::inputPassportElementUtilityBill()
+ : utility_bill_()
+{}
+
+inputPassportElementUtilityBill::inputPassportElementUtilityBill(object_ptr<inputPersonalDocument> &&utility_bill_)
+ : utility_bill_(std::move(utility_bill_))
+{}
+
+const std::int32_t inputPassportElementUtilityBill::ID;
+
+void inputPassportElementUtilityBill::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementUtilityBill");
+ s.store_object_field("utility_bill", static_cast<const BaseObject *>(utility_bill_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementBankStatement::inputPassportElementBankStatement()
+ : bank_statement_()
+{}
+
+inputPassportElementBankStatement::inputPassportElementBankStatement(object_ptr<inputPersonalDocument> &&bank_statement_)
+ : bank_statement_(std::move(bank_statement_))
+{}
+
+const std::int32_t inputPassportElementBankStatement::ID;
+
+void inputPassportElementBankStatement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementBankStatement");
+ s.store_object_field("bank_statement", static_cast<const BaseObject *>(bank_statement_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementRentalAgreement::inputPassportElementRentalAgreement()
+ : rental_agreement_()
+{}
+
+inputPassportElementRentalAgreement::inputPassportElementRentalAgreement(object_ptr<inputPersonalDocument> &&rental_agreement_)
+ : rental_agreement_(std::move(rental_agreement_))
+{}
+
+const std::int32_t inputPassportElementRentalAgreement::ID;
+
+void inputPassportElementRentalAgreement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementRentalAgreement");
+ s.store_object_field("rental_agreement", static_cast<const BaseObject *>(rental_agreement_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementPassportRegistration::inputPassportElementPassportRegistration()
+ : passport_registration_()
+{}
+
+inputPassportElementPassportRegistration::inputPassportElementPassportRegistration(object_ptr<inputPersonalDocument> &&passport_registration_)
+ : passport_registration_(std::move(passport_registration_))
+{}
+
+const std::int32_t inputPassportElementPassportRegistration::ID;
+
+void inputPassportElementPassportRegistration::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementPassportRegistration");
+ s.store_object_field("passport_registration", static_cast<const BaseObject *>(passport_registration_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementTemporaryRegistration::inputPassportElementTemporaryRegistration()
+ : temporary_registration_()
+{}
+
+inputPassportElementTemporaryRegistration::inputPassportElementTemporaryRegistration(object_ptr<inputPersonalDocument> &&temporary_registration_)
+ : temporary_registration_(std::move(temporary_registration_))
+{}
+
+const std::int32_t inputPassportElementTemporaryRegistration::ID;
+
+void inputPassportElementTemporaryRegistration::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementTemporaryRegistration");
+ s.store_object_field("temporary_registration", static_cast<const BaseObject *>(temporary_registration_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementPhoneNumber::inputPassportElementPhoneNumber()
+ : phone_number_()
+{}
+
+inputPassportElementPhoneNumber::inputPassportElementPhoneNumber(string const &phone_number_)
+ : phone_number_(phone_number_)
+{}
+
+const std::int32_t inputPassportElementPhoneNumber::ID;
+
+void inputPassportElementPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementPhoneNumber");
+ s.store_field("phone_number", phone_number_);
+ s.store_class_end();
+ }
+}
+
+inputPassportElementEmailAddress::inputPassportElementEmailAddress()
+ : email_address_()
+{}
+
+inputPassportElementEmailAddress::inputPassportElementEmailAddress(string const &email_address_)
+ : email_address_(email_address_)
+{}
+
+const std::int32_t inputPassportElementEmailAddress::ID;
+
+void inputPassportElementEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementEmailAddress");
+ s.store_field("email_address", email_address_);
+ s.store_class_end();
+ }
+}
+
+inputPassportElementError::inputPassportElementError()
+ : type_()
+ , message_()
+ , source_()
+{}
+
+inputPassportElementError::inputPassportElementError(object_ptr<PassportElementType> &&type_, string const &message_, object_ptr<InputPassportElementErrorSource> &&source_)
+ : type_(std::move(type_))
+ , message_(message_)
+ , source_(std::move(source_))
+{}
+
+const std::int32_t inputPassportElementError::ID;
+
+void inputPassportElementError::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementError");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("message", message_);
+ s.store_object_field("source", static_cast<const BaseObject *>(source_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPassportElementErrorSourceUnspecified::inputPassportElementErrorSourceUnspecified()
+ : element_hash_()
+{}
+
+inputPassportElementErrorSourceUnspecified::inputPassportElementErrorSourceUnspecified(bytes const &element_hash_)
+ : element_hash_(std::move(element_hash_))
+{}
+
+const std::int32_t inputPassportElementErrorSourceUnspecified::ID;
+
+void inputPassportElementErrorSourceUnspecified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementErrorSourceUnspecified");
+ s.store_bytes_field("element_hash", element_hash_);
+ s.store_class_end();
+ }
+}
+
+inputPassportElementErrorSourceDataField::inputPassportElementErrorSourceDataField()
+ : field_name_()
+ , data_hash_()
+{}
+
+inputPassportElementErrorSourceDataField::inputPassportElementErrorSourceDataField(string const &field_name_, bytes const &data_hash_)
+ : field_name_(field_name_)
+ , data_hash_(std::move(data_hash_))
+{}
+
+const std::int32_t inputPassportElementErrorSourceDataField::ID;
+
+void inputPassportElementErrorSourceDataField::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementErrorSourceDataField");
+ s.store_field("field_name", field_name_);
+ s.store_bytes_field("data_hash", data_hash_);
+ s.store_class_end();
+ }
+}
+
+inputPassportElementErrorSourceFrontSide::inputPassportElementErrorSourceFrontSide()
+ : file_hash_()
+{}
+
+inputPassportElementErrorSourceFrontSide::inputPassportElementErrorSourceFrontSide(bytes const &file_hash_)
+ : file_hash_(std::move(file_hash_))
+{}
+
+const std::int32_t inputPassportElementErrorSourceFrontSide::ID;
+
+void inputPassportElementErrorSourceFrontSide::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementErrorSourceFrontSide");
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_class_end();
+ }
+}
+
+inputPassportElementErrorSourceReverseSide::inputPassportElementErrorSourceReverseSide()
+ : file_hash_()
+{}
+
+inputPassportElementErrorSourceReverseSide::inputPassportElementErrorSourceReverseSide(bytes const &file_hash_)
+ : file_hash_(std::move(file_hash_))
+{}
+
+const std::int32_t inputPassportElementErrorSourceReverseSide::ID;
+
+void inputPassportElementErrorSourceReverseSide::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementErrorSourceReverseSide");
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_class_end();
+ }
+}
+
+inputPassportElementErrorSourceSelfie::inputPassportElementErrorSourceSelfie()
+ : file_hash_()
+{}
+
+inputPassportElementErrorSourceSelfie::inputPassportElementErrorSourceSelfie(bytes const &file_hash_)
+ : file_hash_(std::move(file_hash_))
+{}
+
+const std::int32_t inputPassportElementErrorSourceSelfie::ID;
+
+void inputPassportElementErrorSourceSelfie::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementErrorSourceSelfie");
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_class_end();
+ }
+}
+
+inputPassportElementErrorSourceTranslationFile::inputPassportElementErrorSourceTranslationFile()
+ : file_hash_()
+{}
+
+inputPassportElementErrorSourceTranslationFile::inputPassportElementErrorSourceTranslationFile(bytes const &file_hash_)
+ : file_hash_(std::move(file_hash_))
+{}
+
+const std::int32_t inputPassportElementErrorSourceTranslationFile::ID;
+
+void inputPassportElementErrorSourceTranslationFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementErrorSourceTranslationFile");
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_class_end();
+ }
+}
+
+inputPassportElementErrorSourceTranslationFiles::inputPassportElementErrorSourceTranslationFiles()
+ : file_hashes_()
+{}
+
+inputPassportElementErrorSourceTranslationFiles::inputPassportElementErrorSourceTranslationFiles(array<bytes> &&file_hashes_)
+ : file_hashes_(std::move(file_hashes_))
+{}
+
+const std::int32_t inputPassportElementErrorSourceTranslationFiles::ID;
+
+void inputPassportElementErrorSourceTranslationFiles::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementErrorSourceTranslationFiles");
+ { s.store_vector_begin("file_hashes", file_hashes_.size()); for (const auto &_value : file_hashes_) { s.store_bytes_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+inputPassportElementErrorSourceFile::inputPassportElementErrorSourceFile()
+ : file_hash_()
+{}
+
+inputPassportElementErrorSourceFile::inputPassportElementErrorSourceFile(bytes const &file_hash_)
+ : file_hash_(std::move(file_hash_))
+{}
+
+const std::int32_t inputPassportElementErrorSourceFile::ID;
+
+void inputPassportElementErrorSourceFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementErrorSourceFile");
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_class_end();
+ }
+}
+
+inputPassportElementErrorSourceFiles::inputPassportElementErrorSourceFiles()
+ : file_hashes_()
+{}
+
+inputPassportElementErrorSourceFiles::inputPassportElementErrorSourceFiles(array<bytes> &&file_hashes_)
+ : file_hashes_(std::move(file_hashes_))
+{}
+
+const std::int32_t inputPassportElementErrorSourceFiles::ID;
+
+void inputPassportElementErrorSourceFiles::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPassportElementErrorSourceFiles");
+ { s.store_vector_begin("file_hashes", file_hashes_.size()); for (const auto &_value : file_hashes_) { s.store_bytes_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+inputPersonalDocument::inputPersonalDocument()
+ : files_()
+ , translation_()
+{}
+
+inputPersonalDocument::inputPersonalDocument(array<object_ptr<InputFile>> &&files_, array<object_ptr<InputFile>> &&translation_)
+ : files_(std::move(files_))
+ , translation_(std::move(translation_))
+{}
+
+const std::int32_t inputPersonalDocument::ID;
+
+void inputPersonalDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPersonalDocument");
+ { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+inputSticker::inputSticker()
+ : sticker_()
+ , emojis_()
+ , format_()
+ , mask_position_()
+{}
+
+inputSticker::inputSticker(object_ptr<InputFile> &&sticker_, string const &emojis_, object_ptr<StickerFormat> &&format_, object_ptr<maskPosition> &&mask_position_)
+ : sticker_(std::move(sticker_))
+ , emojis_(emojis_)
+ , format_(std::move(format_))
+ , mask_position_(std::move(mask_position_))
+{}
+
+const std::int32_t inputSticker::ID;
+
+void inputSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputSticker");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_field("emojis", emojis_);
+ s.store_object_field("format", static_cast<const BaseObject *>(format_.get()));
+ s.store_object_field("mask_position", static_cast<const BaseObject *>(mask_position_.get()));
+ s.store_class_end();
+ }
+}
+
+inputThumbnail::inputThumbnail()
+ : thumbnail_()
+ , width_()
+ , height_()
+{}
+
+inputThumbnail::inputThumbnail(object_ptr<InputFile> &&thumbnail_, int32 width_, int32 height_)
+ : thumbnail_(std::move(thumbnail_))
+ , width_(width_)
+ , height_(height_)
+{}
+
+const std::int32_t inputThumbnail::ID;
+
+void inputThumbnail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputThumbnail");
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeActiveSessions::internalLinkTypeActiveSessions() {
+}
+
+const std::int32_t internalLinkTypeActiveSessions::ID;
+
+void internalLinkTypeActiveSessions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeActiveSessions");
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeAttachmentMenuBot::internalLinkTypeAttachmentMenuBot()
+ : target_chat_()
+ , bot_username_()
+ , url_()
+{}
+
+internalLinkTypeAttachmentMenuBot::internalLinkTypeAttachmentMenuBot(object_ptr<TargetChat> &&target_chat_, string const &bot_username_, string const &url_)
+ : target_chat_(std::move(target_chat_))
+ , bot_username_(bot_username_)
+ , url_(url_)
+{}
+
+const std::int32_t internalLinkTypeAttachmentMenuBot::ID;
+
+void internalLinkTypeAttachmentMenuBot::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeAttachmentMenuBot");
+ s.store_object_field("target_chat", static_cast<const BaseObject *>(target_chat_.get()));
+ s.store_field("bot_username", bot_username_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeAuthenticationCode::internalLinkTypeAuthenticationCode()
+ : code_()
+{}
+
+internalLinkTypeAuthenticationCode::internalLinkTypeAuthenticationCode(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t internalLinkTypeAuthenticationCode::ID;
+
+void internalLinkTypeAuthenticationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeAuthenticationCode");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeBackground::internalLinkTypeBackground()
+ : background_name_()
+{}
+
+internalLinkTypeBackground::internalLinkTypeBackground(string const &background_name_)
+ : background_name_(background_name_)
+{}
+
+const std::int32_t internalLinkTypeBackground::ID;
+
+void internalLinkTypeBackground::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeBackground");
+ s.store_field("background_name", background_name_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeBotStart::internalLinkTypeBotStart()
+ : bot_username_()
+ , start_parameter_()
+ , autostart_()
+{}
+
+internalLinkTypeBotStart::internalLinkTypeBotStart(string const &bot_username_, string const &start_parameter_, bool autostart_)
+ : bot_username_(bot_username_)
+ , start_parameter_(start_parameter_)
+ , autostart_(autostart_)
+{}
+
+const std::int32_t internalLinkTypeBotStart::ID;
+
+void internalLinkTypeBotStart::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeBotStart");
+ s.store_field("bot_username", bot_username_);
+ s.store_field("start_parameter", start_parameter_);
+ s.store_field("autostart", autostart_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeBotStartInGroup::internalLinkTypeBotStartInGroup()
+ : bot_username_()
+ , start_parameter_()
+ , administrator_rights_()
+{}
+
+internalLinkTypeBotStartInGroup::internalLinkTypeBotStartInGroup(string const &bot_username_, string const &start_parameter_, object_ptr<chatAdministratorRights> &&administrator_rights_)
+ : bot_username_(bot_username_)
+ , start_parameter_(start_parameter_)
+ , administrator_rights_(std::move(administrator_rights_))
+{}
+
+const std::int32_t internalLinkTypeBotStartInGroup::ID;
+
+void internalLinkTypeBotStartInGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeBotStartInGroup");
+ s.store_field("bot_username", bot_username_);
+ s.store_field("start_parameter", start_parameter_);
+ s.store_object_field("administrator_rights", static_cast<const BaseObject *>(administrator_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeBotAddToChannel::internalLinkTypeBotAddToChannel()
+ : bot_username_()
+ , administrator_rights_()
+{}
+
+internalLinkTypeBotAddToChannel::internalLinkTypeBotAddToChannel(string const &bot_username_, object_ptr<chatAdministratorRights> &&administrator_rights_)
+ : bot_username_(bot_username_)
+ , administrator_rights_(std::move(administrator_rights_))
+{}
+
+const std::int32_t internalLinkTypeBotAddToChannel::ID;
+
+void internalLinkTypeBotAddToChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeBotAddToChannel");
+ s.store_field("bot_username", bot_username_);
+ s.store_object_field("administrator_rights", static_cast<const BaseObject *>(administrator_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeChangePhoneNumber::internalLinkTypeChangePhoneNumber() {
+}
+
+const std::int32_t internalLinkTypeChangePhoneNumber::ID;
+
+void internalLinkTypeChangePhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeChangePhoneNumber");
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeChatInvite::internalLinkTypeChatInvite()
+ : invite_link_()
+{}
+
+internalLinkTypeChatInvite::internalLinkTypeChatInvite(string const &invite_link_)
+ : invite_link_(invite_link_)
+{}
+
+const std::int32_t internalLinkTypeChatInvite::ID;
+
+void internalLinkTypeChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeChatInvite");
+ s.store_field("invite_link", invite_link_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeFilterSettings::internalLinkTypeFilterSettings() {
+}
+
+const std::int32_t internalLinkTypeFilterSettings::ID;
+
+void internalLinkTypeFilterSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeFilterSettings");
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeGame::internalLinkTypeGame()
+ : bot_username_()
+ , game_short_name_()
+{}
+
+internalLinkTypeGame::internalLinkTypeGame(string const &bot_username_, string const &game_short_name_)
+ : bot_username_(bot_username_)
+ , game_short_name_(game_short_name_)
+{}
+
+const std::int32_t internalLinkTypeGame::ID;
+
+void internalLinkTypeGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeGame");
+ s.store_field("bot_username", bot_username_);
+ s.store_field("game_short_name", game_short_name_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeInstantView::internalLinkTypeInstantView()
+ : url_()
+ , fallback_url_()
+{}
+
+internalLinkTypeInstantView::internalLinkTypeInstantView(string const &url_, string const &fallback_url_)
+ : url_(url_)
+ , fallback_url_(fallback_url_)
+{}
+
+const std::int32_t internalLinkTypeInstantView::ID;
+
+void internalLinkTypeInstantView::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeInstantView");
+ s.store_field("url", url_);
+ s.store_field("fallback_url", fallback_url_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeInvoice::internalLinkTypeInvoice()
+ : invoice_name_()
+{}
+
+internalLinkTypeInvoice::internalLinkTypeInvoice(string const &invoice_name_)
+ : invoice_name_(invoice_name_)
+{}
+
+const std::int32_t internalLinkTypeInvoice::ID;
+
+void internalLinkTypeInvoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeInvoice");
+ s.store_field("invoice_name", invoice_name_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeLanguagePack::internalLinkTypeLanguagePack()
+ : language_pack_id_()
+{}
+
+internalLinkTypeLanguagePack::internalLinkTypeLanguagePack(string const &language_pack_id_)
+ : language_pack_id_(language_pack_id_)
+{}
+
+const std::int32_t internalLinkTypeLanguagePack::ID;
+
+void internalLinkTypeLanguagePack::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeLanguagePack");
+ s.store_field("language_pack_id", language_pack_id_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeLanguageSettings::internalLinkTypeLanguageSettings() {
+}
+
+const std::int32_t internalLinkTypeLanguageSettings::ID;
+
+void internalLinkTypeLanguageSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeLanguageSettings");
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeMessage::internalLinkTypeMessage()
+ : url_()
+{}
+
+internalLinkTypeMessage::internalLinkTypeMessage(string const &url_)
+ : url_(url_)
+{}
+
+const std::int32_t internalLinkTypeMessage::ID;
+
+void internalLinkTypeMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeMessage");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeMessageDraft::internalLinkTypeMessageDraft()
+ : text_()
+ , contains_link_()
+{}
+
+internalLinkTypeMessageDraft::internalLinkTypeMessageDraft(object_ptr<formattedText> &&text_, bool contains_link_)
+ : text_(std::move(text_))
+ , contains_link_(contains_link_)
+{}
+
+const std::int32_t internalLinkTypeMessageDraft::ID;
+
+void internalLinkTypeMessageDraft::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeMessageDraft");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("contains_link", contains_link_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypePassportDataRequest::internalLinkTypePassportDataRequest()
+ : bot_user_id_()
+ , scope_()
+ , public_key_()
+ , nonce_()
+ , callback_url_()
+{}
+
+internalLinkTypePassportDataRequest::internalLinkTypePassportDataRequest(int53 bot_user_id_, string const &scope_, string const &public_key_, string const &nonce_, string const &callback_url_)
+ : bot_user_id_(bot_user_id_)
+ , scope_(scope_)
+ , public_key_(public_key_)
+ , nonce_(nonce_)
+ , callback_url_(callback_url_)
+{}
+
+const std::int32_t internalLinkTypePassportDataRequest::ID;
+
+void internalLinkTypePassportDataRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypePassportDataRequest");
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("scope", scope_);
+ s.store_field("public_key", public_key_);
+ s.store_field("nonce", nonce_);
+ s.store_field("callback_url", callback_url_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypePhoneNumberConfirmation::internalLinkTypePhoneNumberConfirmation()
+ : hash_()
+ , phone_number_()
+{}
+
+internalLinkTypePhoneNumberConfirmation::internalLinkTypePhoneNumberConfirmation(string const &hash_, string const &phone_number_)
+ : hash_(hash_)
+ , phone_number_(phone_number_)
+{}
+
+const std::int32_t internalLinkTypePhoneNumberConfirmation::ID;
+
+void internalLinkTypePhoneNumberConfirmation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypePhoneNumberConfirmation");
+ s.store_field("hash", hash_);
+ s.store_field("phone_number", phone_number_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypePremiumFeatures::internalLinkTypePremiumFeatures()
+ : referrer_()
+{}
+
+internalLinkTypePremiumFeatures::internalLinkTypePremiumFeatures(string const &referrer_)
+ : referrer_(referrer_)
+{}
+
+const std::int32_t internalLinkTypePremiumFeatures::ID;
+
+void internalLinkTypePremiumFeatures::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypePremiumFeatures");
+ s.store_field("referrer", referrer_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypePrivacyAndSecuritySettings::internalLinkTypePrivacyAndSecuritySettings() {
+}
+
+const std::int32_t internalLinkTypePrivacyAndSecuritySettings::ID;
+
+void internalLinkTypePrivacyAndSecuritySettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypePrivacyAndSecuritySettings");
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeProxy::internalLinkTypeProxy()
+ : server_()
+ , port_()
+ , type_()
+{}
+
+internalLinkTypeProxy::internalLinkTypeProxy(string const &server_, int32 port_, object_ptr<ProxyType> &&type_)
+ : server_(server_)
+ , port_(port_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t internalLinkTypeProxy::ID;
+
+void internalLinkTypeProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeProxy");
+ s.store_field("server", server_);
+ s.store_field("port", port_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+internalLinkTypePublicChat::internalLinkTypePublicChat()
+ : chat_username_()
+{}
+
+internalLinkTypePublicChat::internalLinkTypePublicChat(string const &chat_username_)
+ : chat_username_(chat_username_)
+{}
+
+const std::int32_t internalLinkTypePublicChat::ID;
+
+void internalLinkTypePublicChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypePublicChat");
+ s.store_field("chat_username", chat_username_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeQrCodeAuthentication::internalLinkTypeQrCodeAuthentication() {
+}
+
+const std::int32_t internalLinkTypeQrCodeAuthentication::ID;
+
+void internalLinkTypeQrCodeAuthentication::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeQrCodeAuthentication");
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeRestorePurchases::internalLinkTypeRestorePurchases() {
+}
+
+const std::int32_t internalLinkTypeRestorePurchases::ID;
+
+void internalLinkTypeRestorePurchases::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeRestorePurchases");
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeSettings::internalLinkTypeSettings() {
+}
+
+const std::int32_t internalLinkTypeSettings::ID;
+
+void internalLinkTypeSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeSettings");
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeStickerSet::internalLinkTypeStickerSet()
+ : sticker_set_name_()
+{}
+
+internalLinkTypeStickerSet::internalLinkTypeStickerSet(string const &sticker_set_name_)
+ : sticker_set_name_(sticker_set_name_)
+{}
+
+const std::int32_t internalLinkTypeStickerSet::ID;
+
+void internalLinkTypeStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeStickerSet");
+ s.store_field("sticker_set_name", sticker_set_name_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeTheme::internalLinkTypeTheme()
+ : theme_name_()
+{}
+
+internalLinkTypeTheme::internalLinkTypeTheme(string const &theme_name_)
+ : theme_name_(theme_name_)
+{}
+
+const std::int32_t internalLinkTypeTheme::ID;
+
+void internalLinkTypeTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeTheme");
+ s.store_field("theme_name", theme_name_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeThemeSettings::internalLinkTypeThemeSettings() {
+}
+
+const std::int32_t internalLinkTypeThemeSettings::ID;
+
+void internalLinkTypeThemeSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeThemeSettings");
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeUnknownDeepLink::internalLinkTypeUnknownDeepLink()
+ : link_()
+{}
+
+internalLinkTypeUnknownDeepLink::internalLinkTypeUnknownDeepLink(string const &link_)
+ : link_(link_)
+{}
+
+const std::int32_t internalLinkTypeUnknownDeepLink::ID;
+
+void internalLinkTypeUnknownDeepLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeUnknownDeepLink");
+ s.store_field("link", link_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeUnsupportedProxy::internalLinkTypeUnsupportedProxy() {
+}
+
+const std::int32_t internalLinkTypeUnsupportedProxy::ID;
+
+void internalLinkTypeUnsupportedProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeUnsupportedProxy");
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeUserPhoneNumber::internalLinkTypeUserPhoneNumber()
+ : phone_number_()
+{}
+
+internalLinkTypeUserPhoneNumber::internalLinkTypeUserPhoneNumber(string const &phone_number_)
+ : phone_number_(phone_number_)
+{}
+
+const std::int32_t internalLinkTypeUserPhoneNumber::ID;
+
+void internalLinkTypeUserPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeUserPhoneNumber");
+ s.store_field("phone_number", phone_number_);
+ s.store_class_end();
+ }
+}
+
+internalLinkTypeVideoChat::internalLinkTypeVideoChat()
+ : chat_username_()
+ , invite_hash_()
+ , is_live_stream_()
+{}
+
+internalLinkTypeVideoChat::internalLinkTypeVideoChat(string const &chat_username_, string const &invite_hash_, bool is_live_stream_)
+ : chat_username_(chat_username_)
+ , invite_hash_(invite_hash_)
+ , is_live_stream_(is_live_stream_)
+{}
+
+const std::int32_t internalLinkTypeVideoChat::ID;
+
+void internalLinkTypeVideoChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "internalLinkTypeVideoChat");
+ s.store_field("chat_username", chat_username_);
+ s.store_field("invite_hash", invite_hash_);
+ s.store_field("is_live_stream", is_live_stream_);
+ s.store_class_end();
+ }
+}
+
+invoice::invoice()
+ : currency_()
+ , price_parts_()
+ , max_tip_amount_()
+ , suggested_tip_amounts_()
+ , recurring_payment_terms_of_service_url_()
+ , is_test_()
+ , need_name_()
+ , need_phone_number_()
+ , need_email_address_()
+ , need_shipping_address_()
+ , send_phone_number_to_provider_()
+ , send_email_address_to_provider_()
+ , is_flexible_()
+{}
+
+invoice::invoice(string const &currency_, array<object_ptr<labeledPricePart>> &&price_parts_, int53 max_tip_amount_, array<int53> &&suggested_tip_amounts_, string const &recurring_payment_terms_of_service_url_, bool is_test_, bool need_name_, bool need_phone_number_, bool need_email_address_, bool need_shipping_address_, bool send_phone_number_to_provider_, bool send_email_address_to_provider_, bool is_flexible_)
+ : currency_(currency_)
+ , price_parts_(std::move(price_parts_))
+ , max_tip_amount_(max_tip_amount_)
+ , suggested_tip_amounts_(std::move(suggested_tip_amounts_))
+ , recurring_payment_terms_of_service_url_(recurring_payment_terms_of_service_url_)
+ , is_test_(is_test_)
+ , need_name_(need_name_)
+ , need_phone_number_(need_phone_number_)
+ , need_email_address_(need_email_address_)
+ , need_shipping_address_(need_shipping_address_)
+ , send_phone_number_to_provider_(send_phone_number_to_provider_)
+ , send_email_address_to_provider_(send_email_address_to_provider_)
+ , is_flexible_(is_flexible_)
+{}
+
+const std::int32_t invoice::ID;
+
+void invoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "invoice");
+ s.store_field("currency", currency_);
+ { s.store_vector_begin("price_parts", price_parts_.size()); for (const auto &_value : price_parts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("max_tip_amount", max_tip_amount_);
+ { s.store_vector_begin("suggested_tip_amounts", suggested_tip_amounts_.size()); for (const auto &_value : suggested_tip_amounts_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("recurring_payment_terms_of_service_url", recurring_payment_terms_of_service_url_);
+ s.store_field("is_test", is_test_);
+ s.store_field("need_name", need_name_);
+ s.store_field("need_phone_number", need_phone_number_);
+ s.store_field("need_email_address", need_email_address_);
+ s.store_field("need_shipping_address", need_shipping_address_);
+ s.store_field("send_phone_number_to_provider", send_phone_number_to_provider_);
+ s.store_field("send_email_address_to_provider", send_email_address_to_provider_);
+ s.store_field("is_flexible", is_flexible_);
+ s.store_class_end();
+ }
+}
+
+jsonObjectMember::jsonObjectMember()
+ : key_()
+ , value_()
+{}
+
+jsonObjectMember::jsonObjectMember(string const &key_, object_ptr<JsonValue> &&value_)
+ : key_(key_)
+ , value_(std::move(value_))
+{}
+
+const std::int32_t jsonObjectMember::ID;
+
+void jsonObjectMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonObjectMember");
+ s.store_field("key", key_);
+ s.store_object_field("value", static_cast<const BaseObject *>(value_.get()));
+ s.store_class_end();
+ }
+}
+
+jsonValueNull::jsonValueNull() {
+}
+
+const std::int32_t jsonValueNull::ID;
+
+void jsonValueNull::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonValueNull");
+ s.store_class_end();
+ }
+}
+
+jsonValueBoolean::jsonValueBoolean()
+ : value_()
+{}
+
+jsonValueBoolean::jsonValueBoolean(bool value_)
+ : value_(value_)
+{}
+
+const std::int32_t jsonValueBoolean::ID;
+
+void jsonValueBoolean::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonValueBoolean");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+jsonValueNumber::jsonValueNumber()
+ : value_()
+{}
+
+jsonValueNumber::jsonValueNumber(double value_)
+ : value_(value_)
+{}
+
+const std::int32_t jsonValueNumber::ID;
+
+void jsonValueNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonValueNumber");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+jsonValueString::jsonValueString()
+ : value_()
+{}
+
+jsonValueString::jsonValueString(string const &value_)
+ : value_(value_)
+{}
+
+const std::int32_t jsonValueString::ID;
+
+void jsonValueString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonValueString");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+jsonValueArray::jsonValueArray()
+ : values_()
+{}
+
+jsonValueArray::jsonValueArray(array<object_ptr<JsonValue>> &&values_)
+ : values_(std::move(values_))
+{}
+
+const std::int32_t jsonValueArray::ID;
+
+void jsonValueArray::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonValueArray");
+ { s.store_vector_begin("values", values_.size()); for (const auto &_value : values_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+jsonValueObject::jsonValueObject()
+ : members_()
+{}
+
+jsonValueObject::jsonValueObject(array<object_ptr<jsonObjectMember>> &&members_)
+ : members_(std::move(members_))
+{}
+
+const std::int32_t jsonValueObject::ID;
+
+void jsonValueObject::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonValueObject");
+ { s.store_vector_begin("members", members_.size()); for (const auto &_value : members_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+keyboardButton::keyboardButton()
+ : text_()
+ , type_()
+{}
+
+keyboardButton::keyboardButton(string const &text_, object_ptr<KeyboardButtonType> &&type_)
+ : text_(text_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t keyboardButton::ID;
+
+void keyboardButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButton");
+ s.store_field("text", text_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+keyboardButtonTypeText::keyboardButtonTypeText() {
+}
+
+const std::int32_t keyboardButtonTypeText::ID;
+
+void keyboardButtonTypeText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonTypeText");
+ s.store_class_end();
+ }
+}
+
+keyboardButtonTypeRequestPhoneNumber::keyboardButtonTypeRequestPhoneNumber() {
+}
+
+const std::int32_t keyboardButtonTypeRequestPhoneNumber::ID;
+
+void keyboardButtonTypeRequestPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonTypeRequestPhoneNumber");
+ s.store_class_end();
+ }
+}
+
+keyboardButtonTypeRequestLocation::keyboardButtonTypeRequestLocation() {
+}
+
+const std::int32_t keyboardButtonTypeRequestLocation::ID;
+
+void keyboardButtonTypeRequestLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonTypeRequestLocation");
+ s.store_class_end();
+ }
+}
+
+keyboardButtonTypeRequestPoll::keyboardButtonTypeRequestPoll()
+ : force_regular_()
+ , force_quiz_()
+{}
+
+keyboardButtonTypeRequestPoll::keyboardButtonTypeRequestPoll(bool force_regular_, bool force_quiz_)
+ : force_regular_(force_regular_)
+ , force_quiz_(force_quiz_)
+{}
+
+const std::int32_t keyboardButtonTypeRequestPoll::ID;
+
+void keyboardButtonTypeRequestPoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonTypeRequestPoll");
+ s.store_field("force_regular", force_regular_);
+ s.store_field("force_quiz", force_quiz_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonTypeWebApp::keyboardButtonTypeWebApp()
+ : url_()
+{}
+
+keyboardButtonTypeWebApp::keyboardButtonTypeWebApp(string const &url_)
+ : url_(url_)
+{}
+
+const std::int32_t keyboardButtonTypeWebApp::ID;
+
+void keyboardButtonTypeWebApp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonTypeWebApp");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+labeledPricePart::labeledPricePart()
+ : label_()
+ , amount_()
+{}
+
+labeledPricePart::labeledPricePart(string const &label_, int53 amount_)
+ : label_(label_)
+ , amount_(amount_)
+{}
+
+const std::int32_t labeledPricePart::ID;
+
+void labeledPricePart::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "labeledPricePart");
+ s.store_field("label", label_);
+ s.store_field("amount", amount_);
+ s.store_class_end();
+ }
+}
+
+languagePackInfo::languagePackInfo()
+ : id_()
+ , base_language_pack_id_()
+ , name_()
+ , native_name_()
+ , plural_code_()
+ , is_official_()
+ , is_rtl_()
+ , is_beta_()
+ , is_installed_()
+ , total_string_count_()
+ , translated_string_count_()
+ , local_string_count_()
+ , translation_url_()
+{}
+
+languagePackInfo::languagePackInfo(string const &id_, string const &base_language_pack_id_, string const &name_, string const &native_name_, string const &plural_code_, bool is_official_, bool is_rtl_, bool is_beta_, bool is_installed_, int32 total_string_count_, int32 translated_string_count_, int32 local_string_count_, string const &translation_url_)
+ : id_(id_)
+ , base_language_pack_id_(base_language_pack_id_)
+ , name_(name_)
+ , native_name_(native_name_)
+ , plural_code_(plural_code_)
+ , is_official_(is_official_)
+ , is_rtl_(is_rtl_)
+ , is_beta_(is_beta_)
+ , is_installed_(is_installed_)
+ , total_string_count_(total_string_count_)
+ , translated_string_count_(translated_string_count_)
+ , local_string_count_(local_string_count_)
+ , translation_url_(translation_url_)
+{}
+
+const std::int32_t languagePackInfo::ID;
+
+void languagePackInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "languagePackInfo");
+ s.store_field("id", id_);
+ s.store_field("base_language_pack_id", base_language_pack_id_);
+ s.store_field("name", name_);
+ s.store_field("native_name", native_name_);
+ s.store_field("plural_code", plural_code_);
+ s.store_field("is_official", is_official_);
+ s.store_field("is_rtl", is_rtl_);
+ s.store_field("is_beta", is_beta_);
+ s.store_field("is_installed", is_installed_);
+ s.store_field("total_string_count", total_string_count_);
+ s.store_field("translated_string_count", translated_string_count_);
+ s.store_field("local_string_count", local_string_count_);
+ s.store_field("translation_url", translation_url_);
+ s.store_class_end();
+ }
+}
+
+languagePackString::languagePackString()
+ : key_()
+ , value_()
+{}
+
+languagePackString::languagePackString(string const &key_, object_ptr<LanguagePackStringValue> &&value_)
+ : key_(key_)
+ , value_(std::move(value_))
+{}
+
+const std::int32_t languagePackString::ID;
+
+void languagePackString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "languagePackString");
+ s.store_field("key", key_);
+ s.store_object_field("value", static_cast<const BaseObject *>(value_.get()));
+ s.store_class_end();
+ }
+}
+
+languagePackStringValueOrdinary::languagePackStringValueOrdinary()
+ : value_()
+{}
+
+languagePackStringValueOrdinary::languagePackStringValueOrdinary(string const &value_)
+ : value_(value_)
+{}
+
+const std::int32_t languagePackStringValueOrdinary::ID;
+
+void languagePackStringValueOrdinary::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "languagePackStringValueOrdinary");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+languagePackStringValuePluralized::languagePackStringValuePluralized()
+ : zero_value_()
+ , one_value_()
+ , two_value_()
+ , few_value_()
+ , many_value_()
+ , other_value_()
+{}
+
+languagePackStringValuePluralized::languagePackStringValuePluralized(string const &zero_value_, string const &one_value_, string const &two_value_, string const &few_value_, string const &many_value_, string const &other_value_)
+ : zero_value_(zero_value_)
+ , one_value_(one_value_)
+ , two_value_(two_value_)
+ , few_value_(few_value_)
+ , many_value_(many_value_)
+ , other_value_(other_value_)
+{}
+
+const std::int32_t languagePackStringValuePluralized::ID;
+
+void languagePackStringValuePluralized::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "languagePackStringValuePluralized");
+ s.store_field("zero_value", zero_value_);
+ s.store_field("one_value", one_value_);
+ s.store_field("two_value", two_value_);
+ s.store_field("few_value", few_value_);
+ s.store_field("many_value", many_value_);
+ s.store_field("other_value", other_value_);
+ s.store_class_end();
+ }
+}
+
+languagePackStringValueDeleted::languagePackStringValueDeleted() {
+}
+
+const std::int32_t languagePackStringValueDeleted::ID;
+
+void languagePackStringValueDeleted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "languagePackStringValueDeleted");
+ s.store_class_end();
+ }
+}
+
+languagePackStrings::languagePackStrings()
+ : strings_()
+{}
+
+languagePackStrings::languagePackStrings(array<object_ptr<languagePackString>> &&strings_)
+ : strings_(std::move(strings_))
+{}
+
+const std::int32_t languagePackStrings::ID;
+
+void languagePackStrings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "languagePackStrings");
+ { s.store_vector_begin("strings", strings_.size()); for (const auto &_value : strings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+localFile::localFile()
+ : path_()
+ , can_be_downloaded_()
+ , can_be_deleted_()
+ , is_downloading_active_()
+ , is_downloading_completed_()
+ , download_offset_()
+ , downloaded_prefix_size_()
+ , downloaded_size_()
+{}
+
+localFile::localFile(string const &path_, bool can_be_downloaded_, bool can_be_deleted_, bool is_downloading_active_, bool is_downloading_completed_, int53 download_offset_, int53 downloaded_prefix_size_, int53 downloaded_size_)
+ : path_(path_)
+ , can_be_downloaded_(can_be_downloaded_)
+ , can_be_deleted_(can_be_deleted_)
+ , is_downloading_active_(is_downloading_active_)
+ , is_downloading_completed_(is_downloading_completed_)
+ , download_offset_(download_offset_)
+ , downloaded_prefix_size_(downloaded_prefix_size_)
+ , downloaded_size_(downloaded_size_)
+{}
+
+const std::int32_t localFile::ID;
+
+void localFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "localFile");
+ s.store_field("path", path_);
+ s.store_field("can_be_downloaded", can_be_downloaded_);
+ s.store_field("can_be_deleted", can_be_deleted_);
+ s.store_field("is_downloading_active", is_downloading_active_);
+ s.store_field("is_downloading_completed", is_downloading_completed_);
+ s.store_field("download_offset", download_offset_);
+ s.store_field("downloaded_prefix_size", downloaded_prefix_size_);
+ s.store_field("downloaded_size", downloaded_size_);
+ s.store_class_end();
+ }
+}
+
+localizationTargetInfo::localizationTargetInfo()
+ : language_packs_()
+{}
+
+localizationTargetInfo::localizationTargetInfo(array<object_ptr<languagePackInfo>> &&language_packs_)
+ : language_packs_(std::move(language_packs_))
+{}
+
+const std::int32_t localizationTargetInfo::ID;
+
+void localizationTargetInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "localizationTargetInfo");
+ { s.store_vector_begin("language_packs", language_packs_.size()); for (const auto &_value : language_packs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+location::location()
+ : latitude_()
+ , longitude_()
+ , horizontal_accuracy_()
+{}
+
+location::location(double latitude_, double longitude_, double horizontal_accuracy_)
+ : latitude_(latitude_)
+ , longitude_(longitude_)
+ , horizontal_accuracy_(horizontal_accuracy_)
+{}
+
+const std::int32_t location::ID;
+
+void location::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "location");
+ s.store_field("latitude", latitude_);
+ s.store_field("longitude", longitude_);
+ s.store_field("horizontal_accuracy", horizontal_accuracy_);
+ s.store_class_end();
+ }
+}
+
+logStreamDefault::logStreamDefault() {
+}
+
+const std::int32_t logStreamDefault::ID;
+
+void logStreamDefault::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "logStreamDefault");
+ s.store_class_end();
+ }
+}
+
+logStreamFile::logStreamFile()
+ : path_()
+ , max_file_size_()
+ , redirect_stderr_()
+{}
+
+logStreamFile::logStreamFile(string const &path_, int53 max_file_size_, bool redirect_stderr_)
+ : path_(path_)
+ , max_file_size_(max_file_size_)
+ , redirect_stderr_(redirect_stderr_)
+{}
+
+const std::int32_t logStreamFile::ID;
+
+void logStreamFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "logStreamFile");
+ s.store_field("path", path_);
+ s.store_field("max_file_size", max_file_size_);
+ s.store_field("redirect_stderr", redirect_stderr_);
+ s.store_class_end();
+ }
+}
+
+logStreamEmpty::logStreamEmpty() {
+}
+
+const std::int32_t logStreamEmpty::ID;
+
+void logStreamEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "logStreamEmpty");
+ s.store_class_end();
+ }
+}
+
+logTags::logTags()
+ : tags_()
+{}
+
+logTags::logTags(array<string> &&tags_)
+ : tags_(std::move(tags_))
+{}
+
+const std::int32_t logTags::ID;
+
+void logTags::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "logTags");
+ { s.store_vector_begin("tags", tags_.size()); for (const auto &_value : tags_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+logVerbosityLevel::logVerbosityLevel()
+ : verbosity_level_()
+{}
+
+logVerbosityLevel::logVerbosityLevel(int32 verbosity_level_)
+ : verbosity_level_(verbosity_level_)
+{}
+
+const std::int32_t logVerbosityLevel::ID;
+
+void logVerbosityLevel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "logVerbosityLevel");
+ s.store_field("verbosity_level", verbosity_level_);
+ s.store_class_end();
+ }
+}
+
+loginUrlInfoOpen::loginUrlInfoOpen()
+ : url_()
+ , skip_confirm_()
+{}
+
+loginUrlInfoOpen::loginUrlInfoOpen(string const &url_, bool skip_confirm_)
+ : url_(url_)
+ , skip_confirm_(skip_confirm_)
+{}
+
+const std::int32_t loginUrlInfoOpen::ID;
+
+void loginUrlInfoOpen::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "loginUrlInfoOpen");
+ s.store_field("url", url_);
+ s.store_field("skip_confirm", skip_confirm_);
+ s.store_class_end();
+ }
+}
+
+loginUrlInfoRequestConfirmation::loginUrlInfoRequestConfirmation()
+ : url_()
+ , domain_()
+ , bot_user_id_()
+ , request_write_access_()
+{}
+
+loginUrlInfoRequestConfirmation::loginUrlInfoRequestConfirmation(string const &url_, string const &domain_, int53 bot_user_id_, bool request_write_access_)
+ : url_(url_)
+ , domain_(domain_)
+ , bot_user_id_(bot_user_id_)
+ , request_write_access_(request_write_access_)
+{}
+
+const std::int32_t loginUrlInfoRequestConfirmation::ID;
+
+void loginUrlInfoRequestConfirmation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "loginUrlInfoRequestConfirmation");
+ s.store_field("url", url_);
+ s.store_field("domain", domain_);
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("request_write_access", request_write_access_);
+ s.store_class_end();
+ }
+}
+
+maskPointForehead::maskPointForehead() {
+}
+
+const std::int32_t maskPointForehead::ID;
+
+void maskPointForehead::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "maskPointForehead");
+ s.store_class_end();
+ }
+}
+
+maskPointEyes::maskPointEyes() {
+}
+
+const std::int32_t maskPointEyes::ID;
+
+void maskPointEyes::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "maskPointEyes");
+ s.store_class_end();
+ }
+}
+
+maskPointMouth::maskPointMouth() {
+}
+
+const std::int32_t maskPointMouth::ID;
+
+void maskPointMouth::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "maskPointMouth");
+ s.store_class_end();
+ }
+}
+
+maskPointChin::maskPointChin() {
+}
+
+const std::int32_t maskPointChin::ID;
+
+void maskPointChin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "maskPointChin");
+ s.store_class_end();
+ }
+}
+
+maskPosition::maskPosition()
+ : point_()
+ , x_shift_()
+ , y_shift_()
+ , scale_()
+{}
+
+maskPosition::maskPosition(object_ptr<MaskPoint> &&point_, double x_shift_, double y_shift_, double scale_)
+ : point_(std::move(point_))
+ , x_shift_(x_shift_)
+ , y_shift_(y_shift_)
+ , scale_(scale_)
+{}
+
+const std::int32_t maskPosition::ID;
+
+void maskPosition::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "maskPosition");
+ s.store_object_field("point", static_cast<const BaseObject *>(point_.get()));
+ s.store_field("x_shift", x_shift_);
+ s.store_field("y_shift", y_shift_);
+ s.store_field("scale", scale_);
+ s.store_class_end();
+ }
+}
+
+message::message()
+ : id_()
+ , sender_id_()
+ , chat_id_()
+ , sending_state_()
+ , scheduling_state_()
+ , is_outgoing_()
+ , is_pinned_()
+ , can_be_edited_()
+ , can_be_forwarded_()
+ , can_be_saved_()
+ , can_be_deleted_only_for_self_()
+ , can_be_deleted_for_all_users_()
+ , can_get_added_reactions_()
+ , can_get_statistics_()
+ , can_get_message_thread_()
+ , can_get_viewers_()
+ , can_get_media_timestamp_links_()
+ , can_report_reactions_()
+ , has_timestamped_media_()
+ , is_channel_post_()
+ , is_topic_message_()
+ , contains_unread_mention_()
+ , date_()
+ , edit_date_()
+ , forward_info_()
+ , interaction_info_()
+ , unread_reactions_()
+ , reply_in_chat_id_()
+ , reply_to_message_id_()
+ , message_thread_id_()
+ , ttl_()
+ , ttl_expires_in_()
+ , via_bot_user_id_()
+ , author_signature_()
+ , media_album_id_()
+ , restriction_reason_()
+ , content_()
+ , reply_markup_()
+{}
+
+message::message(int53 id_, object_ptr<MessageSender> &&sender_id_, int53 chat_id_, object_ptr<MessageSendingState> &&sending_state_, object_ptr<MessageSchedulingState> &&scheduling_state_, bool is_outgoing_, bool is_pinned_, bool can_be_edited_, bool can_be_forwarded_, bool can_be_saved_, bool can_be_deleted_only_for_self_, bool can_be_deleted_for_all_users_, bool can_get_added_reactions_, bool can_get_statistics_, bool can_get_message_thread_, bool can_get_viewers_, bool can_get_media_timestamp_links_, bool can_report_reactions_, bool has_timestamped_media_, bool is_channel_post_, bool is_topic_message_, bool contains_unread_mention_, int32 date_, int32 edit_date_, object_ptr<messageForwardInfo> &&forward_info_, object_ptr<messageInteractionInfo> &&interaction_info_, array<object_ptr<unreadReaction>> &&unread_reactions_, int53 reply_in_chat_id_, int53 reply_to_message_id_, int53 message_thread_id_, int32 ttl_, double ttl_expires_in_, int53 via_bot_user_id_, string const &author_signature_, int64 media_album_id_, string const &restriction_reason_, object_ptr<MessageContent> &&content_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : id_(id_)
+ , sender_id_(std::move(sender_id_))
+ , chat_id_(chat_id_)
+ , sending_state_(std::move(sending_state_))
+ , scheduling_state_(std::move(scheduling_state_))
+ , is_outgoing_(is_outgoing_)
+ , is_pinned_(is_pinned_)
+ , can_be_edited_(can_be_edited_)
+ , can_be_forwarded_(can_be_forwarded_)
+ , can_be_saved_(can_be_saved_)
+ , can_be_deleted_only_for_self_(can_be_deleted_only_for_self_)
+ , can_be_deleted_for_all_users_(can_be_deleted_for_all_users_)
+ , can_get_added_reactions_(can_get_added_reactions_)
+ , can_get_statistics_(can_get_statistics_)
+ , can_get_message_thread_(can_get_message_thread_)
+ , can_get_viewers_(can_get_viewers_)
+ , can_get_media_timestamp_links_(can_get_media_timestamp_links_)
+ , can_report_reactions_(can_report_reactions_)
+ , has_timestamped_media_(has_timestamped_media_)
+ , is_channel_post_(is_channel_post_)
+ , is_topic_message_(is_topic_message_)
+ , contains_unread_mention_(contains_unread_mention_)
+ , date_(date_)
+ , edit_date_(edit_date_)
+ , forward_info_(std::move(forward_info_))
+ , interaction_info_(std::move(interaction_info_))
+ , unread_reactions_(std::move(unread_reactions_))
+ , reply_in_chat_id_(reply_in_chat_id_)
+ , reply_to_message_id_(reply_to_message_id_)
+ , message_thread_id_(message_thread_id_)
+ , ttl_(ttl_)
+ , ttl_expires_in_(ttl_expires_in_)
+ , via_bot_user_id_(via_bot_user_id_)
+ , author_signature_(author_signature_)
+ , media_album_id_(media_album_id_)
+ , restriction_reason_(restriction_reason_)
+ , content_(std::move(content_))
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t message::ID;
+
+void message::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "message");
+ s.store_field("id", id_);
+ s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get()));
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("sending_state", static_cast<const BaseObject *>(sending_state_.get()));
+ s.store_object_field("scheduling_state", static_cast<const BaseObject *>(scheduling_state_.get()));
+ s.store_field("is_outgoing", is_outgoing_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_field("can_be_edited", can_be_edited_);
+ s.store_field("can_be_forwarded", can_be_forwarded_);
+ s.store_field("can_be_saved", can_be_saved_);
+ s.store_field("can_be_deleted_only_for_self", can_be_deleted_only_for_self_);
+ s.store_field("can_be_deleted_for_all_users", can_be_deleted_for_all_users_);
+ s.store_field("can_get_added_reactions", can_get_added_reactions_);
+ s.store_field("can_get_statistics", can_get_statistics_);
+ s.store_field("can_get_message_thread", can_get_message_thread_);
+ s.store_field("can_get_viewers", can_get_viewers_);
+ s.store_field("can_get_media_timestamp_links", can_get_media_timestamp_links_);
+ s.store_field("can_report_reactions", can_report_reactions_);
+ s.store_field("has_timestamped_media", has_timestamped_media_);
+ s.store_field("is_channel_post", is_channel_post_);
+ s.store_field("is_topic_message", is_topic_message_);
+ s.store_field("contains_unread_mention", contains_unread_mention_);
+ s.store_field("date", date_);
+ s.store_field("edit_date", edit_date_);
+ s.store_object_field("forward_info", static_cast<const BaseObject *>(forward_info_.get()));
+ s.store_object_field("interaction_info", static_cast<const BaseObject *>(interaction_info_.get()));
+ { s.store_vector_begin("unread_reactions", unread_reactions_.size()); for (const auto &_value : unread_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("reply_in_chat_id", reply_in_chat_id_);
+ s.store_field("reply_to_message_id", reply_to_message_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_field("ttl", ttl_);
+ s.store_field("ttl_expires_in", ttl_expires_in_);
+ s.store_field("via_bot_user_id", via_bot_user_id_);
+ s.store_field("author_signature", author_signature_);
+ s.store_field("media_album_id", media_album_id_);
+ s.store_field("restriction_reason", restriction_reason_);
+ s.store_object_field("content", static_cast<const BaseObject *>(content_.get()));
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_class_end();
+ }
+}
+
+messageCalendar::messageCalendar()
+ : total_count_()
+ , days_()
+{}
+
+messageCalendar::messageCalendar(int32 total_count_, array<object_ptr<messageCalendarDay>> &&days_)
+ : total_count_(total_count_)
+ , days_(std::move(days_))
+{}
+
+const std::int32_t messageCalendar::ID;
+
+void messageCalendar::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageCalendar");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("days", days_.size()); for (const auto &_value : days_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messageCalendarDay::messageCalendarDay()
+ : total_count_()
+ , message_()
+{}
+
+messageCalendarDay::messageCalendarDay(int32 total_count_, object_ptr<message> &&message_)
+ : total_count_(total_count_)
+ , message_(std::move(message_))
+{}
+
+const std::int32_t messageCalendarDay::ID;
+
+void messageCalendarDay::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageCalendarDay");
+ s.store_field("total_count", total_count_);
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+messageText::messageText()
+ : text_()
+ , web_page_()
+{}
+
+messageText::messageText(object_ptr<formattedText> &&text_, object_ptr<webPage> &&web_page_)
+ : text_(std::move(text_))
+ , web_page_(std::move(web_page_))
+{}
+
+const std::int32_t messageText::ID;
+
+void messageText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageText");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_object_field("web_page", static_cast<const BaseObject *>(web_page_.get()));
+ s.store_class_end();
+ }
+}
+
+messageAnimation::messageAnimation()
+ : animation_()
+ , caption_()
+ , is_secret_()
+{}
+
+messageAnimation::messageAnimation(object_ptr<animation> &&animation_, object_ptr<formattedText> &&caption_, bool is_secret_)
+ : animation_(std::move(animation_))
+ , caption_(std::move(caption_))
+ , is_secret_(is_secret_)
+{}
+
+const std::int32_t messageAnimation::ID;
+
+void messageAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageAnimation");
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_field("is_secret", is_secret_);
+ s.store_class_end();
+ }
+}
+
+messageAudio::messageAudio()
+ : audio_()
+ , caption_()
+{}
+
+messageAudio::messageAudio(object_ptr<audio> &&audio_, object_ptr<formattedText> &&caption_)
+ : audio_(std::move(audio_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t messageAudio::ID;
+
+void messageAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageAudio");
+ s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+messageDocument::messageDocument()
+ : document_()
+ , caption_()
+{}
+
+messageDocument::messageDocument(object_ptr<document> &&document_, object_ptr<formattedText> &&caption_)
+ : document_(std::move(document_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t messageDocument::ID;
+
+void messageDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageDocument");
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+messagePhoto::messagePhoto()
+ : photo_()
+ , caption_()
+ , is_secret_()
+{}
+
+messagePhoto::messagePhoto(object_ptr<photo> &&photo_, object_ptr<formattedText> &&caption_, bool is_secret_)
+ : photo_(std::move(photo_))
+ , caption_(std::move(caption_))
+ , is_secret_(is_secret_)
+{}
+
+const std::int32_t messagePhoto::ID;
+
+void messagePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messagePhoto");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_field("is_secret", is_secret_);
+ s.store_class_end();
+ }
+}
+
+messageExpiredPhoto::messageExpiredPhoto() {
+}
+
+const std::int32_t messageExpiredPhoto::ID;
+
+void messageExpiredPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageExpiredPhoto");
+ s.store_class_end();
+ }
+}
+
+messageSticker::messageSticker()
+ : sticker_()
+ , is_premium_()
+{}
+
+messageSticker::messageSticker(object_ptr<sticker> &&sticker_, bool is_premium_)
+ : sticker_(std::move(sticker_))
+ , is_premium_(is_premium_)
+{}
+
+const std::int32_t messageSticker::ID;
+
+void messageSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageSticker");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_field("is_premium", is_premium_);
+ s.store_class_end();
+ }
+}
+
+messageVideo::messageVideo()
+ : video_()
+ , caption_()
+ , is_secret_()
+{}
+
+messageVideo::messageVideo(object_ptr<video> &&video_, object_ptr<formattedText> &&caption_, bool is_secret_)
+ : video_(std::move(video_))
+ , caption_(std::move(caption_))
+ , is_secret_(is_secret_)
+{}
+
+const std::int32_t messageVideo::ID;
+
+void messageVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageVideo");
+ s.store_object_field("video", static_cast<const BaseObject *>(video_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_field("is_secret", is_secret_);
+ s.store_class_end();
+ }
+}
+
+messageExpiredVideo::messageExpiredVideo() {
+}
+
+const std::int32_t messageExpiredVideo::ID;
+
+void messageExpiredVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageExpiredVideo");
+ s.store_class_end();
+ }
+}
+
+messageVideoNote::messageVideoNote()
+ : video_note_()
+ , is_viewed_()
+ , is_secret_()
+{}
+
+messageVideoNote::messageVideoNote(object_ptr<videoNote> &&video_note_, bool is_viewed_, bool is_secret_)
+ : video_note_(std::move(video_note_))
+ , is_viewed_(is_viewed_)
+ , is_secret_(is_secret_)
+{}
+
+const std::int32_t messageVideoNote::ID;
+
+void messageVideoNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageVideoNote");
+ s.store_object_field("video_note", static_cast<const BaseObject *>(video_note_.get()));
+ s.store_field("is_viewed", is_viewed_);
+ s.store_field("is_secret", is_secret_);
+ s.store_class_end();
+ }
+}
+
+messageVoiceNote::messageVoiceNote()
+ : voice_note_()
+ , caption_()
+ , is_listened_()
+{}
+
+messageVoiceNote::messageVoiceNote(object_ptr<voiceNote> &&voice_note_, object_ptr<formattedText> &&caption_, bool is_listened_)
+ : voice_note_(std::move(voice_note_))
+ , caption_(std::move(caption_))
+ , is_listened_(is_listened_)
+{}
+
+const std::int32_t messageVoiceNote::ID;
+
+void messageVoiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageVoiceNote");
+ s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_field("is_listened", is_listened_);
+ s.store_class_end();
+ }
+}
+
+messageLocation::messageLocation()
+ : location_()
+ , live_period_()
+ , expires_in_()
+ , heading_()
+ , proximity_alert_radius_()
+{}
+
+messageLocation::messageLocation(object_ptr<location> &&location_, int32 live_period_, int32 expires_in_, int32 heading_, int32 proximity_alert_radius_)
+ : location_(std::move(location_))
+ , live_period_(live_period_)
+ , expires_in_(expires_in_)
+ , heading_(heading_)
+ , proximity_alert_radius_(proximity_alert_radius_)
+{}
+
+const std::int32_t messageLocation::ID;
+
+void messageLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageLocation");
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("live_period", live_period_);
+ s.store_field("expires_in", expires_in_);
+ s.store_field("heading", heading_);
+ s.store_field("proximity_alert_radius", proximity_alert_radius_);
+ s.store_class_end();
+ }
+}
+
+messageVenue::messageVenue()
+ : venue_()
+{}
+
+messageVenue::messageVenue(object_ptr<venue> &&venue_)
+ : venue_(std::move(venue_))
+{}
+
+const std::int32_t messageVenue::ID;
+
+void messageVenue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageVenue");
+ s.store_object_field("venue", static_cast<const BaseObject *>(venue_.get()));
+ s.store_class_end();
+ }
+}
+
+messageContact::messageContact()
+ : contact_()
+{}
+
+messageContact::messageContact(object_ptr<contact> &&contact_)
+ : contact_(std::move(contact_))
+{}
+
+const std::int32_t messageContact::ID;
+
+void messageContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageContact");
+ s.store_object_field("contact", static_cast<const BaseObject *>(contact_.get()));
+ s.store_class_end();
+ }
+}
+
+messageAnimatedEmoji::messageAnimatedEmoji()
+ : animated_emoji_()
+ , emoji_()
+{}
+
+messageAnimatedEmoji::messageAnimatedEmoji(object_ptr<animatedEmoji> &&animated_emoji_, string const &emoji_)
+ : animated_emoji_(std::move(animated_emoji_))
+ , emoji_(emoji_)
+{}
+
+const std::int32_t messageAnimatedEmoji::ID;
+
+void messageAnimatedEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageAnimatedEmoji");
+ s.store_object_field("animated_emoji", static_cast<const BaseObject *>(animated_emoji_.get()));
+ s.store_field("emoji", emoji_);
+ s.store_class_end();
+ }
+}
+
+messageDice::messageDice()
+ : initial_state_()
+ , final_state_()
+ , emoji_()
+ , value_()
+ , success_animation_frame_number_()
+{}
+
+messageDice::messageDice(object_ptr<DiceStickers> &&initial_state_, object_ptr<DiceStickers> &&final_state_, string const &emoji_, int32 value_, int32 success_animation_frame_number_)
+ : initial_state_(std::move(initial_state_))
+ , final_state_(std::move(final_state_))
+ , emoji_(emoji_)
+ , value_(value_)
+ , success_animation_frame_number_(success_animation_frame_number_)
+{}
+
+const std::int32_t messageDice::ID;
+
+void messageDice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageDice");
+ s.store_object_field("initial_state", static_cast<const BaseObject *>(initial_state_.get()));
+ s.store_object_field("final_state", static_cast<const BaseObject *>(final_state_.get()));
+ s.store_field("emoji", emoji_);
+ s.store_field("value", value_);
+ s.store_field("success_animation_frame_number", success_animation_frame_number_);
+ s.store_class_end();
+ }
+}
+
+messageGame::messageGame()
+ : game_()
+{}
+
+messageGame::messageGame(object_ptr<game> &&game_)
+ : game_(std::move(game_))
+{}
+
+const std::int32_t messageGame::ID;
+
+void messageGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageGame");
+ s.store_object_field("game", static_cast<const BaseObject *>(game_.get()));
+ s.store_class_end();
+ }
+}
+
+messagePoll::messagePoll()
+ : poll_()
+{}
+
+messagePoll::messagePoll(object_ptr<poll> &&poll_)
+ : poll_(std::move(poll_))
+{}
+
+const std::int32_t messagePoll::ID;
+
+void messagePoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messagePoll");
+ s.store_object_field("poll", static_cast<const BaseObject *>(poll_.get()));
+ s.store_class_end();
+ }
+}
+
+messageInvoice::messageInvoice()
+ : title_()
+ , description_()
+ , photo_()
+ , currency_()
+ , total_amount_()
+ , start_parameter_()
+ , is_test_()
+ , need_shipping_address_()
+ , receipt_message_id_()
+ , extended_media_()
+{}
+
+messageInvoice::messageInvoice(string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, string const &currency_, int53 total_amount_, string const &start_parameter_, bool is_test_, bool need_shipping_address_, int53 receipt_message_id_, object_ptr<MessageExtendedMedia> &&extended_media_)
+ : title_(title_)
+ , description_(std::move(description_))
+ , photo_(std::move(photo_))
+ , currency_(currency_)
+ , total_amount_(total_amount_)
+ , start_parameter_(start_parameter_)
+ , is_test_(is_test_)
+ , need_shipping_address_(need_shipping_address_)
+ , receipt_message_id_(receipt_message_id_)
+ , extended_media_(std::move(extended_media_))
+{}
+
+const std::int32_t messageInvoice::ID;
+
+void messageInvoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageInvoice");
+ s.store_field("title", title_);
+ s.store_object_field("description", static_cast<const BaseObject *>(description_.get()));
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("currency", currency_);
+ s.store_field("total_amount", total_amount_);
+ s.store_field("start_parameter", start_parameter_);
+ s.store_field("is_test", is_test_);
+ s.store_field("need_shipping_address", need_shipping_address_);
+ s.store_field("receipt_message_id", receipt_message_id_);
+ s.store_object_field("extended_media", static_cast<const BaseObject *>(extended_media_.get()));
+ s.store_class_end();
+ }
+}
+
+messageCall::messageCall()
+ : is_video_()
+ , discard_reason_()
+ , duration_()
+{}
+
+messageCall::messageCall(bool is_video_, object_ptr<CallDiscardReason> &&discard_reason_, int32 duration_)
+ : is_video_(is_video_)
+ , discard_reason_(std::move(discard_reason_))
+ , duration_(duration_)
+{}
+
+const std::int32_t messageCall::ID;
+
+void messageCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageCall");
+ s.store_field("is_video", is_video_);
+ s.store_object_field("discard_reason", static_cast<const BaseObject *>(discard_reason_.get()));
+ s.store_field("duration", duration_);
+ s.store_class_end();
+ }
+}
+
+messageVideoChatScheduled::messageVideoChatScheduled()
+ : group_call_id_()
+ , start_date_()
+{}
+
+messageVideoChatScheduled::messageVideoChatScheduled(int32 group_call_id_, int32 start_date_)
+ : group_call_id_(group_call_id_)
+ , start_date_(start_date_)
+{}
+
+const std::int32_t messageVideoChatScheduled::ID;
+
+void messageVideoChatScheduled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageVideoChatScheduled");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("start_date", start_date_);
+ s.store_class_end();
+ }
+}
+
+messageVideoChatStarted::messageVideoChatStarted()
+ : group_call_id_()
+{}
+
+messageVideoChatStarted::messageVideoChatStarted(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t messageVideoChatStarted::ID;
+
+void messageVideoChatStarted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageVideoChatStarted");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+messageVideoChatEnded::messageVideoChatEnded()
+ : duration_()
+{}
+
+messageVideoChatEnded::messageVideoChatEnded(int32 duration_)
+ : duration_(duration_)
+{}
+
+const std::int32_t messageVideoChatEnded::ID;
+
+void messageVideoChatEnded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageVideoChatEnded");
+ s.store_field("duration", duration_);
+ s.store_class_end();
+ }
+}
+
+messageInviteVideoChatParticipants::messageInviteVideoChatParticipants()
+ : group_call_id_()
+ , user_ids_()
+{}
+
+messageInviteVideoChatParticipants::messageInviteVideoChatParticipants(int32 group_call_id_, array<int53> &&user_ids_)
+ : group_call_id_(group_call_id_)
+ , user_ids_(std::move(user_ids_))
+{}
+
+const std::int32_t messageInviteVideoChatParticipants::ID;
+
+void messageInviteVideoChatParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageInviteVideoChatParticipants");
+ s.store_field("group_call_id", group_call_id_);
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messageBasicGroupChatCreate::messageBasicGroupChatCreate()
+ : title_()
+ , member_user_ids_()
+{}
+
+messageBasicGroupChatCreate::messageBasicGroupChatCreate(string const &title_, array<int53> &&member_user_ids_)
+ : title_(title_)
+ , member_user_ids_(std::move(member_user_ids_))
+{}
+
+const std::int32_t messageBasicGroupChatCreate::ID;
+
+void messageBasicGroupChatCreate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageBasicGroupChatCreate");
+ s.store_field("title", title_);
+ { s.store_vector_begin("member_user_ids", member_user_ids_.size()); for (const auto &_value : member_user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messageSupergroupChatCreate::messageSupergroupChatCreate()
+ : title_()
+{}
+
+messageSupergroupChatCreate::messageSupergroupChatCreate(string const &title_)
+ : title_(title_)
+{}
+
+const std::int32_t messageSupergroupChatCreate::ID;
+
+void messageSupergroupChatCreate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageSupergroupChatCreate");
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+messageChatChangeTitle::messageChatChangeTitle()
+ : title_()
+{}
+
+messageChatChangeTitle::messageChatChangeTitle(string const &title_)
+ : title_(title_)
+{}
+
+const std::int32_t messageChatChangeTitle::ID;
+
+void messageChatChangeTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatChangeTitle");
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+messageChatChangePhoto::messageChatChangePhoto()
+ : photo_()
+{}
+
+messageChatChangePhoto::messageChatChangePhoto(object_ptr<chatPhoto> &&photo_)
+ : photo_(std::move(photo_))
+{}
+
+const std::int32_t messageChatChangePhoto::ID;
+
+void messageChatChangePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatChangePhoto");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_class_end();
+ }
+}
+
+messageChatDeletePhoto::messageChatDeletePhoto() {
+}
+
+const std::int32_t messageChatDeletePhoto::ID;
+
+void messageChatDeletePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatDeletePhoto");
+ s.store_class_end();
+ }
+}
+
+messageChatAddMembers::messageChatAddMembers()
+ : member_user_ids_()
+{}
+
+messageChatAddMembers::messageChatAddMembers(array<int53> &&member_user_ids_)
+ : member_user_ids_(std::move(member_user_ids_))
+{}
+
+const std::int32_t messageChatAddMembers::ID;
+
+void messageChatAddMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatAddMembers");
+ { s.store_vector_begin("member_user_ids", member_user_ids_.size()); for (const auto &_value : member_user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messageChatJoinByLink::messageChatJoinByLink() {
+}
+
+const std::int32_t messageChatJoinByLink::ID;
+
+void messageChatJoinByLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatJoinByLink");
+ s.store_class_end();
+ }
+}
+
+messageChatJoinByRequest::messageChatJoinByRequest() {
+}
+
+const std::int32_t messageChatJoinByRequest::ID;
+
+void messageChatJoinByRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatJoinByRequest");
+ s.store_class_end();
+ }
+}
+
+messageChatDeleteMember::messageChatDeleteMember()
+ : user_id_()
+{}
+
+messageChatDeleteMember::messageChatDeleteMember(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t messageChatDeleteMember::ID;
+
+void messageChatDeleteMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatDeleteMember");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+messageChatUpgradeTo::messageChatUpgradeTo()
+ : supergroup_id_()
+{}
+
+messageChatUpgradeTo::messageChatUpgradeTo(int53 supergroup_id_)
+ : supergroup_id_(supergroup_id_)
+{}
+
+const std::int32_t messageChatUpgradeTo::ID;
+
+void messageChatUpgradeTo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatUpgradeTo");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_class_end();
+ }
+}
+
+messageChatUpgradeFrom::messageChatUpgradeFrom()
+ : title_()
+ , basic_group_id_()
+{}
+
+messageChatUpgradeFrom::messageChatUpgradeFrom(string const &title_, int53 basic_group_id_)
+ : title_(title_)
+ , basic_group_id_(basic_group_id_)
+{}
+
+const std::int32_t messageChatUpgradeFrom::ID;
+
+void messageChatUpgradeFrom::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatUpgradeFrom");
+ s.store_field("title", title_);
+ s.store_field("basic_group_id", basic_group_id_);
+ s.store_class_end();
+ }
+}
+
+messagePinMessage::messagePinMessage()
+ : message_id_()
+{}
+
+messagePinMessage::messagePinMessage(int53 message_id_)
+ : message_id_(message_id_)
+{}
+
+const std::int32_t messagePinMessage::ID;
+
+void messagePinMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messagePinMessage");
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+messageScreenshotTaken::messageScreenshotTaken() {
+}
+
+const std::int32_t messageScreenshotTaken::ID;
+
+void messageScreenshotTaken::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageScreenshotTaken");
+ s.store_class_end();
+ }
+}
+
+messageChatSetTheme::messageChatSetTheme()
+ : theme_name_()
+{}
+
+messageChatSetTheme::messageChatSetTheme(string const &theme_name_)
+ : theme_name_(theme_name_)
+{}
+
+const std::int32_t messageChatSetTheme::ID;
+
+void messageChatSetTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatSetTheme");
+ s.store_field("theme_name", theme_name_);
+ s.store_class_end();
+ }
+}
+
+messageChatSetTtl::messageChatSetTtl()
+ : ttl_()
+{}
+
+messageChatSetTtl::messageChatSetTtl(int32 ttl_)
+ : ttl_(ttl_)
+{}
+
+const std::int32_t messageChatSetTtl::ID;
+
+void messageChatSetTtl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageChatSetTtl");
+ s.store_field("ttl", ttl_);
+ s.store_class_end();
+ }
+}
+
+messageForumTopicCreated::messageForumTopicCreated()
+ : name_()
+ , icon_()
+{}
+
+messageForumTopicCreated::messageForumTopicCreated(string const &name_, object_ptr<forumTopicIcon> &&icon_)
+ : name_(name_)
+ , icon_(std::move(icon_))
+{}
+
+const std::int32_t messageForumTopicCreated::ID;
+
+void messageForumTopicCreated::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageForumTopicCreated");
+ s.store_field("name", name_);
+ s.store_object_field("icon", static_cast<const BaseObject *>(icon_.get()));
+ s.store_class_end();
+ }
+}
+
+messageForumTopicEdited::messageForumTopicEdited()
+ : name_()
+ , edit_icon_custom_emoji_id_()
+ , icon_custom_emoji_id_()
+{}
+
+messageForumTopicEdited::messageForumTopicEdited(string const &name_, bool edit_icon_custom_emoji_id_, int64 icon_custom_emoji_id_)
+ : name_(name_)
+ , edit_icon_custom_emoji_id_(edit_icon_custom_emoji_id_)
+ , icon_custom_emoji_id_(icon_custom_emoji_id_)
+{}
+
+const std::int32_t messageForumTopicEdited::ID;
+
+void messageForumTopicEdited::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageForumTopicEdited");
+ s.store_field("name", name_);
+ s.store_field("edit_icon_custom_emoji_id", edit_icon_custom_emoji_id_);
+ s.store_field("icon_custom_emoji_id", icon_custom_emoji_id_);
+ s.store_class_end();
+ }
+}
+
+messageForumTopicIsClosedToggled::messageForumTopicIsClosedToggled()
+ : is_closed_()
+{}
+
+messageForumTopicIsClosedToggled::messageForumTopicIsClosedToggled(bool is_closed_)
+ : is_closed_(is_closed_)
+{}
+
+const std::int32_t messageForumTopicIsClosedToggled::ID;
+
+void messageForumTopicIsClosedToggled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageForumTopicIsClosedToggled");
+ s.store_field("is_closed", is_closed_);
+ s.store_class_end();
+ }
+}
+
+messageCustomServiceAction::messageCustomServiceAction()
+ : text_()
+{}
+
+messageCustomServiceAction::messageCustomServiceAction(string const &text_)
+ : text_(text_)
+{}
+
+const std::int32_t messageCustomServiceAction::ID;
+
+void messageCustomServiceAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageCustomServiceAction");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+messageGameScore::messageGameScore()
+ : game_message_id_()
+ , game_id_()
+ , score_()
+{}
+
+messageGameScore::messageGameScore(int53 game_message_id_, int64 game_id_, int32 score_)
+ : game_message_id_(game_message_id_)
+ , game_id_(game_id_)
+ , score_(score_)
+{}
+
+const std::int32_t messageGameScore::ID;
+
+void messageGameScore::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageGameScore");
+ s.store_field("game_message_id", game_message_id_);
+ s.store_field("game_id", game_id_);
+ s.store_field("score", score_);
+ s.store_class_end();
+ }
+}
+
+messagePaymentSuccessful::messagePaymentSuccessful()
+ : invoice_chat_id_()
+ , invoice_message_id_()
+ , currency_()
+ , total_amount_()
+ , is_recurring_()
+ , is_first_recurring_()
+ , invoice_name_()
+{}
+
+messagePaymentSuccessful::messagePaymentSuccessful(int53 invoice_chat_id_, int53 invoice_message_id_, string const &currency_, int53 total_amount_, bool is_recurring_, bool is_first_recurring_, string const &invoice_name_)
+ : invoice_chat_id_(invoice_chat_id_)
+ , invoice_message_id_(invoice_message_id_)
+ , currency_(currency_)
+ , total_amount_(total_amount_)
+ , is_recurring_(is_recurring_)
+ , is_first_recurring_(is_first_recurring_)
+ , invoice_name_(invoice_name_)
+{}
+
+const std::int32_t messagePaymentSuccessful::ID;
+
+void messagePaymentSuccessful::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messagePaymentSuccessful");
+ s.store_field("invoice_chat_id", invoice_chat_id_);
+ s.store_field("invoice_message_id", invoice_message_id_);
+ s.store_field("currency", currency_);
+ s.store_field("total_amount", total_amount_);
+ s.store_field("is_recurring", is_recurring_);
+ s.store_field("is_first_recurring", is_first_recurring_);
+ s.store_field("invoice_name", invoice_name_);
+ s.store_class_end();
+ }
+}
+
+messagePaymentSuccessfulBot::messagePaymentSuccessfulBot()
+ : currency_()
+ , total_amount_()
+ , is_recurring_()
+ , is_first_recurring_()
+ , invoice_payload_()
+ , shipping_option_id_()
+ , order_info_()
+ , telegram_payment_charge_id_()
+ , provider_payment_charge_id_()
+{}
+
+messagePaymentSuccessfulBot::messagePaymentSuccessfulBot(string const &currency_, int53 total_amount_, bool is_recurring_, bool is_first_recurring_, bytes const &invoice_payload_, string const &shipping_option_id_, object_ptr<orderInfo> &&order_info_, string const &telegram_payment_charge_id_, string const &provider_payment_charge_id_)
+ : currency_(currency_)
+ , total_amount_(total_amount_)
+ , is_recurring_(is_recurring_)
+ , is_first_recurring_(is_first_recurring_)
+ , invoice_payload_(std::move(invoice_payload_))
+ , shipping_option_id_(shipping_option_id_)
+ , order_info_(std::move(order_info_))
+ , telegram_payment_charge_id_(telegram_payment_charge_id_)
+ , provider_payment_charge_id_(provider_payment_charge_id_)
+{}
+
+const std::int32_t messagePaymentSuccessfulBot::ID;
+
+void messagePaymentSuccessfulBot::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messagePaymentSuccessfulBot");
+ s.store_field("currency", currency_);
+ s.store_field("total_amount", total_amount_);
+ s.store_field("is_recurring", is_recurring_);
+ s.store_field("is_first_recurring", is_first_recurring_);
+ s.store_bytes_field("invoice_payload", invoice_payload_);
+ s.store_field("shipping_option_id", shipping_option_id_);
+ s.store_object_field("order_info", static_cast<const BaseObject *>(order_info_.get()));
+ s.store_field("telegram_payment_charge_id", telegram_payment_charge_id_);
+ s.store_field("provider_payment_charge_id", provider_payment_charge_id_);
+ s.store_class_end();
+ }
+}
+
+messageGiftedPremium::messageGiftedPremium()
+ : currency_()
+ , amount_()
+ , month_count_()
+ , sticker_()
+{}
+
+messageGiftedPremium::messageGiftedPremium(string const &currency_, int53 amount_, int32 month_count_, object_ptr<sticker> &&sticker_)
+ : currency_(currency_)
+ , amount_(amount_)
+ , month_count_(month_count_)
+ , sticker_(std::move(sticker_))
+{}
+
+const std::int32_t messageGiftedPremium::ID;
+
+void messageGiftedPremium::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageGiftedPremium");
+ s.store_field("currency", currency_);
+ s.store_field("amount", amount_);
+ s.store_field("month_count", month_count_);
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+messageContactRegistered::messageContactRegistered() {
+}
+
+const std::int32_t messageContactRegistered::ID;
+
+void messageContactRegistered::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageContactRegistered");
+ s.store_class_end();
+ }
+}
+
+messageWebsiteConnected::messageWebsiteConnected()
+ : domain_name_()
+{}
+
+messageWebsiteConnected::messageWebsiteConnected(string const &domain_name_)
+ : domain_name_(domain_name_)
+{}
+
+const std::int32_t messageWebsiteConnected::ID;
+
+void messageWebsiteConnected::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageWebsiteConnected");
+ s.store_field("domain_name", domain_name_);
+ s.store_class_end();
+ }
+}
+
+messageWebAppDataSent::messageWebAppDataSent()
+ : button_text_()
+{}
+
+messageWebAppDataSent::messageWebAppDataSent(string const &button_text_)
+ : button_text_(button_text_)
+{}
+
+const std::int32_t messageWebAppDataSent::ID;
+
+void messageWebAppDataSent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageWebAppDataSent");
+ s.store_field("button_text", button_text_);
+ s.store_class_end();
+ }
+}
+
+messageWebAppDataReceived::messageWebAppDataReceived()
+ : button_text_()
+ , data_()
+{}
+
+messageWebAppDataReceived::messageWebAppDataReceived(string const &button_text_, string const &data_)
+ : button_text_(button_text_)
+ , data_(data_)
+{}
+
+const std::int32_t messageWebAppDataReceived::ID;
+
+void messageWebAppDataReceived::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageWebAppDataReceived");
+ s.store_field("button_text", button_text_);
+ s.store_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+messagePassportDataSent::messagePassportDataSent()
+ : types_()
+{}
+
+messagePassportDataSent::messagePassportDataSent(array<object_ptr<PassportElementType>> &&types_)
+ : types_(std::move(types_))
+{}
+
+const std::int32_t messagePassportDataSent::ID;
+
+void messagePassportDataSent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messagePassportDataSent");
+ { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messagePassportDataReceived::messagePassportDataReceived()
+ : elements_()
+ , credentials_()
+{}
+
+messagePassportDataReceived::messagePassportDataReceived(array<object_ptr<encryptedPassportElement>> &&elements_, object_ptr<encryptedCredentials> &&credentials_)
+ : elements_(std::move(elements_))
+ , credentials_(std::move(credentials_))
+{}
+
+const std::int32_t messagePassportDataReceived::ID;
+
+void messagePassportDataReceived::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messagePassportDataReceived");
+ { s.store_vector_begin("elements", elements_.size()); for (const auto &_value : elements_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("credentials", static_cast<const BaseObject *>(credentials_.get()));
+ s.store_class_end();
+ }
+}
+
+messageProximityAlertTriggered::messageProximityAlertTriggered()
+ : traveler_id_()
+ , watcher_id_()
+ , distance_()
+{}
+
+messageProximityAlertTriggered::messageProximityAlertTriggered(object_ptr<MessageSender> &&traveler_id_, object_ptr<MessageSender> &&watcher_id_, int32 distance_)
+ : traveler_id_(std::move(traveler_id_))
+ , watcher_id_(std::move(watcher_id_))
+ , distance_(distance_)
+{}
+
+const std::int32_t messageProximityAlertTriggered::ID;
+
+void messageProximityAlertTriggered::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageProximityAlertTriggered");
+ s.store_object_field("traveler_id", static_cast<const BaseObject *>(traveler_id_.get()));
+ s.store_object_field("watcher_id", static_cast<const BaseObject *>(watcher_id_.get()));
+ s.store_field("distance", distance_);
+ s.store_class_end();
+ }
+}
+
+messageUnsupported::messageUnsupported() {
+}
+
+const std::int32_t messageUnsupported::ID;
+
+void messageUnsupported::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageUnsupported");
+ s.store_class_end();
+ }
+}
+
+messageCopyOptions::messageCopyOptions()
+ : send_copy_()
+ , replace_caption_()
+ , new_caption_()
+{}
+
+messageCopyOptions::messageCopyOptions(bool send_copy_, bool replace_caption_, object_ptr<formattedText> &&new_caption_)
+ : send_copy_(send_copy_)
+ , replace_caption_(replace_caption_)
+ , new_caption_(std::move(new_caption_))
+{}
+
+const std::int32_t messageCopyOptions::ID;
+
+void messageCopyOptions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageCopyOptions");
+ s.store_field("send_copy", send_copy_);
+ s.store_field("replace_caption", replace_caption_);
+ s.store_object_field("new_caption", static_cast<const BaseObject *>(new_caption_.get()));
+ s.store_class_end();
+ }
+}
+
+messageExtendedMediaPreview::messageExtendedMediaPreview()
+ : width_()
+ , height_()
+ , duration_()
+ , minithumbnail_()
+ , caption_()
+{}
+
+messageExtendedMediaPreview::messageExtendedMediaPreview(int32 width_, int32 height_, int32 duration_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<formattedText> &&caption_)
+ : width_(width_)
+ , height_(height_)
+ , duration_(duration_)
+ , minithumbnail_(std::move(minithumbnail_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t messageExtendedMediaPreview::ID;
+
+void messageExtendedMediaPreview::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageExtendedMediaPreview");
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_field("duration", duration_);
+ s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+messageExtendedMediaPhoto::messageExtendedMediaPhoto()
+ : photo_()
+ , caption_()
+{}
+
+messageExtendedMediaPhoto::messageExtendedMediaPhoto(object_ptr<photo> &&photo_, object_ptr<formattedText> &&caption_)
+ : photo_(std::move(photo_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t messageExtendedMediaPhoto::ID;
+
+void messageExtendedMediaPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageExtendedMediaPhoto");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+messageExtendedMediaVideo::messageExtendedMediaVideo()
+ : video_()
+ , caption_()
+{}
+
+messageExtendedMediaVideo::messageExtendedMediaVideo(object_ptr<video> &&video_, object_ptr<formattedText> &&caption_)
+ : video_(std::move(video_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t messageExtendedMediaVideo::ID;
+
+void messageExtendedMediaVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageExtendedMediaVideo");
+ s.store_object_field("video", static_cast<const BaseObject *>(video_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+messageExtendedMediaUnsupported::messageExtendedMediaUnsupported()
+ : caption_()
+{}
+
+messageExtendedMediaUnsupported::messageExtendedMediaUnsupported(object_ptr<formattedText> &&caption_)
+ : caption_(std::move(caption_))
+{}
+
+const std::int32_t messageExtendedMediaUnsupported::ID;
+
+void messageExtendedMediaUnsupported::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageExtendedMediaUnsupported");
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+messageFileTypePrivate::messageFileTypePrivate()
+ : name_()
+{}
+
+messageFileTypePrivate::messageFileTypePrivate(string const &name_)
+ : name_(name_)
+{}
+
+const std::int32_t messageFileTypePrivate::ID;
+
+void messageFileTypePrivate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageFileTypePrivate");
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+messageFileTypeGroup::messageFileTypeGroup()
+ : title_()
+{}
+
+messageFileTypeGroup::messageFileTypeGroup(string const &title_)
+ : title_(title_)
+{}
+
+const std::int32_t messageFileTypeGroup::ID;
+
+void messageFileTypeGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageFileTypeGroup");
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+messageFileTypeUnknown::messageFileTypeUnknown() {
+}
+
+const std::int32_t messageFileTypeUnknown::ID;
+
+void messageFileTypeUnknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageFileTypeUnknown");
+ s.store_class_end();
+ }
+}
+
+messageForwardInfo::messageForwardInfo()
+ : origin_()
+ , date_()
+ , public_service_announcement_type_()
+ , from_chat_id_()
+ , from_message_id_()
+{}
+
+messageForwardInfo::messageForwardInfo(object_ptr<MessageForwardOrigin> &&origin_, int32 date_, string const &public_service_announcement_type_, int53 from_chat_id_, int53 from_message_id_)
+ : origin_(std::move(origin_))
+ , date_(date_)
+ , public_service_announcement_type_(public_service_announcement_type_)
+ , from_chat_id_(from_chat_id_)
+ , from_message_id_(from_message_id_)
+{}
+
+const std::int32_t messageForwardInfo::ID;
+
+void messageForwardInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageForwardInfo");
+ s.store_object_field("origin", static_cast<const BaseObject *>(origin_.get()));
+ s.store_field("date", date_);
+ s.store_field("public_service_announcement_type", public_service_announcement_type_);
+ s.store_field("from_chat_id", from_chat_id_);
+ s.store_field("from_message_id", from_message_id_);
+ s.store_class_end();
+ }
+}
+
+messageForwardOriginUser::messageForwardOriginUser()
+ : sender_user_id_()
+{}
+
+messageForwardOriginUser::messageForwardOriginUser(int53 sender_user_id_)
+ : sender_user_id_(sender_user_id_)
+{}
+
+const std::int32_t messageForwardOriginUser::ID;
+
+void messageForwardOriginUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageForwardOriginUser");
+ s.store_field("sender_user_id", sender_user_id_);
+ s.store_class_end();
+ }
+}
+
+messageForwardOriginChat::messageForwardOriginChat()
+ : sender_chat_id_()
+ , author_signature_()
+{}
+
+messageForwardOriginChat::messageForwardOriginChat(int53 sender_chat_id_, string const &author_signature_)
+ : sender_chat_id_(sender_chat_id_)
+ , author_signature_(author_signature_)
+{}
+
+const std::int32_t messageForwardOriginChat::ID;
+
+void messageForwardOriginChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageForwardOriginChat");
+ s.store_field("sender_chat_id", sender_chat_id_);
+ s.store_field("author_signature", author_signature_);
+ s.store_class_end();
+ }
+}
+
+messageForwardOriginHiddenUser::messageForwardOriginHiddenUser()
+ : sender_name_()
+{}
+
+messageForwardOriginHiddenUser::messageForwardOriginHiddenUser(string const &sender_name_)
+ : sender_name_(sender_name_)
+{}
+
+const std::int32_t messageForwardOriginHiddenUser::ID;
+
+void messageForwardOriginHiddenUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageForwardOriginHiddenUser");
+ s.store_field("sender_name", sender_name_);
+ s.store_class_end();
+ }
+}
+
+messageForwardOriginChannel::messageForwardOriginChannel()
+ : chat_id_()
+ , message_id_()
+ , author_signature_()
+{}
+
+messageForwardOriginChannel::messageForwardOriginChannel(int53 chat_id_, int53 message_id_, string const &author_signature_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , author_signature_(author_signature_)
+{}
+
+const std::int32_t messageForwardOriginChannel::ID;
+
+void messageForwardOriginChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageForwardOriginChannel");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("author_signature", author_signature_);
+ s.store_class_end();
+ }
+}
+
+messageForwardOriginMessageImport::messageForwardOriginMessageImport()
+ : sender_name_()
+{}
+
+messageForwardOriginMessageImport::messageForwardOriginMessageImport(string const &sender_name_)
+ : sender_name_(sender_name_)
+{}
+
+const std::int32_t messageForwardOriginMessageImport::ID;
+
+void messageForwardOriginMessageImport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageForwardOriginMessageImport");
+ s.store_field("sender_name", sender_name_);
+ s.store_class_end();
+ }
+}
+
+messageInteractionInfo::messageInteractionInfo()
+ : view_count_()
+ , forward_count_()
+ , reply_info_()
+ , reactions_()
+{}
+
+messageInteractionInfo::messageInteractionInfo(int32 view_count_, int32 forward_count_, object_ptr<messageReplyInfo> &&reply_info_, array<object_ptr<messageReaction>> &&reactions_)
+ : view_count_(view_count_)
+ , forward_count_(forward_count_)
+ , reply_info_(std::move(reply_info_))
+ , reactions_(std::move(reactions_))
+{}
+
+const std::int32_t messageInteractionInfo::ID;
+
+void messageInteractionInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageInteractionInfo");
+ s.store_field("view_count", view_count_);
+ s.store_field("forward_count", forward_count_);
+ s.store_object_field("reply_info", static_cast<const BaseObject *>(reply_info_.get()));
+ { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messageLink::messageLink()
+ : link_()
+ , is_public_()
+{}
+
+messageLink::messageLink(string const &link_, bool is_public_)
+ : link_(link_)
+ , is_public_(is_public_)
+{}
+
+const std::int32_t messageLink::ID;
+
+void messageLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageLink");
+ s.store_field("link", link_);
+ s.store_field("is_public", is_public_);
+ s.store_class_end();
+ }
+}
+
+messageLinkInfo::messageLinkInfo()
+ : is_public_()
+ , chat_id_()
+ , message_thread_id_()
+ , message_()
+ , media_timestamp_()
+ , for_album_()
+{}
+
+messageLinkInfo::messageLinkInfo(bool is_public_, int53 chat_id_, int53 message_thread_id_, object_ptr<message> &&message_, int32 media_timestamp_, bool for_album_)
+ : is_public_(is_public_)
+ , chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , message_(std::move(message_))
+ , media_timestamp_(media_timestamp_)
+ , for_album_(for_album_)
+{}
+
+const std::int32_t messageLinkInfo::ID;
+
+void messageLinkInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageLinkInfo");
+ s.store_field("is_public", is_public_);
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("media_timestamp", media_timestamp_);
+ s.store_field("for_album", for_album_);
+ s.store_class_end();
+ }
+}
+
+messagePosition::messagePosition()
+ : position_()
+ , message_id_()
+ , date_()
+{}
+
+messagePosition::messagePosition(int32 position_, int53 message_id_, int32 date_)
+ : position_(position_)
+ , message_id_(message_id_)
+ , date_(date_)
+{}
+
+const std::int32_t messagePosition::ID;
+
+void messagePosition::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messagePosition");
+ s.store_field("position", position_);
+ s.store_field("message_id", message_id_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+messagePositions::messagePositions()
+ : total_count_()
+ , positions_()
+{}
+
+messagePositions::messagePositions(int32 total_count_, array<object_ptr<messagePosition>> &&positions_)
+ : total_count_(total_count_)
+ , positions_(std::move(positions_))
+{}
+
+const std::int32_t messagePositions::ID;
+
+void messagePositions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messagePositions");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("positions", positions_.size()); for (const auto &_value : positions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messageReaction::messageReaction()
+ : type_()
+ , total_count_()
+ , is_chosen_()
+ , recent_sender_ids_()
+{}
+
+messageReaction::messageReaction(object_ptr<ReactionType> &&type_, int32 total_count_, bool is_chosen_, array<object_ptr<MessageSender>> &&recent_sender_ids_)
+ : type_(std::move(type_))
+ , total_count_(total_count_)
+ , is_chosen_(is_chosen_)
+ , recent_sender_ids_(std::move(recent_sender_ids_))
+{}
+
+const std::int32_t messageReaction::ID;
+
+void messageReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageReaction");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("total_count", total_count_);
+ s.store_field("is_chosen", is_chosen_);
+ { s.store_vector_begin("recent_sender_ids", recent_sender_ids_.size()); for (const auto &_value : recent_sender_ids_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messageReplyInfo::messageReplyInfo()
+ : reply_count_()
+ , recent_replier_ids_()
+ , last_read_inbox_message_id_()
+ , last_read_outbox_message_id_()
+ , last_message_id_()
+{}
+
+messageReplyInfo::messageReplyInfo(int32 reply_count_, array<object_ptr<MessageSender>> &&recent_replier_ids_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int53 last_message_id_)
+ : reply_count_(reply_count_)
+ , recent_replier_ids_(std::move(recent_replier_ids_))
+ , last_read_inbox_message_id_(last_read_inbox_message_id_)
+ , last_read_outbox_message_id_(last_read_outbox_message_id_)
+ , last_message_id_(last_message_id_)
+{}
+
+const std::int32_t messageReplyInfo::ID;
+
+void messageReplyInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageReplyInfo");
+ s.store_field("reply_count", reply_count_);
+ { s.store_vector_begin("recent_replier_ids", recent_replier_ids_.size()); for (const auto &_value : recent_replier_ids_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("last_read_inbox_message_id", last_read_inbox_message_id_);
+ s.store_field("last_read_outbox_message_id", last_read_outbox_message_id_);
+ s.store_field("last_message_id", last_message_id_);
+ s.store_class_end();
+ }
+}
+
+messageSchedulingStateSendAtDate::messageSchedulingStateSendAtDate()
+ : send_date_()
+{}
+
+messageSchedulingStateSendAtDate::messageSchedulingStateSendAtDate(int32 send_date_)
+ : send_date_(send_date_)
+{}
+
+const std::int32_t messageSchedulingStateSendAtDate::ID;
+
+void messageSchedulingStateSendAtDate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageSchedulingStateSendAtDate");
+ s.store_field("send_date", send_date_);
+ s.store_class_end();
+ }
+}
+
+messageSchedulingStateSendWhenOnline::messageSchedulingStateSendWhenOnline() {
+}
+
+const std::int32_t messageSchedulingStateSendWhenOnline::ID;
+
+void messageSchedulingStateSendWhenOnline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageSchedulingStateSendWhenOnline");
+ s.store_class_end();
+ }
+}
+
+messageSendOptions::messageSendOptions()
+ : disable_notification_()
+ , from_background_()
+ , protect_content_()
+ , update_order_of_installed_sticker_sets_()
+ , scheduling_state_()
+{}
+
+messageSendOptions::messageSendOptions(bool disable_notification_, bool from_background_, bool protect_content_, bool update_order_of_installed_sticker_sets_, object_ptr<MessageSchedulingState> &&scheduling_state_)
+ : disable_notification_(disable_notification_)
+ , from_background_(from_background_)
+ , protect_content_(protect_content_)
+ , update_order_of_installed_sticker_sets_(update_order_of_installed_sticker_sets_)
+ , scheduling_state_(std::move(scheduling_state_))
+{}
+
+const std::int32_t messageSendOptions::ID;
+
+void messageSendOptions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageSendOptions");
+ s.store_field("disable_notification", disable_notification_);
+ s.store_field("from_background", from_background_);
+ s.store_field("protect_content", protect_content_);
+ s.store_field("update_order_of_installed_sticker_sets", update_order_of_installed_sticker_sets_);
+ s.store_object_field("scheduling_state", static_cast<const BaseObject *>(scheduling_state_.get()));
+ s.store_class_end();
+ }
+}
+
+messageSenderUser::messageSenderUser()
+ : user_id_()
+{}
+
+messageSenderUser::messageSenderUser(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t messageSenderUser::ID;
+
+void messageSenderUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageSenderUser");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+messageSenderChat::messageSenderChat()
+ : chat_id_()
+{}
+
+messageSenderChat::messageSenderChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t messageSenderChat::ID;
+
+void messageSenderChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageSenderChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+messageSenders::messageSenders()
+ : total_count_()
+ , senders_()
+{}
+
+messageSenders::messageSenders(int32 total_count_, array<object_ptr<MessageSender>> &&senders_)
+ : total_count_(total_count_)
+ , senders_(std::move(senders_))
+{}
+
+const std::int32_t messageSenders::ID;
+
+void messageSenders::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageSenders");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("senders", senders_.size()); for (const auto &_value : senders_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messageSendingStatePending::messageSendingStatePending() {
+}
+
+const std::int32_t messageSendingStatePending::ID;
+
+void messageSendingStatePending::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageSendingStatePending");
+ s.store_class_end();
+ }
+}
+
+messageSendingStateFailed::messageSendingStateFailed()
+ : error_code_()
+ , error_message_()
+ , can_retry_()
+ , need_another_sender_()
+ , retry_after_()
+{}
+
+messageSendingStateFailed::messageSendingStateFailed(int32 error_code_, string const &error_message_, bool can_retry_, bool need_another_sender_, double retry_after_)
+ : error_code_(error_code_)
+ , error_message_(error_message_)
+ , can_retry_(can_retry_)
+ , need_another_sender_(need_another_sender_)
+ , retry_after_(retry_after_)
+{}
+
+const std::int32_t messageSendingStateFailed::ID;
+
+void messageSendingStateFailed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageSendingStateFailed");
+ s.store_field("error_code", error_code_);
+ s.store_field("error_message", error_message_);
+ s.store_field("can_retry", can_retry_);
+ s.store_field("need_another_sender", need_another_sender_);
+ s.store_field("retry_after", retry_after_);
+ s.store_class_end();
+ }
+}
+
+messageStatistics::messageStatistics()
+ : message_interaction_graph_()
+{}
+
+messageStatistics::messageStatistics(object_ptr<StatisticalGraph> &&message_interaction_graph_)
+ : message_interaction_graph_(std::move(message_interaction_graph_))
+{}
+
+const std::int32_t messageStatistics::ID;
+
+void messageStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageStatistics");
+ s.store_object_field("message_interaction_graph", static_cast<const BaseObject *>(message_interaction_graph_.get()));
+ s.store_class_end();
+ }
+}
+
+messageThreadInfo::messageThreadInfo()
+ : chat_id_()
+ , message_thread_id_()
+ , reply_info_()
+ , unread_message_count_()
+ , messages_()
+ , draft_message_()
+{}
+
+messageThreadInfo::messageThreadInfo(int53 chat_id_, int53 message_thread_id_, object_ptr<messageReplyInfo> &&reply_info_, int32 unread_message_count_, array<object_ptr<message>> &&messages_, object_ptr<draftMessage> &&draft_message_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , reply_info_(std::move(reply_info_))
+ , unread_message_count_(unread_message_count_)
+ , messages_(std::move(messages_))
+ , draft_message_(std::move(draft_message_))
+{}
+
+const std::int32_t messageThreadInfo::ID;
+
+void messageThreadInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageThreadInfo");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_object_field("reply_info", static_cast<const BaseObject *>(reply_info_.get()));
+ s.store_field("unread_message_count", unread_message_count_);
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("draft_message", static_cast<const BaseObject *>(draft_message_.get()));
+ s.store_class_end();
+ }
+}
+
+messages::messages()
+ : total_count_()
+ , messages_()
+{}
+
+messages::messages(int32 total_count_, array<object_ptr<message>> &&messages_)
+ : total_count_(total_count_)
+ , messages_(std::move(messages_))
+{}
+
+const std::int32_t messages::ID;
+
+void messages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+minithumbnail::minithumbnail()
+ : width_()
+ , height_()
+ , data_()
+{}
+
+minithumbnail::minithumbnail(int32 width_, int32 height_, bytes const &data_)
+ : width_(width_)
+ , height_(height_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t minithumbnail::ID;
+
+void minithumbnail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "minithumbnail");
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+networkStatistics::networkStatistics()
+ : since_date_()
+ , entries_()
+{}
+
+networkStatistics::networkStatistics(int32 since_date_, array<object_ptr<NetworkStatisticsEntry>> &&entries_)
+ : since_date_(since_date_)
+ , entries_(std::move(entries_))
+{}
+
+const std::int32_t networkStatistics::ID;
+
+void networkStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "networkStatistics");
+ s.store_field("since_date", since_date_);
+ { s.store_vector_begin("entries", entries_.size()); for (const auto &_value : entries_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+networkStatisticsEntryFile::networkStatisticsEntryFile()
+ : file_type_()
+ , network_type_()
+ , sent_bytes_()
+ , received_bytes_()
+{}
+
+networkStatisticsEntryFile::networkStatisticsEntryFile(object_ptr<FileType> &&file_type_, object_ptr<NetworkType> &&network_type_, int53 sent_bytes_, int53 received_bytes_)
+ : file_type_(std::move(file_type_))
+ , network_type_(std::move(network_type_))
+ , sent_bytes_(sent_bytes_)
+ , received_bytes_(received_bytes_)
+{}
+
+const std::int32_t networkStatisticsEntryFile::ID;
+
+void networkStatisticsEntryFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "networkStatisticsEntryFile");
+ s.store_object_field("file_type", static_cast<const BaseObject *>(file_type_.get()));
+ s.store_object_field("network_type", static_cast<const BaseObject *>(network_type_.get()));
+ s.store_field("sent_bytes", sent_bytes_);
+ s.store_field("received_bytes", received_bytes_);
+ s.store_class_end();
+ }
+}
+
+networkStatisticsEntryCall::networkStatisticsEntryCall()
+ : network_type_()
+ , sent_bytes_()
+ , received_bytes_()
+ , duration_()
+{}
+
+networkStatisticsEntryCall::networkStatisticsEntryCall(object_ptr<NetworkType> &&network_type_, int53 sent_bytes_, int53 received_bytes_, double duration_)
+ : network_type_(std::move(network_type_))
+ , sent_bytes_(sent_bytes_)
+ , received_bytes_(received_bytes_)
+ , duration_(duration_)
+{}
+
+const std::int32_t networkStatisticsEntryCall::ID;
+
+void networkStatisticsEntryCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "networkStatisticsEntryCall");
+ s.store_object_field("network_type", static_cast<const BaseObject *>(network_type_.get()));
+ s.store_field("sent_bytes", sent_bytes_);
+ s.store_field("received_bytes", received_bytes_);
+ s.store_field("duration", duration_);
+ s.store_class_end();
+ }
+}
+
+networkTypeNone::networkTypeNone() {
+}
+
+const std::int32_t networkTypeNone::ID;
+
+void networkTypeNone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "networkTypeNone");
+ s.store_class_end();
+ }
+}
+
+networkTypeMobile::networkTypeMobile() {
+}
+
+const std::int32_t networkTypeMobile::ID;
+
+void networkTypeMobile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "networkTypeMobile");
+ s.store_class_end();
+ }
+}
+
+networkTypeMobileRoaming::networkTypeMobileRoaming() {
+}
+
+const std::int32_t networkTypeMobileRoaming::ID;
+
+void networkTypeMobileRoaming::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "networkTypeMobileRoaming");
+ s.store_class_end();
+ }
+}
+
+networkTypeWiFi::networkTypeWiFi() {
+}
+
+const std::int32_t networkTypeWiFi::ID;
+
+void networkTypeWiFi::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "networkTypeWiFi");
+ s.store_class_end();
+ }
+}
+
+networkTypeOther::networkTypeOther() {
+}
+
+const std::int32_t networkTypeOther::ID;
+
+void networkTypeOther::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "networkTypeOther");
+ s.store_class_end();
+ }
+}
+
+notification::notification()
+ : id_()
+ , date_()
+ , is_silent_()
+ , type_()
+{}
+
+notification::notification(int32 id_, int32 date_, bool is_silent_, object_ptr<NotificationType> &&type_)
+ : id_(id_)
+ , date_(date_)
+ , is_silent_(is_silent_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t notification::ID;
+
+void notification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notification");
+ s.store_field("id", id_);
+ s.store_field("date", date_);
+ s.store_field("is_silent", is_silent_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+notificationGroup::notificationGroup()
+ : id_()
+ , type_()
+ , chat_id_()
+ , total_count_()
+ , notifications_()
+{}
+
+notificationGroup::notificationGroup(int32 id_, object_ptr<NotificationGroupType> &&type_, int53 chat_id_, int32 total_count_, array<object_ptr<notification>> &&notifications_)
+ : id_(id_)
+ , type_(std::move(type_))
+ , chat_id_(chat_id_)
+ , total_count_(total_count_)
+ , notifications_(std::move(notifications_))
+{}
+
+const std::int32_t notificationGroup::ID;
+
+void notificationGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationGroup");
+ s.store_field("id", id_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("chat_id", chat_id_);
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("notifications", notifications_.size()); for (const auto &_value : notifications_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+notificationGroupTypeMessages::notificationGroupTypeMessages() {
+}
+
+const std::int32_t notificationGroupTypeMessages::ID;
+
+void notificationGroupTypeMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationGroupTypeMessages");
+ s.store_class_end();
+ }
+}
+
+notificationGroupTypeMentions::notificationGroupTypeMentions() {
+}
+
+const std::int32_t notificationGroupTypeMentions::ID;
+
+void notificationGroupTypeMentions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationGroupTypeMentions");
+ s.store_class_end();
+ }
+}
+
+notificationGroupTypeSecretChat::notificationGroupTypeSecretChat() {
+}
+
+const std::int32_t notificationGroupTypeSecretChat::ID;
+
+void notificationGroupTypeSecretChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationGroupTypeSecretChat");
+ s.store_class_end();
+ }
+}
+
+notificationGroupTypeCalls::notificationGroupTypeCalls() {
+}
+
+const std::int32_t notificationGroupTypeCalls::ID;
+
+void notificationGroupTypeCalls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationGroupTypeCalls");
+ s.store_class_end();
+ }
+}
+
+notificationSettingsScopePrivateChats::notificationSettingsScopePrivateChats() {
+}
+
+const std::int32_t notificationSettingsScopePrivateChats::ID;
+
+void notificationSettingsScopePrivateChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationSettingsScopePrivateChats");
+ s.store_class_end();
+ }
+}
+
+notificationSettingsScopeGroupChats::notificationSettingsScopeGroupChats() {
+}
+
+const std::int32_t notificationSettingsScopeGroupChats::ID;
+
+void notificationSettingsScopeGroupChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationSettingsScopeGroupChats");
+ s.store_class_end();
+ }
+}
+
+notificationSettingsScopeChannelChats::notificationSettingsScopeChannelChats() {
+}
+
+const std::int32_t notificationSettingsScopeChannelChats::ID;
+
+void notificationSettingsScopeChannelChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationSettingsScopeChannelChats");
+ s.store_class_end();
+ }
+}
+
+notificationSound::notificationSound()
+ : id_()
+ , duration_()
+ , date_()
+ , title_()
+ , data_()
+ , sound_()
+{}
+
+notificationSound::notificationSound(int64 id_, int32 duration_, int32 date_, string const &title_, string const &data_, object_ptr<file> &&sound_)
+ : id_(id_)
+ , duration_(duration_)
+ , date_(date_)
+ , title_(title_)
+ , data_(data_)
+ , sound_(std::move(sound_))
+{}
+
+const std::int32_t notificationSound::ID;
+
+void notificationSound::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationSound");
+ s.store_field("id", id_);
+ s.store_field("duration", duration_);
+ s.store_field("date", date_);
+ s.store_field("title", title_);
+ s.store_field("data", data_);
+ s.store_object_field("sound", static_cast<const BaseObject *>(sound_.get()));
+ s.store_class_end();
+ }
+}
+
+notificationSounds::notificationSounds()
+ : notification_sounds_()
+{}
+
+notificationSounds::notificationSounds(array<object_ptr<notificationSound>> &&notification_sounds_)
+ : notification_sounds_(std::move(notification_sounds_))
+{}
+
+const std::int32_t notificationSounds::ID;
+
+void notificationSounds::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationSounds");
+ { s.store_vector_begin("notification_sounds", notification_sounds_.size()); for (const auto &_value : notification_sounds_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+notificationTypeNewMessage::notificationTypeNewMessage()
+ : message_()
+ , show_preview_()
+{}
+
+notificationTypeNewMessage::notificationTypeNewMessage(object_ptr<message> &&message_, bool show_preview_)
+ : message_(std::move(message_))
+ , show_preview_(show_preview_)
+{}
+
+const std::int32_t notificationTypeNewMessage::ID;
+
+void notificationTypeNewMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationTypeNewMessage");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("show_preview", show_preview_);
+ s.store_class_end();
+ }
+}
+
+notificationTypeNewSecretChat::notificationTypeNewSecretChat() {
+}
+
+const std::int32_t notificationTypeNewSecretChat::ID;
+
+void notificationTypeNewSecretChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationTypeNewSecretChat");
+ s.store_class_end();
+ }
+}
+
+notificationTypeNewCall::notificationTypeNewCall()
+ : call_id_()
+{}
+
+notificationTypeNewCall::notificationTypeNewCall(int32 call_id_)
+ : call_id_(call_id_)
+{}
+
+const std::int32_t notificationTypeNewCall::ID;
+
+void notificationTypeNewCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationTypeNewCall");
+ s.store_field("call_id", call_id_);
+ s.store_class_end();
+ }
+}
+
+notificationTypeNewPushMessage::notificationTypeNewPushMessage()
+ : message_id_()
+ , sender_id_()
+ , sender_name_()
+ , is_outgoing_()
+ , content_()
+{}
+
+notificationTypeNewPushMessage::notificationTypeNewPushMessage(int53 message_id_, object_ptr<MessageSender> &&sender_id_, string const &sender_name_, bool is_outgoing_, object_ptr<PushMessageContent> &&content_)
+ : message_id_(message_id_)
+ , sender_id_(std::move(sender_id_))
+ , sender_name_(sender_name_)
+ , is_outgoing_(is_outgoing_)
+ , content_(std::move(content_))
+{}
+
+const std::int32_t notificationTypeNewPushMessage::ID;
+
+void notificationTypeNewPushMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationTypeNewPushMessage");
+ s.store_field("message_id", message_id_);
+ s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get()));
+ s.store_field("sender_name", sender_name_);
+ s.store_field("is_outgoing", is_outgoing_);
+ s.store_object_field("content", static_cast<const BaseObject *>(content_.get()));
+ s.store_class_end();
+ }
+}
+
+ok::ok() {
+}
+
+const std::int32_t ok::ID;
+
+void ok::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "ok");
+ s.store_class_end();
+ }
+}
+
+optionValueBoolean::optionValueBoolean()
+ : value_()
+{}
+
+optionValueBoolean::optionValueBoolean(bool value_)
+ : value_(value_)
+{}
+
+const std::int32_t optionValueBoolean::ID;
+
+void optionValueBoolean::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "optionValueBoolean");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+optionValueEmpty::optionValueEmpty() {
+}
+
+const std::int32_t optionValueEmpty::ID;
+
+void optionValueEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "optionValueEmpty");
+ s.store_class_end();
+ }
+}
+
+optionValueInteger::optionValueInteger()
+ : value_()
+{}
+
+optionValueInteger::optionValueInteger(int64 value_)
+ : value_(value_)
+{}
+
+const std::int32_t optionValueInteger::ID;
+
+void optionValueInteger::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "optionValueInteger");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+optionValueString::optionValueString()
+ : value_()
+{}
+
+optionValueString::optionValueString(string const &value_)
+ : value_(value_)
+{}
+
+const std::int32_t optionValueString::ID;
+
+void optionValueString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "optionValueString");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+orderInfo::orderInfo()
+ : name_()
+ , phone_number_()
+ , email_address_()
+ , shipping_address_()
+{}
+
+orderInfo::orderInfo(string const &name_, string const &phone_number_, string const &email_address_, object_ptr<address> &&shipping_address_)
+ : name_(name_)
+ , phone_number_(phone_number_)
+ , email_address_(email_address_)
+ , shipping_address_(std::move(shipping_address_))
+{}
+
+const std::int32_t orderInfo::ID;
+
+void orderInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "orderInfo");
+ s.store_field("name", name_);
+ s.store_field("phone_number", phone_number_);
+ s.store_field("email_address", email_address_);
+ s.store_object_field("shipping_address", static_cast<const BaseObject *>(shipping_address_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockTitle::pageBlockTitle()
+ : title_()
+{}
+
+pageBlockTitle::pageBlockTitle(object_ptr<RichText> &&title_)
+ : title_(std::move(title_))
+{}
+
+const std::int32_t pageBlockTitle::ID;
+
+void pageBlockTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockTitle");
+ s.store_object_field("title", static_cast<const BaseObject *>(title_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockSubtitle::pageBlockSubtitle()
+ : subtitle_()
+{}
+
+pageBlockSubtitle::pageBlockSubtitle(object_ptr<RichText> &&subtitle_)
+ : subtitle_(std::move(subtitle_))
+{}
+
+const std::int32_t pageBlockSubtitle::ID;
+
+void pageBlockSubtitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockSubtitle");
+ s.store_object_field("subtitle", static_cast<const BaseObject *>(subtitle_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockAuthorDate::pageBlockAuthorDate()
+ : author_()
+ , publish_date_()
+{}
+
+pageBlockAuthorDate::pageBlockAuthorDate(object_ptr<RichText> &&author_, int32 publish_date_)
+ : author_(std::move(author_))
+ , publish_date_(publish_date_)
+{}
+
+const std::int32_t pageBlockAuthorDate::ID;
+
+void pageBlockAuthorDate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockAuthorDate");
+ s.store_object_field("author", static_cast<const BaseObject *>(author_.get()));
+ s.store_field("publish_date", publish_date_);
+ s.store_class_end();
+ }
+}
+
+pageBlockHeader::pageBlockHeader()
+ : header_()
+{}
+
+pageBlockHeader::pageBlockHeader(object_ptr<RichText> &&header_)
+ : header_(std::move(header_))
+{}
+
+const std::int32_t pageBlockHeader::ID;
+
+void pageBlockHeader::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockHeader");
+ s.store_object_field("header", static_cast<const BaseObject *>(header_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockSubheader::pageBlockSubheader()
+ : subheader_()
+{}
+
+pageBlockSubheader::pageBlockSubheader(object_ptr<RichText> &&subheader_)
+ : subheader_(std::move(subheader_))
+{}
+
+const std::int32_t pageBlockSubheader::ID;
+
+void pageBlockSubheader::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockSubheader");
+ s.store_object_field("subheader", static_cast<const BaseObject *>(subheader_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockKicker::pageBlockKicker()
+ : kicker_()
+{}
+
+pageBlockKicker::pageBlockKicker(object_ptr<RichText> &&kicker_)
+ : kicker_(std::move(kicker_))
+{}
+
+const std::int32_t pageBlockKicker::ID;
+
+void pageBlockKicker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockKicker");
+ s.store_object_field("kicker", static_cast<const BaseObject *>(kicker_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockParagraph::pageBlockParagraph()
+ : text_()
+{}
+
+pageBlockParagraph::pageBlockParagraph(object_ptr<RichText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t pageBlockParagraph::ID;
+
+void pageBlockParagraph::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockParagraph");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockPreformatted::pageBlockPreformatted()
+ : text_()
+ , language_()
+{}
+
+pageBlockPreformatted::pageBlockPreformatted(object_ptr<RichText> &&text_, string const &language_)
+ : text_(std::move(text_))
+ , language_(language_)
+{}
+
+const std::int32_t pageBlockPreformatted::ID;
+
+void pageBlockPreformatted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockPreformatted");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("language", language_);
+ s.store_class_end();
+ }
+}
+
+pageBlockFooter::pageBlockFooter()
+ : footer_()
+{}
+
+pageBlockFooter::pageBlockFooter(object_ptr<RichText> &&footer_)
+ : footer_(std::move(footer_))
+{}
+
+const std::int32_t pageBlockFooter::ID;
+
+void pageBlockFooter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockFooter");
+ s.store_object_field("footer", static_cast<const BaseObject *>(footer_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockDivider::pageBlockDivider() {
+}
+
+const std::int32_t pageBlockDivider::ID;
+
+void pageBlockDivider::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockDivider");
+ s.store_class_end();
+ }
+}
+
+pageBlockAnchor::pageBlockAnchor()
+ : name_()
+{}
+
+pageBlockAnchor::pageBlockAnchor(string const &name_)
+ : name_(name_)
+{}
+
+const std::int32_t pageBlockAnchor::ID;
+
+void pageBlockAnchor::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockAnchor");
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+pageBlockList::pageBlockList()
+ : items_()
+{}
+
+pageBlockList::pageBlockList(array<object_ptr<pageBlockListItem>> &&items_)
+ : items_(std::move(items_))
+{}
+
+const std::int32_t pageBlockList::ID;
+
+void pageBlockList::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockList");
+ { s.store_vector_begin("items", items_.size()); for (const auto &_value : items_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+pageBlockBlockQuote::pageBlockBlockQuote()
+ : text_()
+ , credit_()
+{}
+
+pageBlockBlockQuote::pageBlockBlockQuote(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_)
+ : text_(std::move(text_))
+ , credit_(std::move(credit_))
+{}
+
+const std::int32_t pageBlockBlockQuote::ID;
+
+void pageBlockBlockQuote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockBlockQuote");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_object_field("credit", static_cast<const BaseObject *>(credit_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockPullQuote::pageBlockPullQuote()
+ : text_()
+ , credit_()
+{}
+
+pageBlockPullQuote::pageBlockPullQuote(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_)
+ : text_(std::move(text_))
+ , credit_(std::move(credit_))
+{}
+
+const std::int32_t pageBlockPullQuote::ID;
+
+void pageBlockPullQuote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockPullQuote");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_object_field("credit", static_cast<const BaseObject *>(credit_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockAnimation::pageBlockAnimation()
+ : animation_()
+ , caption_()
+ , need_autoplay_()
+{}
+
+pageBlockAnimation::pageBlockAnimation(object_ptr<animation> &&animation_, object_ptr<pageBlockCaption> &&caption_, bool need_autoplay_)
+ : animation_(std::move(animation_))
+ , caption_(std::move(caption_))
+ , need_autoplay_(need_autoplay_)
+{}
+
+const std::int32_t pageBlockAnimation::ID;
+
+void pageBlockAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockAnimation");
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_field("need_autoplay", need_autoplay_);
+ s.store_class_end();
+ }
+}
+
+pageBlockAudio::pageBlockAudio()
+ : audio_()
+ , caption_()
+{}
+
+pageBlockAudio::pageBlockAudio(object_ptr<audio> &&audio_, object_ptr<pageBlockCaption> &&caption_)
+ : audio_(std::move(audio_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t pageBlockAudio::ID;
+
+void pageBlockAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockAudio");
+ s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockPhoto::pageBlockPhoto()
+ : photo_()
+ , caption_()
+ , url_()
+{}
+
+pageBlockPhoto::pageBlockPhoto(object_ptr<photo> &&photo_, object_ptr<pageBlockCaption> &&caption_, string const &url_)
+ : photo_(std::move(photo_))
+ , caption_(std::move(caption_))
+ , url_(url_)
+{}
+
+const std::int32_t pageBlockPhoto::ID;
+
+void pageBlockPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockPhoto");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+pageBlockVideo::pageBlockVideo()
+ : video_()
+ , caption_()
+ , need_autoplay_()
+ , is_looped_()
+{}
+
+pageBlockVideo::pageBlockVideo(object_ptr<video> &&video_, object_ptr<pageBlockCaption> &&caption_, bool need_autoplay_, bool is_looped_)
+ : video_(std::move(video_))
+ , caption_(std::move(caption_))
+ , need_autoplay_(need_autoplay_)
+ , is_looped_(is_looped_)
+{}
+
+const std::int32_t pageBlockVideo::ID;
+
+void pageBlockVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockVideo");
+ s.store_object_field("video", static_cast<const BaseObject *>(video_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_field("need_autoplay", need_autoplay_);
+ s.store_field("is_looped", is_looped_);
+ s.store_class_end();
+ }
+}
+
+pageBlockVoiceNote::pageBlockVoiceNote()
+ : voice_note_()
+ , caption_()
+{}
+
+pageBlockVoiceNote::pageBlockVoiceNote(object_ptr<voiceNote> &&voice_note_, object_ptr<pageBlockCaption> &&caption_)
+ : voice_note_(std::move(voice_note_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t pageBlockVoiceNote::ID;
+
+void pageBlockVoiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockVoiceNote");
+ s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockCover::pageBlockCover()
+ : cover_()
+{}
+
+pageBlockCover::pageBlockCover(object_ptr<PageBlock> &&cover_)
+ : cover_(std::move(cover_))
+{}
+
+const std::int32_t pageBlockCover::ID;
+
+void pageBlockCover::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockCover");
+ s.store_object_field("cover", static_cast<const BaseObject *>(cover_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockEmbedded::pageBlockEmbedded()
+ : url_()
+ , html_()
+ , poster_photo_()
+ , width_()
+ , height_()
+ , caption_()
+ , is_full_width_()
+ , allow_scrolling_()
+{}
+
+pageBlockEmbedded::pageBlockEmbedded(string const &url_, string const &html_, object_ptr<photo> &&poster_photo_, int32 width_, int32 height_, object_ptr<pageBlockCaption> &&caption_, bool is_full_width_, bool allow_scrolling_)
+ : url_(url_)
+ , html_(html_)
+ , poster_photo_(std::move(poster_photo_))
+ , width_(width_)
+ , height_(height_)
+ , caption_(std::move(caption_))
+ , is_full_width_(is_full_width_)
+ , allow_scrolling_(allow_scrolling_)
+{}
+
+const std::int32_t pageBlockEmbedded::ID;
+
+void pageBlockEmbedded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockEmbedded");
+ s.store_field("url", url_);
+ s.store_field("html", html_);
+ s.store_object_field("poster_photo", static_cast<const BaseObject *>(poster_photo_.get()));
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_field("is_full_width", is_full_width_);
+ s.store_field("allow_scrolling", allow_scrolling_);
+ s.store_class_end();
+ }
+}
+
+pageBlockEmbeddedPost::pageBlockEmbeddedPost()
+ : url_()
+ , author_()
+ , author_photo_()
+ , date_()
+ , page_blocks_()
+ , caption_()
+{}
+
+pageBlockEmbeddedPost::pageBlockEmbeddedPost(string const &url_, string const &author_, object_ptr<photo> &&author_photo_, int32 date_, array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_)
+ : url_(url_)
+ , author_(author_)
+ , author_photo_(std::move(author_photo_))
+ , date_(date_)
+ , page_blocks_(std::move(page_blocks_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t pageBlockEmbeddedPost::ID;
+
+void pageBlockEmbeddedPost::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockEmbeddedPost");
+ s.store_field("url", url_);
+ s.store_field("author", author_);
+ s.store_object_field("author_photo", static_cast<const BaseObject *>(author_photo_.get()));
+ s.store_field("date", date_);
+ { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockCollage::pageBlockCollage()
+ : page_blocks_()
+ , caption_()
+{}
+
+pageBlockCollage::pageBlockCollage(array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_)
+ : page_blocks_(std::move(page_blocks_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t pageBlockCollage::ID;
+
+void pageBlockCollage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockCollage");
+ { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockSlideshow::pageBlockSlideshow()
+ : page_blocks_()
+ , caption_()
+{}
+
+pageBlockSlideshow::pageBlockSlideshow(array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_)
+ : page_blocks_(std::move(page_blocks_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t pageBlockSlideshow::ID;
+
+void pageBlockSlideshow::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockSlideshow");
+ { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockChatLink::pageBlockChatLink()
+ : title_()
+ , photo_()
+ , username_()
+{}
+
+pageBlockChatLink::pageBlockChatLink(string const &title_, object_ptr<chatPhotoInfo> &&photo_, string const &username_)
+ : title_(title_)
+ , photo_(std::move(photo_))
+ , username_(username_)
+{}
+
+const std::int32_t pageBlockChatLink::ID;
+
+void pageBlockChatLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockChatLink");
+ s.store_field("title", title_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+pageBlockTable::pageBlockTable()
+ : caption_()
+ , cells_()
+ , is_bordered_()
+ , is_striped_()
+{}
+
+pageBlockTable::pageBlockTable(object_ptr<RichText> &&caption_, array<array<object_ptr<pageBlockTableCell>>> &&cells_, bool is_bordered_, bool is_striped_)
+ : caption_(std::move(caption_))
+ , cells_(std::move(cells_))
+ , is_bordered_(is_bordered_)
+ , is_striped_(is_striped_)
+{}
+
+const std::int32_t pageBlockTable::ID;
+
+void pageBlockTable::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockTable");
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ { s.store_vector_begin("cells", cells_.size()); for (const auto &_value : cells_) { { s.store_vector_begin("", _value.size()); for (const auto &_value2 : _value) { s.store_object_field("", static_cast<const BaseObject *>(_value2.get())); } s.store_class_end(); } } s.store_class_end(); }
+ s.store_field("is_bordered", is_bordered_);
+ s.store_field("is_striped", is_striped_);
+ s.store_class_end();
+ }
+}
+
+pageBlockDetails::pageBlockDetails()
+ : header_()
+ , page_blocks_()
+ , is_open_()
+{}
+
+pageBlockDetails::pageBlockDetails(object_ptr<RichText> &&header_, array<object_ptr<PageBlock>> &&page_blocks_, bool is_open_)
+ : header_(std::move(header_))
+ , page_blocks_(std::move(page_blocks_))
+ , is_open_(is_open_)
+{}
+
+const std::int32_t pageBlockDetails::ID;
+
+void pageBlockDetails::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockDetails");
+ s.store_object_field("header", static_cast<const BaseObject *>(header_.get()));
+ { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("is_open", is_open_);
+ s.store_class_end();
+ }
+}
+
+pageBlockRelatedArticles::pageBlockRelatedArticles()
+ : header_()
+ , articles_()
+{}
+
+pageBlockRelatedArticles::pageBlockRelatedArticles(object_ptr<RichText> &&header_, array<object_ptr<pageBlockRelatedArticle>> &&articles_)
+ : header_(std::move(header_))
+ , articles_(std::move(articles_))
+{}
+
+const std::int32_t pageBlockRelatedArticles::ID;
+
+void pageBlockRelatedArticles::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockRelatedArticles");
+ s.store_object_field("header", static_cast<const BaseObject *>(header_.get()));
+ { s.store_vector_begin("articles", articles_.size()); for (const auto &_value : articles_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+pageBlockMap::pageBlockMap()
+ : location_()
+ , zoom_()
+ , width_()
+ , height_()
+ , caption_()
+{}
+
+pageBlockMap::pageBlockMap(object_ptr<location> &&location_, int32 zoom_, int32 width_, int32 height_, object_ptr<pageBlockCaption> &&caption_)
+ : location_(std::move(location_))
+ , zoom_(zoom_)
+ , width_(width_)
+ , height_(height_)
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t pageBlockMap::ID;
+
+void pageBlockMap::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockMap");
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("zoom", zoom_);
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockCaption::pageBlockCaption()
+ : text_()
+ , credit_()
+{}
+
+pageBlockCaption::pageBlockCaption(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_)
+ : text_(std::move(text_))
+ , credit_(std::move(credit_))
+{}
+
+const std::int32_t pageBlockCaption::ID;
+
+void pageBlockCaption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockCaption");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_object_field("credit", static_cast<const BaseObject *>(credit_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockHorizontalAlignmentLeft::pageBlockHorizontalAlignmentLeft() {
+}
+
+const std::int32_t pageBlockHorizontalAlignmentLeft::ID;
+
+void pageBlockHorizontalAlignmentLeft::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockHorizontalAlignmentLeft");
+ s.store_class_end();
+ }
+}
+
+pageBlockHorizontalAlignmentCenter::pageBlockHorizontalAlignmentCenter() {
+}
+
+const std::int32_t pageBlockHorizontalAlignmentCenter::ID;
+
+void pageBlockHorizontalAlignmentCenter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockHorizontalAlignmentCenter");
+ s.store_class_end();
+ }
+}
+
+pageBlockHorizontalAlignmentRight::pageBlockHorizontalAlignmentRight() {
+}
+
+const std::int32_t pageBlockHorizontalAlignmentRight::ID;
+
+void pageBlockHorizontalAlignmentRight::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockHorizontalAlignmentRight");
+ s.store_class_end();
+ }
+}
+
+pageBlockListItem::pageBlockListItem()
+ : label_()
+ , page_blocks_()
+{}
+
+pageBlockListItem::pageBlockListItem(string const &label_, array<object_ptr<PageBlock>> &&page_blocks_)
+ : label_(label_)
+ , page_blocks_(std::move(page_blocks_))
+{}
+
+const std::int32_t pageBlockListItem::ID;
+
+void pageBlockListItem::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockListItem");
+ s.store_field("label", label_);
+ { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+pageBlockRelatedArticle::pageBlockRelatedArticle()
+ : url_()
+ , title_()
+ , description_()
+ , photo_()
+ , author_()
+ , publish_date_()
+{}
+
+pageBlockRelatedArticle::pageBlockRelatedArticle(string const &url_, string const &title_, string const &description_, object_ptr<photo> &&photo_, string const &author_, int32 publish_date_)
+ : url_(url_)
+ , title_(title_)
+ , description_(description_)
+ , photo_(std::move(photo_))
+ , author_(author_)
+ , publish_date_(publish_date_)
+{}
+
+const std::int32_t pageBlockRelatedArticle::ID;
+
+void pageBlockRelatedArticle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockRelatedArticle");
+ s.store_field("url", url_);
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("author", author_);
+ s.store_field("publish_date", publish_date_);
+ s.store_class_end();
+ }
+}
+
+pageBlockTableCell::pageBlockTableCell()
+ : text_()
+ , is_header_()
+ , colspan_()
+ , rowspan_()
+ , align_()
+ , valign_()
+{}
+
+pageBlockTableCell::pageBlockTableCell(object_ptr<RichText> &&text_, bool is_header_, int32 colspan_, int32 rowspan_, object_ptr<PageBlockHorizontalAlignment> &&align_, object_ptr<PageBlockVerticalAlignment> &&valign_)
+ : text_(std::move(text_))
+ , is_header_(is_header_)
+ , colspan_(colspan_)
+ , rowspan_(rowspan_)
+ , align_(std::move(align_))
+ , valign_(std::move(valign_))
+{}
+
+const std::int32_t pageBlockTableCell::ID;
+
+void pageBlockTableCell::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockTableCell");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("is_header", is_header_);
+ s.store_field("colspan", colspan_);
+ s.store_field("rowspan", rowspan_);
+ s.store_object_field("align", static_cast<const BaseObject *>(align_.get()));
+ s.store_object_field("valign", static_cast<const BaseObject *>(valign_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockVerticalAlignmentTop::pageBlockVerticalAlignmentTop() {
+}
+
+const std::int32_t pageBlockVerticalAlignmentTop::ID;
+
+void pageBlockVerticalAlignmentTop::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockVerticalAlignmentTop");
+ s.store_class_end();
+ }
+}
+
+pageBlockVerticalAlignmentMiddle::pageBlockVerticalAlignmentMiddle() {
+}
+
+const std::int32_t pageBlockVerticalAlignmentMiddle::ID;
+
+void pageBlockVerticalAlignmentMiddle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockVerticalAlignmentMiddle");
+ s.store_class_end();
+ }
+}
+
+pageBlockVerticalAlignmentBottom::pageBlockVerticalAlignmentBottom() {
+}
+
+const std::int32_t pageBlockVerticalAlignmentBottom::ID;
+
+void pageBlockVerticalAlignmentBottom::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockVerticalAlignmentBottom");
+ s.store_class_end();
+ }
+}
+
+passportAuthorizationForm::passportAuthorizationForm()
+ : id_()
+ , required_elements_()
+ , privacy_policy_url_()
+{}
+
+passportAuthorizationForm::passportAuthorizationForm(int32 id_, array<object_ptr<passportRequiredElement>> &&required_elements_, string const &privacy_policy_url_)
+ : id_(id_)
+ , required_elements_(std::move(required_elements_))
+ , privacy_policy_url_(privacy_policy_url_)
+{}
+
+const std::int32_t passportAuthorizationForm::ID;
+
+void passportAuthorizationForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportAuthorizationForm");
+ s.store_field("id", id_);
+ { s.store_vector_begin("required_elements", required_elements_.size()); for (const auto &_value : required_elements_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("privacy_policy_url", privacy_policy_url_);
+ s.store_class_end();
+ }
+}
+
+passportElementPersonalDetails::passportElementPersonalDetails()
+ : personal_details_()
+{}
+
+passportElementPersonalDetails::passportElementPersonalDetails(object_ptr<personalDetails> &&personal_details_)
+ : personal_details_(std::move(personal_details_))
+{}
+
+const std::int32_t passportElementPersonalDetails::ID;
+
+void passportElementPersonalDetails::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementPersonalDetails");
+ s.store_object_field("personal_details", static_cast<const BaseObject *>(personal_details_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementPassport::passportElementPassport()
+ : passport_()
+{}
+
+passportElementPassport::passportElementPassport(object_ptr<identityDocument> &&passport_)
+ : passport_(std::move(passport_))
+{}
+
+const std::int32_t passportElementPassport::ID;
+
+void passportElementPassport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementPassport");
+ s.store_object_field("passport", static_cast<const BaseObject *>(passport_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementDriverLicense::passportElementDriverLicense()
+ : driver_license_()
+{}
+
+passportElementDriverLicense::passportElementDriverLicense(object_ptr<identityDocument> &&driver_license_)
+ : driver_license_(std::move(driver_license_))
+{}
+
+const std::int32_t passportElementDriverLicense::ID;
+
+void passportElementDriverLicense::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementDriverLicense");
+ s.store_object_field("driver_license", static_cast<const BaseObject *>(driver_license_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementIdentityCard::passportElementIdentityCard()
+ : identity_card_()
+{}
+
+passportElementIdentityCard::passportElementIdentityCard(object_ptr<identityDocument> &&identity_card_)
+ : identity_card_(std::move(identity_card_))
+{}
+
+const std::int32_t passportElementIdentityCard::ID;
+
+void passportElementIdentityCard::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementIdentityCard");
+ s.store_object_field("identity_card", static_cast<const BaseObject *>(identity_card_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementInternalPassport::passportElementInternalPassport()
+ : internal_passport_()
+{}
+
+passportElementInternalPassport::passportElementInternalPassport(object_ptr<identityDocument> &&internal_passport_)
+ : internal_passport_(std::move(internal_passport_))
+{}
+
+const std::int32_t passportElementInternalPassport::ID;
+
+void passportElementInternalPassport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementInternalPassport");
+ s.store_object_field("internal_passport", static_cast<const BaseObject *>(internal_passport_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementAddress::passportElementAddress()
+ : address_()
+{}
+
+passportElementAddress::passportElementAddress(object_ptr<address> &&address_)
+ : address_(std::move(address_))
+{}
+
+const std::int32_t passportElementAddress::ID;
+
+void passportElementAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementAddress");
+ s.store_object_field("address", static_cast<const BaseObject *>(address_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementUtilityBill::passportElementUtilityBill()
+ : utility_bill_()
+{}
+
+passportElementUtilityBill::passportElementUtilityBill(object_ptr<personalDocument> &&utility_bill_)
+ : utility_bill_(std::move(utility_bill_))
+{}
+
+const std::int32_t passportElementUtilityBill::ID;
+
+void passportElementUtilityBill::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementUtilityBill");
+ s.store_object_field("utility_bill", static_cast<const BaseObject *>(utility_bill_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementBankStatement::passportElementBankStatement()
+ : bank_statement_()
+{}
+
+passportElementBankStatement::passportElementBankStatement(object_ptr<personalDocument> &&bank_statement_)
+ : bank_statement_(std::move(bank_statement_))
+{}
+
+const std::int32_t passportElementBankStatement::ID;
+
+void passportElementBankStatement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementBankStatement");
+ s.store_object_field("bank_statement", static_cast<const BaseObject *>(bank_statement_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementRentalAgreement::passportElementRentalAgreement()
+ : rental_agreement_()
+{}
+
+passportElementRentalAgreement::passportElementRentalAgreement(object_ptr<personalDocument> &&rental_agreement_)
+ : rental_agreement_(std::move(rental_agreement_))
+{}
+
+const std::int32_t passportElementRentalAgreement::ID;
+
+void passportElementRentalAgreement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementRentalAgreement");
+ s.store_object_field("rental_agreement", static_cast<const BaseObject *>(rental_agreement_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementPassportRegistration::passportElementPassportRegistration()
+ : passport_registration_()
+{}
+
+passportElementPassportRegistration::passportElementPassportRegistration(object_ptr<personalDocument> &&passport_registration_)
+ : passport_registration_(std::move(passport_registration_))
+{}
+
+const std::int32_t passportElementPassportRegistration::ID;
+
+void passportElementPassportRegistration::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementPassportRegistration");
+ s.store_object_field("passport_registration", static_cast<const BaseObject *>(passport_registration_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementTemporaryRegistration::passportElementTemporaryRegistration()
+ : temporary_registration_()
+{}
+
+passportElementTemporaryRegistration::passportElementTemporaryRegistration(object_ptr<personalDocument> &&temporary_registration_)
+ : temporary_registration_(std::move(temporary_registration_))
+{}
+
+const std::int32_t passportElementTemporaryRegistration::ID;
+
+void passportElementTemporaryRegistration::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTemporaryRegistration");
+ s.store_object_field("temporary_registration", static_cast<const BaseObject *>(temporary_registration_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementPhoneNumber::passportElementPhoneNumber()
+ : phone_number_()
+{}
+
+passportElementPhoneNumber::passportElementPhoneNumber(string const &phone_number_)
+ : phone_number_(phone_number_)
+{}
+
+const std::int32_t passportElementPhoneNumber::ID;
+
+void passportElementPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementPhoneNumber");
+ s.store_field("phone_number", phone_number_);
+ s.store_class_end();
+ }
+}
+
+passportElementEmailAddress::passportElementEmailAddress()
+ : email_address_()
+{}
+
+passportElementEmailAddress::passportElementEmailAddress(string const &email_address_)
+ : email_address_(email_address_)
+{}
+
+const std::int32_t passportElementEmailAddress::ID;
+
+void passportElementEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementEmailAddress");
+ s.store_field("email_address", email_address_);
+ s.store_class_end();
+ }
+}
+
+passportElementError::passportElementError()
+ : type_()
+ , message_()
+ , source_()
+{}
+
+passportElementError::passportElementError(object_ptr<PassportElementType> &&type_, string const &message_, object_ptr<PassportElementErrorSource> &&source_)
+ : type_(std::move(type_))
+ , message_(message_)
+ , source_(std::move(source_))
+{}
+
+const std::int32_t passportElementError::ID;
+
+void passportElementError::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementError");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("message", message_);
+ s.store_object_field("source", static_cast<const BaseObject *>(source_.get()));
+ s.store_class_end();
+ }
+}
+
+passportElementErrorSourceUnspecified::passportElementErrorSourceUnspecified() {
+}
+
+const std::int32_t passportElementErrorSourceUnspecified::ID;
+
+void passportElementErrorSourceUnspecified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementErrorSourceUnspecified");
+ s.store_class_end();
+ }
+}
+
+passportElementErrorSourceDataField::passportElementErrorSourceDataField()
+ : field_name_()
+{}
+
+passportElementErrorSourceDataField::passportElementErrorSourceDataField(string const &field_name_)
+ : field_name_(field_name_)
+{}
+
+const std::int32_t passportElementErrorSourceDataField::ID;
+
+void passportElementErrorSourceDataField::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementErrorSourceDataField");
+ s.store_field("field_name", field_name_);
+ s.store_class_end();
+ }
+}
+
+passportElementErrorSourceFrontSide::passportElementErrorSourceFrontSide() {
+}
+
+const std::int32_t passportElementErrorSourceFrontSide::ID;
+
+void passportElementErrorSourceFrontSide::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementErrorSourceFrontSide");
+ s.store_class_end();
+ }
+}
+
+passportElementErrorSourceReverseSide::passportElementErrorSourceReverseSide() {
+}
+
+const std::int32_t passportElementErrorSourceReverseSide::ID;
+
+void passportElementErrorSourceReverseSide::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementErrorSourceReverseSide");
+ s.store_class_end();
+ }
+}
+
+passportElementErrorSourceSelfie::passportElementErrorSourceSelfie() {
+}
+
+const std::int32_t passportElementErrorSourceSelfie::ID;
+
+void passportElementErrorSourceSelfie::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementErrorSourceSelfie");
+ s.store_class_end();
+ }
+}
+
+passportElementErrorSourceTranslationFile::passportElementErrorSourceTranslationFile()
+ : file_index_()
+{}
+
+passportElementErrorSourceTranslationFile::passportElementErrorSourceTranslationFile(int32 file_index_)
+ : file_index_(file_index_)
+{}
+
+const std::int32_t passportElementErrorSourceTranslationFile::ID;
+
+void passportElementErrorSourceTranslationFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementErrorSourceTranslationFile");
+ s.store_field("file_index", file_index_);
+ s.store_class_end();
+ }
+}
+
+passportElementErrorSourceTranslationFiles::passportElementErrorSourceTranslationFiles() {
+}
+
+const std::int32_t passportElementErrorSourceTranslationFiles::ID;
+
+void passportElementErrorSourceTranslationFiles::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementErrorSourceTranslationFiles");
+ s.store_class_end();
+ }
+}
+
+passportElementErrorSourceFile::passportElementErrorSourceFile()
+ : file_index_()
+{}
+
+passportElementErrorSourceFile::passportElementErrorSourceFile(int32 file_index_)
+ : file_index_(file_index_)
+{}
+
+const std::int32_t passportElementErrorSourceFile::ID;
+
+void passportElementErrorSourceFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementErrorSourceFile");
+ s.store_field("file_index", file_index_);
+ s.store_class_end();
+ }
+}
+
+passportElementErrorSourceFiles::passportElementErrorSourceFiles() {
+}
+
+const std::int32_t passportElementErrorSourceFiles::ID;
+
+void passportElementErrorSourceFiles::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementErrorSourceFiles");
+ s.store_class_end();
+ }
+}
+
+passportElementTypePersonalDetails::passportElementTypePersonalDetails() {
+}
+
+const std::int32_t passportElementTypePersonalDetails::ID;
+
+void passportElementTypePersonalDetails::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypePersonalDetails");
+ s.store_class_end();
+ }
+}
+
+passportElementTypePassport::passportElementTypePassport() {
+}
+
+const std::int32_t passportElementTypePassport::ID;
+
+void passportElementTypePassport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypePassport");
+ s.store_class_end();
+ }
+}
+
+passportElementTypeDriverLicense::passportElementTypeDriverLicense() {
+}
+
+const std::int32_t passportElementTypeDriverLicense::ID;
+
+void passportElementTypeDriverLicense::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypeDriverLicense");
+ s.store_class_end();
+ }
+}
+
+passportElementTypeIdentityCard::passportElementTypeIdentityCard() {
+}
+
+const std::int32_t passportElementTypeIdentityCard::ID;
+
+void passportElementTypeIdentityCard::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypeIdentityCard");
+ s.store_class_end();
+ }
+}
+
+passportElementTypeInternalPassport::passportElementTypeInternalPassport() {
+}
+
+const std::int32_t passportElementTypeInternalPassport::ID;
+
+void passportElementTypeInternalPassport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypeInternalPassport");
+ s.store_class_end();
+ }
+}
+
+passportElementTypeAddress::passportElementTypeAddress() {
+}
+
+const std::int32_t passportElementTypeAddress::ID;
+
+void passportElementTypeAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypeAddress");
+ s.store_class_end();
+ }
+}
+
+passportElementTypeUtilityBill::passportElementTypeUtilityBill() {
+}
+
+const std::int32_t passportElementTypeUtilityBill::ID;
+
+void passportElementTypeUtilityBill::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypeUtilityBill");
+ s.store_class_end();
+ }
+}
+
+passportElementTypeBankStatement::passportElementTypeBankStatement() {
+}
+
+const std::int32_t passportElementTypeBankStatement::ID;
+
+void passportElementTypeBankStatement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypeBankStatement");
+ s.store_class_end();
+ }
+}
+
+passportElementTypeRentalAgreement::passportElementTypeRentalAgreement() {
+}
+
+const std::int32_t passportElementTypeRentalAgreement::ID;
+
+void passportElementTypeRentalAgreement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypeRentalAgreement");
+ s.store_class_end();
+ }
+}
+
+passportElementTypePassportRegistration::passportElementTypePassportRegistration() {
+}
+
+const std::int32_t passportElementTypePassportRegistration::ID;
+
+void passportElementTypePassportRegistration::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypePassportRegistration");
+ s.store_class_end();
+ }
+}
+
+passportElementTypeTemporaryRegistration::passportElementTypeTemporaryRegistration() {
+}
+
+const std::int32_t passportElementTypeTemporaryRegistration::ID;
+
+void passportElementTypeTemporaryRegistration::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypeTemporaryRegistration");
+ s.store_class_end();
+ }
+}
+
+passportElementTypePhoneNumber::passportElementTypePhoneNumber() {
+}
+
+const std::int32_t passportElementTypePhoneNumber::ID;
+
+void passportElementTypePhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypePhoneNumber");
+ s.store_class_end();
+ }
+}
+
+passportElementTypeEmailAddress::passportElementTypeEmailAddress() {
+}
+
+const std::int32_t passportElementTypeEmailAddress::ID;
+
+void passportElementTypeEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementTypeEmailAddress");
+ s.store_class_end();
+ }
+}
+
+passportElements::passportElements()
+ : elements_()
+{}
+
+passportElements::passportElements(array<object_ptr<PassportElement>> &&elements_)
+ : elements_(std::move(elements_))
+{}
+
+const std::int32_t passportElements::ID;
+
+void passportElements::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElements");
+ { s.store_vector_begin("elements", elements_.size()); for (const auto &_value : elements_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+passportElementsWithErrors::passportElementsWithErrors()
+ : elements_()
+ , errors_()
+{}
+
+passportElementsWithErrors::passportElementsWithErrors(array<object_ptr<PassportElement>> &&elements_, array<object_ptr<passportElementError>> &&errors_)
+ : elements_(std::move(elements_))
+ , errors_(std::move(errors_))
+{}
+
+const std::int32_t passportElementsWithErrors::ID;
+
+void passportElementsWithErrors::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportElementsWithErrors");
+ { s.store_vector_begin("elements", elements_.size()); for (const auto &_value : elements_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("errors", errors_.size()); for (const auto &_value : errors_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+passportRequiredElement::passportRequiredElement()
+ : suitable_elements_()
+{}
+
+passportRequiredElement::passportRequiredElement(array<object_ptr<passportSuitableElement>> &&suitable_elements_)
+ : suitable_elements_(std::move(suitable_elements_))
+{}
+
+const std::int32_t passportRequiredElement::ID;
+
+void passportRequiredElement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportRequiredElement");
+ { s.store_vector_begin("suitable_elements", suitable_elements_.size()); for (const auto &_value : suitable_elements_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+passportSuitableElement::passportSuitableElement()
+ : type_()
+ , is_selfie_required_()
+ , is_translation_required_()
+ , is_native_name_required_()
+{}
+
+passportSuitableElement::passportSuitableElement(object_ptr<PassportElementType> &&type_, bool is_selfie_required_, bool is_translation_required_, bool is_native_name_required_)
+ : type_(std::move(type_))
+ , is_selfie_required_(is_selfie_required_)
+ , is_translation_required_(is_translation_required_)
+ , is_native_name_required_(is_native_name_required_)
+{}
+
+const std::int32_t passportSuitableElement::ID;
+
+void passportSuitableElement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passportSuitableElement");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("is_selfie_required", is_selfie_required_);
+ s.store_field("is_translation_required", is_translation_required_);
+ s.store_field("is_native_name_required", is_native_name_required_);
+ s.store_class_end();
+ }
+}
+
+passwordState::passwordState()
+ : has_password_()
+ , password_hint_()
+ , has_recovery_email_address_()
+ , has_passport_data_()
+ , recovery_email_address_code_info_()
+ , login_email_address_pattern_()
+ , pending_reset_date_()
+{}
+
+passwordState::passwordState(bool has_password_, string const &password_hint_, bool has_recovery_email_address_, bool has_passport_data_, object_ptr<emailAddressAuthenticationCodeInfo> &&recovery_email_address_code_info_, string const &login_email_address_pattern_, int32 pending_reset_date_)
+ : has_password_(has_password_)
+ , password_hint_(password_hint_)
+ , has_recovery_email_address_(has_recovery_email_address_)
+ , has_passport_data_(has_passport_data_)
+ , recovery_email_address_code_info_(std::move(recovery_email_address_code_info_))
+ , login_email_address_pattern_(login_email_address_pattern_)
+ , pending_reset_date_(pending_reset_date_)
+{}
+
+const std::int32_t passwordState::ID;
+
+void passwordState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passwordState");
+ s.store_field("has_password", has_password_);
+ s.store_field("password_hint", password_hint_);
+ s.store_field("has_recovery_email_address", has_recovery_email_address_);
+ s.store_field("has_passport_data", has_passport_data_);
+ s.store_object_field("recovery_email_address_code_info", static_cast<const BaseObject *>(recovery_email_address_code_info_.get()));
+ s.store_field("login_email_address_pattern", login_email_address_pattern_);
+ s.store_field("pending_reset_date", pending_reset_date_);
+ s.store_class_end();
+ }
+}
+
+paymentForm::paymentForm()
+ : id_()
+ , invoice_()
+ , seller_bot_user_id_()
+ , payment_provider_user_id_()
+ , payment_provider_()
+ , additional_payment_options_()
+ , saved_order_info_()
+ , saved_credentials_()
+ , can_save_credentials_()
+ , need_password_()
+ , product_title_()
+ , product_description_()
+ , product_photo_()
+{}
+
+paymentForm::paymentForm(int64 id_, object_ptr<invoice> &&invoice_, int53 seller_bot_user_id_, int53 payment_provider_user_id_, object_ptr<PaymentProvider> &&payment_provider_, array<object_ptr<paymentOption>> &&additional_payment_options_, object_ptr<orderInfo> &&saved_order_info_, array<object_ptr<savedCredentials>> &&saved_credentials_, bool can_save_credentials_, bool need_password_, string const &product_title_, object_ptr<formattedText> &&product_description_, object_ptr<photo> &&product_photo_)
+ : id_(id_)
+ , invoice_(std::move(invoice_))
+ , seller_bot_user_id_(seller_bot_user_id_)
+ , payment_provider_user_id_(payment_provider_user_id_)
+ , payment_provider_(std::move(payment_provider_))
+ , additional_payment_options_(std::move(additional_payment_options_))
+ , saved_order_info_(std::move(saved_order_info_))
+ , saved_credentials_(std::move(saved_credentials_))
+ , can_save_credentials_(can_save_credentials_)
+ , need_password_(need_password_)
+ , product_title_(product_title_)
+ , product_description_(std::move(product_description_))
+ , product_photo_(std::move(product_photo_))
+{}
+
+const std::int32_t paymentForm::ID;
+
+void paymentForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentForm");
+ s.store_field("id", id_);
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ s.store_field("seller_bot_user_id", seller_bot_user_id_);
+ s.store_field("payment_provider_user_id", payment_provider_user_id_);
+ s.store_object_field("payment_provider", static_cast<const BaseObject *>(payment_provider_.get()));
+ { s.store_vector_begin("additional_payment_options", additional_payment_options_.size()); for (const auto &_value : additional_payment_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("saved_order_info", static_cast<const BaseObject *>(saved_order_info_.get()));
+ { s.store_vector_begin("saved_credentials", saved_credentials_.size()); for (const auto &_value : saved_credentials_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("can_save_credentials", can_save_credentials_);
+ s.store_field("need_password", need_password_);
+ s.store_field("product_title", product_title_);
+ s.store_object_field("product_description", static_cast<const BaseObject *>(product_description_.get()));
+ s.store_object_field("product_photo", static_cast<const BaseObject *>(product_photo_.get()));
+ s.store_class_end();
+ }
+}
+
+paymentOption::paymentOption()
+ : title_()
+ , url_()
+{}
+
+paymentOption::paymentOption(string const &title_, string const &url_)
+ : title_(title_)
+ , url_(url_)
+{}
+
+const std::int32_t paymentOption::ID;
+
+void paymentOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentOption");
+ s.store_field("title", title_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+paymentProviderSmartGlocal::paymentProviderSmartGlocal()
+ : public_token_()
+{}
+
+paymentProviderSmartGlocal::paymentProviderSmartGlocal(string const &public_token_)
+ : public_token_(public_token_)
+{}
+
+const std::int32_t paymentProviderSmartGlocal::ID;
+
+void paymentProviderSmartGlocal::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentProviderSmartGlocal");
+ s.store_field("public_token", public_token_);
+ s.store_class_end();
+ }
+}
+
+paymentProviderStripe::paymentProviderStripe()
+ : publishable_key_()
+ , need_country_()
+ , need_postal_code_()
+ , need_cardholder_name_()
+{}
+
+paymentProviderStripe::paymentProviderStripe(string const &publishable_key_, bool need_country_, bool need_postal_code_, bool need_cardholder_name_)
+ : publishable_key_(publishable_key_)
+ , need_country_(need_country_)
+ , need_postal_code_(need_postal_code_)
+ , need_cardholder_name_(need_cardholder_name_)
+{}
+
+const std::int32_t paymentProviderStripe::ID;
+
+void paymentProviderStripe::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentProviderStripe");
+ s.store_field("publishable_key", publishable_key_);
+ s.store_field("need_country", need_country_);
+ s.store_field("need_postal_code", need_postal_code_);
+ s.store_field("need_cardholder_name", need_cardholder_name_);
+ s.store_class_end();
+ }
+}
+
+paymentProviderOther::paymentProviderOther()
+ : url_()
+{}
+
+paymentProviderOther::paymentProviderOther(string const &url_)
+ : url_(url_)
+{}
+
+const std::int32_t paymentProviderOther::ID;
+
+void paymentProviderOther::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentProviderOther");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+paymentReceipt::paymentReceipt()
+ : title_()
+ , description_()
+ , photo_()
+ , date_()
+ , seller_bot_user_id_()
+ , payment_provider_user_id_()
+ , invoice_()
+ , order_info_()
+ , shipping_option_()
+ , credentials_title_()
+ , tip_amount_()
+{}
+
+paymentReceipt::paymentReceipt(string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, int32 date_, int53 seller_bot_user_id_, int53 payment_provider_user_id_, object_ptr<invoice> &&invoice_, object_ptr<orderInfo> &&order_info_, object_ptr<shippingOption> &&shipping_option_, string const &credentials_title_, int53 tip_amount_)
+ : title_(title_)
+ , description_(std::move(description_))
+ , photo_(std::move(photo_))
+ , date_(date_)
+ , seller_bot_user_id_(seller_bot_user_id_)
+ , payment_provider_user_id_(payment_provider_user_id_)
+ , invoice_(std::move(invoice_))
+ , order_info_(std::move(order_info_))
+ , shipping_option_(std::move(shipping_option_))
+ , credentials_title_(credentials_title_)
+ , tip_amount_(tip_amount_)
+{}
+
+const std::int32_t paymentReceipt::ID;
+
+void paymentReceipt::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentReceipt");
+ s.store_field("title", title_);
+ s.store_object_field("description", static_cast<const BaseObject *>(description_.get()));
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("date", date_);
+ s.store_field("seller_bot_user_id", seller_bot_user_id_);
+ s.store_field("payment_provider_user_id", payment_provider_user_id_);
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ s.store_object_field("order_info", static_cast<const BaseObject *>(order_info_.get()));
+ s.store_object_field("shipping_option", static_cast<const BaseObject *>(shipping_option_.get()));
+ s.store_field("credentials_title", credentials_title_);
+ s.store_field("tip_amount", tip_amount_);
+ s.store_class_end();
+ }
+}
+
+paymentResult::paymentResult()
+ : success_()
+ , verification_url_()
+{}
+
+paymentResult::paymentResult(bool success_, string const &verification_url_)
+ : success_(success_)
+ , verification_url_(verification_url_)
+{}
+
+const std::int32_t paymentResult::ID;
+
+void paymentResult::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentResult");
+ s.store_field("success", success_);
+ s.store_field("verification_url", verification_url_);
+ s.store_class_end();
+ }
+}
+
+personalDetails::personalDetails()
+ : first_name_()
+ , middle_name_()
+ , last_name_()
+ , native_first_name_()
+ , native_middle_name_()
+ , native_last_name_()
+ , birthdate_()
+ , gender_()
+ , country_code_()
+ , residence_country_code_()
+{}
+
+personalDetails::personalDetails(string const &first_name_, string const &middle_name_, string const &last_name_, string const &native_first_name_, string const &native_middle_name_, string const &native_last_name_, object_ptr<date> &&birthdate_, string const &gender_, string const &country_code_, string const &residence_country_code_)
+ : first_name_(first_name_)
+ , middle_name_(middle_name_)
+ , last_name_(last_name_)
+ , native_first_name_(native_first_name_)
+ , native_middle_name_(native_middle_name_)
+ , native_last_name_(native_last_name_)
+ , birthdate_(std::move(birthdate_))
+ , gender_(gender_)
+ , country_code_(country_code_)
+ , residence_country_code_(residence_country_code_)
+{}
+
+const std::int32_t personalDetails::ID;
+
+void personalDetails::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "personalDetails");
+ s.store_field("first_name", first_name_);
+ s.store_field("middle_name", middle_name_);
+ s.store_field("last_name", last_name_);
+ s.store_field("native_first_name", native_first_name_);
+ s.store_field("native_middle_name", native_middle_name_);
+ s.store_field("native_last_name", native_last_name_);
+ s.store_object_field("birthdate", static_cast<const BaseObject *>(birthdate_.get()));
+ s.store_field("gender", gender_);
+ s.store_field("country_code", country_code_);
+ s.store_field("residence_country_code", residence_country_code_);
+ s.store_class_end();
+ }
+}
+
+personalDocument::personalDocument()
+ : files_()
+ , translation_()
+{}
+
+personalDocument::personalDocument(array<object_ptr<datedFile>> &&files_, array<object_ptr<datedFile>> &&translation_)
+ : files_(std::move(files_))
+ , translation_(std::move(translation_))
+{}
+
+const std::int32_t personalDocument::ID;
+
+void personalDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "personalDocument");
+ { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+phoneNumberAuthenticationSettings::phoneNumberAuthenticationSettings()
+ : allow_flash_call_()
+ , allow_missed_call_()
+ , is_current_phone_number_()
+ , allow_sms_retriever_api_()
+ , authentication_tokens_()
+{}
+
+phoneNumberAuthenticationSettings::phoneNumberAuthenticationSettings(bool allow_flash_call_, bool allow_missed_call_, bool is_current_phone_number_, bool allow_sms_retriever_api_, array<string> &&authentication_tokens_)
+ : allow_flash_call_(allow_flash_call_)
+ , allow_missed_call_(allow_missed_call_)
+ , is_current_phone_number_(is_current_phone_number_)
+ , allow_sms_retriever_api_(allow_sms_retriever_api_)
+ , authentication_tokens_(std::move(authentication_tokens_))
+{}
+
+const std::int32_t phoneNumberAuthenticationSettings::ID;
+
+void phoneNumberAuthenticationSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneNumberAuthenticationSettings");
+ s.store_field("allow_flash_call", allow_flash_call_);
+ s.store_field("allow_missed_call", allow_missed_call_);
+ s.store_field("is_current_phone_number", is_current_phone_number_);
+ s.store_field("allow_sms_retriever_api", allow_sms_retriever_api_);
+ { s.store_vector_begin("authentication_tokens", authentication_tokens_.size()); for (const auto &_value : authentication_tokens_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+phoneNumberInfo::phoneNumberInfo()
+ : country_()
+ , country_calling_code_()
+ , formatted_phone_number_()
+{}
+
+phoneNumberInfo::phoneNumberInfo(object_ptr<countryInfo> &&country_, string const &country_calling_code_, string const &formatted_phone_number_)
+ : country_(std::move(country_))
+ , country_calling_code_(country_calling_code_)
+ , formatted_phone_number_(formatted_phone_number_)
+{}
+
+const std::int32_t phoneNumberInfo::ID;
+
+void phoneNumberInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneNumberInfo");
+ s.store_object_field("country", static_cast<const BaseObject *>(country_.get()));
+ s.store_field("country_calling_code", country_calling_code_);
+ s.store_field("formatted_phone_number", formatted_phone_number_);
+ s.store_class_end();
+ }
+}
+
+photo::photo()
+ : has_stickers_()
+ , minithumbnail_()
+ , sizes_()
+{}
+
+photo::photo(bool has_stickers_, object_ptr<minithumbnail> &&minithumbnail_, array<object_ptr<photoSize>> &&sizes_)
+ : has_stickers_(has_stickers_)
+ , minithumbnail_(std::move(minithumbnail_))
+ , sizes_(std::move(sizes_))
+{}
+
+const std::int32_t photo::ID;
+
+void photo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photo");
+ s.store_field("has_stickers", has_stickers_);
+ s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get()));
+ { s.store_vector_begin("sizes", sizes_.size()); for (const auto &_value : sizes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+photoSize::photoSize()
+ : type_()
+ , photo_()
+ , width_()
+ , height_()
+ , progressive_sizes_()
+{}
+
+photoSize::photoSize(string const &type_, object_ptr<file> &&photo_, int32 width_, int32 height_, array<int32> &&progressive_sizes_)
+ : type_(type_)
+ , photo_(std::move(photo_))
+ , width_(width_)
+ , height_(height_)
+ , progressive_sizes_(std::move(progressive_sizes_))
+{}
+
+const std::int32_t photoSize::ID;
+
+void photoSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoSize");
+ s.store_field("type", type_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ { s.store_vector_begin("progressive_sizes", progressive_sizes_.size()); for (const auto &_value : progressive_sizes_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+point::point()
+ : x_()
+ , y_()
+{}
+
+point::point(double x_, double y_)
+ : x_(x_)
+ , y_(y_)
+{}
+
+const std::int32_t point::ID;
+
+void point::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "point");
+ s.store_field("x", x_);
+ s.store_field("y", y_);
+ s.store_class_end();
+ }
+}
+
+poll::poll()
+ : id_()
+ , question_()
+ , options_()
+ , total_voter_count_()
+ , recent_voter_user_ids_()
+ , is_anonymous_()
+ , type_()
+ , open_period_()
+ , close_date_()
+ , is_closed_()
+{}
+
+poll::poll(int64 id_, string const &question_, array<object_ptr<pollOption>> &&options_, int32 total_voter_count_, array<int53> &&recent_voter_user_ids_, bool is_anonymous_, object_ptr<PollType> &&type_, int32 open_period_, int32 close_date_, bool is_closed_)
+ : id_(id_)
+ , question_(question_)
+ , options_(std::move(options_))
+ , total_voter_count_(total_voter_count_)
+ , recent_voter_user_ids_(std::move(recent_voter_user_ids_))
+ , is_anonymous_(is_anonymous_)
+ , type_(std::move(type_))
+ , open_period_(open_period_)
+ , close_date_(close_date_)
+ , is_closed_(is_closed_)
+{}
+
+const std::int32_t poll::ID;
+
+void poll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "poll");
+ s.store_field("id", id_);
+ s.store_field("question", question_);
+ { s.store_vector_begin("options", options_.size()); for (const auto &_value : options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("total_voter_count", total_voter_count_);
+ { s.store_vector_begin("recent_voter_user_ids", recent_voter_user_ids_.size()); for (const auto &_value : recent_voter_user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("is_anonymous", is_anonymous_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("open_period", open_period_);
+ s.store_field("close_date", close_date_);
+ s.store_field("is_closed", is_closed_);
+ s.store_class_end();
+ }
+}
+
+pollOption::pollOption()
+ : text_()
+ , voter_count_()
+ , vote_percentage_()
+ , is_chosen_()
+ , is_being_chosen_()
+{}
+
+pollOption::pollOption(string const &text_, int32 voter_count_, int32 vote_percentage_, bool is_chosen_, bool is_being_chosen_)
+ : text_(text_)
+ , voter_count_(voter_count_)
+ , vote_percentage_(vote_percentage_)
+ , is_chosen_(is_chosen_)
+ , is_being_chosen_(is_being_chosen_)
+{}
+
+const std::int32_t pollOption::ID;
+
+void pollOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pollOption");
+ s.store_field("text", text_);
+ s.store_field("voter_count", voter_count_);
+ s.store_field("vote_percentage", vote_percentage_);
+ s.store_field("is_chosen", is_chosen_);
+ s.store_field("is_being_chosen", is_being_chosen_);
+ s.store_class_end();
+ }
+}
+
+pollTypeRegular::pollTypeRegular()
+ : allow_multiple_answers_()
+{}
+
+pollTypeRegular::pollTypeRegular(bool allow_multiple_answers_)
+ : allow_multiple_answers_(allow_multiple_answers_)
+{}
+
+const std::int32_t pollTypeRegular::ID;
+
+void pollTypeRegular::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pollTypeRegular");
+ s.store_field("allow_multiple_answers", allow_multiple_answers_);
+ s.store_class_end();
+ }
+}
+
+pollTypeQuiz::pollTypeQuiz()
+ : correct_option_id_()
+ , explanation_()
+{}
+
+pollTypeQuiz::pollTypeQuiz(int32 correct_option_id_, object_ptr<formattedText> &&explanation_)
+ : correct_option_id_(correct_option_id_)
+ , explanation_(std::move(explanation_))
+{}
+
+const std::int32_t pollTypeQuiz::ID;
+
+void pollTypeQuiz::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pollTypeQuiz");
+ s.store_field("correct_option_id", correct_option_id_);
+ s.store_object_field("explanation", static_cast<const BaseObject *>(explanation_.get()));
+ s.store_class_end();
+ }
+}
+
+premiumFeatureIncreasedLimits::premiumFeatureIncreasedLimits() {
+}
+
+const std::int32_t premiumFeatureIncreasedLimits::ID;
+
+void premiumFeatureIncreasedLimits::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureIncreasedLimits");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureIncreasedUploadFileSize::premiumFeatureIncreasedUploadFileSize() {
+}
+
+const std::int32_t premiumFeatureIncreasedUploadFileSize::ID;
+
+void premiumFeatureIncreasedUploadFileSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureIncreasedUploadFileSize");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureImprovedDownloadSpeed::premiumFeatureImprovedDownloadSpeed() {
+}
+
+const std::int32_t premiumFeatureImprovedDownloadSpeed::ID;
+
+void premiumFeatureImprovedDownloadSpeed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureImprovedDownloadSpeed");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureVoiceRecognition::premiumFeatureVoiceRecognition() {
+}
+
+const std::int32_t premiumFeatureVoiceRecognition::ID;
+
+void premiumFeatureVoiceRecognition::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureVoiceRecognition");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureDisabledAds::premiumFeatureDisabledAds() {
+}
+
+const std::int32_t premiumFeatureDisabledAds::ID;
+
+void premiumFeatureDisabledAds::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureDisabledAds");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureUniqueReactions::premiumFeatureUniqueReactions() {
+}
+
+const std::int32_t premiumFeatureUniqueReactions::ID;
+
+void premiumFeatureUniqueReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureUniqueReactions");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureUniqueStickers::premiumFeatureUniqueStickers() {
+}
+
+const std::int32_t premiumFeatureUniqueStickers::ID;
+
+void premiumFeatureUniqueStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureUniqueStickers");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureCustomEmoji::premiumFeatureCustomEmoji() {
+}
+
+const std::int32_t premiumFeatureCustomEmoji::ID;
+
+void premiumFeatureCustomEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureCustomEmoji");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureAdvancedChatManagement::premiumFeatureAdvancedChatManagement() {
+}
+
+const std::int32_t premiumFeatureAdvancedChatManagement::ID;
+
+void premiumFeatureAdvancedChatManagement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureAdvancedChatManagement");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureProfileBadge::premiumFeatureProfileBadge() {
+}
+
+const std::int32_t premiumFeatureProfileBadge::ID;
+
+void premiumFeatureProfileBadge::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureProfileBadge");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureEmojiStatus::premiumFeatureEmojiStatus() {
+}
+
+const std::int32_t premiumFeatureEmojiStatus::ID;
+
+void premiumFeatureEmojiStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureEmojiStatus");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureAnimatedProfilePhoto::premiumFeatureAnimatedProfilePhoto() {
+}
+
+const std::int32_t premiumFeatureAnimatedProfilePhoto::ID;
+
+void premiumFeatureAnimatedProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureAnimatedProfilePhoto");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureForumTopicIcon::premiumFeatureForumTopicIcon() {
+}
+
+const std::int32_t premiumFeatureForumTopicIcon::ID;
+
+void premiumFeatureForumTopicIcon::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureForumTopicIcon");
+ s.store_class_end();
+ }
+}
+
+premiumFeatureAppIcons::premiumFeatureAppIcons() {
+}
+
+const std::int32_t premiumFeatureAppIcons::ID;
+
+void premiumFeatureAppIcons::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatureAppIcons");
+ s.store_class_end();
+ }
+}
+
+premiumFeaturePromotionAnimation::premiumFeaturePromotionAnimation()
+ : feature_()
+ , animation_()
+{}
+
+premiumFeaturePromotionAnimation::premiumFeaturePromotionAnimation(object_ptr<PremiumFeature> &&feature_, object_ptr<animation> &&animation_)
+ : feature_(std::move(feature_))
+ , animation_(std::move(animation_))
+{}
+
+const std::int32_t premiumFeaturePromotionAnimation::ID;
+
+void premiumFeaturePromotionAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeaturePromotionAnimation");
+ s.store_object_field("feature", static_cast<const BaseObject *>(feature_.get()));
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_class_end();
+ }
+}
+
+premiumFeatures::premiumFeatures()
+ : features_()
+ , limits_()
+ , payment_link_()
+{}
+
+premiumFeatures::premiumFeatures(array<object_ptr<PremiumFeature>> &&features_, array<object_ptr<premiumLimit>> &&limits_, object_ptr<InternalLinkType> &&payment_link_)
+ : features_(std::move(features_))
+ , limits_(std::move(limits_))
+ , payment_link_(std::move(payment_link_))
+{}
+
+const std::int32_t premiumFeatures::ID;
+
+void premiumFeatures::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumFeatures");
+ { s.store_vector_begin("features", features_.size()); for (const auto &_value : features_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("limits", limits_.size()); for (const auto &_value : limits_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("payment_link", static_cast<const BaseObject *>(payment_link_.get()));
+ s.store_class_end();
+ }
+}
+
+premiumLimit::premiumLimit()
+ : type_()
+ , default_value_()
+ , premium_value_()
+{}
+
+premiumLimit::premiumLimit(object_ptr<PremiumLimitType> &&type_, int32 default_value_, int32 premium_value_)
+ : type_(std::move(type_))
+ , default_value_(default_value_)
+ , premium_value_(premium_value_)
+{}
+
+const std::int32_t premiumLimit::ID;
+
+void premiumLimit::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimit");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("default_value", default_value_);
+ s.store_field("premium_value", premium_value_);
+ s.store_class_end();
+ }
+}
+
+premiumLimitTypeSupergroupCount::premiumLimitTypeSupergroupCount() {
+}
+
+const std::int32_t premiumLimitTypeSupergroupCount::ID;
+
+void premiumLimitTypeSupergroupCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimitTypeSupergroupCount");
+ s.store_class_end();
+ }
+}
+
+premiumLimitTypePinnedChatCount::premiumLimitTypePinnedChatCount() {
+}
+
+const std::int32_t premiumLimitTypePinnedChatCount::ID;
+
+void premiumLimitTypePinnedChatCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimitTypePinnedChatCount");
+ s.store_class_end();
+ }
+}
+
+premiumLimitTypeCreatedPublicChatCount::premiumLimitTypeCreatedPublicChatCount() {
+}
+
+const std::int32_t premiumLimitTypeCreatedPublicChatCount::ID;
+
+void premiumLimitTypeCreatedPublicChatCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimitTypeCreatedPublicChatCount");
+ s.store_class_end();
+ }
+}
+
+premiumLimitTypeSavedAnimationCount::premiumLimitTypeSavedAnimationCount() {
+}
+
+const std::int32_t premiumLimitTypeSavedAnimationCount::ID;
+
+void premiumLimitTypeSavedAnimationCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimitTypeSavedAnimationCount");
+ s.store_class_end();
+ }
+}
+
+premiumLimitTypeFavoriteStickerCount::premiumLimitTypeFavoriteStickerCount() {
+}
+
+const std::int32_t premiumLimitTypeFavoriteStickerCount::ID;
+
+void premiumLimitTypeFavoriteStickerCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimitTypeFavoriteStickerCount");
+ s.store_class_end();
+ }
+}
+
+premiumLimitTypeChatFilterCount::premiumLimitTypeChatFilterCount() {
+}
+
+const std::int32_t premiumLimitTypeChatFilterCount::ID;
+
+void premiumLimitTypeChatFilterCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimitTypeChatFilterCount");
+ s.store_class_end();
+ }
+}
+
+premiumLimitTypeChatFilterChosenChatCount::premiumLimitTypeChatFilterChosenChatCount() {
+}
+
+const std::int32_t premiumLimitTypeChatFilterChosenChatCount::ID;
+
+void premiumLimitTypeChatFilterChosenChatCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimitTypeChatFilterChosenChatCount");
+ s.store_class_end();
+ }
+}
+
+premiumLimitTypePinnedArchivedChatCount::premiumLimitTypePinnedArchivedChatCount() {
+}
+
+const std::int32_t premiumLimitTypePinnedArchivedChatCount::ID;
+
+void premiumLimitTypePinnedArchivedChatCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimitTypePinnedArchivedChatCount");
+ s.store_class_end();
+ }
+}
+
+premiumLimitTypeCaptionLength::premiumLimitTypeCaptionLength() {
+}
+
+const std::int32_t premiumLimitTypeCaptionLength::ID;
+
+void premiumLimitTypeCaptionLength::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimitTypeCaptionLength");
+ s.store_class_end();
+ }
+}
+
+premiumLimitTypeBioLength::premiumLimitTypeBioLength() {
+}
+
+const std::int32_t premiumLimitTypeBioLength::ID;
+
+void premiumLimitTypeBioLength::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumLimitTypeBioLength");
+ s.store_class_end();
+ }
+}
+
+premiumPaymentOption::premiumPaymentOption()
+ : currency_()
+ , amount_()
+ , discount_percentage_()
+ , month_count_()
+ , store_product_id_()
+ , payment_link_()
+{}
+
+premiumPaymentOption::premiumPaymentOption(string const &currency_, int53 amount_, int32 discount_percentage_, int32 month_count_, string const &store_product_id_, object_ptr<InternalLinkType> &&payment_link_)
+ : currency_(currency_)
+ , amount_(amount_)
+ , discount_percentage_(discount_percentage_)
+ , month_count_(month_count_)
+ , store_product_id_(store_product_id_)
+ , payment_link_(std::move(payment_link_))
+{}
+
+const std::int32_t premiumPaymentOption::ID;
+
+void premiumPaymentOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumPaymentOption");
+ s.store_field("currency", currency_);
+ s.store_field("amount", amount_);
+ s.store_field("discount_percentage", discount_percentage_);
+ s.store_field("month_count", month_count_);
+ s.store_field("store_product_id", store_product_id_);
+ s.store_object_field("payment_link", static_cast<const BaseObject *>(payment_link_.get()));
+ s.store_class_end();
+ }
+}
+
+premiumSourceLimitExceeded::premiumSourceLimitExceeded()
+ : limit_type_()
+{}
+
+premiumSourceLimitExceeded::premiumSourceLimitExceeded(object_ptr<PremiumLimitType> &&limit_type_)
+ : limit_type_(std::move(limit_type_))
+{}
+
+const std::int32_t premiumSourceLimitExceeded::ID;
+
+void premiumSourceLimitExceeded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumSourceLimitExceeded");
+ s.store_object_field("limit_type", static_cast<const BaseObject *>(limit_type_.get()));
+ s.store_class_end();
+ }
+}
+
+premiumSourceFeature::premiumSourceFeature()
+ : feature_()
+{}
+
+premiumSourceFeature::premiumSourceFeature(object_ptr<PremiumFeature> &&feature_)
+ : feature_(std::move(feature_))
+{}
+
+const std::int32_t premiumSourceFeature::ID;
+
+void premiumSourceFeature::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumSourceFeature");
+ s.store_object_field("feature", static_cast<const BaseObject *>(feature_.get()));
+ s.store_class_end();
+ }
+}
+
+premiumSourceLink::premiumSourceLink()
+ : referrer_()
+{}
+
+premiumSourceLink::premiumSourceLink(string const &referrer_)
+ : referrer_(referrer_)
+{}
+
+const std::int32_t premiumSourceLink::ID;
+
+void premiumSourceLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumSourceLink");
+ s.store_field("referrer", referrer_);
+ s.store_class_end();
+ }
+}
+
+premiumSourceSettings::premiumSourceSettings() {
+}
+
+const std::int32_t premiumSourceSettings::ID;
+
+void premiumSourceSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumSourceSettings");
+ s.store_class_end();
+ }
+}
+
+premiumState::premiumState()
+ : state_()
+ , payment_options_()
+ , animations_()
+{}
+
+premiumState::premiumState(object_ptr<formattedText> &&state_, array<object_ptr<premiumPaymentOption>> &&payment_options_, array<object_ptr<premiumFeaturePromotionAnimation>> &&animations_)
+ : state_(std::move(state_))
+ , payment_options_(std::move(payment_options_))
+ , animations_(std::move(animations_))
+{}
+
+const std::int32_t premiumState::ID;
+
+void premiumState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumState");
+ s.store_object_field("state", static_cast<const BaseObject *>(state_.get()));
+ { s.store_vector_begin("payment_options", payment_options_.size()); for (const auto &_value : payment_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("animations", animations_.size()); for (const auto &_value : animations_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+profilePhoto::profilePhoto()
+ : id_()
+ , small_()
+ , big_()
+ , minithumbnail_()
+ , has_animation_()
+{}
+
+profilePhoto::profilePhoto(int64 id_, object_ptr<file> &&small_, object_ptr<file> &&big_, object_ptr<minithumbnail> &&minithumbnail_, bool has_animation_)
+ : id_(id_)
+ , small_(std::move(small_))
+ , big_(std::move(big_))
+ , minithumbnail_(std::move(minithumbnail_))
+ , has_animation_(has_animation_)
+{}
+
+const std::int32_t profilePhoto::ID;
+
+void profilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "profilePhoto");
+ s.store_field("id", id_);
+ s.store_object_field("small", static_cast<const BaseObject *>(small_.get()));
+ s.store_object_field("big", static_cast<const BaseObject *>(big_.get()));
+ s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get()));
+ s.store_field("has_animation", has_animation_);
+ s.store_class_end();
+ }
+}
+
+proxies::proxies()
+ : proxies_()
+{}
+
+proxies::proxies(array<object_ptr<proxy>> &&proxies_)
+ : proxies_(std::move(proxies_))
+{}
+
+const std::int32_t proxies::ID;
+
+void proxies::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "proxies");
+ { s.store_vector_begin("proxies", proxies_.size()); for (const auto &_value : proxies_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+proxy::proxy()
+ : id_()
+ , server_()
+ , port_()
+ , last_used_date_()
+ , is_enabled_()
+ , type_()
+{}
+
+proxy::proxy(int32 id_, string const &server_, int32 port_, int32 last_used_date_, bool is_enabled_, object_ptr<ProxyType> &&type_)
+ : id_(id_)
+ , server_(server_)
+ , port_(port_)
+ , last_used_date_(last_used_date_)
+ , is_enabled_(is_enabled_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t proxy::ID;
+
+void proxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "proxy");
+ s.store_field("id", id_);
+ s.store_field("server", server_);
+ s.store_field("port", port_);
+ s.store_field("last_used_date", last_used_date_);
+ s.store_field("is_enabled", is_enabled_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+proxyTypeSocks5::proxyTypeSocks5()
+ : username_()
+ , password_()
+{}
+
+proxyTypeSocks5::proxyTypeSocks5(string const &username_, string const &password_)
+ : username_(username_)
+ , password_(password_)
+{}
+
+const std::int32_t proxyTypeSocks5::ID;
+
+void proxyTypeSocks5::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "proxyTypeSocks5");
+ s.store_field("username", username_);
+ s.store_field("password", password_);
+ s.store_class_end();
+ }
+}
+
+proxyTypeHttp::proxyTypeHttp()
+ : username_()
+ , password_()
+ , http_only_()
+{}
+
+proxyTypeHttp::proxyTypeHttp(string const &username_, string const &password_, bool http_only_)
+ : username_(username_)
+ , password_(password_)
+ , http_only_(http_only_)
+{}
+
+const std::int32_t proxyTypeHttp::ID;
+
+void proxyTypeHttp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "proxyTypeHttp");
+ s.store_field("username", username_);
+ s.store_field("password", password_);
+ s.store_field("http_only", http_only_);
+ s.store_class_end();
+ }
+}
+
+proxyTypeMtproto::proxyTypeMtproto()
+ : secret_()
+{}
+
+proxyTypeMtproto::proxyTypeMtproto(string const &secret_)
+ : secret_(secret_)
+{}
+
+const std::int32_t proxyTypeMtproto::ID;
+
+void proxyTypeMtproto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "proxyTypeMtproto");
+ s.store_field("secret", secret_);
+ s.store_class_end();
+ }
+}
+
+publicChatTypeHasUsername::publicChatTypeHasUsername() {
+}
+
+const std::int32_t publicChatTypeHasUsername::ID;
+
+void publicChatTypeHasUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "publicChatTypeHasUsername");
+ s.store_class_end();
+ }
+}
+
+publicChatTypeIsLocationBased::publicChatTypeIsLocationBased() {
+}
+
+const std::int32_t publicChatTypeIsLocationBased::ID;
+
+void publicChatTypeIsLocationBased::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "publicChatTypeIsLocationBased");
+ s.store_class_end();
+ }
+}
+
+pushMessageContentHidden::pushMessageContentHidden()
+ : is_pinned_()
+{}
+
+pushMessageContentHidden::pushMessageContentHidden(bool is_pinned_)
+ : is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentHidden::ID;
+
+void pushMessageContentHidden::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentHidden");
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentAnimation::pushMessageContentAnimation()
+ : animation_()
+ , caption_()
+ , is_pinned_()
+{}
+
+pushMessageContentAnimation::pushMessageContentAnimation(object_ptr<animation> &&animation_, string const &caption_, bool is_pinned_)
+ : animation_(std::move(animation_))
+ , caption_(caption_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentAnimation::ID;
+
+void pushMessageContentAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentAnimation");
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_field("caption", caption_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentAudio::pushMessageContentAudio()
+ : audio_()
+ , is_pinned_()
+{}
+
+pushMessageContentAudio::pushMessageContentAudio(object_ptr<audio> &&audio_, bool is_pinned_)
+ : audio_(std::move(audio_))
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentAudio::ID;
+
+void pushMessageContentAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentAudio");
+ s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get()));
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentContact::pushMessageContentContact()
+ : name_()
+ , is_pinned_()
+{}
+
+pushMessageContentContact::pushMessageContentContact(string const &name_, bool is_pinned_)
+ : name_(name_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentContact::ID;
+
+void pushMessageContentContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentContact");
+ s.store_field("name", name_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentContactRegistered::pushMessageContentContactRegistered() {
+}
+
+const std::int32_t pushMessageContentContactRegistered::ID;
+
+void pushMessageContentContactRegistered::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentContactRegistered");
+ s.store_class_end();
+ }
+}
+
+pushMessageContentDocument::pushMessageContentDocument()
+ : document_()
+ , is_pinned_()
+{}
+
+pushMessageContentDocument::pushMessageContentDocument(object_ptr<document> &&document_, bool is_pinned_)
+ : document_(std::move(document_))
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentDocument::ID;
+
+void pushMessageContentDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentDocument");
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentGame::pushMessageContentGame()
+ : title_()
+ , is_pinned_()
+{}
+
+pushMessageContentGame::pushMessageContentGame(string const &title_, bool is_pinned_)
+ : title_(title_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentGame::ID;
+
+void pushMessageContentGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentGame");
+ s.store_field("title", title_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentGameScore::pushMessageContentGameScore()
+ : title_()
+ , score_()
+ , is_pinned_()
+{}
+
+pushMessageContentGameScore::pushMessageContentGameScore(string const &title_, int32 score_, bool is_pinned_)
+ : title_(title_)
+ , score_(score_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentGameScore::ID;
+
+void pushMessageContentGameScore::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentGameScore");
+ s.store_field("title", title_);
+ s.store_field("score", score_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentInvoice::pushMessageContentInvoice()
+ : price_()
+ , is_pinned_()
+{}
+
+pushMessageContentInvoice::pushMessageContentInvoice(string const &price_, bool is_pinned_)
+ : price_(price_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentInvoice::ID;
+
+void pushMessageContentInvoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentInvoice");
+ s.store_field("price", price_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentLocation::pushMessageContentLocation()
+ : is_live_()
+ , is_pinned_()
+{}
+
+pushMessageContentLocation::pushMessageContentLocation(bool is_live_, bool is_pinned_)
+ : is_live_(is_live_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentLocation::ID;
+
+void pushMessageContentLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentLocation");
+ s.store_field("is_live", is_live_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentPhoto::pushMessageContentPhoto()
+ : photo_()
+ , caption_()
+ , is_secret_()
+ , is_pinned_()
+{}
+
+pushMessageContentPhoto::pushMessageContentPhoto(object_ptr<photo> &&photo_, string const &caption_, bool is_secret_, bool is_pinned_)
+ : photo_(std::move(photo_))
+ , caption_(caption_)
+ , is_secret_(is_secret_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentPhoto::ID;
+
+void pushMessageContentPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentPhoto");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("caption", caption_);
+ s.store_field("is_secret", is_secret_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentPoll::pushMessageContentPoll()
+ : question_()
+ , is_regular_()
+ , is_pinned_()
+{}
+
+pushMessageContentPoll::pushMessageContentPoll(string const &question_, bool is_regular_, bool is_pinned_)
+ : question_(question_)
+ , is_regular_(is_regular_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentPoll::ID;
+
+void pushMessageContentPoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentPoll");
+ s.store_field("question", question_);
+ s.store_field("is_regular", is_regular_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentScreenshotTaken::pushMessageContentScreenshotTaken() {
+}
+
+const std::int32_t pushMessageContentScreenshotTaken::ID;
+
+void pushMessageContentScreenshotTaken::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentScreenshotTaken");
+ s.store_class_end();
+ }
+}
+
+pushMessageContentSticker::pushMessageContentSticker()
+ : sticker_()
+ , emoji_()
+ , is_pinned_()
+{}
+
+pushMessageContentSticker::pushMessageContentSticker(object_ptr<sticker> &&sticker_, string const &emoji_, bool is_pinned_)
+ : sticker_(std::move(sticker_))
+ , emoji_(emoji_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentSticker::ID;
+
+void pushMessageContentSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentSticker");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_field("emoji", emoji_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentText::pushMessageContentText()
+ : text_()
+ , is_pinned_()
+{}
+
+pushMessageContentText::pushMessageContentText(string const &text_, bool is_pinned_)
+ : text_(text_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentText::ID;
+
+void pushMessageContentText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentText");
+ s.store_field("text", text_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentVideo::pushMessageContentVideo()
+ : video_()
+ , caption_()
+ , is_secret_()
+ , is_pinned_()
+{}
+
+pushMessageContentVideo::pushMessageContentVideo(object_ptr<video> &&video_, string const &caption_, bool is_secret_, bool is_pinned_)
+ : video_(std::move(video_))
+ , caption_(caption_)
+ , is_secret_(is_secret_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentVideo::ID;
+
+void pushMessageContentVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentVideo");
+ s.store_object_field("video", static_cast<const BaseObject *>(video_.get()));
+ s.store_field("caption", caption_);
+ s.store_field("is_secret", is_secret_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentVideoNote::pushMessageContentVideoNote()
+ : video_note_()
+ , is_pinned_()
+{}
+
+pushMessageContentVideoNote::pushMessageContentVideoNote(object_ptr<videoNote> &&video_note_, bool is_pinned_)
+ : video_note_(std::move(video_note_))
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentVideoNote::ID;
+
+void pushMessageContentVideoNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentVideoNote");
+ s.store_object_field("video_note", static_cast<const BaseObject *>(video_note_.get()));
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentVoiceNote::pushMessageContentVoiceNote()
+ : voice_note_()
+ , is_pinned_()
+{}
+
+pushMessageContentVoiceNote::pushMessageContentVoiceNote(object_ptr<voiceNote> &&voice_note_, bool is_pinned_)
+ : voice_note_(std::move(voice_note_))
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t pushMessageContentVoiceNote::ID;
+
+void pushMessageContentVoiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentVoiceNote");
+ s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get()));
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentBasicGroupChatCreate::pushMessageContentBasicGroupChatCreate() {
+}
+
+const std::int32_t pushMessageContentBasicGroupChatCreate::ID;
+
+void pushMessageContentBasicGroupChatCreate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentBasicGroupChatCreate");
+ s.store_class_end();
+ }
+}
+
+pushMessageContentChatAddMembers::pushMessageContentChatAddMembers()
+ : member_name_()
+ , is_current_user_()
+ , is_returned_()
+{}
+
+pushMessageContentChatAddMembers::pushMessageContentChatAddMembers(string const &member_name_, bool is_current_user_, bool is_returned_)
+ : member_name_(member_name_)
+ , is_current_user_(is_current_user_)
+ , is_returned_(is_returned_)
+{}
+
+const std::int32_t pushMessageContentChatAddMembers::ID;
+
+void pushMessageContentChatAddMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentChatAddMembers");
+ s.store_field("member_name", member_name_);
+ s.store_field("is_current_user", is_current_user_);
+ s.store_field("is_returned", is_returned_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentChatChangePhoto::pushMessageContentChatChangePhoto() {
+}
+
+const std::int32_t pushMessageContentChatChangePhoto::ID;
+
+void pushMessageContentChatChangePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentChatChangePhoto");
+ s.store_class_end();
+ }
+}
+
+pushMessageContentChatChangeTitle::pushMessageContentChatChangeTitle()
+ : title_()
+{}
+
+pushMessageContentChatChangeTitle::pushMessageContentChatChangeTitle(string const &title_)
+ : title_(title_)
+{}
+
+const std::int32_t pushMessageContentChatChangeTitle::ID;
+
+void pushMessageContentChatChangeTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentChatChangeTitle");
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentChatSetTheme::pushMessageContentChatSetTheme()
+ : theme_name_()
+{}
+
+pushMessageContentChatSetTheme::pushMessageContentChatSetTheme(string const &theme_name_)
+ : theme_name_(theme_name_)
+{}
+
+const std::int32_t pushMessageContentChatSetTheme::ID;
+
+void pushMessageContentChatSetTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentChatSetTheme");
+ s.store_field("theme_name", theme_name_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentChatDeleteMember::pushMessageContentChatDeleteMember()
+ : member_name_()
+ , is_current_user_()
+ , is_left_()
+{}
+
+pushMessageContentChatDeleteMember::pushMessageContentChatDeleteMember(string const &member_name_, bool is_current_user_, bool is_left_)
+ : member_name_(member_name_)
+ , is_current_user_(is_current_user_)
+ , is_left_(is_left_)
+{}
+
+const std::int32_t pushMessageContentChatDeleteMember::ID;
+
+void pushMessageContentChatDeleteMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentChatDeleteMember");
+ s.store_field("member_name", member_name_);
+ s.store_field("is_current_user", is_current_user_);
+ s.store_field("is_left", is_left_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentChatJoinByLink::pushMessageContentChatJoinByLink() {
+}
+
+const std::int32_t pushMessageContentChatJoinByLink::ID;
+
+void pushMessageContentChatJoinByLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentChatJoinByLink");
+ s.store_class_end();
+ }
+}
+
+pushMessageContentChatJoinByRequest::pushMessageContentChatJoinByRequest() {
+}
+
+const std::int32_t pushMessageContentChatJoinByRequest::ID;
+
+void pushMessageContentChatJoinByRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentChatJoinByRequest");
+ s.store_class_end();
+ }
+}
+
+pushMessageContentRecurringPayment::pushMessageContentRecurringPayment()
+ : amount_()
+{}
+
+pushMessageContentRecurringPayment::pushMessageContentRecurringPayment(string const &amount_)
+ : amount_(amount_)
+{}
+
+const std::int32_t pushMessageContentRecurringPayment::ID;
+
+void pushMessageContentRecurringPayment::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentRecurringPayment");
+ s.store_field("amount", amount_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentMessageForwards::pushMessageContentMessageForwards()
+ : total_count_()
+{}
+
+pushMessageContentMessageForwards::pushMessageContentMessageForwards(int32 total_count_)
+ : total_count_(total_count_)
+{}
+
+const std::int32_t pushMessageContentMessageForwards::ID;
+
+void pushMessageContentMessageForwards::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentMessageForwards");
+ s.store_field("total_count", total_count_);
+ s.store_class_end();
+ }
+}
+
+pushMessageContentMediaAlbum::pushMessageContentMediaAlbum()
+ : total_count_()
+ , has_photos_()
+ , has_videos_()
+ , has_audios_()
+ , has_documents_()
+{}
+
+pushMessageContentMediaAlbum::pushMessageContentMediaAlbum(int32 total_count_, bool has_photos_, bool has_videos_, bool has_audios_, bool has_documents_)
+ : total_count_(total_count_)
+ , has_photos_(has_photos_)
+ , has_videos_(has_videos_)
+ , has_audios_(has_audios_)
+ , has_documents_(has_documents_)
+{}
+
+const std::int32_t pushMessageContentMediaAlbum::ID;
+
+void pushMessageContentMediaAlbum::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushMessageContentMediaAlbum");
+ s.store_field("total_count", total_count_);
+ s.store_field("has_photos", has_photos_);
+ s.store_field("has_videos", has_videos_);
+ s.store_field("has_audios", has_audios_);
+ s.store_field("has_documents", has_documents_);
+ s.store_class_end();
+ }
+}
+
+pushReceiverId::pushReceiverId()
+ : id_()
+{}
+
+pushReceiverId::pushReceiverId(int64 id_)
+ : id_(id_)
+{}
+
+const std::int32_t pushReceiverId::ID;
+
+void pushReceiverId::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pushReceiverId");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+reactionTypeEmoji::reactionTypeEmoji()
+ : emoji_()
+{}
+
+reactionTypeEmoji::reactionTypeEmoji(string const &emoji_)
+ : emoji_(emoji_)
+{}
+
+const std::int32_t reactionTypeEmoji::ID;
+
+void reactionTypeEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reactionTypeEmoji");
+ s.store_field("emoji", emoji_);
+ s.store_class_end();
+ }
+}
+
+reactionTypeCustomEmoji::reactionTypeCustomEmoji()
+ : custom_emoji_id_()
+{}
+
+reactionTypeCustomEmoji::reactionTypeCustomEmoji(int64 custom_emoji_id_)
+ : custom_emoji_id_(custom_emoji_id_)
+{}
+
+const std::int32_t reactionTypeCustomEmoji::ID;
+
+void reactionTypeCustomEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reactionTypeCustomEmoji");
+ s.store_field("custom_emoji_id", custom_emoji_id_);
+ s.store_class_end();
+ }
+}
+
+recommendedChatFilter::recommendedChatFilter()
+ : filter_()
+ , description_()
+{}
+
+recommendedChatFilter::recommendedChatFilter(object_ptr<chatFilter> &&filter_, string const &description_)
+ : filter_(std::move(filter_))
+ , description_(description_)
+{}
+
+const std::int32_t recommendedChatFilter::ID;
+
+void recommendedChatFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recommendedChatFilter");
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("description", description_);
+ s.store_class_end();
+ }
+}
+
+recommendedChatFilters::recommendedChatFilters()
+ : chat_filters_()
+{}
+
+recommendedChatFilters::recommendedChatFilters(array<object_ptr<recommendedChatFilter>> &&chat_filters_)
+ : chat_filters_(std::move(chat_filters_))
+{}
+
+const std::int32_t recommendedChatFilters::ID;
+
+void recommendedChatFilters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recommendedChatFilters");
+ { s.store_vector_begin("chat_filters", chat_filters_.size()); for (const auto &_value : chat_filters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+recoveryEmailAddress::recoveryEmailAddress()
+ : recovery_email_address_()
+{}
+
+recoveryEmailAddress::recoveryEmailAddress(string const &recovery_email_address_)
+ : recovery_email_address_(recovery_email_address_)
+{}
+
+const std::int32_t recoveryEmailAddress::ID;
+
+void recoveryEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recoveryEmailAddress");
+ s.store_field("recovery_email_address", recovery_email_address_);
+ s.store_class_end();
+ }
+}
+
+remoteFile::remoteFile()
+ : id_()
+ , unique_id_()
+ , is_uploading_active_()
+ , is_uploading_completed_()
+ , uploaded_size_()
+{}
+
+remoteFile::remoteFile(string const &id_, string const &unique_id_, bool is_uploading_active_, bool is_uploading_completed_, int53 uploaded_size_)
+ : id_(id_)
+ , unique_id_(unique_id_)
+ , is_uploading_active_(is_uploading_active_)
+ , is_uploading_completed_(is_uploading_completed_)
+ , uploaded_size_(uploaded_size_)
+{}
+
+const std::int32_t remoteFile::ID;
+
+void remoteFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "remoteFile");
+ s.store_field("id", id_);
+ s.store_field("unique_id", unique_id_);
+ s.store_field("is_uploading_active", is_uploading_active_);
+ s.store_field("is_uploading_completed", is_uploading_completed_);
+ s.store_field("uploaded_size", uploaded_size_);
+ s.store_class_end();
+ }
+}
+
+replyMarkupRemoveKeyboard::replyMarkupRemoveKeyboard()
+ : is_personal_()
+{}
+
+replyMarkupRemoveKeyboard::replyMarkupRemoveKeyboard(bool is_personal_)
+ : is_personal_(is_personal_)
+{}
+
+const std::int32_t replyMarkupRemoveKeyboard::ID;
+
+void replyMarkupRemoveKeyboard::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "replyMarkupRemoveKeyboard");
+ s.store_field("is_personal", is_personal_);
+ s.store_class_end();
+ }
+}
+
+replyMarkupForceReply::replyMarkupForceReply()
+ : is_personal_()
+ , input_field_placeholder_()
+{}
+
+replyMarkupForceReply::replyMarkupForceReply(bool is_personal_, string const &input_field_placeholder_)
+ : is_personal_(is_personal_)
+ , input_field_placeholder_(input_field_placeholder_)
+{}
+
+const std::int32_t replyMarkupForceReply::ID;
+
+void replyMarkupForceReply::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "replyMarkupForceReply");
+ s.store_field("is_personal", is_personal_);
+ s.store_field("input_field_placeholder", input_field_placeholder_);
+ s.store_class_end();
+ }
+}
+
+replyMarkupShowKeyboard::replyMarkupShowKeyboard()
+ : rows_()
+ , resize_keyboard_()
+ , one_time_()
+ , is_personal_()
+ , input_field_placeholder_()
+{}
+
+replyMarkupShowKeyboard::replyMarkupShowKeyboard(array<array<object_ptr<keyboardButton>>> &&rows_, bool resize_keyboard_, bool one_time_, bool is_personal_, string const &input_field_placeholder_)
+ : rows_(std::move(rows_))
+ , resize_keyboard_(resize_keyboard_)
+ , one_time_(one_time_)
+ , is_personal_(is_personal_)
+ , input_field_placeholder_(input_field_placeholder_)
+{}
+
+const std::int32_t replyMarkupShowKeyboard::ID;
+
+void replyMarkupShowKeyboard::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "replyMarkupShowKeyboard");
+ { s.store_vector_begin("rows", rows_.size()); for (const auto &_value : rows_) { { s.store_vector_begin("", _value.size()); for (const auto &_value2 : _value) { s.store_object_field("", static_cast<const BaseObject *>(_value2.get())); } s.store_class_end(); } } s.store_class_end(); }
+ s.store_field("resize_keyboard", resize_keyboard_);
+ s.store_field("one_time", one_time_);
+ s.store_field("is_personal", is_personal_);
+ s.store_field("input_field_placeholder", input_field_placeholder_);
+ s.store_class_end();
+ }
+}
+
+replyMarkupInlineKeyboard::replyMarkupInlineKeyboard()
+ : rows_()
+{}
+
+replyMarkupInlineKeyboard::replyMarkupInlineKeyboard(array<array<object_ptr<inlineKeyboardButton>>> &&rows_)
+ : rows_(std::move(rows_))
+{}
+
+const std::int32_t replyMarkupInlineKeyboard::ID;
+
+void replyMarkupInlineKeyboard::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "replyMarkupInlineKeyboard");
+ { s.store_vector_begin("rows", rows_.size()); for (const auto &_value : rows_) { { s.store_vector_begin("", _value.size()); for (const auto &_value2 : _value) { s.store_object_field("", static_cast<const BaseObject *>(_value2.get())); } s.store_class_end(); } } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+resetPasswordResultOk::resetPasswordResultOk() {
+}
+
+const std::int32_t resetPasswordResultOk::ID;
+
+void resetPasswordResultOk::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resetPasswordResultOk");
+ s.store_class_end();
+ }
+}
+
+resetPasswordResultPending::resetPasswordResultPending()
+ : pending_reset_date_()
+{}
+
+resetPasswordResultPending::resetPasswordResultPending(int32 pending_reset_date_)
+ : pending_reset_date_(pending_reset_date_)
+{}
+
+const std::int32_t resetPasswordResultPending::ID;
+
+void resetPasswordResultPending::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resetPasswordResultPending");
+ s.store_field("pending_reset_date", pending_reset_date_);
+ s.store_class_end();
+ }
+}
+
+resetPasswordResultDeclined::resetPasswordResultDeclined()
+ : retry_date_()
+{}
+
+resetPasswordResultDeclined::resetPasswordResultDeclined(int32 retry_date_)
+ : retry_date_(retry_date_)
+{}
+
+const std::int32_t resetPasswordResultDeclined::ID;
+
+void resetPasswordResultDeclined::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resetPasswordResultDeclined");
+ s.store_field("retry_date", retry_date_);
+ s.store_class_end();
+ }
+}
+
+richTextPlain::richTextPlain()
+ : text_()
+{}
+
+richTextPlain::richTextPlain(string const &text_)
+ : text_(text_)
+{}
+
+const std::int32_t richTextPlain::ID;
+
+void richTextPlain::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextPlain");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+richTextBold::richTextBold()
+ : text_()
+{}
+
+richTextBold::richTextBold(object_ptr<RichText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t richTextBold::ID;
+
+void richTextBold::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextBold");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+richTextItalic::richTextItalic()
+ : text_()
+{}
+
+richTextItalic::richTextItalic(object_ptr<RichText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t richTextItalic::ID;
+
+void richTextItalic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextItalic");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+richTextUnderline::richTextUnderline()
+ : text_()
+{}
+
+richTextUnderline::richTextUnderline(object_ptr<RichText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t richTextUnderline::ID;
+
+void richTextUnderline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextUnderline");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+richTextStrikethrough::richTextStrikethrough()
+ : text_()
+{}
+
+richTextStrikethrough::richTextStrikethrough(object_ptr<RichText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t richTextStrikethrough::ID;
+
+void richTextStrikethrough::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextStrikethrough");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+richTextFixed::richTextFixed()
+ : text_()
+{}
+
+richTextFixed::richTextFixed(object_ptr<RichText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t richTextFixed::ID;
+
+void richTextFixed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextFixed");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+richTextUrl::richTextUrl()
+ : text_()
+ , url_()
+ , is_cached_()
+{}
+
+richTextUrl::richTextUrl(object_ptr<RichText> &&text_, string const &url_, bool is_cached_)
+ : text_(std::move(text_))
+ , url_(url_)
+ , is_cached_(is_cached_)
+{}
+
+const std::int32_t richTextUrl::ID;
+
+void richTextUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextUrl");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("url", url_);
+ s.store_field("is_cached", is_cached_);
+ s.store_class_end();
+ }
+}
+
+richTextEmailAddress::richTextEmailAddress()
+ : text_()
+ , email_address_()
+{}
+
+richTextEmailAddress::richTextEmailAddress(object_ptr<RichText> &&text_, string const &email_address_)
+ : text_(std::move(text_))
+ , email_address_(email_address_)
+{}
+
+const std::int32_t richTextEmailAddress::ID;
+
+void richTextEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextEmailAddress");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("email_address", email_address_);
+ s.store_class_end();
+ }
+}
+
+richTextSubscript::richTextSubscript()
+ : text_()
+{}
+
+richTextSubscript::richTextSubscript(object_ptr<RichText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t richTextSubscript::ID;
+
+void richTextSubscript::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextSubscript");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+richTextSuperscript::richTextSuperscript()
+ : text_()
+{}
+
+richTextSuperscript::richTextSuperscript(object_ptr<RichText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t richTextSuperscript::ID;
+
+void richTextSuperscript::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextSuperscript");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+richTextMarked::richTextMarked()
+ : text_()
+{}
+
+richTextMarked::richTextMarked(object_ptr<RichText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t richTextMarked::ID;
+
+void richTextMarked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextMarked");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+richTextPhoneNumber::richTextPhoneNumber()
+ : text_()
+ , phone_number_()
+{}
+
+richTextPhoneNumber::richTextPhoneNumber(object_ptr<RichText> &&text_, string const &phone_number_)
+ : text_(std::move(text_))
+ , phone_number_(phone_number_)
+{}
+
+const std::int32_t richTextPhoneNumber::ID;
+
+void richTextPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextPhoneNumber");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("phone_number", phone_number_);
+ s.store_class_end();
+ }
+}
+
+richTextIcon::richTextIcon()
+ : document_()
+ , width_()
+ , height_()
+{}
+
+richTextIcon::richTextIcon(object_ptr<document> &&document_, int32 width_, int32 height_)
+ : document_(std::move(document_))
+ , width_(width_)
+ , height_(height_)
+{}
+
+const std::int32_t richTextIcon::ID;
+
+void richTextIcon::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextIcon");
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_class_end();
+ }
+}
+
+richTextReference::richTextReference()
+ : text_()
+ , anchor_name_()
+ , url_()
+{}
+
+richTextReference::richTextReference(object_ptr<RichText> &&text_, string const &anchor_name_, string const &url_)
+ : text_(std::move(text_))
+ , anchor_name_(anchor_name_)
+ , url_(url_)
+{}
+
+const std::int32_t richTextReference::ID;
+
+void richTextReference::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextReference");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("anchor_name", anchor_name_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+richTextAnchor::richTextAnchor()
+ : name_()
+{}
+
+richTextAnchor::richTextAnchor(string const &name_)
+ : name_(name_)
+{}
+
+const std::int32_t richTextAnchor::ID;
+
+void richTextAnchor::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextAnchor");
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+richTextAnchorLink::richTextAnchorLink()
+ : text_()
+ , anchor_name_()
+ , url_()
+{}
+
+richTextAnchorLink::richTextAnchorLink(object_ptr<RichText> &&text_, string const &anchor_name_, string const &url_)
+ : text_(std::move(text_))
+ , anchor_name_(anchor_name_)
+ , url_(url_)
+{}
+
+const std::int32_t richTextAnchorLink::ID;
+
+void richTextAnchorLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTextAnchorLink");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("anchor_name", anchor_name_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+richTexts::richTexts()
+ : texts_()
+{}
+
+richTexts::richTexts(array<object_ptr<RichText>> &&texts_)
+ : texts_(std::move(texts_))
+{}
+
+const std::int32_t richTexts::ID;
+
+void richTexts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "richTexts");
+ { s.store_vector_begin("texts", texts_.size()); for (const auto &_value : texts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+rtmpUrl::rtmpUrl()
+ : url_()
+ , stream_key_()
+{}
+
+rtmpUrl::rtmpUrl(string const &url_, string const &stream_key_)
+ : url_(url_)
+ , stream_key_(stream_key_)
+{}
+
+const std::int32_t rtmpUrl::ID;
+
+void rtmpUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "rtmpUrl");
+ s.store_field("url", url_);
+ s.store_field("stream_key", stream_key_);
+ s.store_class_end();
+ }
+}
+
+savedCredentials::savedCredentials()
+ : id_()
+ , title_()
+{}
+
+savedCredentials::savedCredentials(string const &id_, string const &title_)
+ : id_(id_)
+ , title_(title_)
+{}
+
+const std::int32_t savedCredentials::ID;
+
+void savedCredentials::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "savedCredentials");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+scopeNotificationSettings::scopeNotificationSettings()
+ : mute_for_()
+ , sound_id_()
+ , show_preview_()
+ , disable_pinned_message_notifications_()
+ , disable_mention_notifications_()
+{}
+
+scopeNotificationSettings::scopeNotificationSettings(int32 mute_for_, int64 sound_id_, bool show_preview_, bool disable_pinned_message_notifications_, bool disable_mention_notifications_)
+ : mute_for_(mute_for_)
+ , sound_id_(sound_id_)
+ , show_preview_(show_preview_)
+ , disable_pinned_message_notifications_(disable_pinned_message_notifications_)
+ , disable_mention_notifications_(disable_mention_notifications_)
+{}
+
+const std::int32_t scopeNotificationSettings::ID;
+
+void scopeNotificationSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "scopeNotificationSettings");
+ s.store_field("mute_for", mute_for_);
+ s.store_field("sound_id", sound_id_);
+ s.store_field("show_preview", show_preview_);
+ s.store_field("disable_pinned_message_notifications", disable_pinned_message_notifications_);
+ s.store_field("disable_mention_notifications", disable_mention_notifications_);
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterEmpty::searchMessagesFilterEmpty() {
+}
+
+const std::int32_t searchMessagesFilterEmpty::ID;
+
+void searchMessagesFilterEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterEmpty");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterAnimation::searchMessagesFilterAnimation() {
+}
+
+const std::int32_t searchMessagesFilterAnimation::ID;
+
+void searchMessagesFilterAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterAnimation");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterAudio::searchMessagesFilterAudio() {
+}
+
+const std::int32_t searchMessagesFilterAudio::ID;
+
+void searchMessagesFilterAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterAudio");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterDocument::searchMessagesFilterDocument() {
+}
+
+const std::int32_t searchMessagesFilterDocument::ID;
+
+void searchMessagesFilterDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterDocument");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterPhoto::searchMessagesFilterPhoto() {
+}
+
+const std::int32_t searchMessagesFilterPhoto::ID;
+
+void searchMessagesFilterPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterPhoto");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterVideo::searchMessagesFilterVideo() {
+}
+
+const std::int32_t searchMessagesFilterVideo::ID;
+
+void searchMessagesFilterVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterVideo");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterVoiceNote::searchMessagesFilterVoiceNote() {
+}
+
+const std::int32_t searchMessagesFilterVoiceNote::ID;
+
+void searchMessagesFilterVoiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterVoiceNote");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterPhotoAndVideo::searchMessagesFilterPhotoAndVideo() {
+}
+
+const std::int32_t searchMessagesFilterPhotoAndVideo::ID;
+
+void searchMessagesFilterPhotoAndVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterPhotoAndVideo");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterUrl::searchMessagesFilterUrl() {
+}
+
+const std::int32_t searchMessagesFilterUrl::ID;
+
+void searchMessagesFilterUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterUrl");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterChatPhoto::searchMessagesFilterChatPhoto() {
+}
+
+const std::int32_t searchMessagesFilterChatPhoto::ID;
+
+void searchMessagesFilterChatPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterChatPhoto");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterVideoNote::searchMessagesFilterVideoNote() {
+}
+
+const std::int32_t searchMessagesFilterVideoNote::ID;
+
+void searchMessagesFilterVideoNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterVideoNote");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterVoiceAndVideoNote::searchMessagesFilterVoiceAndVideoNote() {
+}
+
+const std::int32_t searchMessagesFilterVoiceAndVideoNote::ID;
+
+void searchMessagesFilterVoiceAndVideoNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterVoiceAndVideoNote");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterMention::searchMessagesFilterMention() {
+}
+
+const std::int32_t searchMessagesFilterMention::ID;
+
+void searchMessagesFilterMention::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterMention");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterUnreadMention::searchMessagesFilterUnreadMention() {
+}
+
+const std::int32_t searchMessagesFilterUnreadMention::ID;
+
+void searchMessagesFilterUnreadMention::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterUnreadMention");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterUnreadReaction::searchMessagesFilterUnreadReaction() {
+}
+
+const std::int32_t searchMessagesFilterUnreadReaction::ID;
+
+void searchMessagesFilterUnreadReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterUnreadReaction");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterFailedToSend::searchMessagesFilterFailedToSend() {
+}
+
+const std::int32_t searchMessagesFilterFailedToSend::ID;
+
+void searchMessagesFilterFailedToSend::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterFailedToSend");
+ s.store_class_end();
+ }
+}
+
+searchMessagesFilterPinned::searchMessagesFilterPinned() {
+}
+
+const std::int32_t searchMessagesFilterPinned::ID;
+
+void searchMessagesFilterPinned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessagesFilterPinned");
+ s.store_class_end();
+ }
+}
+
+seconds::seconds()
+ : seconds_()
+{}
+
+seconds::seconds(double seconds_)
+ : seconds_(seconds_)
+{}
+
+const std::int32_t seconds::ID;
+
+void seconds::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "seconds");
+ s.store_field("seconds", seconds_);
+ s.store_class_end();
+ }
+}
+
+secretChat::secretChat()
+ : id_()
+ , user_id_()
+ , state_()
+ , is_outbound_()
+ , key_hash_()
+ , layer_()
+{}
+
+secretChat::secretChat(int32 id_, int53 user_id_, object_ptr<SecretChatState> &&state_, bool is_outbound_, bytes const &key_hash_, int32 layer_)
+ : id_(id_)
+ , user_id_(user_id_)
+ , state_(std::move(state_))
+ , is_outbound_(is_outbound_)
+ , key_hash_(std::move(key_hash_))
+ , layer_(layer_)
+{}
+
+const std::int32_t secretChat::ID;
+
+void secretChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secretChat");
+ s.store_field("id", id_);
+ s.store_field("user_id", user_id_);
+ s.store_object_field("state", static_cast<const BaseObject *>(state_.get()));
+ s.store_field("is_outbound", is_outbound_);
+ s.store_bytes_field("key_hash", key_hash_);
+ s.store_field("layer", layer_);
+ s.store_class_end();
+ }
+}
+
+secretChatStatePending::secretChatStatePending() {
+}
+
+const std::int32_t secretChatStatePending::ID;
+
+void secretChatStatePending::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secretChatStatePending");
+ s.store_class_end();
+ }
+}
+
+secretChatStateReady::secretChatStateReady() {
+}
+
+const std::int32_t secretChatStateReady::ID;
+
+void secretChatStateReady::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secretChatStateReady");
+ s.store_class_end();
+ }
+}
+
+secretChatStateClosed::secretChatStateClosed() {
+}
+
+const std::int32_t secretChatStateClosed::ID;
+
+void secretChatStateClosed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secretChatStateClosed");
+ s.store_class_end();
+ }
+}
+
+sentWebAppMessage::sentWebAppMessage()
+ : inline_message_id_()
+{}
+
+sentWebAppMessage::sentWebAppMessage(string const &inline_message_id_)
+ : inline_message_id_(inline_message_id_)
+{}
+
+const std::int32_t sentWebAppMessage::ID;
+
+void sentWebAppMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sentWebAppMessage");
+ s.store_field("inline_message_id", inline_message_id_);
+ s.store_class_end();
+ }
+}
+
+session::session()
+ : id_()
+ , is_current_()
+ , is_password_pending_()
+ , can_accept_secret_chats_()
+ , can_accept_calls_()
+ , type_()
+ , api_id_()
+ , application_name_()
+ , application_version_()
+ , is_official_application_()
+ , device_model_()
+ , platform_()
+ , system_version_()
+ , log_in_date_()
+ , last_active_date_()
+ , ip_()
+ , country_()
+ , region_()
+{}
+
+session::session(int64 id_, bool is_current_, bool is_password_pending_, bool can_accept_secret_chats_, bool can_accept_calls_, object_ptr<SessionType> &&type_, int32 api_id_, string const &application_name_, string const &application_version_, bool is_official_application_, string const &device_model_, string const &platform_, string const &system_version_, int32 log_in_date_, int32 last_active_date_, string const &ip_, string const &country_, string const &region_)
+ : id_(id_)
+ , is_current_(is_current_)
+ , is_password_pending_(is_password_pending_)
+ , can_accept_secret_chats_(can_accept_secret_chats_)
+ , can_accept_calls_(can_accept_calls_)
+ , type_(std::move(type_))
+ , api_id_(api_id_)
+ , application_name_(application_name_)
+ , application_version_(application_version_)
+ , is_official_application_(is_official_application_)
+ , device_model_(device_model_)
+ , platform_(platform_)
+ , system_version_(system_version_)
+ , log_in_date_(log_in_date_)
+ , last_active_date_(last_active_date_)
+ , ip_(ip_)
+ , country_(country_)
+ , region_(region_)
+{}
+
+const std::int32_t session::ID;
+
+void session::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "session");
+ s.store_field("id", id_);
+ s.store_field("is_current", is_current_);
+ s.store_field("is_password_pending", is_password_pending_);
+ s.store_field("can_accept_secret_chats", can_accept_secret_chats_);
+ s.store_field("can_accept_calls", can_accept_calls_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("api_id", api_id_);
+ s.store_field("application_name", application_name_);
+ s.store_field("application_version", application_version_);
+ s.store_field("is_official_application", is_official_application_);
+ s.store_field("device_model", device_model_);
+ s.store_field("platform", platform_);
+ s.store_field("system_version", system_version_);
+ s.store_field("log_in_date", log_in_date_);
+ s.store_field("last_active_date", last_active_date_);
+ s.store_field("ip", ip_);
+ s.store_field("country", country_);
+ s.store_field("region", region_);
+ s.store_class_end();
+ }
+}
+
+sessionTypeAndroid::sessionTypeAndroid() {
+}
+
+const std::int32_t sessionTypeAndroid::ID;
+
+void sessionTypeAndroid::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeAndroid");
+ s.store_class_end();
+ }
+}
+
+sessionTypeApple::sessionTypeApple() {
+}
+
+const std::int32_t sessionTypeApple::ID;
+
+void sessionTypeApple::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeApple");
+ s.store_class_end();
+ }
+}
+
+sessionTypeBrave::sessionTypeBrave() {
+}
+
+const std::int32_t sessionTypeBrave::ID;
+
+void sessionTypeBrave::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeBrave");
+ s.store_class_end();
+ }
+}
+
+sessionTypeChrome::sessionTypeChrome() {
+}
+
+const std::int32_t sessionTypeChrome::ID;
+
+void sessionTypeChrome::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeChrome");
+ s.store_class_end();
+ }
+}
+
+sessionTypeEdge::sessionTypeEdge() {
+}
+
+const std::int32_t sessionTypeEdge::ID;
+
+void sessionTypeEdge::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeEdge");
+ s.store_class_end();
+ }
+}
+
+sessionTypeFirefox::sessionTypeFirefox() {
+}
+
+const std::int32_t sessionTypeFirefox::ID;
+
+void sessionTypeFirefox::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeFirefox");
+ s.store_class_end();
+ }
+}
+
+sessionTypeIpad::sessionTypeIpad() {
+}
+
+const std::int32_t sessionTypeIpad::ID;
+
+void sessionTypeIpad::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeIpad");
+ s.store_class_end();
+ }
+}
+
+sessionTypeIphone::sessionTypeIphone() {
+}
+
+const std::int32_t sessionTypeIphone::ID;
+
+void sessionTypeIphone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeIphone");
+ s.store_class_end();
+ }
+}
+
+sessionTypeLinux::sessionTypeLinux() {
+}
+
+const std::int32_t sessionTypeLinux::ID;
+
+void sessionTypeLinux::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeLinux");
+ s.store_class_end();
+ }
+}
+
+sessionTypeMac::sessionTypeMac() {
+}
+
+const std::int32_t sessionTypeMac::ID;
+
+void sessionTypeMac::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeMac");
+ s.store_class_end();
+ }
+}
+
+sessionTypeOpera::sessionTypeOpera() {
+}
+
+const std::int32_t sessionTypeOpera::ID;
+
+void sessionTypeOpera::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeOpera");
+ s.store_class_end();
+ }
+}
+
+sessionTypeSafari::sessionTypeSafari() {
+}
+
+const std::int32_t sessionTypeSafari::ID;
+
+void sessionTypeSafari::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeSafari");
+ s.store_class_end();
+ }
+}
+
+sessionTypeUbuntu::sessionTypeUbuntu() {
+}
+
+const std::int32_t sessionTypeUbuntu::ID;
+
+void sessionTypeUbuntu::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeUbuntu");
+ s.store_class_end();
+ }
+}
+
+sessionTypeUnknown::sessionTypeUnknown() {
+}
+
+const std::int32_t sessionTypeUnknown::ID;
+
+void sessionTypeUnknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeUnknown");
+ s.store_class_end();
+ }
+}
+
+sessionTypeVivaldi::sessionTypeVivaldi() {
+}
+
+const std::int32_t sessionTypeVivaldi::ID;
+
+void sessionTypeVivaldi::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeVivaldi");
+ s.store_class_end();
+ }
+}
+
+sessionTypeWindows::sessionTypeWindows() {
+}
+
+const std::int32_t sessionTypeWindows::ID;
+
+void sessionTypeWindows::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeWindows");
+ s.store_class_end();
+ }
+}
+
+sessionTypeXbox::sessionTypeXbox() {
+}
+
+const std::int32_t sessionTypeXbox::ID;
+
+void sessionTypeXbox::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessionTypeXbox");
+ s.store_class_end();
+ }
+}
+
+sessions::sessions()
+ : sessions_()
+ , inactive_session_ttl_days_()
+{}
+
+sessions::sessions(array<object_ptr<session>> &&sessions_, int32 inactive_session_ttl_days_)
+ : sessions_(std::move(sessions_))
+ , inactive_session_ttl_days_(inactive_session_ttl_days_)
+{}
+
+const std::int32_t sessions::ID;
+
+void sessions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sessions");
+ { s.store_vector_begin("sessions", sessions_.size()); for (const auto &_value : sessions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("inactive_session_ttl_days", inactive_session_ttl_days_);
+ s.store_class_end();
+ }
+}
+
+shippingOption::shippingOption()
+ : id_()
+ , title_()
+ , price_parts_()
+{}
+
+shippingOption::shippingOption(string const &id_, string const &title_, array<object_ptr<labeledPricePart>> &&price_parts_)
+ : id_(id_)
+ , title_(title_)
+ , price_parts_(std::move(price_parts_))
+{}
+
+const std::int32_t shippingOption::ID;
+
+void shippingOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "shippingOption");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ { s.store_vector_begin("price_parts", price_parts_.size()); for (const auto &_value : price_parts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+speechRecognitionResultPending::speechRecognitionResultPending()
+ : partial_text_()
+{}
+
+speechRecognitionResultPending::speechRecognitionResultPending(string const &partial_text_)
+ : partial_text_(partial_text_)
+{}
+
+const std::int32_t speechRecognitionResultPending::ID;
+
+void speechRecognitionResultPending::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "speechRecognitionResultPending");
+ s.store_field("partial_text", partial_text_);
+ s.store_class_end();
+ }
+}
+
+speechRecognitionResultText::speechRecognitionResultText()
+ : text_()
+{}
+
+speechRecognitionResultText::speechRecognitionResultText(string const &text_)
+ : text_(text_)
+{}
+
+const std::int32_t speechRecognitionResultText::ID;
+
+void speechRecognitionResultText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "speechRecognitionResultText");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+speechRecognitionResultError::speechRecognitionResultError()
+ : error_()
+{}
+
+speechRecognitionResultError::speechRecognitionResultError(object_ptr<error> &&error_)
+ : error_(std::move(error_))
+{}
+
+const std::int32_t speechRecognitionResultError::ID;
+
+void speechRecognitionResultError::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "speechRecognitionResultError");
+ s.store_object_field("error", static_cast<const BaseObject *>(error_.get()));
+ s.store_class_end();
+ }
+}
+
+sponsoredMessage::sponsoredMessage()
+ : message_id_()
+ , is_recommended_()
+ , sponsor_chat_id_()
+ , sponsor_chat_info_()
+ , show_chat_photo_()
+ , link_()
+ , content_()
+{}
+
+sponsoredMessage::sponsoredMessage(int53 message_id_, bool is_recommended_, int53 sponsor_chat_id_, object_ptr<chatInviteLinkInfo> &&sponsor_chat_info_, bool show_chat_photo_, object_ptr<InternalLinkType> &&link_, object_ptr<MessageContent> &&content_)
+ : message_id_(message_id_)
+ , is_recommended_(is_recommended_)
+ , sponsor_chat_id_(sponsor_chat_id_)
+ , sponsor_chat_info_(std::move(sponsor_chat_info_))
+ , show_chat_photo_(show_chat_photo_)
+ , link_(std::move(link_))
+ , content_(std::move(content_))
+{}
+
+const std::int32_t sponsoredMessage::ID;
+
+void sponsoredMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sponsoredMessage");
+ s.store_field("message_id", message_id_);
+ s.store_field("is_recommended", is_recommended_);
+ s.store_field("sponsor_chat_id", sponsor_chat_id_);
+ s.store_object_field("sponsor_chat_info", static_cast<const BaseObject *>(sponsor_chat_info_.get()));
+ s.store_field("show_chat_photo", show_chat_photo_);
+ s.store_object_field("link", static_cast<const BaseObject *>(link_.get()));
+ s.store_object_field("content", static_cast<const BaseObject *>(content_.get()));
+ s.store_class_end();
+ }
+}
+
+sponsoredMessages::sponsoredMessages()
+ : messages_()
+ , messages_between_()
+{}
+
+sponsoredMessages::sponsoredMessages(array<object_ptr<sponsoredMessage>> &&messages_, int32 messages_between_)
+ : messages_(std::move(messages_))
+ , messages_between_(messages_between_)
+{}
+
+const std::int32_t sponsoredMessages::ID;
+
+void sponsoredMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sponsoredMessages");
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("messages_between", messages_between_);
+ s.store_class_end();
+ }
+}
+
+statisticalGraphData::statisticalGraphData()
+ : json_data_()
+ , zoom_token_()
+{}
+
+statisticalGraphData::statisticalGraphData(string const &json_data_, string const &zoom_token_)
+ : json_data_(json_data_)
+ , zoom_token_(zoom_token_)
+{}
+
+const std::int32_t statisticalGraphData::ID;
+
+void statisticalGraphData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statisticalGraphData");
+ s.store_field("json_data", json_data_);
+ s.store_field("zoom_token", zoom_token_);
+ s.store_class_end();
+ }
+}
+
+statisticalGraphAsync::statisticalGraphAsync()
+ : token_()
+{}
+
+statisticalGraphAsync::statisticalGraphAsync(string const &token_)
+ : token_(token_)
+{}
+
+const std::int32_t statisticalGraphAsync::ID;
+
+void statisticalGraphAsync::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statisticalGraphAsync");
+ s.store_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+statisticalGraphError::statisticalGraphError()
+ : error_message_()
+{}
+
+statisticalGraphError::statisticalGraphError(string const &error_message_)
+ : error_message_(error_message_)
+{}
+
+const std::int32_t statisticalGraphError::ID;
+
+void statisticalGraphError::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statisticalGraphError");
+ s.store_field("error_message", error_message_);
+ s.store_class_end();
+ }
+}
+
+statisticalValue::statisticalValue()
+ : value_()
+ , previous_value_()
+ , growth_rate_percentage_()
+{}
+
+statisticalValue::statisticalValue(double value_, double previous_value_, double growth_rate_percentage_)
+ : value_(value_)
+ , previous_value_(previous_value_)
+ , growth_rate_percentage_(growth_rate_percentage_)
+{}
+
+const std::int32_t statisticalValue::ID;
+
+void statisticalValue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statisticalValue");
+ s.store_field("value", value_);
+ s.store_field("previous_value", previous_value_);
+ s.store_field("growth_rate_percentage", growth_rate_percentage_);
+ s.store_class_end();
+ }
+}
+
+sticker::sticker()
+ : set_id_()
+ , width_()
+ , height_()
+ , emoji_()
+ , format_()
+ , type_()
+ , mask_position_()
+ , custom_emoji_id_()
+ , outline_()
+ , thumbnail_()
+ , is_premium_()
+ , premium_animation_()
+ , sticker_()
+{}
+
+sticker::sticker(int64 set_id_, int32 width_, int32 height_, string const &emoji_, object_ptr<StickerFormat> &&format_, object_ptr<StickerType> &&type_, object_ptr<maskPosition> &&mask_position_, int64 custom_emoji_id_, array<object_ptr<closedVectorPath>> &&outline_, object_ptr<thumbnail> &&thumbnail_, bool is_premium_, object_ptr<file> &&premium_animation_, object_ptr<file> &&sticker_)
+ : set_id_(set_id_)
+ , width_(width_)
+ , height_(height_)
+ , emoji_(emoji_)
+ , format_(std::move(format_))
+ , type_(std::move(type_))
+ , mask_position_(std::move(mask_position_))
+ , custom_emoji_id_(custom_emoji_id_)
+ , outline_(std::move(outline_))
+ , thumbnail_(std::move(thumbnail_))
+ , is_premium_(is_premium_)
+ , premium_animation_(std::move(premium_animation_))
+ , sticker_(std::move(sticker_))
+{}
+
+const std::int32_t sticker::ID;
+
+void sticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sticker");
+ s.store_field("set_id", set_id_);
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_field("emoji", emoji_);
+ s.store_object_field("format", static_cast<const BaseObject *>(format_.get()));
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_object_field("mask_position", static_cast<const BaseObject *>(mask_position_.get()));
+ s.store_field("custom_emoji_id", custom_emoji_id_);
+ { s.store_vector_begin("outline", outline_.size()); for (const auto &_value : outline_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_field("is_premium", is_premium_);
+ s.store_object_field("premium_animation", static_cast<const BaseObject *>(premium_animation_.get()));
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+stickerFormatWebp::stickerFormatWebp() {
+}
+
+const std::int32_t stickerFormatWebp::ID;
+
+void stickerFormatWebp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerFormatWebp");
+ s.store_class_end();
+ }
+}
+
+stickerFormatTgs::stickerFormatTgs() {
+}
+
+const std::int32_t stickerFormatTgs::ID;
+
+void stickerFormatTgs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerFormatTgs");
+ s.store_class_end();
+ }
+}
+
+stickerFormatWebm::stickerFormatWebm() {
+}
+
+const std::int32_t stickerFormatWebm::ID;
+
+void stickerFormatWebm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerFormatWebm");
+ s.store_class_end();
+ }
+}
+
+stickerSet::stickerSet()
+ : id_()
+ , title_()
+ , name_()
+ , thumbnail_()
+ , thumbnail_outline_()
+ , is_installed_()
+ , is_archived_()
+ , is_official_()
+ , sticker_format_()
+ , sticker_type_()
+ , is_viewed_()
+ , stickers_()
+ , emojis_()
+{}
+
+stickerSet::stickerSet(int64 id_, string const &title_, string const &name_, object_ptr<thumbnail> &&thumbnail_, array<object_ptr<closedVectorPath>> &&thumbnail_outline_, bool is_installed_, bool is_archived_, bool is_official_, object_ptr<StickerFormat> &&sticker_format_, object_ptr<StickerType> &&sticker_type_, bool is_viewed_, array<object_ptr<sticker>> &&stickers_, array<object_ptr<emojis>> &&emojis_)
+ : id_(id_)
+ , title_(title_)
+ , name_(name_)
+ , thumbnail_(std::move(thumbnail_))
+ , thumbnail_outline_(std::move(thumbnail_outline_))
+ , is_installed_(is_installed_)
+ , is_archived_(is_archived_)
+ , is_official_(is_official_)
+ , sticker_format_(std::move(sticker_format_))
+ , sticker_type_(std::move(sticker_type_))
+ , is_viewed_(is_viewed_)
+ , stickers_(std::move(stickers_))
+ , emojis_(std::move(emojis_))
+{}
+
+const std::int32_t stickerSet::ID;
+
+void stickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerSet");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_field("name", name_);
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ { s.store_vector_begin("thumbnail_outline", thumbnail_outline_.size()); for (const auto &_value : thumbnail_outline_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("is_installed", is_installed_);
+ s.store_field("is_archived", is_archived_);
+ s.store_field("is_official", is_official_);
+ s.store_object_field("sticker_format", static_cast<const BaseObject *>(sticker_format_.get()));
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ s.store_field("is_viewed", is_viewed_);
+ { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+stickerSetInfo::stickerSetInfo()
+ : id_()
+ , title_()
+ , name_()
+ , thumbnail_()
+ , thumbnail_outline_()
+ , is_installed_()
+ , is_archived_()
+ , is_official_()
+ , sticker_format_()
+ , sticker_type_()
+ , is_viewed_()
+ , size_()
+ , covers_()
+{}
+
+stickerSetInfo::stickerSetInfo(int64 id_, string const &title_, string const &name_, object_ptr<thumbnail> &&thumbnail_, array<object_ptr<closedVectorPath>> &&thumbnail_outline_, bool is_installed_, bool is_archived_, bool is_official_, object_ptr<StickerFormat> &&sticker_format_, object_ptr<StickerType> &&sticker_type_, bool is_viewed_, int32 size_, array<object_ptr<sticker>> &&covers_)
+ : id_(id_)
+ , title_(title_)
+ , name_(name_)
+ , thumbnail_(std::move(thumbnail_))
+ , thumbnail_outline_(std::move(thumbnail_outline_))
+ , is_installed_(is_installed_)
+ , is_archived_(is_archived_)
+ , is_official_(is_official_)
+ , sticker_format_(std::move(sticker_format_))
+ , sticker_type_(std::move(sticker_type_))
+ , is_viewed_(is_viewed_)
+ , size_(size_)
+ , covers_(std::move(covers_))
+{}
+
+const std::int32_t stickerSetInfo::ID;
+
+void stickerSetInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerSetInfo");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_field("name", name_);
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ { s.store_vector_begin("thumbnail_outline", thumbnail_outline_.size()); for (const auto &_value : thumbnail_outline_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("is_installed", is_installed_);
+ s.store_field("is_archived", is_archived_);
+ s.store_field("is_official", is_official_);
+ s.store_object_field("sticker_format", static_cast<const BaseObject *>(sticker_format_.get()));
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ s.store_field("is_viewed", is_viewed_);
+ s.store_field("size", size_);
+ { s.store_vector_begin("covers", covers_.size()); for (const auto &_value : covers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+stickerSets::stickerSets()
+ : total_count_()
+ , sets_()
+{}
+
+stickerSets::stickerSets(int32 total_count_, array<object_ptr<stickerSetInfo>> &&sets_)
+ : total_count_(total_count_)
+ , sets_(std::move(sets_))
+{}
+
+const std::int32_t stickerSets::ID;
+
+void stickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerSets");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+stickerTypeRegular::stickerTypeRegular() {
+}
+
+const std::int32_t stickerTypeRegular::ID;
+
+void stickerTypeRegular::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerTypeRegular");
+ s.store_class_end();
+ }
+}
+
+stickerTypeMask::stickerTypeMask() {
+}
+
+const std::int32_t stickerTypeMask::ID;
+
+void stickerTypeMask::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerTypeMask");
+ s.store_class_end();
+ }
+}
+
+stickerTypeCustomEmoji::stickerTypeCustomEmoji() {
+}
+
+const std::int32_t stickerTypeCustomEmoji::ID;
+
+void stickerTypeCustomEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerTypeCustomEmoji");
+ s.store_class_end();
+ }
+}
+
+stickers::stickers()
+ : stickers_()
+{}
+
+stickers::stickers(array<object_ptr<sticker>> &&stickers_)
+ : stickers_(std::move(stickers_))
+{}
+
+const std::int32_t stickers::ID;
+
+void stickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickers");
+ { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+storageStatistics::storageStatistics()
+ : size_()
+ , count_()
+ , by_chat_()
+{}
+
+storageStatistics::storageStatistics(int53 size_, int32 count_, array<object_ptr<storageStatisticsByChat>> &&by_chat_)
+ : size_(size_)
+ , count_(count_)
+ , by_chat_(std::move(by_chat_))
+{}
+
+const std::int32_t storageStatistics::ID;
+
+void storageStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storageStatistics");
+ s.store_field("size", size_);
+ s.store_field("count", count_);
+ { s.store_vector_begin("by_chat", by_chat_.size()); for (const auto &_value : by_chat_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+storageStatisticsByChat::storageStatisticsByChat()
+ : chat_id_()
+ , size_()
+ , count_()
+ , by_file_type_()
+{}
+
+storageStatisticsByChat::storageStatisticsByChat(int53 chat_id_, int53 size_, int32 count_, array<object_ptr<storageStatisticsByFileType>> &&by_file_type_)
+ : chat_id_(chat_id_)
+ , size_(size_)
+ , count_(count_)
+ , by_file_type_(std::move(by_file_type_))
+{}
+
+const std::int32_t storageStatisticsByChat::ID;
+
+void storageStatisticsByChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storageStatisticsByChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("size", size_);
+ s.store_field("count", count_);
+ { s.store_vector_begin("by_file_type", by_file_type_.size()); for (const auto &_value : by_file_type_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+storageStatisticsByFileType::storageStatisticsByFileType()
+ : file_type_()
+ , size_()
+ , count_()
+{}
+
+storageStatisticsByFileType::storageStatisticsByFileType(object_ptr<FileType> &&file_type_, int53 size_, int32 count_)
+ : file_type_(std::move(file_type_))
+ , size_(size_)
+ , count_(count_)
+{}
+
+const std::int32_t storageStatisticsByFileType::ID;
+
+void storageStatisticsByFileType::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storageStatisticsByFileType");
+ s.store_object_field("file_type", static_cast<const BaseObject *>(file_type_.get()));
+ s.store_field("size", size_);
+ s.store_field("count", count_);
+ s.store_class_end();
+ }
+}
+
+storageStatisticsFast::storageStatisticsFast()
+ : files_size_()
+ , file_count_()
+ , database_size_()
+ , language_pack_database_size_()
+ , log_size_()
+{}
+
+storageStatisticsFast::storageStatisticsFast(int53 files_size_, int32 file_count_, int53 database_size_, int53 language_pack_database_size_, int53 log_size_)
+ : files_size_(files_size_)
+ , file_count_(file_count_)
+ , database_size_(database_size_)
+ , language_pack_database_size_(language_pack_database_size_)
+ , log_size_(log_size_)
+{}
+
+const std::int32_t storageStatisticsFast::ID;
+
+void storageStatisticsFast::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storageStatisticsFast");
+ s.store_field("files_size", files_size_);
+ s.store_field("file_count", file_count_);
+ s.store_field("database_size", database_size_);
+ s.store_field("language_pack_database_size", language_pack_database_size_);
+ s.store_field("log_size", log_size_);
+ s.store_class_end();
+ }
+}
+
+storePaymentPurposePremiumSubscription::storePaymentPurposePremiumSubscription()
+ : is_restore_()
+{}
+
+storePaymentPurposePremiumSubscription::storePaymentPurposePremiumSubscription(bool is_restore_)
+ : is_restore_(is_restore_)
+{}
+
+const std::int32_t storePaymentPurposePremiumSubscription::ID;
+
+void storePaymentPurposePremiumSubscription::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storePaymentPurposePremiumSubscription");
+ s.store_field("is_restore", is_restore_);
+ s.store_class_end();
+ }
+}
+
+storePaymentPurposeGiftedPremium::storePaymentPurposeGiftedPremium()
+ : user_id_()
+ , currency_()
+ , amount_()
+{}
+
+storePaymentPurposeGiftedPremium::storePaymentPurposeGiftedPremium(int53 user_id_, string const &currency_, int53 amount_)
+ : user_id_(user_id_)
+ , currency_(currency_)
+ , amount_(amount_)
+{}
+
+const std::int32_t storePaymentPurposeGiftedPremium::ID;
+
+void storePaymentPurposeGiftedPremium::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storePaymentPurposeGiftedPremium");
+ s.store_field("user_id", user_id_);
+ s.store_field("currency", currency_);
+ s.store_field("amount", amount_);
+ s.store_class_end();
+ }
+}
+
+suggestedActionEnableArchiveAndMuteNewChats::suggestedActionEnableArchiveAndMuteNewChats() {
+}
+
+const std::int32_t suggestedActionEnableArchiveAndMuteNewChats::ID;
+
+void suggestedActionEnableArchiveAndMuteNewChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "suggestedActionEnableArchiveAndMuteNewChats");
+ s.store_class_end();
+ }
+}
+
+suggestedActionCheckPassword::suggestedActionCheckPassword() {
+}
+
+const std::int32_t suggestedActionCheckPassword::ID;
+
+void suggestedActionCheckPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "suggestedActionCheckPassword");
+ s.store_class_end();
+ }
+}
+
+suggestedActionCheckPhoneNumber::suggestedActionCheckPhoneNumber() {
+}
+
+const std::int32_t suggestedActionCheckPhoneNumber::ID;
+
+void suggestedActionCheckPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "suggestedActionCheckPhoneNumber");
+ s.store_class_end();
+ }
+}
+
+suggestedActionViewChecksHint::suggestedActionViewChecksHint() {
+}
+
+const std::int32_t suggestedActionViewChecksHint::ID;
+
+void suggestedActionViewChecksHint::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "suggestedActionViewChecksHint");
+ s.store_class_end();
+ }
+}
+
+suggestedActionConvertToBroadcastGroup::suggestedActionConvertToBroadcastGroup()
+ : supergroup_id_()
+{}
+
+suggestedActionConvertToBroadcastGroup::suggestedActionConvertToBroadcastGroup(int53 supergroup_id_)
+ : supergroup_id_(supergroup_id_)
+{}
+
+const std::int32_t suggestedActionConvertToBroadcastGroup::ID;
+
+void suggestedActionConvertToBroadcastGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "suggestedActionConvertToBroadcastGroup");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_class_end();
+ }
+}
+
+suggestedActionSetPassword::suggestedActionSetPassword()
+ : authorization_delay_()
+{}
+
+suggestedActionSetPassword::suggestedActionSetPassword(int32 authorization_delay_)
+ : authorization_delay_(authorization_delay_)
+{}
+
+const std::int32_t suggestedActionSetPassword::ID;
+
+void suggestedActionSetPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "suggestedActionSetPassword");
+ s.store_field("authorization_delay", authorization_delay_);
+ s.store_class_end();
+ }
+}
+
+supergroup::supergroup()
+ : id_()
+ , usernames_()
+ , date_()
+ , status_()
+ , member_count_()
+ , has_linked_chat_()
+ , has_location_()
+ , sign_messages_()
+ , join_to_send_messages_()
+ , join_by_request_()
+ , is_slow_mode_enabled_()
+ , is_channel_()
+ , is_broadcast_group_()
+ , is_forum_()
+ , is_verified_()
+ , restriction_reason_()
+ , is_scam_()
+ , is_fake_()
+{}
+
+supergroup::supergroup(int53 id_, object_ptr<usernames> &&usernames_, int32 date_, object_ptr<ChatMemberStatus> &&status_, int32 member_count_, bool has_linked_chat_, bool has_location_, bool sign_messages_, bool join_to_send_messages_, bool join_by_request_, bool is_slow_mode_enabled_, bool is_channel_, bool is_broadcast_group_, bool is_forum_, bool is_verified_, string const &restriction_reason_, bool is_scam_, bool is_fake_)
+ : id_(id_)
+ , usernames_(std::move(usernames_))
+ , date_(date_)
+ , status_(std::move(status_))
+ , member_count_(member_count_)
+ , has_linked_chat_(has_linked_chat_)
+ , has_location_(has_location_)
+ , sign_messages_(sign_messages_)
+ , join_to_send_messages_(join_to_send_messages_)
+ , join_by_request_(join_by_request_)
+ , is_slow_mode_enabled_(is_slow_mode_enabled_)
+ , is_channel_(is_channel_)
+ , is_broadcast_group_(is_broadcast_group_)
+ , is_forum_(is_forum_)
+ , is_verified_(is_verified_)
+ , restriction_reason_(restriction_reason_)
+ , is_scam_(is_scam_)
+ , is_fake_(is_fake_)
+{}
+
+const std::int32_t supergroup::ID;
+
+void supergroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "supergroup");
+ s.store_field("id", id_);
+ s.store_object_field("usernames", static_cast<const BaseObject *>(usernames_.get()));
+ s.store_field("date", date_);
+ s.store_object_field("status", static_cast<const BaseObject *>(status_.get()));
+ s.store_field("member_count", member_count_);
+ s.store_field("has_linked_chat", has_linked_chat_);
+ s.store_field("has_location", has_location_);
+ s.store_field("sign_messages", sign_messages_);
+ s.store_field("join_to_send_messages", join_to_send_messages_);
+ s.store_field("join_by_request", join_by_request_);
+ s.store_field("is_slow_mode_enabled", is_slow_mode_enabled_);
+ s.store_field("is_channel", is_channel_);
+ s.store_field("is_broadcast_group", is_broadcast_group_);
+ s.store_field("is_forum", is_forum_);
+ s.store_field("is_verified", is_verified_);
+ s.store_field("restriction_reason", restriction_reason_);
+ s.store_field("is_scam", is_scam_);
+ s.store_field("is_fake", is_fake_);
+ s.store_class_end();
+ }
+}
+
+supergroupFullInfo::supergroupFullInfo()
+ : photo_()
+ , description_()
+ , member_count_()
+ , administrator_count_()
+ , restricted_count_()
+ , banned_count_()
+ , linked_chat_id_()
+ , slow_mode_delay_()
+ , slow_mode_delay_expires_in_()
+ , can_get_members_()
+ , can_set_username_()
+ , can_set_sticker_set_()
+ , can_set_location_()
+ , can_get_statistics_()
+ , is_all_history_available_()
+ , sticker_set_id_()
+ , location_()
+ , invite_link_()
+ , bot_commands_()
+ , upgraded_from_basic_group_id_()
+ , upgraded_from_max_message_id_()
+{}
+
+supergroupFullInfo::supergroupFullInfo(object_ptr<chatPhoto> &&photo_, string const &description_, int32 member_count_, int32 administrator_count_, int32 restricted_count_, int32 banned_count_, int53 linked_chat_id_, int32 slow_mode_delay_, double slow_mode_delay_expires_in_, bool can_get_members_, bool can_set_username_, bool can_set_sticker_set_, bool can_set_location_, bool can_get_statistics_, bool is_all_history_available_, int64 sticker_set_id_, object_ptr<chatLocation> &&location_, object_ptr<chatInviteLink> &&invite_link_, array<object_ptr<botCommands>> &&bot_commands_, int53 upgraded_from_basic_group_id_, int53 upgraded_from_max_message_id_)
+ : photo_(std::move(photo_))
+ , description_(description_)
+ , member_count_(member_count_)
+ , administrator_count_(administrator_count_)
+ , restricted_count_(restricted_count_)
+ , banned_count_(banned_count_)
+ , linked_chat_id_(linked_chat_id_)
+ , slow_mode_delay_(slow_mode_delay_)
+ , slow_mode_delay_expires_in_(slow_mode_delay_expires_in_)
+ , can_get_members_(can_get_members_)
+ , can_set_username_(can_set_username_)
+ , can_set_sticker_set_(can_set_sticker_set_)
+ , can_set_location_(can_set_location_)
+ , can_get_statistics_(can_get_statistics_)
+ , is_all_history_available_(is_all_history_available_)
+ , sticker_set_id_(sticker_set_id_)
+ , location_(std::move(location_))
+ , invite_link_(std::move(invite_link_))
+ , bot_commands_(std::move(bot_commands_))
+ , upgraded_from_basic_group_id_(upgraded_from_basic_group_id_)
+ , upgraded_from_max_message_id_(upgraded_from_max_message_id_)
+{}
+
+const std::int32_t supergroupFullInfo::ID;
+
+void supergroupFullInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "supergroupFullInfo");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("description", description_);
+ s.store_field("member_count", member_count_);
+ s.store_field("administrator_count", administrator_count_);
+ s.store_field("restricted_count", restricted_count_);
+ s.store_field("banned_count", banned_count_);
+ s.store_field("linked_chat_id", linked_chat_id_);
+ s.store_field("slow_mode_delay", slow_mode_delay_);
+ s.store_field("slow_mode_delay_expires_in", slow_mode_delay_expires_in_);
+ s.store_field("can_get_members", can_get_members_);
+ s.store_field("can_set_username", can_set_username_);
+ s.store_field("can_set_sticker_set", can_set_sticker_set_);
+ s.store_field("can_set_location", can_set_location_);
+ s.store_field("can_get_statistics", can_get_statistics_);
+ s.store_field("is_all_history_available", is_all_history_available_);
+ s.store_field("sticker_set_id", sticker_set_id_);
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get()));
+ { s.store_vector_begin("bot_commands", bot_commands_.size()); for (const auto &_value : bot_commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("upgraded_from_basic_group_id", upgraded_from_basic_group_id_);
+ s.store_field("upgraded_from_max_message_id", upgraded_from_max_message_id_);
+ s.store_class_end();
+ }
+}
+
+supergroupMembersFilterRecent::supergroupMembersFilterRecent() {
+}
+
+const std::int32_t supergroupMembersFilterRecent::ID;
+
+void supergroupMembersFilterRecent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "supergroupMembersFilterRecent");
+ s.store_class_end();
+ }
+}
+
+supergroupMembersFilterContacts::supergroupMembersFilterContacts()
+ : query_()
+{}
+
+supergroupMembersFilterContacts::supergroupMembersFilterContacts(string const &query_)
+ : query_(query_)
+{}
+
+const std::int32_t supergroupMembersFilterContacts::ID;
+
+void supergroupMembersFilterContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "supergroupMembersFilterContacts");
+ s.store_field("query", query_);
+ s.store_class_end();
+ }
+}
+
+supergroupMembersFilterAdministrators::supergroupMembersFilterAdministrators() {
+}
+
+const std::int32_t supergroupMembersFilterAdministrators::ID;
+
+void supergroupMembersFilterAdministrators::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "supergroupMembersFilterAdministrators");
+ s.store_class_end();
+ }
+}
+
+supergroupMembersFilterSearch::supergroupMembersFilterSearch()
+ : query_()
+{}
+
+supergroupMembersFilterSearch::supergroupMembersFilterSearch(string const &query_)
+ : query_(query_)
+{}
+
+const std::int32_t supergroupMembersFilterSearch::ID;
+
+void supergroupMembersFilterSearch::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "supergroupMembersFilterSearch");
+ s.store_field("query", query_);
+ s.store_class_end();
+ }
+}
+
+supergroupMembersFilterRestricted::supergroupMembersFilterRestricted()
+ : query_()
+{}
+
+supergroupMembersFilterRestricted::supergroupMembersFilterRestricted(string const &query_)
+ : query_(query_)
+{}
+
+const std::int32_t supergroupMembersFilterRestricted::ID;
+
+void supergroupMembersFilterRestricted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "supergroupMembersFilterRestricted");
+ s.store_field("query", query_);
+ s.store_class_end();
+ }
+}
+
+supergroupMembersFilterBanned::supergroupMembersFilterBanned()
+ : query_()
+{}
+
+supergroupMembersFilterBanned::supergroupMembersFilterBanned(string const &query_)
+ : query_(query_)
+{}
+
+const std::int32_t supergroupMembersFilterBanned::ID;
+
+void supergroupMembersFilterBanned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "supergroupMembersFilterBanned");
+ s.store_field("query", query_);
+ s.store_class_end();
+ }
+}
+
+supergroupMembersFilterMention::supergroupMembersFilterMention()
+ : query_()
+ , message_thread_id_()
+{}
+
+supergroupMembersFilterMention::supergroupMembersFilterMention(string const &query_, int53 message_thread_id_)
+ : query_(query_)
+ , message_thread_id_(message_thread_id_)
+{}
+
+const std::int32_t supergroupMembersFilterMention::ID;
+
+void supergroupMembersFilterMention::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "supergroupMembersFilterMention");
+ s.store_field("query", query_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_class_end();
+ }
+}
+
+supergroupMembersFilterBots::supergroupMembersFilterBots() {
+}
+
+const std::int32_t supergroupMembersFilterBots::ID;
+
+void supergroupMembersFilterBots::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "supergroupMembersFilterBots");
+ s.store_class_end();
+ }
+}
+
+tMeUrl::tMeUrl()
+ : url_()
+ , type_()
+{}
+
+tMeUrl::tMeUrl(string const &url_, object_ptr<TMeUrlType> &&type_)
+ : url_(url_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t tMeUrl::ID;
+
+void tMeUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "tMeUrl");
+ s.store_field("url", url_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+tMeUrlTypeUser::tMeUrlTypeUser()
+ : user_id_()
+{}
+
+tMeUrlTypeUser::tMeUrlTypeUser(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t tMeUrlTypeUser::ID;
+
+void tMeUrlTypeUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "tMeUrlTypeUser");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+tMeUrlTypeSupergroup::tMeUrlTypeSupergroup()
+ : supergroup_id_()
+{}
+
+tMeUrlTypeSupergroup::tMeUrlTypeSupergroup(int53 supergroup_id_)
+ : supergroup_id_(supergroup_id_)
+{}
+
+const std::int32_t tMeUrlTypeSupergroup::ID;
+
+void tMeUrlTypeSupergroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "tMeUrlTypeSupergroup");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_class_end();
+ }
+}
+
+tMeUrlTypeChatInvite::tMeUrlTypeChatInvite()
+ : info_()
+{}
+
+tMeUrlTypeChatInvite::tMeUrlTypeChatInvite(object_ptr<chatInviteLinkInfo> &&info_)
+ : info_(std::move(info_))
+{}
+
+const std::int32_t tMeUrlTypeChatInvite::ID;
+
+void tMeUrlTypeChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "tMeUrlTypeChatInvite");
+ s.store_object_field("info", static_cast<const BaseObject *>(info_.get()));
+ s.store_class_end();
+ }
+}
+
+tMeUrlTypeStickerSet::tMeUrlTypeStickerSet()
+ : sticker_set_id_()
+{}
+
+tMeUrlTypeStickerSet::tMeUrlTypeStickerSet(int64 sticker_set_id_)
+ : sticker_set_id_(sticker_set_id_)
+{}
+
+const std::int32_t tMeUrlTypeStickerSet::ID;
+
+void tMeUrlTypeStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "tMeUrlTypeStickerSet");
+ s.store_field("sticker_set_id", sticker_set_id_);
+ s.store_class_end();
+ }
+}
+
+tMeUrls::tMeUrls()
+ : urls_()
+{}
+
+tMeUrls::tMeUrls(array<object_ptr<tMeUrl>> &&urls_)
+ : urls_(std::move(urls_))
+{}
+
+const std::int32_t tMeUrls::ID;
+
+void tMeUrls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "tMeUrls");
+ { s.store_vector_begin("urls", urls_.size()); for (const auto &_value : urls_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+targetChatCurrent::targetChatCurrent() {
+}
+
+const std::int32_t targetChatCurrent::ID;
+
+void targetChatCurrent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "targetChatCurrent");
+ s.store_class_end();
+ }
+}
+
+targetChatChosen::targetChatChosen()
+ : allow_user_chats_()
+ , allow_bot_chats_()
+ , allow_group_chats_()
+ , allow_channel_chats_()
+{}
+
+targetChatChosen::targetChatChosen(bool allow_user_chats_, bool allow_bot_chats_, bool allow_group_chats_, bool allow_channel_chats_)
+ : allow_user_chats_(allow_user_chats_)
+ , allow_bot_chats_(allow_bot_chats_)
+ , allow_group_chats_(allow_group_chats_)
+ , allow_channel_chats_(allow_channel_chats_)
+{}
+
+const std::int32_t targetChatChosen::ID;
+
+void targetChatChosen::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "targetChatChosen");
+ s.store_field("allow_user_chats", allow_user_chats_);
+ s.store_field("allow_bot_chats", allow_bot_chats_);
+ s.store_field("allow_group_chats", allow_group_chats_);
+ s.store_field("allow_channel_chats", allow_channel_chats_);
+ s.store_class_end();
+ }
+}
+
+targetChatInternalLink::targetChatInternalLink()
+ : link_()
+{}
+
+targetChatInternalLink::targetChatInternalLink(object_ptr<InternalLinkType> &&link_)
+ : link_(std::move(link_))
+{}
+
+const std::int32_t targetChatInternalLink::ID;
+
+void targetChatInternalLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "targetChatInternalLink");
+ s.store_object_field("link", static_cast<const BaseObject *>(link_.get()));
+ s.store_class_end();
+ }
+}
+
+temporaryPasswordState::temporaryPasswordState()
+ : has_password_()
+ , valid_for_()
+{}
+
+temporaryPasswordState::temporaryPasswordState(bool has_password_, int32 valid_for_)
+ : has_password_(has_password_)
+ , valid_for_(valid_for_)
+{}
+
+const std::int32_t temporaryPasswordState::ID;
+
+void temporaryPasswordState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "temporaryPasswordState");
+ s.store_field("has_password", has_password_);
+ s.store_field("valid_for", valid_for_);
+ s.store_class_end();
+ }
+}
+
+termsOfService::termsOfService()
+ : text_()
+ , min_user_age_()
+ , show_popup_()
+{}
+
+termsOfService::termsOfService(object_ptr<formattedText> &&text_, int32 min_user_age_, bool show_popup_)
+ : text_(std::move(text_))
+ , min_user_age_(min_user_age_)
+ , show_popup_(show_popup_)
+{}
+
+const std::int32_t termsOfService::ID;
+
+void termsOfService::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "termsOfService");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("min_user_age", min_user_age_);
+ s.store_field("show_popup", show_popup_);
+ s.store_class_end();
+ }
+}
+
+testBytes::testBytes()
+ : value_()
+{}
+
+testBytes::testBytes(bytes const &value_)
+ : value_(std::move(value_))
+{}
+
+const std::int32_t testBytes::ID;
+
+void testBytes::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testBytes");
+ s.store_bytes_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+testInt::testInt()
+ : value_()
+{}
+
+testInt::testInt(int32 value_)
+ : value_(value_)
+{}
+
+const std::int32_t testInt::ID;
+
+void testInt::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testInt");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+testString::testString()
+ : value_()
+{}
+
+testString::testString(string const &value_)
+ : value_(value_)
+{}
+
+const std::int32_t testString::ID;
+
+void testString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testString");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+testVectorInt::testVectorInt()
+ : value_()
+{}
+
+testVectorInt::testVectorInt(array<int32> &&value_)
+ : value_(std::move(value_))
+{}
+
+const std::int32_t testVectorInt::ID;
+
+void testVectorInt::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testVectorInt");
+ { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+testVectorIntObject::testVectorIntObject()
+ : value_()
+{}
+
+testVectorIntObject::testVectorIntObject(array<object_ptr<testInt>> &&value_)
+ : value_(std::move(value_))
+{}
+
+const std::int32_t testVectorIntObject::ID;
+
+void testVectorIntObject::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testVectorIntObject");
+ { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+testVectorString::testVectorString()
+ : value_()
+{}
+
+testVectorString::testVectorString(array<string> &&value_)
+ : value_(std::move(value_))
+{}
+
+const std::int32_t testVectorString::ID;
+
+void testVectorString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testVectorString");
+ { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+testVectorStringObject::testVectorStringObject()
+ : value_()
+{}
+
+testVectorStringObject::testVectorStringObject(array<object_ptr<testString>> &&value_)
+ : value_(std::move(value_))
+{}
+
+const std::int32_t testVectorStringObject::ID;
+
+void testVectorStringObject::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testVectorStringObject");
+ { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+text::text()
+ : text_()
+{}
+
+text::text(string const &text_)
+ : text_(text_)
+{}
+
+const std::int32_t text::ID;
+
+void text::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "text");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+textEntities::textEntities()
+ : entities_()
+{}
+
+textEntities::textEntities(array<object_ptr<textEntity>> &&entities_)
+ : entities_(std::move(entities_))
+{}
+
+const std::int32_t textEntities::ID;
+
+void textEntities::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntities");
+ { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+textEntity::textEntity()
+ : offset_()
+ , length_()
+ , type_()
+{}
+
+textEntity::textEntity(int32 offset_, int32 length_, object_ptr<TextEntityType> &&type_)
+ : offset_(offset_)
+ , length_(length_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t textEntity::ID;
+
+void textEntity::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntity");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+textEntityTypeMention::textEntityTypeMention() {
+}
+
+const std::int32_t textEntityTypeMention::ID;
+
+void textEntityTypeMention::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeMention");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeHashtag::textEntityTypeHashtag() {
+}
+
+const std::int32_t textEntityTypeHashtag::ID;
+
+void textEntityTypeHashtag::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeHashtag");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeCashtag::textEntityTypeCashtag() {
+}
+
+const std::int32_t textEntityTypeCashtag::ID;
+
+void textEntityTypeCashtag::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeCashtag");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeBotCommand::textEntityTypeBotCommand() {
+}
+
+const std::int32_t textEntityTypeBotCommand::ID;
+
+void textEntityTypeBotCommand::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeBotCommand");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeUrl::textEntityTypeUrl() {
+}
+
+const std::int32_t textEntityTypeUrl::ID;
+
+void textEntityTypeUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeUrl");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeEmailAddress::textEntityTypeEmailAddress() {
+}
+
+const std::int32_t textEntityTypeEmailAddress::ID;
+
+void textEntityTypeEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeEmailAddress");
+ s.store_class_end();
+ }
+}
+
+textEntityTypePhoneNumber::textEntityTypePhoneNumber() {
+}
+
+const std::int32_t textEntityTypePhoneNumber::ID;
+
+void textEntityTypePhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypePhoneNumber");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeBankCardNumber::textEntityTypeBankCardNumber() {
+}
+
+const std::int32_t textEntityTypeBankCardNumber::ID;
+
+void textEntityTypeBankCardNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeBankCardNumber");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeBold::textEntityTypeBold() {
+}
+
+const std::int32_t textEntityTypeBold::ID;
+
+void textEntityTypeBold::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeBold");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeItalic::textEntityTypeItalic() {
+}
+
+const std::int32_t textEntityTypeItalic::ID;
+
+void textEntityTypeItalic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeItalic");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeUnderline::textEntityTypeUnderline() {
+}
+
+const std::int32_t textEntityTypeUnderline::ID;
+
+void textEntityTypeUnderline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeUnderline");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeStrikethrough::textEntityTypeStrikethrough() {
+}
+
+const std::int32_t textEntityTypeStrikethrough::ID;
+
+void textEntityTypeStrikethrough::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeStrikethrough");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeSpoiler::textEntityTypeSpoiler() {
+}
+
+const std::int32_t textEntityTypeSpoiler::ID;
+
+void textEntityTypeSpoiler::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeSpoiler");
+ s.store_class_end();
+ }
+}
+
+textEntityTypeCode::textEntityTypeCode() {
+}
+
+const std::int32_t textEntityTypeCode::ID;
+
+void textEntityTypeCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeCode");
+ s.store_class_end();
+ }
+}
+
+textEntityTypePre::textEntityTypePre() {
+}
+
+const std::int32_t textEntityTypePre::ID;
+
+void textEntityTypePre::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypePre");
+ s.store_class_end();
+ }
+}
+
+textEntityTypePreCode::textEntityTypePreCode()
+ : language_()
+{}
+
+textEntityTypePreCode::textEntityTypePreCode(string const &language_)
+ : language_(language_)
+{}
+
+const std::int32_t textEntityTypePreCode::ID;
+
+void textEntityTypePreCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypePreCode");
+ s.store_field("language", language_);
+ s.store_class_end();
+ }
+}
+
+textEntityTypeTextUrl::textEntityTypeTextUrl()
+ : url_()
+{}
+
+textEntityTypeTextUrl::textEntityTypeTextUrl(string const &url_)
+ : url_(url_)
+{}
+
+const std::int32_t textEntityTypeTextUrl::ID;
+
+void textEntityTypeTextUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeTextUrl");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+textEntityTypeMentionName::textEntityTypeMentionName()
+ : user_id_()
+{}
+
+textEntityTypeMentionName::textEntityTypeMentionName(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t textEntityTypeMentionName::ID;
+
+void textEntityTypeMentionName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeMentionName");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+textEntityTypeCustomEmoji::textEntityTypeCustomEmoji()
+ : custom_emoji_id_()
+{}
+
+textEntityTypeCustomEmoji::textEntityTypeCustomEmoji(int64 custom_emoji_id_)
+ : custom_emoji_id_(custom_emoji_id_)
+{}
+
+const std::int32_t textEntityTypeCustomEmoji::ID;
+
+void textEntityTypeCustomEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeCustomEmoji");
+ s.store_field("custom_emoji_id", custom_emoji_id_);
+ s.store_class_end();
+ }
+}
+
+textEntityTypeMediaTimestamp::textEntityTypeMediaTimestamp()
+ : media_timestamp_()
+{}
+
+textEntityTypeMediaTimestamp::textEntityTypeMediaTimestamp(int32 media_timestamp_)
+ : media_timestamp_(media_timestamp_)
+{}
+
+const std::int32_t textEntityTypeMediaTimestamp::ID;
+
+void textEntityTypeMediaTimestamp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEntityTypeMediaTimestamp");
+ s.store_field("media_timestamp", media_timestamp_);
+ s.store_class_end();
+ }
+}
+
+textParseModeMarkdown::textParseModeMarkdown()
+ : version_()
+{}
+
+textParseModeMarkdown::textParseModeMarkdown(int32 version_)
+ : version_(version_)
+{}
+
+const std::int32_t textParseModeMarkdown::ID;
+
+void textParseModeMarkdown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textParseModeMarkdown");
+ s.store_field("version", version_);
+ s.store_class_end();
+ }
+}
+
+textParseModeHTML::textParseModeHTML() {
+}
+
+const std::int32_t textParseModeHTML::ID;
+
+void textParseModeHTML::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textParseModeHTML");
+ s.store_class_end();
+ }
+}
+
+themeParameters::themeParameters()
+ : background_color_()
+ , secondary_background_color_()
+ , text_color_()
+ , hint_color_()
+ , link_color_()
+ , button_color_()
+ , button_text_color_()
+{}
+
+themeParameters::themeParameters(int32 background_color_, int32 secondary_background_color_, int32 text_color_, int32 hint_color_, int32 link_color_, int32 button_color_, int32 button_text_color_)
+ : background_color_(background_color_)
+ , secondary_background_color_(secondary_background_color_)
+ , text_color_(text_color_)
+ , hint_color_(hint_color_)
+ , link_color_(link_color_)
+ , button_color_(button_color_)
+ , button_text_color_(button_text_color_)
+{}
+
+const std::int32_t themeParameters::ID;
+
+void themeParameters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "themeParameters");
+ s.store_field("background_color", background_color_);
+ s.store_field("secondary_background_color", secondary_background_color_);
+ s.store_field("text_color", text_color_);
+ s.store_field("hint_color", hint_color_);
+ s.store_field("link_color", link_color_);
+ s.store_field("button_color", button_color_);
+ s.store_field("button_text_color", button_text_color_);
+ s.store_class_end();
+ }
+}
+
+themeSettings::themeSettings()
+ : accent_color_()
+ , background_()
+ , outgoing_message_fill_()
+ , animate_outgoing_message_fill_()
+ , outgoing_message_accent_color_()
+{}
+
+themeSettings::themeSettings(int32 accent_color_, object_ptr<background> &&background_, object_ptr<BackgroundFill> &&outgoing_message_fill_, bool animate_outgoing_message_fill_, int32 outgoing_message_accent_color_)
+ : accent_color_(accent_color_)
+ , background_(std::move(background_))
+ , outgoing_message_fill_(std::move(outgoing_message_fill_))
+ , animate_outgoing_message_fill_(animate_outgoing_message_fill_)
+ , outgoing_message_accent_color_(outgoing_message_accent_color_)
+{}
+
+const std::int32_t themeSettings::ID;
+
+void themeSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "themeSettings");
+ s.store_field("accent_color", accent_color_);
+ s.store_object_field("background", static_cast<const BaseObject *>(background_.get()));
+ s.store_object_field("outgoing_message_fill", static_cast<const BaseObject *>(outgoing_message_fill_.get()));
+ s.store_field("animate_outgoing_message_fill", animate_outgoing_message_fill_);
+ s.store_field("outgoing_message_accent_color", outgoing_message_accent_color_);
+ s.store_class_end();
+ }
+}
+
+thumbnail::thumbnail()
+ : format_()
+ , width_()
+ , height_()
+ , file_()
+{}
+
+thumbnail::thumbnail(object_ptr<ThumbnailFormat> &&format_, int32 width_, int32 height_, object_ptr<file> &&file_)
+ : format_(std::move(format_))
+ , width_(width_)
+ , height_(height_)
+ , file_(std::move(file_))
+{}
+
+const std::int32_t thumbnail::ID;
+
+void thumbnail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "thumbnail");
+ s.store_object_field("format", static_cast<const BaseObject *>(format_.get()));
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_class_end();
+ }
+}
+
+thumbnailFormatJpeg::thumbnailFormatJpeg() {
+}
+
+const std::int32_t thumbnailFormatJpeg::ID;
+
+void thumbnailFormatJpeg::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "thumbnailFormatJpeg");
+ s.store_class_end();
+ }
+}
+
+thumbnailFormatGif::thumbnailFormatGif() {
+}
+
+const std::int32_t thumbnailFormatGif::ID;
+
+void thumbnailFormatGif::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "thumbnailFormatGif");
+ s.store_class_end();
+ }
+}
+
+thumbnailFormatMpeg4::thumbnailFormatMpeg4() {
+}
+
+const std::int32_t thumbnailFormatMpeg4::ID;
+
+void thumbnailFormatMpeg4::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "thumbnailFormatMpeg4");
+ s.store_class_end();
+ }
+}
+
+thumbnailFormatPng::thumbnailFormatPng() {
+}
+
+const std::int32_t thumbnailFormatPng::ID;
+
+void thumbnailFormatPng::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "thumbnailFormatPng");
+ s.store_class_end();
+ }
+}
+
+thumbnailFormatTgs::thumbnailFormatTgs() {
+}
+
+const std::int32_t thumbnailFormatTgs::ID;
+
+void thumbnailFormatTgs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "thumbnailFormatTgs");
+ s.store_class_end();
+ }
+}
+
+thumbnailFormatWebm::thumbnailFormatWebm() {
+}
+
+const std::int32_t thumbnailFormatWebm::ID;
+
+void thumbnailFormatWebm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "thumbnailFormatWebm");
+ s.store_class_end();
+ }
+}
+
+thumbnailFormatWebp::thumbnailFormatWebp() {
+}
+
+const std::int32_t thumbnailFormatWebp::ID;
+
+void thumbnailFormatWebp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "thumbnailFormatWebp");
+ s.store_class_end();
+ }
+}
+
+topChatCategoryUsers::topChatCategoryUsers() {
+}
+
+const std::int32_t topChatCategoryUsers::ID;
+
+void topChatCategoryUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topChatCategoryUsers");
+ s.store_class_end();
+ }
+}
+
+topChatCategoryBots::topChatCategoryBots() {
+}
+
+const std::int32_t topChatCategoryBots::ID;
+
+void topChatCategoryBots::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topChatCategoryBots");
+ s.store_class_end();
+ }
+}
+
+topChatCategoryGroups::topChatCategoryGroups() {
+}
+
+const std::int32_t topChatCategoryGroups::ID;
+
+void topChatCategoryGroups::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topChatCategoryGroups");
+ s.store_class_end();
+ }
+}
+
+topChatCategoryChannels::topChatCategoryChannels() {
+}
+
+const std::int32_t topChatCategoryChannels::ID;
+
+void topChatCategoryChannels::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topChatCategoryChannels");
+ s.store_class_end();
+ }
+}
+
+topChatCategoryInlineBots::topChatCategoryInlineBots() {
+}
+
+const std::int32_t topChatCategoryInlineBots::ID;
+
+void topChatCategoryInlineBots::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topChatCategoryInlineBots");
+ s.store_class_end();
+ }
+}
+
+topChatCategoryCalls::topChatCategoryCalls() {
+}
+
+const std::int32_t topChatCategoryCalls::ID;
+
+void topChatCategoryCalls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topChatCategoryCalls");
+ s.store_class_end();
+ }
+}
+
+topChatCategoryForwardChats::topChatCategoryForwardChats() {
+}
+
+const std::int32_t topChatCategoryForwardChats::ID;
+
+void topChatCategoryForwardChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topChatCategoryForwardChats");
+ s.store_class_end();
+ }
+}
+
+trendingStickerSets::trendingStickerSets()
+ : total_count_()
+ , sets_()
+ , is_premium_()
+{}
+
+trendingStickerSets::trendingStickerSets(int32 total_count_, array<object_ptr<stickerSetInfo>> &&sets_, bool is_premium_)
+ : total_count_(total_count_)
+ , sets_(std::move(sets_))
+ , is_premium_(is_premium_)
+{}
+
+const std::int32_t trendingStickerSets::ID;
+
+void trendingStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "trendingStickerSets");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("is_premium", is_premium_);
+ s.store_class_end();
+ }
+}
+
+unreadReaction::unreadReaction()
+ : type_()
+ , sender_id_()
+ , is_big_()
+{}
+
+unreadReaction::unreadReaction(object_ptr<ReactionType> &&type_, object_ptr<MessageSender> &&sender_id_, bool is_big_)
+ : type_(std::move(type_))
+ , sender_id_(std::move(sender_id_))
+ , is_big_(is_big_)
+{}
+
+const std::int32_t unreadReaction::ID;
+
+void unreadReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "unreadReaction");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get()));
+ s.store_field("is_big", is_big_);
+ s.store_class_end();
+ }
+}
+
+updateAuthorizationState::updateAuthorizationState()
+ : authorization_state_()
+{}
+
+updateAuthorizationState::updateAuthorizationState(object_ptr<AuthorizationState> &&authorization_state_)
+ : authorization_state_(std::move(authorization_state_))
+{}
+
+const std::int32_t updateAuthorizationState::ID;
+
+void updateAuthorizationState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateAuthorizationState");
+ s.store_object_field("authorization_state", static_cast<const BaseObject *>(authorization_state_.get()));
+ s.store_class_end();
+ }
+}
+
+updateNewMessage::updateNewMessage()
+ : message_()
+{}
+
+updateNewMessage::updateNewMessage(object_ptr<message> &&message_)
+ : message_(std::move(message_))
+{}
+
+const std::int32_t updateNewMessage::ID;
+
+void updateNewMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewMessage");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+updateMessageSendAcknowledged::updateMessageSendAcknowledged()
+ : chat_id_()
+ , message_id_()
+{}
+
+updateMessageSendAcknowledged::updateMessageSendAcknowledged(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t updateMessageSendAcknowledged::ID;
+
+void updateMessageSendAcknowledged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageSendAcknowledged");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+updateMessageSendSucceeded::updateMessageSendSucceeded()
+ : message_()
+ , old_message_id_()
+{}
+
+updateMessageSendSucceeded::updateMessageSendSucceeded(object_ptr<message> &&message_, int53 old_message_id_)
+ : message_(std::move(message_))
+ , old_message_id_(old_message_id_)
+{}
+
+const std::int32_t updateMessageSendSucceeded::ID;
+
+void updateMessageSendSucceeded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageSendSucceeded");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("old_message_id", old_message_id_);
+ s.store_class_end();
+ }
+}
+
+updateMessageSendFailed::updateMessageSendFailed()
+ : message_()
+ , old_message_id_()
+ , error_code_()
+ , error_message_()
+{}
+
+updateMessageSendFailed::updateMessageSendFailed(object_ptr<message> &&message_, int53 old_message_id_, int32 error_code_, string const &error_message_)
+ : message_(std::move(message_))
+ , old_message_id_(old_message_id_)
+ , error_code_(error_code_)
+ , error_message_(error_message_)
+{}
+
+const std::int32_t updateMessageSendFailed::ID;
+
+void updateMessageSendFailed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageSendFailed");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("old_message_id", old_message_id_);
+ s.store_field("error_code", error_code_);
+ s.store_field("error_message", error_message_);
+ s.store_class_end();
+ }
+}
+
+updateMessageContent::updateMessageContent()
+ : chat_id_()
+ , message_id_()
+ , new_content_()
+{}
+
+updateMessageContent::updateMessageContent(int53 chat_id_, int53 message_id_, object_ptr<MessageContent> &&new_content_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , new_content_(std::move(new_content_))
+{}
+
+const std::int32_t updateMessageContent::ID;
+
+void updateMessageContent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageContent");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("new_content", static_cast<const BaseObject *>(new_content_.get()));
+ s.store_class_end();
+ }
+}
+
+updateMessageEdited::updateMessageEdited()
+ : chat_id_()
+ , message_id_()
+ , edit_date_()
+ , reply_markup_()
+{}
+
+updateMessageEdited::updateMessageEdited(int53 chat_id_, int53 message_id_, int32 edit_date_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , edit_date_(edit_date_)
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t updateMessageEdited::ID;
+
+void updateMessageEdited::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageEdited");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("edit_date", edit_date_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_class_end();
+ }
+}
+
+updateMessageIsPinned::updateMessageIsPinned()
+ : chat_id_()
+ , message_id_()
+ , is_pinned_()
+{}
+
+updateMessageIsPinned::updateMessageIsPinned(int53 chat_id_, int53 message_id_, bool is_pinned_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t updateMessageIsPinned::ID;
+
+void updateMessageIsPinned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageIsPinned");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+updateMessageInteractionInfo::updateMessageInteractionInfo()
+ : chat_id_()
+ , message_id_()
+ , interaction_info_()
+{}
+
+updateMessageInteractionInfo::updateMessageInteractionInfo(int53 chat_id_, int53 message_id_, object_ptr<messageInteractionInfo> &&interaction_info_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , interaction_info_(std::move(interaction_info_))
+{}
+
+const std::int32_t updateMessageInteractionInfo::ID;
+
+void updateMessageInteractionInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageInteractionInfo");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("interaction_info", static_cast<const BaseObject *>(interaction_info_.get()));
+ s.store_class_end();
+ }
+}
+
+updateMessageContentOpened::updateMessageContentOpened()
+ : chat_id_()
+ , message_id_()
+{}
+
+updateMessageContentOpened::updateMessageContentOpened(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t updateMessageContentOpened::ID;
+
+void updateMessageContentOpened::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageContentOpened");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+updateMessageMentionRead::updateMessageMentionRead()
+ : chat_id_()
+ , message_id_()
+ , unread_mention_count_()
+{}
+
+updateMessageMentionRead::updateMessageMentionRead(int53 chat_id_, int53 message_id_, int32 unread_mention_count_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , unread_mention_count_(unread_mention_count_)
+{}
+
+const std::int32_t updateMessageMentionRead::ID;
+
+void updateMessageMentionRead::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageMentionRead");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("unread_mention_count", unread_mention_count_);
+ s.store_class_end();
+ }
+}
+
+updateMessageUnreadReactions::updateMessageUnreadReactions()
+ : chat_id_()
+ , message_id_()
+ , unread_reactions_()
+ , unread_reaction_count_()
+{}
+
+updateMessageUnreadReactions::updateMessageUnreadReactions(int53 chat_id_, int53 message_id_, array<object_ptr<unreadReaction>> &&unread_reactions_, int32 unread_reaction_count_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , unread_reactions_(std::move(unread_reactions_))
+ , unread_reaction_count_(unread_reaction_count_)
+{}
+
+const std::int32_t updateMessageUnreadReactions::ID;
+
+void updateMessageUnreadReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageUnreadReactions");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ { s.store_vector_begin("unread_reactions", unread_reactions_.size()); for (const auto &_value : unread_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("unread_reaction_count", unread_reaction_count_);
+ s.store_class_end();
+ }
+}
+
+updateMessageLiveLocationViewed::updateMessageLiveLocationViewed()
+ : chat_id_()
+ , message_id_()
+{}
+
+updateMessageLiveLocationViewed::updateMessageLiveLocationViewed(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t updateMessageLiveLocationViewed::ID;
+
+void updateMessageLiveLocationViewed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageLiveLocationViewed");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+updateNewChat::updateNewChat()
+ : chat_()
+{}
+
+updateNewChat::updateNewChat(object_ptr<chat> &&chat_)
+ : chat_(std::move(chat_))
+{}
+
+const std::int32_t updateNewChat::ID;
+
+void updateNewChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewChat");
+ s.store_object_field("chat", static_cast<const BaseObject *>(chat_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatTitle::updateChatTitle()
+ : chat_id_()
+ , title_()
+{}
+
+updateChatTitle::updateChatTitle(int53 chat_id_, string const &title_)
+ : chat_id_(chat_id_)
+ , title_(title_)
+{}
+
+const std::int32_t updateChatTitle::ID;
+
+void updateChatTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatTitle");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+updateChatPhoto::updateChatPhoto()
+ : chat_id_()
+ , photo_()
+{}
+
+updateChatPhoto::updateChatPhoto(int53 chat_id_, object_ptr<chatPhotoInfo> &&photo_)
+ : chat_id_(chat_id_)
+ , photo_(std::move(photo_))
+{}
+
+const std::int32_t updateChatPhoto::ID;
+
+void updateChatPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatPhoto");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatPermissions::updateChatPermissions()
+ : chat_id_()
+ , permissions_()
+{}
+
+updateChatPermissions::updateChatPermissions(int53 chat_id_, object_ptr<chatPermissions> &&permissions_)
+ : chat_id_(chat_id_)
+ , permissions_(std::move(permissions_))
+{}
+
+const std::int32_t updateChatPermissions::ID;
+
+void updateChatPermissions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatPermissions");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("permissions", static_cast<const BaseObject *>(permissions_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatLastMessage::updateChatLastMessage()
+ : chat_id_()
+ , last_message_()
+ , positions_()
+{}
+
+updateChatLastMessage::updateChatLastMessage(int53 chat_id_, object_ptr<message> &&last_message_, array<object_ptr<chatPosition>> &&positions_)
+ : chat_id_(chat_id_)
+ , last_message_(std::move(last_message_))
+ , positions_(std::move(positions_))
+{}
+
+const std::int32_t updateChatLastMessage::ID;
+
+void updateChatLastMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatLastMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("last_message", static_cast<const BaseObject *>(last_message_.get()));
+ { s.store_vector_begin("positions", positions_.size()); for (const auto &_value : positions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateChatPosition::updateChatPosition()
+ : chat_id_()
+ , position_()
+{}
+
+updateChatPosition::updateChatPosition(int53 chat_id_, object_ptr<chatPosition> &&position_)
+ : chat_id_(chat_id_)
+ , position_(std::move(position_))
+{}
+
+const std::int32_t updateChatPosition::ID;
+
+void updateChatPosition::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatPosition");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("position", static_cast<const BaseObject *>(position_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatReadInbox::updateChatReadInbox()
+ : chat_id_()
+ , last_read_inbox_message_id_()
+ , unread_count_()
+{}
+
+updateChatReadInbox::updateChatReadInbox(int53 chat_id_, int53 last_read_inbox_message_id_, int32 unread_count_)
+ : chat_id_(chat_id_)
+ , last_read_inbox_message_id_(last_read_inbox_message_id_)
+ , unread_count_(unread_count_)
+{}
+
+const std::int32_t updateChatReadInbox::ID;
+
+void updateChatReadInbox::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatReadInbox");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("last_read_inbox_message_id", last_read_inbox_message_id_);
+ s.store_field("unread_count", unread_count_);
+ s.store_class_end();
+ }
+}
+
+updateChatReadOutbox::updateChatReadOutbox()
+ : chat_id_()
+ , last_read_outbox_message_id_()
+{}
+
+updateChatReadOutbox::updateChatReadOutbox(int53 chat_id_, int53 last_read_outbox_message_id_)
+ : chat_id_(chat_id_)
+ , last_read_outbox_message_id_(last_read_outbox_message_id_)
+{}
+
+const std::int32_t updateChatReadOutbox::ID;
+
+void updateChatReadOutbox::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatReadOutbox");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("last_read_outbox_message_id", last_read_outbox_message_id_);
+ s.store_class_end();
+ }
+}
+
+updateChatActionBar::updateChatActionBar()
+ : chat_id_()
+ , action_bar_()
+{}
+
+updateChatActionBar::updateChatActionBar(int53 chat_id_, object_ptr<ChatActionBar> &&action_bar_)
+ : chat_id_(chat_id_)
+ , action_bar_(std::move(action_bar_))
+{}
+
+const std::int32_t updateChatActionBar::ID;
+
+void updateChatActionBar::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatActionBar");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("action_bar", static_cast<const BaseObject *>(action_bar_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatAvailableReactions::updateChatAvailableReactions()
+ : chat_id_()
+ , available_reactions_()
+{}
+
+updateChatAvailableReactions::updateChatAvailableReactions(int53 chat_id_, object_ptr<ChatAvailableReactions> &&available_reactions_)
+ : chat_id_(chat_id_)
+ , available_reactions_(std::move(available_reactions_))
+{}
+
+const std::int32_t updateChatAvailableReactions::ID;
+
+void updateChatAvailableReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatAvailableReactions");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatDraftMessage::updateChatDraftMessage()
+ : chat_id_()
+ , draft_message_()
+ , positions_()
+{}
+
+updateChatDraftMessage::updateChatDraftMessage(int53 chat_id_, object_ptr<draftMessage> &&draft_message_, array<object_ptr<chatPosition>> &&positions_)
+ : chat_id_(chat_id_)
+ , draft_message_(std::move(draft_message_))
+ , positions_(std::move(positions_))
+{}
+
+const std::int32_t updateChatDraftMessage::ID;
+
+void updateChatDraftMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatDraftMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("draft_message", static_cast<const BaseObject *>(draft_message_.get()));
+ { s.store_vector_begin("positions", positions_.size()); for (const auto &_value : positions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateChatMessageSender::updateChatMessageSender()
+ : chat_id_()
+ , message_sender_id_()
+{}
+
+updateChatMessageSender::updateChatMessageSender(int53 chat_id_, object_ptr<MessageSender> &&message_sender_id_)
+ : chat_id_(chat_id_)
+ , message_sender_id_(std::move(message_sender_id_))
+{}
+
+const std::int32_t updateChatMessageSender::ID;
+
+void updateChatMessageSender::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatMessageSender");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("message_sender_id", static_cast<const BaseObject *>(message_sender_id_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatMessageTtl::updateChatMessageTtl()
+ : chat_id_()
+ , message_ttl_()
+{}
+
+updateChatMessageTtl::updateChatMessageTtl(int53 chat_id_, int32 message_ttl_)
+ : chat_id_(chat_id_)
+ , message_ttl_(message_ttl_)
+{}
+
+const std::int32_t updateChatMessageTtl::ID;
+
+void updateChatMessageTtl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatMessageTtl");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_ttl", message_ttl_);
+ s.store_class_end();
+ }
+}
+
+updateChatNotificationSettings::updateChatNotificationSettings()
+ : chat_id_()
+ , notification_settings_()
+{}
+
+updateChatNotificationSettings::updateChatNotificationSettings(int53 chat_id_, object_ptr<chatNotificationSettings> &&notification_settings_)
+ : chat_id_(chat_id_)
+ , notification_settings_(std::move(notification_settings_))
+{}
+
+const std::int32_t updateChatNotificationSettings::ID;
+
+void updateChatNotificationSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatNotificationSettings");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatPendingJoinRequests::updateChatPendingJoinRequests()
+ : chat_id_()
+ , pending_join_requests_()
+{}
+
+updateChatPendingJoinRequests::updateChatPendingJoinRequests(int53 chat_id_, object_ptr<chatJoinRequestsInfo> &&pending_join_requests_)
+ : chat_id_(chat_id_)
+ , pending_join_requests_(std::move(pending_join_requests_))
+{}
+
+const std::int32_t updateChatPendingJoinRequests::ID;
+
+void updateChatPendingJoinRequests::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatPendingJoinRequests");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("pending_join_requests", static_cast<const BaseObject *>(pending_join_requests_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatReplyMarkup::updateChatReplyMarkup()
+ : chat_id_()
+ , reply_markup_message_id_()
+{}
+
+updateChatReplyMarkup::updateChatReplyMarkup(int53 chat_id_, int53 reply_markup_message_id_)
+ : chat_id_(chat_id_)
+ , reply_markup_message_id_(reply_markup_message_id_)
+{}
+
+const std::int32_t updateChatReplyMarkup::ID;
+
+void updateChatReplyMarkup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatReplyMarkup");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("reply_markup_message_id", reply_markup_message_id_);
+ s.store_class_end();
+ }
+}
+
+updateChatTheme::updateChatTheme()
+ : chat_id_()
+ , theme_name_()
+{}
+
+updateChatTheme::updateChatTheme(int53 chat_id_, string const &theme_name_)
+ : chat_id_(chat_id_)
+ , theme_name_(theme_name_)
+{}
+
+const std::int32_t updateChatTheme::ID;
+
+void updateChatTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatTheme");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("theme_name", theme_name_);
+ s.store_class_end();
+ }
+}
+
+updateChatUnreadMentionCount::updateChatUnreadMentionCount()
+ : chat_id_()
+ , unread_mention_count_()
+{}
+
+updateChatUnreadMentionCount::updateChatUnreadMentionCount(int53 chat_id_, int32 unread_mention_count_)
+ : chat_id_(chat_id_)
+ , unread_mention_count_(unread_mention_count_)
+{}
+
+const std::int32_t updateChatUnreadMentionCount::ID;
+
+void updateChatUnreadMentionCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatUnreadMentionCount");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("unread_mention_count", unread_mention_count_);
+ s.store_class_end();
+ }
+}
+
+updateChatUnreadReactionCount::updateChatUnreadReactionCount()
+ : chat_id_()
+ , unread_reaction_count_()
+{}
+
+updateChatUnreadReactionCount::updateChatUnreadReactionCount(int53 chat_id_, int32 unread_reaction_count_)
+ : chat_id_(chat_id_)
+ , unread_reaction_count_(unread_reaction_count_)
+{}
+
+const std::int32_t updateChatUnreadReactionCount::ID;
+
+void updateChatUnreadReactionCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatUnreadReactionCount");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("unread_reaction_count", unread_reaction_count_);
+ s.store_class_end();
+ }
+}
+
+updateChatVideoChat::updateChatVideoChat()
+ : chat_id_()
+ , video_chat_()
+{}
+
+updateChatVideoChat::updateChatVideoChat(int53 chat_id_, object_ptr<videoChat> &&video_chat_)
+ : chat_id_(chat_id_)
+ , video_chat_(std::move(video_chat_))
+{}
+
+const std::int32_t updateChatVideoChat::ID;
+
+void updateChatVideoChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatVideoChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("video_chat", static_cast<const BaseObject *>(video_chat_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatDefaultDisableNotification::updateChatDefaultDisableNotification()
+ : chat_id_()
+ , default_disable_notification_()
+{}
+
+updateChatDefaultDisableNotification::updateChatDefaultDisableNotification(int53 chat_id_, bool default_disable_notification_)
+ : chat_id_(chat_id_)
+ , default_disable_notification_(default_disable_notification_)
+{}
+
+const std::int32_t updateChatDefaultDisableNotification::ID;
+
+void updateChatDefaultDisableNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatDefaultDisableNotification");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("default_disable_notification", default_disable_notification_);
+ s.store_class_end();
+ }
+}
+
+updateChatHasProtectedContent::updateChatHasProtectedContent()
+ : chat_id_()
+ , has_protected_content_()
+{}
+
+updateChatHasProtectedContent::updateChatHasProtectedContent(int53 chat_id_, bool has_protected_content_)
+ : chat_id_(chat_id_)
+ , has_protected_content_(has_protected_content_)
+{}
+
+const std::int32_t updateChatHasProtectedContent::ID;
+
+void updateChatHasProtectedContent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatHasProtectedContent");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("has_protected_content", has_protected_content_);
+ s.store_class_end();
+ }
+}
+
+updateChatHasScheduledMessages::updateChatHasScheduledMessages()
+ : chat_id_()
+ , has_scheduled_messages_()
+{}
+
+updateChatHasScheduledMessages::updateChatHasScheduledMessages(int53 chat_id_, bool has_scheduled_messages_)
+ : chat_id_(chat_id_)
+ , has_scheduled_messages_(has_scheduled_messages_)
+{}
+
+const std::int32_t updateChatHasScheduledMessages::ID;
+
+void updateChatHasScheduledMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatHasScheduledMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("has_scheduled_messages", has_scheduled_messages_);
+ s.store_class_end();
+ }
+}
+
+updateChatIsBlocked::updateChatIsBlocked()
+ : chat_id_()
+ , is_blocked_()
+{}
+
+updateChatIsBlocked::updateChatIsBlocked(int53 chat_id_, bool is_blocked_)
+ : chat_id_(chat_id_)
+ , is_blocked_(is_blocked_)
+{}
+
+const std::int32_t updateChatIsBlocked::ID;
+
+void updateChatIsBlocked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatIsBlocked");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("is_blocked", is_blocked_);
+ s.store_class_end();
+ }
+}
+
+updateChatIsMarkedAsUnread::updateChatIsMarkedAsUnread()
+ : chat_id_()
+ , is_marked_as_unread_()
+{}
+
+updateChatIsMarkedAsUnread::updateChatIsMarkedAsUnread(int53 chat_id_, bool is_marked_as_unread_)
+ : chat_id_(chat_id_)
+ , is_marked_as_unread_(is_marked_as_unread_)
+{}
+
+const std::int32_t updateChatIsMarkedAsUnread::ID;
+
+void updateChatIsMarkedAsUnread::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatIsMarkedAsUnread");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("is_marked_as_unread", is_marked_as_unread_);
+ s.store_class_end();
+ }
+}
+
+updateChatFilters::updateChatFilters()
+ : chat_filters_()
+ , main_chat_list_position_()
+{}
+
+updateChatFilters::updateChatFilters(array<object_ptr<chatFilterInfo>> &&chat_filters_, int32 main_chat_list_position_)
+ : chat_filters_(std::move(chat_filters_))
+ , main_chat_list_position_(main_chat_list_position_)
+{}
+
+const std::int32_t updateChatFilters::ID;
+
+void updateChatFilters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatFilters");
+ { s.store_vector_begin("chat_filters", chat_filters_.size()); for (const auto &_value : chat_filters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("main_chat_list_position", main_chat_list_position_);
+ s.store_class_end();
+ }
+}
+
+updateChatOnlineMemberCount::updateChatOnlineMemberCount()
+ : chat_id_()
+ , online_member_count_()
+{}
+
+updateChatOnlineMemberCount::updateChatOnlineMemberCount(int53 chat_id_, int32 online_member_count_)
+ : chat_id_(chat_id_)
+ , online_member_count_(online_member_count_)
+{}
+
+const std::int32_t updateChatOnlineMemberCount::ID;
+
+void updateChatOnlineMemberCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatOnlineMemberCount");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("online_member_count", online_member_count_);
+ s.store_class_end();
+ }
+}
+
+updateForumTopicInfo::updateForumTopicInfo()
+ : chat_id_()
+ , info_()
+{}
+
+updateForumTopicInfo::updateForumTopicInfo(int53 chat_id_, object_ptr<forumTopicInfo> &&info_)
+ : chat_id_(chat_id_)
+ , info_(std::move(info_))
+{}
+
+const std::int32_t updateForumTopicInfo::ID;
+
+void updateForumTopicInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateForumTopicInfo");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("info", static_cast<const BaseObject *>(info_.get()));
+ s.store_class_end();
+ }
+}
+
+updateScopeNotificationSettings::updateScopeNotificationSettings()
+ : scope_()
+ , notification_settings_()
+{}
+
+updateScopeNotificationSettings::updateScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_, object_ptr<scopeNotificationSettings> &&notification_settings_)
+ : scope_(std::move(scope_))
+ , notification_settings_(std::move(notification_settings_))
+{}
+
+const std::int32_t updateScopeNotificationSettings::ID;
+
+void updateScopeNotificationSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateScopeNotificationSettings");
+ s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get()));
+ s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get()));
+ s.store_class_end();
+ }
+}
+
+updateNotification::updateNotification()
+ : notification_group_id_()
+ , notification_()
+{}
+
+updateNotification::updateNotification(int32 notification_group_id_, object_ptr<notification> &&notification_)
+ : notification_group_id_(notification_group_id_)
+ , notification_(std::move(notification_))
+{}
+
+const std::int32_t updateNotification::ID;
+
+void updateNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNotification");
+ s.store_field("notification_group_id", notification_group_id_);
+ s.store_object_field("notification", static_cast<const BaseObject *>(notification_.get()));
+ s.store_class_end();
+ }
+}
+
+updateNotificationGroup::updateNotificationGroup()
+ : notification_group_id_()
+ , type_()
+ , chat_id_()
+ , notification_settings_chat_id_()
+ , notification_sound_id_()
+ , total_count_()
+ , added_notifications_()
+ , removed_notification_ids_()
+{}
+
+updateNotificationGroup::updateNotificationGroup(int32 notification_group_id_, object_ptr<NotificationGroupType> &&type_, int53 chat_id_, int53 notification_settings_chat_id_, int64 notification_sound_id_, int32 total_count_, array<object_ptr<notification>> &&added_notifications_, array<int32> &&removed_notification_ids_)
+ : notification_group_id_(notification_group_id_)
+ , type_(std::move(type_))
+ , chat_id_(chat_id_)
+ , notification_settings_chat_id_(notification_settings_chat_id_)
+ , notification_sound_id_(notification_sound_id_)
+ , total_count_(total_count_)
+ , added_notifications_(std::move(added_notifications_))
+ , removed_notification_ids_(std::move(removed_notification_ids_))
+{}
+
+const std::int32_t updateNotificationGroup::ID;
+
+void updateNotificationGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNotificationGroup");
+ s.store_field("notification_group_id", notification_group_id_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("chat_id", chat_id_);
+ s.store_field("notification_settings_chat_id", notification_settings_chat_id_);
+ s.store_field("notification_sound_id", notification_sound_id_);
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("added_notifications", added_notifications_.size()); for (const auto &_value : added_notifications_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("removed_notification_ids", removed_notification_ids_.size()); for (const auto &_value : removed_notification_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateActiveNotifications::updateActiveNotifications()
+ : groups_()
+{}
+
+updateActiveNotifications::updateActiveNotifications(array<object_ptr<notificationGroup>> &&groups_)
+ : groups_(std::move(groups_))
+{}
+
+const std::int32_t updateActiveNotifications::ID;
+
+void updateActiveNotifications::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateActiveNotifications");
+ { s.store_vector_begin("groups", groups_.size()); for (const auto &_value : groups_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateHavePendingNotifications::updateHavePendingNotifications()
+ : have_delayed_notifications_()
+ , have_unreceived_notifications_()
+{}
+
+updateHavePendingNotifications::updateHavePendingNotifications(bool have_delayed_notifications_, bool have_unreceived_notifications_)
+ : have_delayed_notifications_(have_delayed_notifications_)
+ , have_unreceived_notifications_(have_unreceived_notifications_)
+{}
+
+const std::int32_t updateHavePendingNotifications::ID;
+
+void updateHavePendingNotifications::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateHavePendingNotifications");
+ s.store_field("have_delayed_notifications", have_delayed_notifications_);
+ s.store_field("have_unreceived_notifications", have_unreceived_notifications_);
+ s.store_class_end();
+ }
+}
+
+updateDeleteMessages::updateDeleteMessages()
+ : chat_id_()
+ , message_ids_()
+ , is_permanent_()
+ , from_cache_()
+{}
+
+updateDeleteMessages::updateDeleteMessages(int53 chat_id_, array<int53> &&message_ids_, bool is_permanent_, bool from_cache_)
+ : chat_id_(chat_id_)
+ , message_ids_(std::move(message_ids_))
+ , is_permanent_(is_permanent_)
+ , from_cache_(from_cache_)
+{}
+
+const std::int32_t updateDeleteMessages::ID;
+
+void updateDeleteMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDeleteMessages");
+ s.store_field("chat_id", chat_id_);
+ { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("is_permanent", is_permanent_);
+ s.store_field("from_cache", from_cache_);
+ s.store_class_end();
+ }
+}
+
+updateChatAction::updateChatAction()
+ : chat_id_()
+ , message_thread_id_()
+ , sender_id_()
+ , action_()
+{}
+
+updateChatAction::updateChatAction(int53 chat_id_, int53 message_thread_id_, object_ptr<MessageSender> &&sender_id_, object_ptr<ChatAction> &&action_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , sender_id_(std::move(sender_id_))
+ , action_(std::move(action_))
+{}
+
+const std::int32_t updateChatAction::ID;
+
+void updateChatAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatAction");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get()));
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+updateUserStatus::updateUserStatus()
+ : user_id_()
+ , status_()
+{}
+
+updateUserStatus::updateUserStatus(int53 user_id_, object_ptr<UserStatus> &&status_)
+ : user_id_(user_id_)
+ , status_(std::move(status_))
+{}
+
+const std::int32_t updateUserStatus::ID;
+
+void updateUserStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUserStatus");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("status", static_cast<const BaseObject *>(status_.get()));
+ s.store_class_end();
+ }
+}
+
+updateUser::updateUser()
+ : user_()
+{}
+
+updateUser::updateUser(object_ptr<user> &&user_)
+ : user_(std::move(user_))
+{}
+
+const std::int32_t updateUser::ID;
+
+void updateUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUser");
+ s.store_object_field("user", static_cast<const BaseObject *>(user_.get()));
+ s.store_class_end();
+ }
+}
+
+updateBasicGroup::updateBasicGroup()
+ : basic_group_()
+{}
+
+updateBasicGroup::updateBasicGroup(object_ptr<basicGroup> &&basic_group_)
+ : basic_group_(std::move(basic_group_))
+{}
+
+const std::int32_t updateBasicGroup::ID;
+
+void updateBasicGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBasicGroup");
+ s.store_object_field("basic_group", static_cast<const BaseObject *>(basic_group_.get()));
+ s.store_class_end();
+ }
+}
+
+updateSupergroup::updateSupergroup()
+ : supergroup_()
+{}
+
+updateSupergroup::updateSupergroup(object_ptr<supergroup> &&supergroup_)
+ : supergroup_(std::move(supergroup_))
+{}
+
+const std::int32_t updateSupergroup::ID;
+
+void updateSupergroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateSupergroup");
+ s.store_object_field("supergroup", static_cast<const BaseObject *>(supergroup_.get()));
+ s.store_class_end();
+ }
+}
+
+updateSecretChat::updateSecretChat()
+ : secret_chat_()
+{}
+
+updateSecretChat::updateSecretChat(object_ptr<secretChat> &&secret_chat_)
+ : secret_chat_(std::move(secret_chat_))
+{}
+
+const std::int32_t updateSecretChat::ID;
+
+void updateSecretChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateSecretChat");
+ s.store_object_field("secret_chat", static_cast<const BaseObject *>(secret_chat_.get()));
+ s.store_class_end();
+ }
+}
+
+updateUserFullInfo::updateUserFullInfo()
+ : user_id_()
+ , user_full_info_()
+{}
+
+updateUserFullInfo::updateUserFullInfo(int53 user_id_, object_ptr<userFullInfo> &&user_full_info_)
+ : user_id_(user_id_)
+ , user_full_info_(std::move(user_full_info_))
+{}
+
+const std::int32_t updateUserFullInfo::ID;
+
+void updateUserFullInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUserFullInfo");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("user_full_info", static_cast<const BaseObject *>(user_full_info_.get()));
+ s.store_class_end();
+ }
+}
+
+updateBasicGroupFullInfo::updateBasicGroupFullInfo()
+ : basic_group_id_()
+ , basic_group_full_info_()
+{}
+
+updateBasicGroupFullInfo::updateBasicGroupFullInfo(int53 basic_group_id_, object_ptr<basicGroupFullInfo> &&basic_group_full_info_)
+ : basic_group_id_(basic_group_id_)
+ , basic_group_full_info_(std::move(basic_group_full_info_))
+{}
+
+const std::int32_t updateBasicGroupFullInfo::ID;
+
+void updateBasicGroupFullInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBasicGroupFullInfo");
+ s.store_field("basic_group_id", basic_group_id_);
+ s.store_object_field("basic_group_full_info", static_cast<const BaseObject *>(basic_group_full_info_.get()));
+ s.store_class_end();
+ }
+}
+
+updateSupergroupFullInfo::updateSupergroupFullInfo()
+ : supergroup_id_()
+ , supergroup_full_info_()
+{}
+
+updateSupergroupFullInfo::updateSupergroupFullInfo(int53 supergroup_id_, object_ptr<supergroupFullInfo> &&supergroup_full_info_)
+ : supergroup_id_(supergroup_id_)
+ , supergroup_full_info_(std::move(supergroup_full_info_))
+{}
+
+const std::int32_t updateSupergroupFullInfo::ID;
+
+void updateSupergroupFullInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateSupergroupFullInfo");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_object_field("supergroup_full_info", static_cast<const BaseObject *>(supergroup_full_info_.get()));
+ s.store_class_end();
+ }
+}
+
+updateServiceNotification::updateServiceNotification()
+ : type_()
+ , content_()
+{}
+
+updateServiceNotification::updateServiceNotification(string const &type_, object_ptr<MessageContent> &&content_)
+ : type_(type_)
+ , content_(std::move(content_))
+{}
+
+const std::int32_t updateServiceNotification::ID;
+
+void updateServiceNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateServiceNotification");
+ s.store_field("type", type_);
+ s.store_object_field("content", static_cast<const BaseObject *>(content_.get()));
+ s.store_class_end();
+ }
+}
+
+updateFile::updateFile()
+ : file_()
+{}
+
+updateFile::updateFile(object_ptr<file> &&file_)
+ : file_(std::move(file_))
+{}
+
+const std::int32_t updateFile::ID;
+
+void updateFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateFile");
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_class_end();
+ }
+}
+
+updateFileGenerationStart::updateFileGenerationStart()
+ : generation_id_()
+ , original_path_()
+ , destination_path_()
+ , conversion_()
+{}
+
+updateFileGenerationStart::updateFileGenerationStart(int64 generation_id_, string const &original_path_, string const &destination_path_, string const &conversion_)
+ : generation_id_(generation_id_)
+ , original_path_(original_path_)
+ , destination_path_(destination_path_)
+ , conversion_(conversion_)
+{}
+
+const std::int32_t updateFileGenerationStart::ID;
+
+void updateFileGenerationStart::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateFileGenerationStart");
+ s.store_field("generation_id", generation_id_);
+ s.store_field("original_path", original_path_);
+ s.store_field("destination_path", destination_path_);
+ s.store_field("conversion", conversion_);
+ s.store_class_end();
+ }
+}
+
+updateFileGenerationStop::updateFileGenerationStop()
+ : generation_id_()
+{}
+
+updateFileGenerationStop::updateFileGenerationStop(int64 generation_id_)
+ : generation_id_(generation_id_)
+{}
+
+const std::int32_t updateFileGenerationStop::ID;
+
+void updateFileGenerationStop::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateFileGenerationStop");
+ s.store_field("generation_id", generation_id_);
+ s.store_class_end();
+ }
+}
+
+updateFileDownloads::updateFileDownloads()
+ : total_size_()
+ , total_count_()
+ , downloaded_size_()
+{}
+
+updateFileDownloads::updateFileDownloads(int53 total_size_, int32 total_count_, int53 downloaded_size_)
+ : total_size_(total_size_)
+ , total_count_(total_count_)
+ , downloaded_size_(downloaded_size_)
+{}
+
+const std::int32_t updateFileDownloads::ID;
+
+void updateFileDownloads::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateFileDownloads");
+ s.store_field("total_size", total_size_);
+ s.store_field("total_count", total_count_);
+ s.store_field("downloaded_size", downloaded_size_);
+ s.store_class_end();
+ }
+}
+
+updateFileAddedToDownloads::updateFileAddedToDownloads()
+ : file_download_()
+ , counts_()
+{}
+
+updateFileAddedToDownloads::updateFileAddedToDownloads(object_ptr<fileDownload> &&file_download_, object_ptr<downloadedFileCounts> &&counts_)
+ : file_download_(std::move(file_download_))
+ , counts_(std::move(counts_))
+{}
+
+const std::int32_t updateFileAddedToDownloads::ID;
+
+void updateFileAddedToDownloads::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateFileAddedToDownloads");
+ s.store_object_field("file_download", static_cast<const BaseObject *>(file_download_.get()));
+ s.store_object_field("counts", static_cast<const BaseObject *>(counts_.get()));
+ s.store_class_end();
+ }
+}
+
+updateFileDownload::updateFileDownload()
+ : file_id_()
+ , complete_date_()
+ , is_paused_()
+ , counts_()
+{}
+
+updateFileDownload::updateFileDownload(int32 file_id_, int32 complete_date_, bool is_paused_, object_ptr<downloadedFileCounts> &&counts_)
+ : file_id_(file_id_)
+ , complete_date_(complete_date_)
+ , is_paused_(is_paused_)
+ , counts_(std::move(counts_))
+{}
+
+const std::int32_t updateFileDownload::ID;
+
+void updateFileDownload::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateFileDownload");
+ s.store_field("file_id", file_id_);
+ s.store_field("complete_date", complete_date_);
+ s.store_field("is_paused", is_paused_);
+ s.store_object_field("counts", static_cast<const BaseObject *>(counts_.get()));
+ s.store_class_end();
+ }
+}
+
+updateFileRemovedFromDownloads::updateFileRemovedFromDownloads()
+ : file_id_()
+ , counts_()
+{}
+
+updateFileRemovedFromDownloads::updateFileRemovedFromDownloads(int32 file_id_, object_ptr<downloadedFileCounts> &&counts_)
+ : file_id_(file_id_)
+ , counts_(std::move(counts_))
+{}
+
+const std::int32_t updateFileRemovedFromDownloads::ID;
+
+void updateFileRemovedFromDownloads::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateFileRemovedFromDownloads");
+ s.store_field("file_id", file_id_);
+ s.store_object_field("counts", static_cast<const BaseObject *>(counts_.get()));
+ s.store_class_end();
+ }
+}
+
+updateCall::updateCall()
+ : call_()
+{}
+
+updateCall::updateCall(object_ptr<call> &&call_)
+ : call_(std::move(call_))
+{}
+
+const std::int32_t updateCall::ID;
+
+void updateCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_class_end();
+ }
+}
+
+updateGroupCall::updateGroupCall()
+ : group_call_()
+{}
+
+updateGroupCall::updateGroupCall(object_ptr<groupCall> &&group_call_)
+ : group_call_(std::move(group_call_))
+{}
+
+const std::int32_t updateGroupCall::ID;
+
+void updateGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateGroupCall");
+ s.store_object_field("group_call", static_cast<const BaseObject *>(group_call_.get()));
+ s.store_class_end();
+ }
+}
+
+updateGroupCallParticipant::updateGroupCallParticipant()
+ : group_call_id_()
+ , participant_()
+{}
+
+updateGroupCallParticipant::updateGroupCallParticipant(int32 group_call_id_, object_ptr<groupCallParticipant> &&participant_)
+ : group_call_id_(group_call_id_)
+ , participant_(std::move(participant_))
+{}
+
+const std::int32_t updateGroupCallParticipant::ID;
+
+void updateGroupCallParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateGroupCallParticipant");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ s.store_class_end();
+ }
+}
+
+updateNewCallSignalingData::updateNewCallSignalingData()
+ : call_id_()
+ , data_()
+{}
+
+updateNewCallSignalingData::updateNewCallSignalingData(int32 call_id_, bytes const &data_)
+ : call_id_(call_id_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t updateNewCallSignalingData::ID;
+
+void updateNewCallSignalingData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewCallSignalingData");
+ s.store_field("call_id", call_id_);
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+updateUserPrivacySettingRules::updateUserPrivacySettingRules()
+ : setting_()
+ , rules_()
+{}
+
+updateUserPrivacySettingRules::updateUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_, object_ptr<userPrivacySettingRules> &&rules_)
+ : setting_(std::move(setting_))
+ , rules_(std::move(rules_))
+{}
+
+const std::int32_t updateUserPrivacySettingRules::ID;
+
+void updateUserPrivacySettingRules::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUserPrivacySettingRules");
+ s.store_object_field("setting", static_cast<const BaseObject *>(setting_.get()));
+ s.store_object_field("rules", static_cast<const BaseObject *>(rules_.get()));
+ s.store_class_end();
+ }
+}
+
+updateUnreadMessageCount::updateUnreadMessageCount()
+ : chat_list_()
+ , unread_count_()
+ , unread_unmuted_count_()
+{}
+
+updateUnreadMessageCount::updateUnreadMessageCount(object_ptr<ChatList> &&chat_list_, int32 unread_count_, int32 unread_unmuted_count_)
+ : chat_list_(std::move(chat_list_))
+ , unread_count_(unread_count_)
+ , unread_unmuted_count_(unread_unmuted_count_)
+{}
+
+const std::int32_t updateUnreadMessageCount::ID;
+
+void updateUnreadMessageCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUnreadMessageCount");
+ s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get()));
+ s.store_field("unread_count", unread_count_);
+ s.store_field("unread_unmuted_count", unread_unmuted_count_);
+ s.store_class_end();
+ }
+}
+
+updateUnreadChatCount::updateUnreadChatCount()
+ : chat_list_()
+ , total_count_()
+ , unread_count_()
+ , unread_unmuted_count_()
+ , marked_as_unread_count_()
+ , marked_as_unread_unmuted_count_()
+{}
+
+updateUnreadChatCount::updateUnreadChatCount(object_ptr<ChatList> &&chat_list_, int32 total_count_, int32 unread_count_, int32 unread_unmuted_count_, int32 marked_as_unread_count_, int32 marked_as_unread_unmuted_count_)
+ : chat_list_(std::move(chat_list_))
+ , total_count_(total_count_)
+ , unread_count_(unread_count_)
+ , unread_unmuted_count_(unread_unmuted_count_)
+ , marked_as_unread_count_(marked_as_unread_count_)
+ , marked_as_unread_unmuted_count_(marked_as_unread_unmuted_count_)
+{}
+
+const std::int32_t updateUnreadChatCount::ID;
+
+void updateUnreadChatCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUnreadChatCount");
+ s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get()));
+ s.store_field("total_count", total_count_);
+ s.store_field("unread_count", unread_count_);
+ s.store_field("unread_unmuted_count", unread_unmuted_count_);
+ s.store_field("marked_as_unread_count", marked_as_unread_count_);
+ s.store_field("marked_as_unread_unmuted_count", marked_as_unread_unmuted_count_);
+ s.store_class_end();
+ }
+}
+
+updateOption::updateOption()
+ : name_()
+ , value_()
+{}
+
+updateOption::updateOption(string const &name_, object_ptr<OptionValue> &&value_)
+ : name_(name_)
+ , value_(std::move(value_))
+{}
+
+const std::int32_t updateOption::ID;
+
+void updateOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateOption");
+ s.store_field("name", name_);
+ s.store_object_field("value", static_cast<const BaseObject *>(value_.get()));
+ s.store_class_end();
+ }
+}
+
+updateStickerSet::updateStickerSet()
+ : sticker_set_()
+{}
+
+updateStickerSet::updateStickerSet(object_ptr<stickerSet> &&sticker_set_)
+ : sticker_set_(std::move(sticker_set_))
+{}
+
+const std::int32_t updateStickerSet::ID;
+
+void updateStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateStickerSet");
+ s.store_object_field("sticker_set", static_cast<const BaseObject *>(sticker_set_.get()));
+ s.store_class_end();
+ }
+}
+
+updateInstalledStickerSets::updateInstalledStickerSets()
+ : sticker_type_()
+ , sticker_set_ids_()
+{}
+
+updateInstalledStickerSets::updateInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, array<int64> &&sticker_set_ids_)
+ : sticker_type_(std::move(sticker_type_))
+ , sticker_set_ids_(std::move(sticker_set_ids_))
+{}
+
+const std::int32_t updateInstalledStickerSets::ID;
+
+void updateInstalledStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateInstalledStickerSets");
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ { s.store_vector_begin("sticker_set_ids", sticker_set_ids_.size()); for (const auto &_value : sticker_set_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateTrendingStickerSets::updateTrendingStickerSets()
+ : sticker_type_()
+ , sticker_sets_()
+{}
+
+updateTrendingStickerSets::updateTrendingStickerSets(object_ptr<StickerType> &&sticker_type_, object_ptr<trendingStickerSets> &&sticker_sets_)
+ : sticker_type_(std::move(sticker_type_))
+ , sticker_sets_(std::move(sticker_sets_))
+{}
+
+const std::int32_t updateTrendingStickerSets::ID;
+
+void updateTrendingStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateTrendingStickerSets");
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ s.store_object_field("sticker_sets", static_cast<const BaseObject *>(sticker_sets_.get()));
+ s.store_class_end();
+ }
+}
+
+updateRecentStickers::updateRecentStickers()
+ : is_attached_()
+ , sticker_ids_()
+{}
+
+updateRecentStickers::updateRecentStickers(bool is_attached_, array<int32> &&sticker_ids_)
+ : is_attached_(is_attached_)
+ , sticker_ids_(std::move(sticker_ids_))
+{}
+
+const std::int32_t updateRecentStickers::ID;
+
+void updateRecentStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateRecentStickers");
+ s.store_field("is_attached", is_attached_);
+ { s.store_vector_begin("sticker_ids", sticker_ids_.size()); for (const auto &_value : sticker_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateFavoriteStickers::updateFavoriteStickers()
+ : sticker_ids_()
+{}
+
+updateFavoriteStickers::updateFavoriteStickers(array<int32> &&sticker_ids_)
+ : sticker_ids_(std::move(sticker_ids_))
+{}
+
+const std::int32_t updateFavoriteStickers::ID;
+
+void updateFavoriteStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateFavoriteStickers");
+ { s.store_vector_begin("sticker_ids", sticker_ids_.size()); for (const auto &_value : sticker_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateSavedAnimations::updateSavedAnimations()
+ : animation_ids_()
+{}
+
+updateSavedAnimations::updateSavedAnimations(array<int32> &&animation_ids_)
+ : animation_ids_(std::move(animation_ids_))
+{}
+
+const std::int32_t updateSavedAnimations::ID;
+
+void updateSavedAnimations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateSavedAnimations");
+ { s.store_vector_begin("animation_ids", animation_ids_.size()); for (const auto &_value : animation_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateSavedNotificationSounds::updateSavedNotificationSounds()
+ : notification_sound_ids_()
+{}
+
+updateSavedNotificationSounds::updateSavedNotificationSounds(array<int64> &&notification_sound_ids_)
+ : notification_sound_ids_(std::move(notification_sound_ids_))
+{}
+
+const std::int32_t updateSavedNotificationSounds::ID;
+
+void updateSavedNotificationSounds::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateSavedNotificationSounds");
+ { s.store_vector_begin("notification_sound_ids", notification_sound_ids_.size()); for (const auto &_value : notification_sound_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateSelectedBackground::updateSelectedBackground()
+ : for_dark_theme_()
+ , background_()
+{}
+
+updateSelectedBackground::updateSelectedBackground(bool for_dark_theme_, object_ptr<background> &&background_)
+ : for_dark_theme_(for_dark_theme_)
+ , background_(std::move(background_))
+{}
+
+const std::int32_t updateSelectedBackground::ID;
+
+void updateSelectedBackground::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateSelectedBackground");
+ s.store_field("for_dark_theme", for_dark_theme_);
+ s.store_object_field("background", static_cast<const BaseObject *>(background_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChatThemes::updateChatThemes()
+ : chat_themes_()
+{}
+
+updateChatThemes::updateChatThemes(array<object_ptr<chatTheme>> &&chat_themes_)
+ : chat_themes_(std::move(chat_themes_))
+{}
+
+const std::int32_t updateChatThemes::ID;
+
+void updateChatThemes::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatThemes");
+ { s.store_vector_begin("chat_themes", chat_themes_.size()); for (const auto &_value : chat_themes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateLanguagePackStrings::updateLanguagePackStrings()
+ : localization_target_()
+ , language_pack_id_()
+ , strings_()
+{}
+
+updateLanguagePackStrings::updateLanguagePackStrings(string const &localization_target_, string const &language_pack_id_, array<object_ptr<languagePackString>> &&strings_)
+ : localization_target_(localization_target_)
+ , language_pack_id_(language_pack_id_)
+ , strings_(std::move(strings_))
+{}
+
+const std::int32_t updateLanguagePackStrings::ID;
+
+void updateLanguagePackStrings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateLanguagePackStrings");
+ s.store_field("localization_target", localization_target_);
+ s.store_field("language_pack_id", language_pack_id_);
+ { s.store_vector_begin("strings", strings_.size()); for (const auto &_value : strings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateConnectionState::updateConnectionState()
+ : state_()
+{}
+
+updateConnectionState::updateConnectionState(object_ptr<ConnectionState> &&state_)
+ : state_(std::move(state_))
+{}
+
+const std::int32_t updateConnectionState::ID;
+
+void updateConnectionState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateConnectionState");
+ s.store_object_field("state", static_cast<const BaseObject *>(state_.get()));
+ s.store_class_end();
+ }
+}
+
+updateTermsOfService::updateTermsOfService()
+ : terms_of_service_id_()
+ , terms_of_service_()
+{}
+
+updateTermsOfService::updateTermsOfService(string const &terms_of_service_id_, object_ptr<termsOfService> &&terms_of_service_)
+ : terms_of_service_id_(terms_of_service_id_)
+ , terms_of_service_(std::move(terms_of_service_))
+{}
+
+const std::int32_t updateTermsOfService::ID;
+
+void updateTermsOfService::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateTermsOfService");
+ s.store_field("terms_of_service_id", terms_of_service_id_);
+ s.store_object_field("terms_of_service", static_cast<const BaseObject *>(terms_of_service_.get()));
+ s.store_class_end();
+ }
+}
+
+updateUsersNearby::updateUsersNearby()
+ : users_nearby_()
+{}
+
+updateUsersNearby::updateUsersNearby(array<object_ptr<chatNearby>> &&users_nearby_)
+ : users_nearby_(std::move(users_nearby_))
+{}
+
+const std::int32_t updateUsersNearby::ID;
+
+void updateUsersNearby::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUsersNearby");
+ { s.store_vector_begin("users_nearby", users_nearby_.size()); for (const auto &_value : users_nearby_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateAttachmentMenuBots::updateAttachmentMenuBots()
+ : bots_()
+{}
+
+updateAttachmentMenuBots::updateAttachmentMenuBots(array<object_ptr<attachmentMenuBot>> &&bots_)
+ : bots_(std::move(bots_))
+{}
+
+const std::int32_t updateAttachmentMenuBots::ID;
+
+void updateAttachmentMenuBots::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateAttachmentMenuBots");
+ { s.store_vector_begin("bots", bots_.size()); for (const auto &_value : bots_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateWebAppMessageSent::updateWebAppMessageSent()
+ : web_app_launch_id_()
+{}
+
+updateWebAppMessageSent::updateWebAppMessageSent(int64 web_app_launch_id_)
+ : web_app_launch_id_(web_app_launch_id_)
+{}
+
+const std::int32_t updateWebAppMessageSent::ID;
+
+void updateWebAppMessageSent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateWebAppMessageSent");
+ s.store_field("web_app_launch_id", web_app_launch_id_);
+ s.store_class_end();
+ }
+}
+
+updateActiveEmojiReactions::updateActiveEmojiReactions()
+ : emojis_()
+{}
+
+updateActiveEmojiReactions::updateActiveEmojiReactions(array<string> &&emojis_)
+ : emojis_(std::move(emojis_))
+{}
+
+const std::int32_t updateActiveEmojiReactions::ID;
+
+void updateActiveEmojiReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateActiveEmojiReactions");
+ { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateDefaultReactionType::updateDefaultReactionType()
+ : reaction_type_()
+{}
+
+updateDefaultReactionType::updateDefaultReactionType(object_ptr<ReactionType> &&reaction_type_)
+ : reaction_type_(std::move(reaction_type_))
+{}
+
+const std::int32_t updateDefaultReactionType::ID;
+
+void updateDefaultReactionType::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDefaultReactionType");
+ s.store_object_field("reaction_type", static_cast<const BaseObject *>(reaction_type_.get()));
+ s.store_class_end();
+ }
+}
+
+updateDiceEmojis::updateDiceEmojis()
+ : emojis_()
+{}
+
+updateDiceEmojis::updateDiceEmojis(array<string> &&emojis_)
+ : emojis_(std::move(emojis_))
+{}
+
+const std::int32_t updateDiceEmojis::ID;
+
+void updateDiceEmojis::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDiceEmojis");
+ { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateAnimatedEmojiMessageClicked::updateAnimatedEmojiMessageClicked()
+ : chat_id_()
+ , message_id_()
+ , sticker_()
+{}
+
+updateAnimatedEmojiMessageClicked::updateAnimatedEmojiMessageClicked(int53 chat_id_, int53 message_id_, object_ptr<sticker> &&sticker_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , sticker_(std::move(sticker_))
+{}
+
+const std::int32_t updateAnimatedEmojiMessageClicked::ID;
+
+void updateAnimatedEmojiMessageClicked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateAnimatedEmojiMessageClicked");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+updateAnimationSearchParameters::updateAnimationSearchParameters()
+ : provider_()
+ , emojis_()
+{}
+
+updateAnimationSearchParameters::updateAnimationSearchParameters(string const &provider_, array<string> &&emojis_)
+ : provider_(provider_)
+ , emojis_(std::move(emojis_))
+{}
+
+const std::int32_t updateAnimationSearchParameters::ID;
+
+void updateAnimationSearchParameters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateAnimationSearchParameters");
+ s.store_field("provider", provider_);
+ { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateSuggestedActions::updateSuggestedActions()
+ : added_actions_()
+ , removed_actions_()
+{}
+
+updateSuggestedActions::updateSuggestedActions(array<object_ptr<SuggestedAction>> &&added_actions_, array<object_ptr<SuggestedAction>> &&removed_actions_)
+ : added_actions_(std::move(added_actions_))
+ , removed_actions_(std::move(removed_actions_))
+{}
+
+const std::int32_t updateSuggestedActions::ID;
+
+void updateSuggestedActions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateSuggestedActions");
+ { s.store_vector_begin("added_actions", added_actions_.size()); for (const auto &_value : added_actions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("removed_actions", removed_actions_.size()); for (const auto &_value : removed_actions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateNewInlineQuery::updateNewInlineQuery()
+ : id_()
+ , sender_user_id_()
+ , user_location_()
+ , chat_type_()
+ , query_()
+ , offset_()
+{}
+
+updateNewInlineQuery::updateNewInlineQuery(int64 id_, int53 sender_user_id_, object_ptr<location> &&user_location_, object_ptr<ChatType> &&chat_type_, string const &query_, string const &offset_)
+ : id_(id_)
+ , sender_user_id_(sender_user_id_)
+ , user_location_(std::move(user_location_))
+ , chat_type_(std::move(chat_type_))
+ , query_(query_)
+ , offset_(offset_)
+{}
+
+const std::int32_t updateNewInlineQuery::ID;
+
+void updateNewInlineQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewInlineQuery");
+ s.store_field("id", id_);
+ s.store_field("sender_user_id", sender_user_id_);
+ s.store_object_field("user_location", static_cast<const BaseObject *>(user_location_.get()));
+ s.store_object_field("chat_type", static_cast<const BaseObject *>(chat_type_.get()));
+ s.store_field("query", query_);
+ s.store_field("offset", offset_);
+ s.store_class_end();
+ }
+}
+
+updateNewChosenInlineResult::updateNewChosenInlineResult()
+ : sender_user_id_()
+ , user_location_()
+ , query_()
+ , result_id_()
+ , inline_message_id_()
+{}
+
+updateNewChosenInlineResult::updateNewChosenInlineResult(int53 sender_user_id_, object_ptr<location> &&user_location_, string const &query_, string const &result_id_, string const &inline_message_id_)
+ : sender_user_id_(sender_user_id_)
+ , user_location_(std::move(user_location_))
+ , query_(query_)
+ , result_id_(result_id_)
+ , inline_message_id_(inline_message_id_)
+{}
+
+const std::int32_t updateNewChosenInlineResult::ID;
+
+void updateNewChosenInlineResult::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewChosenInlineResult");
+ s.store_field("sender_user_id", sender_user_id_);
+ s.store_object_field("user_location", static_cast<const BaseObject *>(user_location_.get()));
+ s.store_field("query", query_);
+ s.store_field("result_id", result_id_);
+ s.store_field("inline_message_id", inline_message_id_);
+ s.store_class_end();
+ }
+}
+
+updateNewCallbackQuery::updateNewCallbackQuery()
+ : id_()
+ , sender_user_id_()
+ , chat_id_()
+ , message_id_()
+ , chat_instance_()
+ , payload_()
+{}
+
+updateNewCallbackQuery::updateNewCallbackQuery(int64 id_, int53 sender_user_id_, int53 chat_id_, int53 message_id_, int64 chat_instance_, object_ptr<CallbackQueryPayload> &&payload_)
+ : id_(id_)
+ , sender_user_id_(sender_user_id_)
+ , chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , chat_instance_(chat_instance_)
+ , payload_(std::move(payload_))
+{}
+
+const std::int32_t updateNewCallbackQuery::ID;
+
+void updateNewCallbackQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewCallbackQuery");
+ s.store_field("id", id_);
+ s.store_field("sender_user_id", sender_user_id_);
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("chat_instance", chat_instance_);
+ s.store_object_field("payload", static_cast<const BaseObject *>(payload_.get()));
+ s.store_class_end();
+ }
+}
+
+updateNewInlineCallbackQuery::updateNewInlineCallbackQuery()
+ : id_()
+ , sender_user_id_()
+ , inline_message_id_()
+ , chat_instance_()
+ , payload_()
+{}
+
+updateNewInlineCallbackQuery::updateNewInlineCallbackQuery(int64 id_, int53 sender_user_id_, string const &inline_message_id_, int64 chat_instance_, object_ptr<CallbackQueryPayload> &&payload_)
+ : id_(id_)
+ , sender_user_id_(sender_user_id_)
+ , inline_message_id_(inline_message_id_)
+ , chat_instance_(chat_instance_)
+ , payload_(std::move(payload_))
+{}
+
+const std::int32_t updateNewInlineCallbackQuery::ID;
+
+void updateNewInlineCallbackQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewInlineCallbackQuery");
+ s.store_field("id", id_);
+ s.store_field("sender_user_id", sender_user_id_);
+ s.store_field("inline_message_id", inline_message_id_);
+ s.store_field("chat_instance", chat_instance_);
+ s.store_object_field("payload", static_cast<const BaseObject *>(payload_.get()));
+ s.store_class_end();
+ }
+}
+
+updateNewShippingQuery::updateNewShippingQuery()
+ : id_()
+ , sender_user_id_()
+ , invoice_payload_()
+ , shipping_address_()
+{}
+
+updateNewShippingQuery::updateNewShippingQuery(int64 id_, int53 sender_user_id_, string const &invoice_payload_, object_ptr<address> &&shipping_address_)
+ : id_(id_)
+ , sender_user_id_(sender_user_id_)
+ , invoice_payload_(invoice_payload_)
+ , shipping_address_(std::move(shipping_address_))
+{}
+
+const std::int32_t updateNewShippingQuery::ID;
+
+void updateNewShippingQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewShippingQuery");
+ s.store_field("id", id_);
+ s.store_field("sender_user_id", sender_user_id_);
+ s.store_field("invoice_payload", invoice_payload_);
+ s.store_object_field("shipping_address", static_cast<const BaseObject *>(shipping_address_.get()));
+ s.store_class_end();
+ }
+}
+
+updateNewPreCheckoutQuery::updateNewPreCheckoutQuery()
+ : id_()
+ , sender_user_id_()
+ , currency_()
+ , total_amount_()
+ , invoice_payload_()
+ , shipping_option_id_()
+ , order_info_()
+{}
+
+updateNewPreCheckoutQuery::updateNewPreCheckoutQuery(int64 id_, int53 sender_user_id_, string const &currency_, int53 total_amount_, bytes const &invoice_payload_, string const &shipping_option_id_, object_ptr<orderInfo> &&order_info_)
+ : id_(id_)
+ , sender_user_id_(sender_user_id_)
+ , currency_(currency_)
+ , total_amount_(total_amount_)
+ , invoice_payload_(std::move(invoice_payload_))
+ , shipping_option_id_(shipping_option_id_)
+ , order_info_(std::move(order_info_))
+{}
+
+const std::int32_t updateNewPreCheckoutQuery::ID;
+
+void updateNewPreCheckoutQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewPreCheckoutQuery");
+ s.store_field("id", id_);
+ s.store_field("sender_user_id", sender_user_id_);
+ s.store_field("currency", currency_);
+ s.store_field("total_amount", total_amount_);
+ s.store_bytes_field("invoice_payload", invoice_payload_);
+ s.store_field("shipping_option_id", shipping_option_id_);
+ s.store_object_field("order_info", static_cast<const BaseObject *>(order_info_.get()));
+ s.store_class_end();
+ }
+}
+
+updateNewCustomEvent::updateNewCustomEvent()
+ : event_()
+{}
+
+updateNewCustomEvent::updateNewCustomEvent(string const &event_)
+ : event_(event_)
+{}
+
+const std::int32_t updateNewCustomEvent::ID;
+
+void updateNewCustomEvent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewCustomEvent");
+ s.store_field("event", event_);
+ s.store_class_end();
+ }
+}
+
+updateNewCustomQuery::updateNewCustomQuery()
+ : id_()
+ , data_()
+ , timeout_()
+{}
+
+updateNewCustomQuery::updateNewCustomQuery(int64 id_, string const &data_, int32 timeout_)
+ : id_(id_)
+ , data_(data_)
+ , timeout_(timeout_)
+{}
+
+const std::int32_t updateNewCustomQuery::ID;
+
+void updateNewCustomQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewCustomQuery");
+ s.store_field("id", id_);
+ s.store_field("data", data_);
+ s.store_field("timeout", timeout_);
+ s.store_class_end();
+ }
+}
+
+updatePoll::updatePoll()
+ : poll_()
+{}
+
+updatePoll::updatePoll(object_ptr<poll> &&poll_)
+ : poll_(std::move(poll_))
+{}
+
+const std::int32_t updatePoll::ID;
+
+void updatePoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePoll");
+ s.store_object_field("poll", static_cast<const BaseObject *>(poll_.get()));
+ s.store_class_end();
+ }
+}
+
+updatePollAnswer::updatePollAnswer()
+ : poll_id_()
+ , user_id_()
+ , option_ids_()
+{}
+
+updatePollAnswer::updatePollAnswer(int64 poll_id_, int53 user_id_, array<int32> &&option_ids_)
+ : poll_id_(poll_id_)
+ , user_id_(user_id_)
+ , option_ids_(std::move(option_ids_))
+{}
+
+const std::int32_t updatePollAnswer::ID;
+
+void updatePollAnswer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePollAnswer");
+ s.store_field("poll_id", poll_id_);
+ s.store_field("user_id", user_id_);
+ { s.store_vector_begin("option_ids", option_ids_.size()); for (const auto &_value : option_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateChatMember::updateChatMember()
+ : chat_id_()
+ , actor_user_id_()
+ , date_()
+ , invite_link_()
+ , old_chat_member_()
+ , new_chat_member_()
+{}
+
+updateChatMember::updateChatMember(int53 chat_id_, int53 actor_user_id_, int32 date_, object_ptr<chatInviteLink> &&invite_link_, object_ptr<chatMember> &&old_chat_member_, object_ptr<chatMember> &&new_chat_member_)
+ : chat_id_(chat_id_)
+ , actor_user_id_(actor_user_id_)
+ , date_(date_)
+ , invite_link_(std::move(invite_link_))
+ , old_chat_member_(std::move(old_chat_member_))
+ , new_chat_member_(std::move(new_chat_member_))
+{}
+
+const std::int32_t updateChatMember::ID;
+
+void updateChatMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatMember");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("actor_user_id", actor_user_id_);
+ s.store_field("date", date_);
+ s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get()));
+ s.store_object_field("old_chat_member", static_cast<const BaseObject *>(old_chat_member_.get()));
+ s.store_object_field("new_chat_member", static_cast<const BaseObject *>(new_chat_member_.get()));
+ s.store_class_end();
+ }
+}
+
+updateNewChatJoinRequest::updateNewChatJoinRequest()
+ : chat_id_()
+ , request_()
+ , invite_link_()
+{}
+
+updateNewChatJoinRequest::updateNewChatJoinRequest(int53 chat_id_, object_ptr<chatJoinRequest> &&request_, object_ptr<chatInviteLink> &&invite_link_)
+ : chat_id_(chat_id_)
+ , request_(std::move(request_))
+ , invite_link_(std::move(invite_link_))
+{}
+
+const std::int32_t updateNewChatJoinRequest::ID;
+
+void updateNewChatJoinRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewChatJoinRequest");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("request", static_cast<const BaseObject *>(request_.get()));
+ s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get()));
+ s.store_class_end();
+ }
+}
+
+updates::updates()
+ : updates_()
+{}
+
+updates::updates(array<object_ptr<Update>> &&updates_)
+ : updates_(std::move(updates_))
+{}
+
+const std::int32_t updates::ID;
+
+void updates::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates");
+ { s.store_vector_begin("updates", updates_.size()); for (const auto &_value : updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+user::user()
+ : id_()
+ , first_name_()
+ , last_name_()
+ , usernames_()
+ , phone_number_()
+ , status_()
+ , profile_photo_()
+ , emoji_status_()
+ , is_contact_()
+ , is_mutual_contact_()
+ , is_verified_()
+ , is_premium_()
+ , is_support_()
+ , restriction_reason_()
+ , is_scam_()
+ , is_fake_()
+ , have_access_()
+ , type_()
+ , language_code_()
+ , added_to_attachment_menu_()
+{}
+
+user::user(int53 id_, string const &first_name_, string const &last_name_, object_ptr<usernames> &&usernames_, string const &phone_number_, object_ptr<UserStatus> &&status_, object_ptr<profilePhoto> &&profile_photo_, object_ptr<emojiStatus> &&emoji_status_, bool is_contact_, bool is_mutual_contact_, bool is_verified_, bool is_premium_, bool is_support_, string const &restriction_reason_, bool is_scam_, bool is_fake_, bool have_access_, object_ptr<UserType> &&type_, string const &language_code_, bool added_to_attachment_menu_)
+ : id_(id_)
+ , first_name_(first_name_)
+ , last_name_(last_name_)
+ , usernames_(std::move(usernames_))
+ , phone_number_(phone_number_)
+ , status_(std::move(status_))
+ , profile_photo_(std::move(profile_photo_))
+ , emoji_status_(std::move(emoji_status_))
+ , is_contact_(is_contact_)
+ , is_mutual_contact_(is_mutual_contact_)
+ , is_verified_(is_verified_)
+ , is_premium_(is_premium_)
+ , is_support_(is_support_)
+ , restriction_reason_(restriction_reason_)
+ , is_scam_(is_scam_)
+ , is_fake_(is_fake_)
+ , have_access_(have_access_)
+ , type_(std::move(type_))
+ , language_code_(language_code_)
+ , added_to_attachment_menu_(added_to_attachment_menu_)
+{}
+
+const std::int32_t user::ID;
+
+void user::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "user");
+ s.store_field("id", id_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_object_field("usernames", static_cast<const BaseObject *>(usernames_.get()));
+ s.store_field("phone_number", phone_number_);
+ s.store_object_field("status", static_cast<const BaseObject *>(status_.get()));
+ s.store_object_field("profile_photo", static_cast<const BaseObject *>(profile_photo_.get()));
+ s.store_object_field("emoji_status", static_cast<const BaseObject *>(emoji_status_.get()));
+ s.store_field("is_contact", is_contact_);
+ s.store_field("is_mutual_contact", is_mutual_contact_);
+ s.store_field("is_verified", is_verified_);
+ s.store_field("is_premium", is_premium_);
+ s.store_field("is_support", is_support_);
+ s.store_field("restriction_reason", restriction_reason_);
+ s.store_field("is_scam", is_scam_);
+ s.store_field("is_fake", is_fake_);
+ s.store_field("have_access", have_access_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("language_code", language_code_);
+ s.store_field("added_to_attachment_menu", added_to_attachment_menu_);
+ s.store_class_end();
+ }
+}
+
+userFullInfo::userFullInfo()
+ : photo_()
+ , is_blocked_()
+ , can_be_called_()
+ , supports_video_calls_()
+ , has_private_calls_()
+ , has_private_forwards_()
+ , has_restricted_voice_and_video_note_messages_()
+ , need_phone_number_privacy_exception_()
+ , bio_()
+ , premium_gift_options_()
+ , group_in_common_count_()
+ , bot_info_()
+{}
+
+userFullInfo::userFullInfo(object_ptr<chatPhoto> &&photo_, bool is_blocked_, bool can_be_called_, bool supports_video_calls_, bool has_private_calls_, bool has_private_forwards_, bool has_restricted_voice_and_video_note_messages_, bool need_phone_number_privacy_exception_, object_ptr<formattedText> &&bio_, array<object_ptr<premiumPaymentOption>> &&premium_gift_options_, int32 group_in_common_count_, object_ptr<botInfo> &&bot_info_)
+ : photo_(std::move(photo_))
+ , is_blocked_(is_blocked_)
+ , can_be_called_(can_be_called_)
+ , supports_video_calls_(supports_video_calls_)
+ , has_private_calls_(has_private_calls_)
+ , has_private_forwards_(has_private_forwards_)
+ , has_restricted_voice_and_video_note_messages_(has_restricted_voice_and_video_note_messages_)
+ , need_phone_number_privacy_exception_(need_phone_number_privacy_exception_)
+ , bio_(std::move(bio_))
+ , premium_gift_options_(std::move(premium_gift_options_))
+ , group_in_common_count_(group_in_common_count_)
+ , bot_info_(std::move(bot_info_))
+{}
+
+const std::int32_t userFullInfo::ID;
+
+void userFullInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userFullInfo");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("is_blocked", is_blocked_);
+ s.store_field("can_be_called", can_be_called_);
+ s.store_field("supports_video_calls", supports_video_calls_);
+ s.store_field("has_private_calls", has_private_calls_);
+ s.store_field("has_private_forwards", has_private_forwards_);
+ s.store_field("has_restricted_voice_and_video_note_messages", has_restricted_voice_and_video_note_messages_);
+ s.store_field("need_phone_number_privacy_exception", need_phone_number_privacy_exception_);
+ s.store_object_field("bio", static_cast<const BaseObject *>(bio_.get()));
+ { s.store_vector_begin("premium_gift_options", premium_gift_options_.size()); for (const auto &_value : premium_gift_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("group_in_common_count", group_in_common_count_);
+ s.store_object_field("bot_info", static_cast<const BaseObject *>(bot_info_.get()));
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingShowStatus::userPrivacySettingShowStatus() {
+}
+
+const std::int32_t userPrivacySettingShowStatus::ID;
+
+void userPrivacySettingShowStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingShowStatus");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingShowProfilePhoto::userPrivacySettingShowProfilePhoto() {
+}
+
+const std::int32_t userPrivacySettingShowProfilePhoto::ID;
+
+void userPrivacySettingShowProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingShowProfilePhoto");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingShowLinkInForwardedMessages::userPrivacySettingShowLinkInForwardedMessages() {
+}
+
+const std::int32_t userPrivacySettingShowLinkInForwardedMessages::ID;
+
+void userPrivacySettingShowLinkInForwardedMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingShowLinkInForwardedMessages");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingShowPhoneNumber::userPrivacySettingShowPhoneNumber() {
+}
+
+const std::int32_t userPrivacySettingShowPhoneNumber::ID;
+
+void userPrivacySettingShowPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingShowPhoneNumber");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingAllowChatInvites::userPrivacySettingAllowChatInvites() {
+}
+
+const std::int32_t userPrivacySettingAllowChatInvites::ID;
+
+void userPrivacySettingAllowChatInvites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingAllowChatInvites");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingAllowCalls::userPrivacySettingAllowCalls() {
+}
+
+const std::int32_t userPrivacySettingAllowCalls::ID;
+
+void userPrivacySettingAllowCalls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingAllowCalls");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingAllowPeerToPeerCalls::userPrivacySettingAllowPeerToPeerCalls() {
+}
+
+const std::int32_t userPrivacySettingAllowPeerToPeerCalls::ID;
+
+void userPrivacySettingAllowPeerToPeerCalls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingAllowPeerToPeerCalls");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingAllowFindingByPhoneNumber::userPrivacySettingAllowFindingByPhoneNumber() {
+}
+
+const std::int32_t userPrivacySettingAllowFindingByPhoneNumber::ID;
+
+void userPrivacySettingAllowFindingByPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingAllowFindingByPhoneNumber");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages::userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages() {
+}
+
+const std::int32_t userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages::ID;
+
+void userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingRuleAllowAll::userPrivacySettingRuleAllowAll() {
+}
+
+const std::int32_t userPrivacySettingRuleAllowAll::ID;
+
+void userPrivacySettingRuleAllowAll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingRuleAllowAll");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingRuleAllowContacts::userPrivacySettingRuleAllowContacts() {
+}
+
+const std::int32_t userPrivacySettingRuleAllowContacts::ID;
+
+void userPrivacySettingRuleAllowContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingRuleAllowContacts");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingRuleAllowUsers::userPrivacySettingRuleAllowUsers()
+ : user_ids_()
+{}
+
+userPrivacySettingRuleAllowUsers::userPrivacySettingRuleAllowUsers(array<int53> &&user_ids_)
+ : user_ids_(std::move(user_ids_))
+{}
+
+const std::int32_t userPrivacySettingRuleAllowUsers::ID;
+
+void userPrivacySettingRuleAllowUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingRuleAllowUsers");
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingRuleAllowChatMembers::userPrivacySettingRuleAllowChatMembers()
+ : chat_ids_()
+{}
+
+userPrivacySettingRuleAllowChatMembers::userPrivacySettingRuleAllowChatMembers(array<int53> &&chat_ids_)
+ : chat_ids_(std::move(chat_ids_))
+{}
+
+const std::int32_t userPrivacySettingRuleAllowChatMembers::ID;
+
+void userPrivacySettingRuleAllowChatMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingRuleAllowChatMembers");
+ { s.store_vector_begin("chat_ids", chat_ids_.size()); for (const auto &_value : chat_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingRuleRestrictAll::userPrivacySettingRuleRestrictAll() {
+}
+
+const std::int32_t userPrivacySettingRuleRestrictAll::ID;
+
+void userPrivacySettingRuleRestrictAll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingRuleRestrictAll");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingRuleRestrictContacts::userPrivacySettingRuleRestrictContacts() {
+}
+
+const std::int32_t userPrivacySettingRuleRestrictContacts::ID;
+
+void userPrivacySettingRuleRestrictContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingRuleRestrictContacts");
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingRuleRestrictUsers::userPrivacySettingRuleRestrictUsers()
+ : user_ids_()
+{}
+
+userPrivacySettingRuleRestrictUsers::userPrivacySettingRuleRestrictUsers(array<int53> &&user_ids_)
+ : user_ids_(std::move(user_ids_))
+{}
+
+const std::int32_t userPrivacySettingRuleRestrictUsers::ID;
+
+void userPrivacySettingRuleRestrictUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingRuleRestrictUsers");
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingRuleRestrictChatMembers::userPrivacySettingRuleRestrictChatMembers()
+ : chat_ids_()
+{}
+
+userPrivacySettingRuleRestrictChatMembers::userPrivacySettingRuleRestrictChatMembers(array<int53> &&chat_ids_)
+ : chat_ids_(std::move(chat_ids_))
+{}
+
+const std::int32_t userPrivacySettingRuleRestrictChatMembers::ID;
+
+void userPrivacySettingRuleRestrictChatMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingRuleRestrictChatMembers");
+ { s.store_vector_begin("chat_ids", chat_ids_.size()); for (const auto &_value : chat_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+userPrivacySettingRules::userPrivacySettingRules()
+ : rules_()
+{}
+
+userPrivacySettingRules::userPrivacySettingRules(array<object_ptr<UserPrivacySettingRule>> &&rules_)
+ : rules_(std::move(rules_))
+{}
+
+const std::int32_t userPrivacySettingRules::ID;
+
+void userPrivacySettingRules::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userPrivacySettingRules");
+ { s.store_vector_begin("rules", rules_.size()); for (const auto &_value : rules_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+userStatusEmpty::userStatusEmpty() {
+}
+
+const std::int32_t userStatusEmpty::ID;
+
+void userStatusEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusEmpty");
+ s.store_class_end();
+ }
+}
+
+userStatusOnline::userStatusOnline()
+ : expires_()
+{}
+
+userStatusOnline::userStatusOnline(int32 expires_)
+ : expires_(expires_)
+{}
+
+const std::int32_t userStatusOnline::ID;
+
+void userStatusOnline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusOnline");
+ s.store_field("expires", expires_);
+ s.store_class_end();
+ }
+}
+
+userStatusOffline::userStatusOffline()
+ : was_online_()
+{}
+
+userStatusOffline::userStatusOffline(int32 was_online_)
+ : was_online_(was_online_)
+{}
+
+const std::int32_t userStatusOffline::ID;
+
+void userStatusOffline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusOffline");
+ s.store_field("was_online", was_online_);
+ s.store_class_end();
+ }
+}
+
+userStatusRecently::userStatusRecently() {
+}
+
+const std::int32_t userStatusRecently::ID;
+
+void userStatusRecently::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusRecently");
+ s.store_class_end();
+ }
+}
+
+userStatusLastWeek::userStatusLastWeek() {
+}
+
+const std::int32_t userStatusLastWeek::ID;
+
+void userStatusLastWeek::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusLastWeek");
+ s.store_class_end();
+ }
+}
+
+userStatusLastMonth::userStatusLastMonth() {
+}
+
+const std::int32_t userStatusLastMonth::ID;
+
+void userStatusLastMonth::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusLastMonth");
+ s.store_class_end();
+ }
+}
+
+userSupportInfo::userSupportInfo()
+ : message_()
+ , author_()
+ , date_()
+{}
+
+userSupportInfo::userSupportInfo(object_ptr<formattedText> &&message_, string const &author_, int32 date_)
+ : message_(std::move(message_))
+ , author_(author_)
+ , date_(date_)
+{}
+
+const std::int32_t userSupportInfo::ID;
+
+void userSupportInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userSupportInfo");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("author", author_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+userTypeRegular::userTypeRegular() {
+}
+
+const std::int32_t userTypeRegular::ID;
+
+void userTypeRegular::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userTypeRegular");
+ s.store_class_end();
+ }
+}
+
+userTypeDeleted::userTypeDeleted() {
+}
+
+const std::int32_t userTypeDeleted::ID;
+
+void userTypeDeleted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userTypeDeleted");
+ s.store_class_end();
+ }
+}
+
+userTypeBot::userTypeBot()
+ : can_join_groups_()
+ , can_read_all_group_messages_()
+ , is_inline_()
+ , inline_query_placeholder_()
+ , need_location_()
+ , can_be_added_to_attachment_menu_()
+{}
+
+userTypeBot::userTypeBot(bool can_join_groups_, bool can_read_all_group_messages_, bool is_inline_, string const &inline_query_placeholder_, bool need_location_, bool can_be_added_to_attachment_menu_)
+ : can_join_groups_(can_join_groups_)
+ , can_read_all_group_messages_(can_read_all_group_messages_)
+ , is_inline_(is_inline_)
+ , inline_query_placeholder_(inline_query_placeholder_)
+ , need_location_(need_location_)
+ , can_be_added_to_attachment_menu_(can_be_added_to_attachment_menu_)
+{}
+
+const std::int32_t userTypeBot::ID;
+
+void userTypeBot::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userTypeBot");
+ s.store_field("can_join_groups", can_join_groups_);
+ s.store_field("can_read_all_group_messages", can_read_all_group_messages_);
+ s.store_field("is_inline", is_inline_);
+ s.store_field("inline_query_placeholder", inline_query_placeholder_);
+ s.store_field("need_location", need_location_);
+ s.store_field("can_be_added_to_attachment_menu", can_be_added_to_attachment_menu_);
+ s.store_class_end();
+ }
+}
+
+userTypeUnknown::userTypeUnknown() {
+}
+
+const std::int32_t userTypeUnknown::ID;
+
+void userTypeUnknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userTypeUnknown");
+ s.store_class_end();
+ }
+}
+
+usernames::usernames()
+ : active_usernames_()
+ , disabled_usernames_()
+ , editable_username_()
+{}
+
+usernames::usernames(array<string> &&active_usernames_, array<string> &&disabled_usernames_, string const &editable_username_)
+ : active_usernames_(std::move(active_usernames_))
+ , disabled_usernames_(std::move(disabled_usernames_))
+ , editable_username_(editable_username_)
+{}
+
+const std::int32_t usernames::ID;
+
+void usernames::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "usernames");
+ { s.store_vector_begin("active_usernames", active_usernames_.size()); for (const auto &_value : active_usernames_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("disabled_usernames", disabled_usernames_.size()); for (const auto &_value : disabled_usernames_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("editable_username", editable_username_);
+ s.store_class_end();
+ }
+}
+
+users::users()
+ : total_count_()
+ , user_ids_()
+{}
+
+users::users(int32 total_count_, array<int53> &&user_ids_)
+ : total_count_(total_count_)
+ , user_ids_(std::move(user_ids_))
+{}
+
+const std::int32_t users::ID;
+
+void users::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "users");
+ s.store_field("total_count", total_count_);
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+validatedOrderInfo::validatedOrderInfo()
+ : order_info_id_()
+ , shipping_options_()
+{}
+
+validatedOrderInfo::validatedOrderInfo(string const &order_info_id_, array<object_ptr<shippingOption>> &&shipping_options_)
+ : order_info_id_(order_info_id_)
+ , shipping_options_(std::move(shipping_options_))
+{}
+
+const std::int32_t validatedOrderInfo::ID;
+
+void validatedOrderInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "validatedOrderInfo");
+ s.store_field("order_info_id", order_info_id_);
+ { s.store_vector_begin("shipping_options", shipping_options_.size()); for (const auto &_value : shipping_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+vectorPathCommandLine::vectorPathCommandLine()
+ : end_point_()
+{}
+
+vectorPathCommandLine::vectorPathCommandLine(object_ptr<point> &&end_point_)
+ : end_point_(std::move(end_point_))
+{}
+
+const std::int32_t vectorPathCommandLine::ID;
+
+void vectorPathCommandLine::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "vectorPathCommandLine");
+ s.store_object_field("end_point", static_cast<const BaseObject *>(end_point_.get()));
+ s.store_class_end();
+ }
+}
+
+vectorPathCommandCubicBezierCurve::vectorPathCommandCubicBezierCurve()
+ : start_control_point_()
+ , end_control_point_()
+ , end_point_()
+{}
+
+vectorPathCommandCubicBezierCurve::vectorPathCommandCubicBezierCurve(object_ptr<point> &&start_control_point_, object_ptr<point> &&end_control_point_, object_ptr<point> &&end_point_)
+ : start_control_point_(std::move(start_control_point_))
+ , end_control_point_(std::move(end_control_point_))
+ , end_point_(std::move(end_point_))
+{}
+
+const std::int32_t vectorPathCommandCubicBezierCurve::ID;
+
+void vectorPathCommandCubicBezierCurve::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "vectorPathCommandCubicBezierCurve");
+ s.store_object_field("start_control_point", static_cast<const BaseObject *>(start_control_point_.get()));
+ s.store_object_field("end_control_point", static_cast<const BaseObject *>(end_control_point_.get()));
+ s.store_object_field("end_point", static_cast<const BaseObject *>(end_point_.get()));
+ s.store_class_end();
+ }
+}
+
+venue::venue()
+ : location_()
+ , title_()
+ , address_()
+ , provider_()
+ , id_()
+ , type_()
+{}
+
+venue::venue(object_ptr<location> &&location_, string const &title_, string const &address_, string const &provider_, string const &id_, string const &type_)
+ : location_(std::move(location_))
+ , title_(title_)
+ , address_(address_)
+ , provider_(provider_)
+ , id_(id_)
+ , type_(type_)
+{}
+
+const std::int32_t venue::ID;
+
+void venue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "venue");
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("title", title_);
+ s.store_field("address", address_);
+ s.store_field("provider", provider_);
+ s.store_field("id", id_);
+ s.store_field("type", type_);
+ s.store_class_end();
+ }
+}
+
+video::video()
+ : duration_()
+ , width_()
+ , height_()
+ , file_name_()
+ , mime_type_()
+ , has_stickers_()
+ , supports_streaming_()
+ , minithumbnail_()
+ , thumbnail_()
+ , video_()
+{}
+
+video::video(int32 duration_, int32 width_, int32 height_, string const &file_name_, string const &mime_type_, bool has_stickers_, bool supports_streaming_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&video_)
+ : duration_(duration_)
+ , width_(width_)
+ , height_(height_)
+ , file_name_(file_name_)
+ , mime_type_(mime_type_)
+ , has_stickers_(has_stickers_)
+ , supports_streaming_(supports_streaming_)
+ , minithumbnail_(std::move(minithumbnail_))
+ , thumbnail_(std::move(thumbnail_))
+ , video_(std::move(video_))
+{}
+
+const std::int32_t video::ID;
+
+void video::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "video");
+ s.store_field("duration", duration_);
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_field("file_name", file_name_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("has_stickers", has_stickers_);
+ s.store_field("supports_streaming", supports_streaming_);
+ s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_object_field("video", static_cast<const BaseObject *>(video_.get()));
+ s.store_class_end();
+ }
+}
+
+videoChat::videoChat()
+ : group_call_id_()
+ , has_participants_()
+ , default_participant_id_()
+{}
+
+videoChat::videoChat(int32 group_call_id_, bool has_participants_, object_ptr<MessageSender> &&default_participant_id_)
+ : group_call_id_(group_call_id_)
+ , has_participants_(has_participants_)
+ , default_participant_id_(std::move(default_participant_id_))
+{}
+
+const std::int32_t videoChat::ID;
+
+void videoChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "videoChat");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("has_participants", has_participants_);
+ s.store_object_field("default_participant_id", static_cast<const BaseObject *>(default_participant_id_.get()));
+ s.store_class_end();
+ }
+}
+
+videoNote::videoNote()
+ : duration_()
+ , waveform_()
+ , length_()
+ , minithumbnail_()
+ , thumbnail_()
+ , speech_recognition_result_()
+ , video_()
+{}
+
+videoNote::videoNote(int32 duration_, bytes const &waveform_, int32 length_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<SpeechRecognitionResult> &&speech_recognition_result_, object_ptr<file> &&video_)
+ : duration_(duration_)
+ , waveform_(std::move(waveform_))
+ , length_(length_)
+ , minithumbnail_(std::move(minithumbnail_))
+ , thumbnail_(std::move(thumbnail_))
+ , speech_recognition_result_(std::move(speech_recognition_result_))
+ , video_(std::move(video_))
+{}
+
+const std::int32_t videoNote::ID;
+
+void videoNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "videoNote");
+ s.store_field("duration", duration_);
+ s.store_bytes_field("waveform", waveform_);
+ s.store_field("length", length_);
+ s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get()));
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_object_field("speech_recognition_result", static_cast<const BaseObject *>(speech_recognition_result_.get()));
+ s.store_object_field("video", static_cast<const BaseObject *>(video_.get()));
+ s.store_class_end();
+ }
+}
+
+voiceNote::voiceNote()
+ : duration_()
+ , waveform_()
+ , mime_type_()
+ , speech_recognition_result_()
+ , voice_()
+{}
+
+voiceNote::voiceNote(int32 duration_, bytes const &waveform_, string const &mime_type_, object_ptr<SpeechRecognitionResult> &&speech_recognition_result_, object_ptr<file> &&voice_)
+ : duration_(duration_)
+ , waveform_(std::move(waveform_))
+ , mime_type_(mime_type_)
+ , speech_recognition_result_(std::move(speech_recognition_result_))
+ , voice_(std::move(voice_))
+{}
+
+const std::int32_t voiceNote::ID;
+
+void voiceNote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "voiceNote");
+ s.store_field("duration", duration_);
+ s.store_bytes_field("waveform", waveform_);
+ s.store_field("mime_type", mime_type_);
+ s.store_object_field("speech_recognition_result", static_cast<const BaseObject *>(speech_recognition_result_.get()));
+ s.store_object_field("voice", static_cast<const BaseObject *>(voice_.get()));
+ s.store_class_end();
+ }
+}
+
+webAppInfo::webAppInfo()
+ : launch_id_()
+ , url_()
+{}
+
+webAppInfo::webAppInfo(int64 launch_id_, string const &url_)
+ : launch_id_(launch_id_)
+ , url_(url_)
+{}
+
+const std::int32_t webAppInfo::ID;
+
+void webAppInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webAppInfo");
+ s.store_field("launch_id", launch_id_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+webPage::webPage()
+ : url_()
+ , display_url_()
+ , type_()
+ , site_name_()
+ , title_()
+ , description_()
+ , photo_()
+ , embed_url_()
+ , embed_type_()
+ , embed_width_()
+ , embed_height_()
+ , duration_()
+ , author_()
+ , animation_()
+ , audio_()
+ , document_()
+ , sticker_()
+ , video_()
+ , video_note_()
+ , voice_note_()
+ , instant_view_version_()
+{}
+
+webPage::webPage(string const &url_, string const &display_url_, string const &type_, string const &site_name_, string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, string const &embed_url_, string const &embed_type_, int32 embed_width_, int32 embed_height_, int32 duration_, string const &author_, object_ptr<animation> &&animation_, object_ptr<audio> &&audio_, object_ptr<document> &&document_, object_ptr<sticker> &&sticker_, object_ptr<video> &&video_, object_ptr<videoNote> &&video_note_, object_ptr<voiceNote> &&voice_note_, int32 instant_view_version_)
+ : url_(url_)
+ , display_url_(display_url_)
+ , type_(type_)
+ , site_name_(site_name_)
+ , title_(title_)
+ , description_(std::move(description_))
+ , photo_(std::move(photo_))
+ , embed_url_(embed_url_)
+ , embed_type_(embed_type_)
+ , embed_width_(embed_width_)
+ , embed_height_(embed_height_)
+ , duration_(duration_)
+ , author_(author_)
+ , animation_(std::move(animation_))
+ , audio_(std::move(audio_))
+ , document_(std::move(document_))
+ , sticker_(std::move(sticker_))
+ , video_(std::move(video_))
+ , video_note_(std::move(video_note_))
+ , voice_note_(std::move(voice_note_))
+ , instant_view_version_(instant_view_version_)
+{}
+
+const std::int32_t webPage::ID;
+
+void webPage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webPage");
+ s.store_field("url", url_);
+ s.store_field("display_url", display_url_);
+ s.store_field("type", type_);
+ s.store_field("site_name", site_name_);
+ s.store_field("title", title_);
+ s.store_object_field("description", static_cast<const BaseObject *>(description_.get()));
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("embed_url", embed_url_);
+ s.store_field("embed_type", embed_type_);
+ s.store_field("embed_width", embed_width_);
+ s.store_field("embed_height", embed_height_);
+ s.store_field("duration", duration_);
+ s.store_field("author", author_);
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get()));
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_object_field("video", static_cast<const BaseObject *>(video_.get()));
+ s.store_object_field("video_note", static_cast<const BaseObject *>(video_note_.get()));
+ s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get()));
+ s.store_field("instant_view_version", instant_view_version_);
+ s.store_class_end();
+ }
+}
+
+webPageInstantView::webPageInstantView()
+ : page_blocks_()
+ , view_count_()
+ , version_()
+ , is_rtl_()
+ , is_full_()
+ , feedback_link_()
+{}
+
+webPageInstantView::webPageInstantView(array<object_ptr<PageBlock>> &&page_blocks_, int32 view_count_, int32 version_, bool is_rtl_, bool is_full_, object_ptr<InternalLinkType> &&feedback_link_)
+ : page_blocks_(std::move(page_blocks_))
+ , view_count_(view_count_)
+ , version_(version_)
+ , is_rtl_(is_rtl_)
+ , is_full_(is_full_)
+ , feedback_link_(std::move(feedback_link_))
+{}
+
+const std::int32_t webPageInstantView::ID;
+
+void webPageInstantView::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webPageInstantView");
+ { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("view_count", view_count_);
+ s.store_field("version", version_);
+ s.store_field("is_rtl", is_rtl_);
+ s.store_field("is_full", is_full_);
+ s.store_object_field("feedback_link", static_cast<const BaseObject *>(feedback_link_.get()));
+ s.store_class_end();
+ }
+}
+
+acceptCall::acceptCall()
+ : call_id_()
+ , protocol_()
+{}
+
+acceptCall::acceptCall(int32 call_id_, object_ptr<callProtocol> &&protocol_)
+ : call_id_(call_id_)
+ , protocol_(std::move(protocol_))
+{}
+
+const std::int32_t acceptCall::ID;
+
+void acceptCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "acceptCall");
+ s.store_field("call_id", call_id_);
+ s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get()));
+ s.store_class_end();
+ }
+}
+
+acceptTermsOfService::acceptTermsOfService()
+ : terms_of_service_id_()
+{}
+
+acceptTermsOfService::acceptTermsOfService(string const &terms_of_service_id_)
+ : terms_of_service_id_(terms_of_service_id_)
+{}
+
+const std::int32_t acceptTermsOfService::ID;
+
+void acceptTermsOfService::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "acceptTermsOfService");
+ s.store_field("terms_of_service_id", terms_of_service_id_);
+ s.store_class_end();
+ }
+}
+
+addChatMember::addChatMember()
+ : chat_id_()
+ , user_id_()
+ , forward_limit_()
+{}
+
+addChatMember::addChatMember(int53 chat_id_, int53 user_id_, int32 forward_limit_)
+ : chat_id_(chat_id_)
+ , user_id_(user_id_)
+ , forward_limit_(forward_limit_)
+{}
+
+const std::int32_t addChatMember::ID;
+
+void addChatMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addChatMember");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("user_id", user_id_);
+ s.store_field("forward_limit", forward_limit_);
+ s.store_class_end();
+ }
+}
+
+addChatMembers::addChatMembers()
+ : chat_id_()
+ , user_ids_()
+{}
+
+addChatMembers::addChatMembers(int53 chat_id_, array<int53> &&user_ids_)
+ : chat_id_(chat_id_)
+ , user_ids_(std::move(user_ids_))
+{}
+
+const std::int32_t addChatMembers::ID;
+
+void addChatMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addChatMembers");
+ s.store_field("chat_id", chat_id_);
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+addChatToList::addChatToList()
+ : chat_id_()
+ , chat_list_()
+{}
+
+addChatToList::addChatToList(int53 chat_id_, object_ptr<ChatList> &&chat_list_)
+ : chat_id_(chat_id_)
+ , chat_list_(std::move(chat_list_))
+{}
+
+const std::int32_t addChatToList::ID;
+
+void addChatToList::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addChatToList");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get()));
+ s.store_class_end();
+ }
+}
+
+addContact::addContact()
+ : contact_()
+ , share_phone_number_()
+{}
+
+addContact::addContact(object_ptr<contact> &&contact_, bool share_phone_number_)
+ : contact_(std::move(contact_))
+ , share_phone_number_(share_phone_number_)
+{}
+
+const std::int32_t addContact::ID;
+
+void addContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addContact");
+ s.store_object_field("contact", static_cast<const BaseObject *>(contact_.get()));
+ s.store_field("share_phone_number", share_phone_number_);
+ s.store_class_end();
+ }
+}
+
+addCustomServerLanguagePack::addCustomServerLanguagePack()
+ : language_pack_id_()
+{}
+
+addCustomServerLanguagePack::addCustomServerLanguagePack(string const &language_pack_id_)
+ : language_pack_id_(language_pack_id_)
+{}
+
+const std::int32_t addCustomServerLanguagePack::ID;
+
+void addCustomServerLanguagePack::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addCustomServerLanguagePack");
+ s.store_field("language_pack_id", language_pack_id_);
+ s.store_class_end();
+ }
+}
+
+addFavoriteSticker::addFavoriteSticker()
+ : sticker_()
+{}
+
+addFavoriteSticker::addFavoriteSticker(object_ptr<InputFile> &&sticker_)
+ : sticker_(std::move(sticker_))
+{}
+
+const std::int32_t addFavoriteSticker::ID;
+
+void addFavoriteSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addFavoriteSticker");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+addFileToDownloads::addFileToDownloads()
+ : file_id_()
+ , chat_id_()
+ , message_id_()
+ , priority_()
+{}
+
+addFileToDownloads::addFileToDownloads(int32 file_id_, int53 chat_id_, int53 message_id_, int32 priority_)
+ : file_id_(file_id_)
+ , chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , priority_(priority_)
+{}
+
+const std::int32_t addFileToDownloads::ID;
+
+void addFileToDownloads::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addFileToDownloads");
+ s.store_field("file_id", file_id_);
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("priority", priority_);
+ s.store_class_end();
+ }
+}
+
+addLocalMessage::addLocalMessage()
+ : chat_id_()
+ , sender_id_()
+ , reply_to_message_id_()
+ , disable_notification_()
+ , input_message_content_()
+{}
+
+addLocalMessage::addLocalMessage(int53 chat_id_, object_ptr<MessageSender> &&sender_id_, int53 reply_to_message_id_, bool disable_notification_, object_ptr<InputMessageContent> &&input_message_content_)
+ : chat_id_(chat_id_)
+ , sender_id_(std::move(sender_id_))
+ , reply_to_message_id_(reply_to_message_id_)
+ , disable_notification_(disable_notification_)
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t addLocalMessage::ID;
+
+void addLocalMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addLocalMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get()));
+ s.store_field("reply_to_message_id", reply_to_message_id_);
+ s.store_field("disable_notification", disable_notification_);
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+addLogMessage::addLogMessage()
+ : verbosity_level_()
+ , text_()
+{}
+
+addLogMessage::addLogMessage(int32 verbosity_level_, string const &text_)
+ : verbosity_level_(verbosity_level_)
+ , text_(text_)
+{}
+
+const std::int32_t addLogMessage::ID;
+
+void addLogMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addLogMessage");
+ s.store_field("verbosity_level", verbosity_level_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+addMessageReaction::addMessageReaction()
+ : chat_id_()
+ , message_id_()
+ , reaction_type_()
+ , is_big_()
+ , update_recent_reactions_()
+{}
+
+addMessageReaction::addMessageReaction(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_, bool is_big_, bool update_recent_reactions_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , reaction_type_(std::move(reaction_type_))
+ , is_big_(is_big_)
+ , update_recent_reactions_(update_recent_reactions_)
+{}
+
+const std::int32_t addMessageReaction::ID;
+
+void addMessageReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addMessageReaction");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("reaction_type", static_cast<const BaseObject *>(reaction_type_.get()));
+ s.store_field("is_big", is_big_);
+ s.store_field("update_recent_reactions", update_recent_reactions_);
+ s.store_class_end();
+ }
+}
+
+addNetworkStatistics::addNetworkStatistics()
+ : entry_()
+{}
+
+addNetworkStatistics::addNetworkStatistics(object_ptr<NetworkStatisticsEntry> &&entry_)
+ : entry_(std::move(entry_))
+{}
+
+const std::int32_t addNetworkStatistics::ID;
+
+void addNetworkStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addNetworkStatistics");
+ s.store_object_field("entry", static_cast<const BaseObject *>(entry_.get()));
+ s.store_class_end();
+ }
+}
+
+addProxy::addProxy()
+ : server_()
+ , port_()
+ , enable_()
+ , type_()
+{}
+
+addProxy::addProxy(string const &server_, int32 port_, bool enable_, object_ptr<ProxyType> &&type_)
+ : server_(server_)
+ , port_(port_)
+ , enable_(enable_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t addProxy::ID;
+
+void addProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addProxy");
+ s.store_field("server", server_);
+ s.store_field("port", port_);
+ s.store_field("enable", enable_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+addRecentSticker::addRecentSticker()
+ : is_attached_()
+ , sticker_()
+{}
+
+addRecentSticker::addRecentSticker(bool is_attached_, object_ptr<InputFile> &&sticker_)
+ : is_attached_(is_attached_)
+ , sticker_(std::move(sticker_))
+{}
+
+const std::int32_t addRecentSticker::ID;
+
+void addRecentSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addRecentSticker");
+ s.store_field("is_attached", is_attached_);
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+addRecentlyFoundChat::addRecentlyFoundChat()
+ : chat_id_()
+{}
+
+addRecentlyFoundChat::addRecentlyFoundChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t addRecentlyFoundChat::ID;
+
+void addRecentlyFoundChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addRecentlyFoundChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+addSavedAnimation::addSavedAnimation()
+ : animation_()
+{}
+
+addSavedAnimation::addSavedAnimation(object_ptr<InputFile> &&animation_)
+ : animation_(std::move(animation_))
+{}
+
+const std::int32_t addSavedAnimation::ID;
+
+void addSavedAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addSavedAnimation");
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_class_end();
+ }
+}
+
+addSavedNotificationSound::addSavedNotificationSound()
+ : sound_()
+{}
+
+addSavedNotificationSound::addSavedNotificationSound(object_ptr<InputFile> &&sound_)
+ : sound_(std::move(sound_))
+{}
+
+const std::int32_t addSavedNotificationSound::ID;
+
+void addSavedNotificationSound::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addSavedNotificationSound");
+ s.store_object_field("sound", static_cast<const BaseObject *>(sound_.get()));
+ s.store_class_end();
+ }
+}
+
+addStickerToSet::addStickerToSet()
+ : user_id_()
+ , name_()
+ , sticker_()
+{}
+
+addStickerToSet::addStickerToSet(int53 user_id_, string const &name_, object_ptr<inputSticker> &&sticker_)
+ : user_id_(user_id_)
+ , name_(name_)
+ , sticker_(std::move(sticker_))
+{}
+
+const std::int32_t addStickerToSet::ID;
+
+void addStickerToSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "addStickerToSet");
+ s.store_field("user_id", user_id_);
+ s.store_field("name", name_);
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+answerCallbackQuery::answerCallbackQuery()
+ : callback_query_id_()
+ , text_()
+ , show_alert_()
+ , url_()
+ , cache_time_()
+{}
+
+answerCallbackQuery::answerCallbackQuery(int64 callback_query_id_, string const &text_, bool show_alert_, string const &url_, int32 cache_time_)
+ : callback_query_id_(callback_query_id_)
+ , text_(text_)
+ , show_alert_(show_alert_)
+ , url_(url_)
+ , cache_time_(cache_time_)
+{}
+
+const std::int32_t answerCallbackQuery::ID;
+
+void answerCallbackQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "answerCallbackQuery");
+ s.store_field("callback_query_id", callback_query_id_);
+ s.store_field("text", text_);
+ s.store_field("show_alert", show_alert_);
+ s.store_field("url", url_);
+ s.store_field("cache_time", cache_time_);
+ s.store_class_end();
+ }
+}
+
+answerCustomQuery::answerCustomQuery()
+ : custom_query_id_()
+ , data_()
+{}
+
+answerCustomQuery::answerCustomQuery(int64 custom_query_id_, string const &data_)
+ : custom_query_id_(custom_query_id_)
+ , data_(data_)
+{}
+
+const std::int32_t answerCustomQuery::ID;
+
+void answerCustomQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "answerCustomQuery");
+ s.store_field("custom_query_id", custom_query_id_);
+ s.store_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+answerInlineQuery::answerInlineQuery()
+ : inline_query_id_()
+ , is_personal_()
+ , results_()
+ , cache_time_()
+ , next_offset_()
+ , switch_pm_text_()
+ , switch_pm_parameter_()
+{}
+
+answerInlineQuery::answerInlineQuery(int64 inline_query_id_, bool is_personal_, array<object_ptr<InputInlineQueryResult>> &&results_, int32 cache_time_, string const &next_offset_, string const &switch_pm_text_, string const &switch_pm_parameter_)
+ : inline_query_id_(inline_query_id_)
+ , is_personal_(is_personal_)
+ , results_(std::move(results_))
+ , cache_time_(cache_time_)
+ , next_offset_(next_offset_)
+ , switch_pm_text_(switch_pm_text_)
+ , switch_pm_parameter_(switch_pm_parameter_)
+{}
+
+const std::int32_t answerInlineQuery::ID;
+
+void answerInlineQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "answerInlineQuery");
+ s.store_field("inline_query_id", inline_query_id_);
+ s.store_field("is_personal", is_personal_);
+ { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("cache_time", cache_time_);
+ s.store_field("next_offset", next_offset_);
+ s.store_field("switch_pm_text", switch_pm_text_);
+ s.store_field("switch_pm_parameter", switch_pm_parameter_);
+ s.store_class_end();
+ }
+}
+
+answerPreCheckoutQuery::answerPreCheckoutQuery()
+ : pre_checkout_query_id_()
+ , error_message_()
+{}
+
+answerPreCheckoutQuery::answerPreCheckoutQuery(int64 pre_checkout_query_id_, string const &error_message_)
+ : pre_checkout_query_id_(pre_checkout_query_id_)
+ , error_message_(error_message_)
+{}
+
+const std::int32_t answerPreCheckoutQuery::ID;
+
+void answerPreCheckoutQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "answerPreCheckoutQuery");
+ s.store_field("pre_checkout_query_id", pre_checkout_query_id_);
+ s.store_field("error_message", error_message_);
+ s.store_class_end();
+ }
+}
+
+answerShippingQuery::answerShippingQuery()
+ : shipping_query_id_()
+ , shipping_options_()
+ , error_message_()
+{}
+
+answerShippingQuery::answerShippingQuery(int64 shipping_query_id_, array<object_ptr<shippingOption>> &&shipping_options_, string const &error_message_)
+ : shipping_query_id_(shipping_query_id_)
+ , shipping_options_(std::move(shipping_options_))
+ , error_message_(error_message_)
+{}
+
+const std::int32_t answerShippingQuery::ID;
+
+void answerShippingQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "answerShippingQuery");
+ s.store_field("shipping_query_id", shipping_query_id_);
+ { s.store_vector_begin("shipping_options", shipping_options_.size()); for (const auto &_value : shipping_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("error_message", error_message_);
+ s.store_class_end();
+ }
+}
+
+answerWebAppQuery::answerWebAppQuery()
+ : web_app_query_id_()
+ , result_()
+{}
+
+answerWebAppQuery::answerWebAppQuery(string const &web_app_query_id_, object_ptr<InputInlineQueryResult> &&result_)
+ : web_app_query_id_(web_app_query_id_)
+ , result_(std::move(result_))
+{}
+
+const std::int32_t answerWebAppQuery::ID;
+
+void answerWebAppQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "answerWebAppQuery");
+ s.store_field("web_app_query_id", web_app_query_id_);
+ s.store_object_field("result", static_cast<const BaseObject *>(result_.get()));
+ s.store_class_end();
+ }
+}
+
+assignAppStoreTransaction::assignAppStoreTransaction()
+ : receipt_()
+ , purpose_()
+{}
+
+assignAppStoreTransaction::assignAppStoreTransaction(bytes const &receipt_, object_ptr<StorePaymentPurpose> &&purpose_)
+ : receipt_(std::move(receipt_))
+ , purpose_(std::move(purpose_))
+{}
+
+const std::int32_t assignAppStoreTransaction::ID;
+
+void assignAppStoreTransaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "assignAppStoreTransaction");
+ s.store_bytes_field("receipt", receipt_);
+ s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get()));
+ s.store_class_end();
+ }
+}
+
+assignGooglePlayTransaction::assignGooglePlayTransaction()
+ : package_name_()
+ , store_product_id_()
+ , purchase_token_()
+ , purpose_()
+{}
+
+assignGooglePlayTransaction::assignGooglePlayTransaction(string const &package_name_, string const &store_product_id_, string const &purchase_token_, object_ptr<StorePaymentPurpose> &&purpose_)
+ : package_name_(package_name_)
+ , store_product_id_(store_product_id_)
+ , purchase_token_(purchase_token_)
+ , purpose_(std::move(purpose_))
+{}
+
+const std::int32_t assignGooglePlayTransaction::ID;
+
+void assignGooglePlayTransaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "assignGooglePlayTransaction");
+ s.store_field("package_name", package_name_);
+ s.store_field("store_product_id", store_product_id_);
+ s.store_field("purchase_token", purchase_token_);
+ s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get()));
+ s.store_class_end();
+ }
+}
+
+banChatMember::banChatMember()
+ : chat_id_()
+ , member_id_()
+ , banned_until_date_()
+ , revoke_messages_()
+{}
+
+banChatMember::banChatMember(int53 chat_id_, object_ptr<MessageSender> &&member_id_, int32 banned_until_date_, bool revoke_messages_)
+ : chat_id_(chat_id_)
+ , member_id_(std::move(member_id_))
+ , banned_until_date_(banned_until_date_)
+ , revoke_messages_(revoke_messages_)
+{}
+
+const std::int32_t banChatMember::ID;
+
+void banChatMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "banChatMember");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get()));
+ s.store_field("banned_until_date", banned_until_date_);
+ s.store_field("revoke_messages", revoke_messages_);
+ s.store_class_end();
+ }
+}
+
+blockMessageSenderFromReplies::blockMessageSenderFromReplies()
+ : message_id_()
+ , delete_message_()
+ , delete_all_messages_()
+ , report_spam_()
+{}
+
+blockMessageSenderFromReplies::blockMessageSenderFromReplies(int53 message_id_, bool delete_message_, bool delete_all_messages_, bool report_spam_)
+ : message_id_(message_id_)
+ , delete_message_(delete_message_)
+ , delete_all_messages_(delete_all_messages_)
+ , report_spam_(report_spam_)
+{}
+
+const std::int32_t blockMessageSenderFromReplies::ID;
+
+void blockMessageSenderFromReplies::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "blockMessageSenderFromReplies");
+ s.store_field("message_id", message_id_);
+ s.store_field("delete_message", delete_message_);
+ s.store_field("delete_all_messages", delete_all_messages_);
+ s.store_field("report_spam", report_spam_);
+ s.store_class_end();
+ }
+}
+
+canPurchasePremium::canPurchasePremium()
+ : purpose_()
+{}
+
+canPurchasePremium::canPurchasePremium(object_ptr<StorePaymentPurpose> &&purpose_)
+ : purpose_(std::move(purpose_))
+{}
+
+const std::int32_t canPurchasePremium::ID;
+
+void canPurchasePremium::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "canPurchasePremium");
+ s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get()));
+ s.store_class_end();
+ }
+}
+
+canTransferOwnership::canTransferOwnership() {
+}
+
+const std::int32_t canTransferOwnership::ID;
+
+void canTransferOwnership::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "canTransferOwnership");
+ s.store_class_end();
+ }
+}
+
+cancelDownloadFile::cancelDownloadFile()
+ : file_id_()
+ , only_if_pending_()
+{}
+
+cancelDownloadFile::cancelDownloadFile(int32 file_id_, bool only_if_pending_)
+ : file_id_(file_id_)
+ , only_if_pending_(only_if_pending_)
+{}
+
+const std::int32_t cancelDownloadFile::ID;
+
+void cancelDownloadFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "cancelDownloadFile");
+ s.store_field("file_id", file_id_);
+ s.store_field("only_if_pending", only_if_pending_);
+ s.store_class_end();
+ }
+}
+
+cancelPasswordReset::cancelPasswordReset() {
+}
+
+const std::int32_t cancelPasswordReset::ID;
+
+void cancelPasswordReset::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "cancelPasswordReset");
+ s.store_class_end();
+ }
+}
+
+cancelPreliminaryUploadFile::cancelPreliminaryUploadFile()
+ : file_id_()
+{}
+
+cancelPreliminaryUploadFile::cancelPreliminaryUploadFile(int32 file_id_)
+ : file_id_(file_id_)
+{}
+
+const std::int32_t cancelPreliminaryUploadFile::ID;
+
+void cancelPreliminaryUploadFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "cancelPreliminaryUploadFile");
+ s.store_field("file_id", file_id_);
+ s.store_class_end();
+ }
+}
+
+changeImportedContacts::changeImportedContacts()
+ : contacts_()
+{}
+
+changeImportedContacts::changeImportedContacts(array<object_ptr<contact>> &&contacts_)
+ : contacts_(std::move(contacts_))
+{}
+
+const std::int32_t changeImportedContacts::ID;
+
+void changeImportedContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "changeImportedContacts");
+ { s.store_vector_begin("contacts", contacts_.size()); for (const auto &_value : contacts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+changePhoneNumber::changePhoneNumber()
+ : phone_number_()
+ , settings_()
+{}
+
+changePhoneNumber::changePhoneNumber(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_)
+ : phone_number_(phone_number_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t changePhoneNumber::ID;
+
+void changePhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "changePhoneNumber");
+ s.store_field("phone_number", phone_number_);
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+changeStickerSet::changeStickerSet()
+ : set_id_()
+ , is_installed_()
+ , is_archived_()
+{}
+
+changeStickerSet::changeStickerSet(int64 set_id_, bool is_installed_, bool is_archived_)
+ : set_id_(set_id_)
+ , is_installed_(is_installed_)
+ , is_archived_(is_archived_)
+{}
+
+const std::int32_t changeStickerSet::ID;
+
+void changeStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "changeStickerSet");
+ s.store_field("set_id", set_id_);
+ s.store_field("is_installed", is_installed_);
+ s.store_field("is_archived", is_archived_);
+ s.store_class_end();
+ }
+}
+
+checkAuthenticationBotToken::checkAuthenticationBotToken()
+ : token_()
+{}
+
+checkAuthenticationBotToken::checkAuthenticationBotToken(string const &token_)
+ : token_(token_)
+{}
+
+const std::int32_t checkAuthenticationBotToken::ID;
+
+void checkAuthenticationBotToken::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkAuthenticationBotToken");
+ s.store_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+checkAuthenticationCode::checkAuthenticationCode()
+ : code_()
+{}
+
+checkAuthenticationCode::checkAuthenticationCode(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t checkAuthenticationCode::ID;
+
+void checkAuthenticationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkAuthenticationCode");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+checkAuthenticationEmailCode::checkAuthenticationEmailCode()
+ : code_()
+{}
+
+checkAuthenticationEmailCode::checkAuthenticationEmailCode(object_ptr<EmailAddressAuthentication> &&code_)
+ : code_(std::move(code_))
+{}
+
+const std::int32_t checkAuthenticationEmailCode::ID;
+
+void checkAuthenticationEmailCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkAuthenticationEmailCode");
+ s.store_object_field("code", static_cast<const BaseObject *>(code_.get()));
+ s.store_class_end();
+ }
+}
+
+checkAuthenticationPassword::checkAuthenticationPassword()
+ : password_()
+{}
+
+checkAuthenticationPassword::checkAuthenticationPassword(string const &password_)
+ : password_(password_)
+{}
+
+const std::int32_t checkAuthenticationPassword::ID;
+
+void checkAuthenticationPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkAuthenticationPassword");
+ s.store_field("password", password_);
+ s.store_class_end();
+ }
+}
+
+checkAuthenticationPasswordRecoveryCode::checkAuthenticationPasswordRecoveryCode()
+ : recovery_code_()
+{}
+
+checkAuthenticationPasswordRecoveryCode::checkAuthenticationPasswordRecoveryCode(string const &recovery_code_)
+ : recovery_code_(recovery_code_)
+{}
+
+const std::int32_t checkAuthenticationPasswordRecoveryCode::ID;
+
+void checkAuthenticationPasswordRecoveryCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkAuthenticationPasswordRecoveryCode");
+ s.store_field("recovery_code", recovery_code_);
+ s.store_class_end();
+ }
+}
+
+checkChangePhoneNumberCode::checkChangePhoneNumberCode()
+ : code_()
+{}
+
+checkChangePhoneNumberCode::checkChangePhoneNumberCode(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t checkChangePhoneNumberCode::ID;
+
+void checkChangePhoneNumberCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkChangePhoneNumberCode");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+checkChatInviteLink::checkChatInviteLink()
+ : invite_link_()
+{}
+
+checkChatInviteLink::checkChatInviteLink(string const &invite_link_)
+ : invite_link_(invite_link_)
+{}
+
+const std::int32_t checkChatInviteLink::ID;
+
+void checkChatInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkChatInviteLink");
+ s.store_field("invite_link", invite_link_);
+ s.store_class_end();
+ }
+}
+
+checkChatUsername::checkChatUsername()
+ : chat_id_()
+ , username_()
+{}
+
+checkChatUsername::checkChatUsername(int53 chat_id_, string const &username_)
+ : chat_id_(chat_id_)
+ , username_(username_)
+{}
+
+const std::int32_t checkChatUsername::ID;
+
+void checkChatUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkChatUsername");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+checkCreatedPublicChatsLimit::checkCreatedPublicChatsLimit()
+ : type_()
+{}
+
+checkCreatedPublicChatsLimit::checkCreatedPublicChatsLimit(object_ptr<PublicChatType> &&type_)
+ : type_(std::move(type_))
+{}
+
+const std::int32_t checkCreatedPublicChatsLimit::ID;
+
+void checkCreatedPublicChatsLimit::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkCreatedPublicChatsLimit");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+checkEmailAddressVerificationCode::checkEmailAddressVerificationCode()
+ : code_()
+{}
+
+checkEmailAddressVerificationCode::checkEmailAddressVerificationCode(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t checkEmailAddressVerificationCode::ID;
+
+void checkEmailAddressVerificationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkEmailAddressVerificationCode");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+checkLoginEmailAddressCode::checkLoginEmailAddressCode()
+ : code_()
+{}
+
+checkLoginEmailAddressCode::checkLoginEmailAddressCode(object_ptr<EmailAddressAuthentication> &&code_)
+ : code_(std::move(code_))
+{}
+
+const std::int32_t checkLoginEmailAddressCode::ID;
+
+void checkLoginEmailAddressCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkLoginEmailAddressCode");
+ s.store_object_field("code", static_cast<const BaseObject *>(code_.get()));
+ s.store_class_end();
+ }
+}
+
+checkPasswordRecoveryCode::checkPasswordRecoveryCode()
+ : recovery_code_()
+{}
+
+checkPasswordRecoveryCode::checkPasswordRecoveryCode(string const &recovery_code_)
+ : recovery_code_(recovery_code_)
+{}
+
+const std::int32_t checkPasswordRecoveryCode::ID;
+
+void checkPasswordRecoveryCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkPasswordRecoveryCode");
+ s.store_field("recovery_code", recovery_code_);
+ s.store_class_end();
+ }
+}
+
+checkPhoneNumberConfirmationCode::checkPhoneNumberConfirmationCode()
+ : code_()
+{}
+
+checkPhoneNumberConfirmationCode::checkPhoneNumberConfirmationCode(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t checkPhoneNumberConfirmationCode::ID;
+
+void checkPhoneNumberConfirmationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkPhoneNumberConfirmationCode");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+checkPhoneNumberVerificationCode::checkPhoneNumberVerificationCode()
+ : code_()
+{}
+
+checkPhoneNumberVerificationCode::checkPhoneNumberVerificationCode(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t checkPhoneNumberVerificationCode::ID;
+
+void checkPhoneNumberVerificationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkPhoneNumberVerificationCode");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+checkRecoveryEmailAddressCode::checkRecoveryEmailAddressCode()
+ : code_()
+{}
+
+checkRecoveryEmailAddressCode::checkRecoveryEmailAddressCode(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t checkRecoveryEmailAddressCode::ID;
+
+void checkRecoveryEmailAddressCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkRecoveryEmailAddressCode");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+checkStickerSetName::checkStickerSetName()
+ : name_()
+{}
+
+checkStickerSetName::checkStickerSetName(string const &name_)
+ : name_(name_)
+{}
+
+const std::int32_t checkStickerSetName::ID;
+
+void checkStickerSetName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "checkStickerSetName");
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+cleanFileName::cleanFileName()
+ : file_name_()
+{}
+
+cleanFileName::cleanFileName(string const &file_name_)
+ : file_name_(file_name_)
+{}
+
+const std::int32_t cleanFileName::ID;
+
+void cleanFileName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "cleanFileName");
+ s.store_field("file_name", file_name_);
+ s.store_class_end();
+ }
+}
+
+clearAllDraftMessages::clearAllDraftMessages()
+ : exclude_secret_chats_()
+{}
+
+clearAllDraftMessages::clearAllDraftMessages(bool exclude_secret_chats_)
+ : exclude_secret_chats_(exclude_secret_chats_)
+{}
+
+const std::int32_t clearAllDraftMessages::ID;
+
+void clearAllDraftMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "clearAllDraftMessages");
+ s.store_field("exclude_secret_chats", exclude_secret_chats_);
+ s.store_class_end();
+ }
+}
+
+clearImportedContacts::clearImportedContacts() {
+}
+
+const std::int32_t clearImportedContacts::ID;
+
+void clearImportedContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "clearImportedContacts");
+ s.store_class_end();
+ }
+}
+
+clearRecentEmojiStatuses::clearRecentEmojiStatuses() {
+}
+
+const std::int32_t clearRecentEmojiStatuses::ID;
+
+void clearRecentEmojiStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "clearRecentEmojiStatuses");
+ s.store_class_end();
+ }
+}
+
+clearRecentReactions::clearRecentReactions() {
+}
+
+const std::int32_t clearRecentReactions::ID;
+
+void clearRecentReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "clearRecentReactions");
+ s.store_class_end();
+ }
+}
+
+clearRecentStickers::clearRecentStickers()
+ : is_attached_()
+{}
+
+clearRecentStickers::clearRecentStickers(bool is_attached_)
+ : is_attached_(is_attached_)
+{}
+
+const std::int32_t clearRecentStickers::ID;
+
+void clearRecentStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "clearRecentStickers");
+ s.store_field("is_attached", is_attached_);
+ s.store_class_end();
+ }
+}
+
+clearRecentlyFoundChats::clearRecentlyFoundChats() {
+}
+
+const std::int32_t clearRecentlyFoundChats::ID;
+
+void clearRecentlyFoundChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "clearRecentlyFoundChats");
+ s.store_class_end();
+ }
+}
+
+clickAnimatedEmojiMessage::clickAnimatedEmojiMessage()
+ : chat_id_()
+ , message_id_()
+{}
+
+clickAnimatedEmojiMessage::clickAnimatedEmojiMessage(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t clickAnimatedEmojiMessage::ID;
+
+void clickAnimatedEmojiMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "clickAnimatedEmojiMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+clickPremiumSubscriptionButton::clickPremiumSubscriptionButton() {
+}
+
+const std::int32_t clickPremiumSubscriptionButton::ID;
+
+void clickPremiumSubscriptionButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "clickPremiumSubscriptionButton");
+ s.store_class_end();
+ }
+}
+
+close::close() {
+}
+
+const std::int32_t close::ID;
+
+void close::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "close");
+ s.store_class_end();
+ }
+}
+
+closeChat::closeChat()
+ : chat_id_()
+{}
+
+closeChat::closeChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t closeChat::ID;
+
+void closeChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "closeChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+closeSecretChat::closeSecretChat()
+ : secret_chat_id_()
+{}
+
+closeSecretChat::closeSecretChat(int32 secret_chat_id_)
+ : secret_chat_id_(secret_chat_id_)
+{}
+
+const std::int32_t closeSecretChat::ID;
+
+void closeSecretChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "closeSecretChat");
+ s.store_field("secret_chat_id", secret_chat_id_);
+ s.store_class_end();
+ }
+}
+
+closeWebApp::closeWebApp()
+ : web_app_launch_id_()
+{}
+
+closeWebApp::closeWebApp(int64 web_app_launch_id_)
+ : web_app_launch_id_(web_app_launch_id_)
+{}
+
+const std::int32_t closeWebApp::ID;
+
+void closeWebApp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "closeWebApp");
+ s.store_field("web_app_launch_id", web_app_launch_id_);
+ s.store_class_end();
+ }
+}
+
+confirmQrCodeAuthentication::confirmQrCodeAuthentication()
+ : link_()
+{}
+
+confirmQrCodeAuthentication::confirmQrCodeAuthentication(string const &link_)
+ : link_(link_)
+{}
+
+const std::int32_t confirmQrCodeAuthentication::ID;
+
+void confirmQrCodeAuthentication::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "confirmQrCodeAuthentication");
+ s.store_field("link", link_);
+ s.store_class_end();
+ }
+}
+
+createBasicGroupChat::createBasicGroupChat()
+ : basic_group_id_()
+ , force_()
+{}
+
+createBasicGroupChat::createBasicGroupChat(int53 basic_group_id_, bool force_)
+ : basic_group_id_(basic_group_id_)
+ , force_(force_)
+{}
+
+const std::int32_t createBasicGroupChat::ID;
+
+void createBasicGroupChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createBasicGroupChat");
+ s.store_field("basic_group_id", basic_group_id_);
+ s.store_field("force", force_);
+ s.store_class_end();
+ }
+}
+
+createCall::createCall()
+ : user_id_()
+ , protocol_()
+ , is_video_()
+{}
+
+createCall::createCall(int53 user_id_, object_ptr<callProtocol> &&protocol_, bool is_video_)
+ : user_id_(user_id_)
+ , protocol_(std::move(protocol_))
+ , is_video_(is_video_)
+{}
+
+const std::int32_t createCall::ID;
+
+void createCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createCall");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get()));
+ s.store_field("is_video", is_video_);
+ s.store_class_end();
+ }
+}
+
+createChatFilter::createChatFilter()
+ : filter_()
+{}
+
+createChatFilter::createChatFilter(object_ptr<chatFilter> &&filter_)
+ : filter_(std::move(filter_))
+{}
+
+const std::int32_t createChatFilter::ID;
+
+void createChatFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createChatFilter");
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_class_end();
+ }
+}
+
+createChatInviteLink::createChatInviteLink()
+ : chat_id_()
+ , name_()
+ , expiration_date_()
+ , member_limit_()
+ , creates_join_request_()
+{}
+
+createChatInviteLink::createChatInviteLink(int53 chat_id_, string const &name_, int32 expiration_date_, int32 member_limit_, bool creates_join_request_)
+ : chat_id_(chat_id_)
+ , name_(name_)
+ , expiration_date_(expiration_date_)
+ , member_limit_(member_limit_)
+ , creates_join_request_(creates_join_request_)
+{}
+
+const std::int32_t createChatInviteLink::ID;
+
+void createChatInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createChatInviteLink");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("name", name_);
+ s.store_field("expiration_date", expiration_date_);
+ s.store_field("member_limit", member_limit_);
+ s.store_field("creates_join_request", creates_join_request_);
+ s.store_class_end();
+ }
+}
+
+createForumTopic::createForumTopic()
+ : chat_id_()
+ , name_()
+ , icon_()
+{}
+
+createForumTopic::createForumTopic(int53 chat_id_, string const &name_, object_ptr<forumTopicIcon> &&icon_)
+ : chat_id_(chat_id_)
+ , name_(name_)
+ , icon_(std::move(icon_))
+{}
+
+const std::int32_t createForumTopic::ID;
+
+void createForumTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createForumTopic");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("name", name_);
+ s.store_object_field("icon", static_cast<const BaseObject *>(icon_.get()));
+ s.store_class_end();
+ }
+}
+
+createInvoiceLink::createInvoiceLink()
+ : invoice_()
+{}
+
+createInvoiceLink::createInvoiceLink(object_ptr<InputMessageContent> &&invoice_)
+ : invoice_(std::move(invoice_))
+{}
+
+const std::int32_t createInvoiceLink::ID;
+
+void createInvoiceLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createInvoiceLink");
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ s.store_class_end();
+ }
+}
+
+createNewBasicGroupChat::createNewBasicGroupChat()
+ : user_ids_()
+ , title_()
+{}
+
+createNewBasicGroupChat::createNewBasicGroupChat(array<int53> &&user_ids_, string const &title_)
+ : user_ids_(std::move(user_ids_))
+ , title_(title_)
+{}
+
+const std::int32_t createNewBasicGroupChat::ID;
+
+void createNewBasicGroupChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createNewBasicGroupChat");
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+createNewSecretChat::createNewSecretChat()
+ : user_id_()
+{}
+
+createNewSecretChat::createNewSecretChat(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t createNewSecretChat::ID;
+
+void createNewSecretChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createNewSecretChat");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+createNewStickerSet::createNewStickerSet()
+ : user_id_()
+ , title_()
+ , name_()
+ , sticker_type_()
+ , stickers_()
+ , source_()
+{}
+
+createNewStickerSet::createNewStickerSet(int53 user_id_, string const &title_, string const &name_, object_ptr<StickerType> &&sticker_type_, array<object_ptr<inputSticker>> &&stickers_, string const &source_)
+ : user_id_(user_id_)
+ , title_(title_)
+ , name_(name_)
+ , sticker_type_(std::move(sticker_type_))
+ , stickers_(std::move(stickers_))
+ , source_(source_)
+{}
+
+const std::int32_t createNewStickerSet::ID;
+
+void createNewStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createNewStickerSet");
+ s.store_field("user_id", user_id_);
+ s.store_field("title", title_);
+ s.store_field("name", name_);
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("source", source_);
+ s.store_class_end();
+ }
+}
+
+createNewSupergroupChat::createNewSupergroupChat()
+ : title_()
+ , is_channel_()
+ , description_()
+ , location_()
+ , for_import_()
+{}
+
+createNewSupergroupChat::createNewSupergroupChat(string const &title_, bool is_channel_, string const &description_, object_ptr<chatLocation> &&location_, bool for_import_)
+ : title_(title_)
+ , is_channel_(is_channel_)
+ , description_(description_)
+ , location_(std::move(location_))
+ , for_import_(for_import_)
+{}
+
+const std::int32_t createNewSupergroupChat::ID;
+
+void createNewSupergroupChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createNewSupergroupChat");
+ s.store_field("title", title_);
+ s.store_field("is_channel", is_channel_);
+ s.store_field("description", description_);
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("for_import", for_import_);
+ s.store_class_end();
+ }
+}
+
+createPrivateChat::createPrivateChat()
+ : user_id_()
+ , force_()
+{}
+
+createPrivateChat::createPrivateChat(int53 user_id_, bool force_)
+ : user_id_(user_id_)
+ , force_(force_)
+{}
+
+const std::int32_t createPrivateChat::ID;
+
+void createPrivateChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createPrivateChat");
+ s.store_field("user_id", user_id_);
+ s.store_field("force", force_);
+ s.store_class_end();
+ }
+}
+
+createSecretChat::createSecretChat()
+ : secret_chat_id_()
+{}
+
+createSecretChat::createSecretChat(int32 secret_chat_id_)
+ : secret_chat_id_(secret_chat_id_)
+{}
+
+const std::int32_t createSecretChat::ID;
+
+void createSecretChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createSecretChat");
+ s.store_field("secret_chat_id", secret_chat_id_);
+ s.store_class_end();
+ }
+}
+
+createSupergroupChat::createSupergroupChat()
+ : supergroup_id_()
+ , force_()
+{}
+
+createSupergroupChat::createSupergroupChat(int53 supergroup_id_, bool force_)
+ : supergroup_id_(supergroup_id_)
+ , force_(force_)
+{}
+
+const std::int32_t createSupergroupChat::ID;
+
+void createSupergroupChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createSupergroupChat");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_field("force", force_);
+ s.store_class_end();
+ }
+}
+
+createTemporaryPassword::createTemporaryPassword()
+ : password_()
+ , valid_for_()
+{}
+
+createTemporaryPassword::createTemporaryPassword(string const &password_, int32 valid_for_)
+ : password_(password_)
+ , valid_for_(valid_for_)
+{}
+
+const std::int32_t createTemporaryPassword::ID;
+
+void createTemporaryPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createTemporaryPassword");
+ s.store_field("password", password_);
+ s.store_field("valid_for", valid_for_);
+ s.store_class_end();
+ }
+}
+
+createVideoChat::createVideoChat()
+ : chat_id_()
+ , title_()
+ , start_date_()
+ , is_rtmp_stream_()
+{}
+
+createVideoChat::createVideoChat(int53 chat_id_, string const &title_, int32 start_date_, bool is_rtmp_stream_)
+ : chat_id_(chat_id_)
+ , title_(title_)
+ , start_date_(start_date_)
+ , is_rtmp_stream_(is_rtmp_stream_)
+{}
+
+const std::int32_t createVideoChat::ID;
+
+void createVideoChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "createVideoChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("title", title_);
+ s.store_field("start_date", start_date_);
+ s.store_field("is_rtmp_stream", is_rtmp_stream_);
+ s.store_class_end();
+ }
+}
+
+deleteAccount::deleteAccount()
+ : reason_()
+ , password_()
+{}
+
+deleteAccount::deleteAccount(string const &reason_, string const &password_)
+ : reason_(reason_)
+ , password_(password_)
+{}
+
+const std::int32_t deleteAccount::ID;
+
+void deleteAccount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteAccount");
+ s.store_field("reason", reason_);
+ s.store_field("password", password_);
+ s.store_class_end();
+ }
+}
+
+deleteAllCallMessages::deleteAllCallMessages()
+ : revoke_()
+{}
+
+deleteAllCallMessages::deleteAllCallMessages(bool revoke_)
+ : revoke_(revoke_)
+{}
+
+const std::int32_t deleteAllCallMessages::ID;
+
+void deleteAllCallMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteAllCallMessages");
+ s.store_field("revoke", revoke_);
+ s.store_class_end();
+ }
+}
+
+deleteAllRevokedChatInviteLinks::deleteAllRevokedChatInviteLinks()
+ : chat_id_()
+ , creator_user_id_()
+{}
+
+deleteAllRevokedChatInviteLinks::deleteAllRevokedChatInviteLinks(int53 chat_id_, int53 creator_user_id_)
+ : chat_id_(chat_id_)
+ , creator_user_id_(creator_user_id_)
+{}
+
+const std::int32_t deleteAllRevokedChatInviteLinks::ID;
+
+void deleteAllRevokedChatInviteLinks::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteAllRevokedChatInviteLinks");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("creator_user_id", creator_user_id_);
+ s.store_class_end();
+ }
+}
+
+deleteChat::deleteChat()
+ : chat_id_()
+{}
+
+deleteChat::deleteChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t deleteChat::ID;
+
+void deleteChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+deleteChatFilter::deleteChatFilter()
+ : chat_filter_id_()
+{}
+
+deleteChatFilter::deleteChatFilter(int32 chat_filter_id_)
+ : chat_filter_id_(chat_filter_id_)
+{}
+
+const std::int32_t deleteChatFilter::ID;
+
+void deleteChatFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteChatFilter");
+ s.store_field("chat_filter_id", chat_filter_id_);
+ s.store_class_end();
+ }
+}
+
+deleteChatHistory::deleteChatHistory()
+ : chat_id_()
+ , remove_from_chat_list_()
+ , revoke_()
+{}
+
+deleteChatHistory::deleteChatHistory(int53 chat_id_, bool remove_from_chat_list_, bool revoke_)
+ : chat_id_(chat_id_)
+ , remove_from_chat_list_(remove_from_chat_list_)
+ , revoke_(revoke_)
+{}
+
+const std::int32_t deleteChatHistory::ID;
+
+void deleteChatHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteChatHistory");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("remove_from_chat_list", remove_from_chat_list_);
+ s.store_field("revoke", revoke_);
+ s.store_class_end();
+ }
+}
+
+deleteChatMessagesByDate::deleteChatMessagesByDate()
+ : chat_id_()
+ , min_date_()
+ , max_date_()
+ , revoke_()
+{}
+
+deleteChatMessagesByDate::deleteChatMessagesByDate(int53 chat_id_, int32 min_date_, int32 max_date_, bool revoke_)
+ : chat_id_(chat_id_)
+ , min_date_(min_date_)
+ , max_date_(max_date_)
+ , revoke_(revoke_)
+{}
+
+const std::int32_t deleteChatMessagesByDate::ID;
+
+void deleteChatMessagesByDate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteChatMessagesByDate");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("min_date", min_date_);
+ s.store_field("max_date", max_date_);
+ s.store_field("revoke", revoke_);
+ s.store_class_end();
+ }
+}
+
+deleteChatMessagesBySender::deleteChatMessagesBySender()
+ : chat_id_()
+ , sender_id_()
+{}
+
+deleteChatMessagesBySender::deleteChatMessagesBySender(int53 chat_id_, object_ptr<MessageSender> &&sender_id_)
+ : chat_id_(chat_id_)
+ , sender_id_(std::move(sender_id_))
+{}
+
+const std::int32_t deleteChatMessagesBySender::ID;
+
+void deleteChatMessagesBySender::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteChatMessagesBySender");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get()));
+ s.store_class_end();
+ }
+}
+
+deleteChatReplyMarkup::deleteChatReplyMarkup()
+ : chat_id_()
+ , message_id_()
+{}
+
+deleteChatReplyMarkup::deleteChatReplyMarkup(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t deleteChatReplyMarkup::ID;
+
+void deleteChatReplyMarkup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteChatReplyMarkup");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+deleteCommands::deleteCommands()
+ : scope_()
+ , language_code_()
+{}
+
+deleteCommands::deleteCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_)
+ : scope_(std::move(scope_))
+ , language_code_(language_code_)
+{}
+
+const std::int32_t deleteCommands::ID;
+
+void deleteCommands::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteCommands");
+ s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get()));
+ s.store_field("language_code", language_code_);
+ s.store_class_end();
+ }
+}
+
+deleteFile::deleteFile()
+ : file_id_()
+{}
+
+deleteFile::deleteFile(int32 file_id_)
+ : file_id_(file_id_)
+{}
+
+const std::int32_t deleteFile::ID;
+
+void deleteFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteFile");
+ s.store_field("file_id", file_id_);
+ s.store_class_end();
+ }
+}
+
+deleteForumTopic::deleteForumTopic()
+ : chat_id_()
+ , message_thread_id_()
+{}
+
+deleteForumTopic::deleteForumTopic(int53 chat_id_, int53 message_thread_id_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+{}
+
+const std::int32_t deleteForumTopic::ID;
+
+void deleteForumTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteForumTopic");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_class_end();
+ }
+}
+
+deleteLanguagePack::deleteLanguagePack()
+ : language_pack_id_()
+{}
+
+deleteLanguagePack::deleteLanguagePack(string const &language_pack_id_)
+ : language_pack_id_(language_pack_id_)
+{}
+
+const std::int32_t deleteLanguagePack::ID;
+
+void deleteLanguagePack::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteLanguagePack");
+ s.store_field("language_pack_id", language_pack_id_);
+ s.store_class_end();
+ }
+}
+
+deleteMessages::deleteMessages()
+ : chat_id_()
+ , message_ids_()
+ , revoke_()
+{}
+
+deleteMessages::deleteMessages(int53 chat_id_, array<int53> &&message_ids_, bool revoke_)
+ : chat_id_(chat_id_)
+ , message_ids_(std::move(message_ids_))
+ , revoke_(revoke_)
+{}
+
+const std::int32_t deleteMessages::ID;
+
+void deleteMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteMessages");
+ s.store_field("chat_id", chat_id_);
+ { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("revoke", revoke_);
+ s.store_class_end();
+ }
+}
+
+deletePassportElement::deletePassportElement()
+ : type_()
+{}
+
+deletePassportElement::deletePassportElement(object_ptr<PassportElementType> &&type_)
+ : type_(std::move(type_))
+{}
+
+const std::int32_t deletePassportElement::ID;
+
+void deletePassportElement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deletePassportElement");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+deleteProfilePhoto::deleteProfilePhoto()
+ : profile_photo_id_()
+{}
+
+deleteProfilePhoto::deleteProfilePhoto(int64 profile_photo_id_)
+ : profile_photo_id_(profile_photo_id_)
+{}
+
+const std::int32_t deleteProfilePhoto::ID;
+
+void deleteProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteProfilePhoto");
+ s.store_field("profile_photo_id", profile_photo_id_);
+ s.store_class_end();
+ }
+}
+
+deleteRevokedChatInviteLink::deleteRevokedChatInviteLink()
+ : chat_id_()
+ , invite_link_()
+{}
+
+deleteRevokedChatInviteLink::deleteRevokedChatInviteLink(int53 chat_id_, string const &invite_link_)
+ : chat_id_(chat_id_)
+ , invite_link_(invite_link_)
+{}
+
+const std::int32_t deleteRevokedChatInviteLink::ID;
+
+void deleteRevokedChatInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteRevokedChatInviteLink");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("invite_link", invite_link_);
+ s.store_class_end();
+ }
+}
+
+deleteSavedCredentials::deleteSavedCredentials() {
+}
+
+const std::int32_t deleteSavedCredentials::ID;
+
+void deleteSavedCredentials::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteSavedCredentials");
+ s.store_class_end();
+ }
+}
+
+deleteSavedOrderInfo::deleteSavedOrderInfo() {
+}
+
+const std::int32_t deleteSavedOrderInfo::ID;
+
+void deleteSavedOrderInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "deleteSavedOrderInfo");
+ s.store_class_end();
+ }
+}
+
+destroy::destroy() {
+}
+
+const std::int32_t destroy::ID;
+
+void destroy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "destroy");
+ s.store_class_end();
+ }
+}
+
+disableAllSupergroupUsernames::disableAllSupergroupUsernames()
+ : supergroup_id_()
+{}
+
+disableAllSupergroupUsernames::disableAllSupergroupUsernames(int53 supergroup_id_)
+ : supergroup_id_(supergroup_id_)
+{}
+
+const std::int32_t disableAllSupergroupUsernames::ID;
+
+void disableAllSupergroupUsernames::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "disableAllSupergroupUsernames");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_class_end();
+ }
+}
+
+disableProxy::disableProxy() {
+}
+
+const std::int32_t disableProxy::ID;
+
+void disableProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "disableProxy");
+ s.store_class_end();
+ }
+}
+
+discardCall::discardCall()
+ : call_id_()
+ , is_disconnected_()
+ , duration_()
+ , is_video_()
+ , connection_id_()
+{}
+
+discardCall::discardCall(int32 call_id_, bool is_disconnected_, int32 duration_, bool is_video_, int64 connection_id_)
+ : call_id_(call_id_)
+ , is_disconnected_(is_disconnected_)
+ , duration_(duration_)
+ , is_video_(is_video_)
+ , connection_id_(connection_id_)
+{}
+
+const std::int32_t discardCall::ID;
+
+void discardCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "discardCall");
+ s.store_field("call_id", call_id_);
+ s.store_field("is_disconnected", is_disconnected_);
+ s.store_field("duration", duration_);
+ s.store_field("is_video", is_video_);
+ s.store_field("connection_id", connection_id_);
+ s.store_class_end();
+ }
+}
+
+disconnectAllWebsites::disconnectAllWebsites() {
+}
+
+const std::int32_t disconnectAllWebsites::ID;
+
+void disconnectAllWebsites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "disconnectAllWebsites");
+ s.store_class_end();
+ }
+}
+
+disconnectWebsite::disconnectWebsite()
+ : website_id_()
+{}
+
+disconnectWebsite::disconnectWebsite(int64 website_id_)
+ : website_id_(website_id_)
+{}
+
+const std::int32_t disconnectWebsite::ID;
+
+void disconnectWebsite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "disconnectWebsite");
+ s.store_field("website_id", website_id_);
+ s.store_class_end();
+ }
+}
+
+downloadFile::downloadFile()
+ : file_id_()
+ , priority_()
+ , offset_()
+ , limit_()
+ , synchronous_()
+{}
+
+downloadFile::downloadFile(int32 file_id_, int32 priority_, int53 offset_, int53 limit_, bool synchronous_)
+ : file_id_(file_id_)
+ , priority_(priority_)
+ , offset_(offset_)
+ , limit_(limit_)
+ , synchronous_(synchronous_)
+{}
+
+const std::int32_t downloadFile::ID;
+
+void downloadFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "downloadFile");
+ s.store_field("file_id", file_id_);
+ s.store_field("priority", priority_);
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_field("synchronous", synchronous_);
+ s.store_class_end();
+ }
+}
+
+editChatFilter::editChatFilter()
+ : chat_filter_id_()
+ , filter_()
+{}
+
+editChatFilter::editChatFilter(int32 chat_filter_id_, object_ptr<chatFilter> &&filter_)
+ : chat_filter_id_(chat_filter_id_)
+ , filter_(std::move(filter_))
+{}
+
+const std::int32_t editChatFilter::ID;
+
+void editChatFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editChatFilter");
+ s.store_field("chat_filter_id", chat_filter_id_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_class_end();
+ }
+}
+
+editChatInviteLink::editChatInviteLink()
+ : chat_id_()
+ , invite_link_()
+ , name_()
+ , expiration_date_()
+ , member_limit_()
+ , creates_join_request_()
+{}
+
+editChatInviteLink::editChatInviteLink(int53 chat_id_, string const &invite_link_, string const &name_, int32 expiration_date_, int32 member_limit_, bool creates_join_request_)
+ : chat_id_(chat_id_)
+ , invite_link_(invite_link_)
+ , name_(name_)
+ , expiration_date_(expiration_date_)
+ , member_limit_(member_limit_)
+ , creates_join_request_(creates_join_request_)
+{}
+
+const std::int32_t editChatInviteLink::ID;
+
+void editChatInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editChatInviteLink");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("invite_link", invite_link_);
+ s.store_field("name", name_);
+ s.store_field("expiration_date", expiration_date_);
+ s.store_field("member_limit", member_limit_);
+ s.store_field("creates_join_request", creates_join_request_);
+ s.store_class_end();
+ }
+}
+
+editCustomLanguagePackInfo::editCustomLanguagePackInfo()
+ : info_()
+{}
+
+editCustomLanguagePackInfo::editCustomLanguagePackInfo(object_ptr<languagePackInfo> &&info_)
+ : info_(std::move(info_))
+{}
+
+const std::int32_t editCustomLanguagePackInfo::ID;
+
+void editCustomLanguagePackInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editCustomLanguagePackInfo");
+ s.store_object_field("info", static_cast<const BaseObject *>(info_.get()));
+ s.store_class_end();
+ }
+}
+
+editForumTopic::editForumTopic()
+ : chat_id_()
+ , message_thread_id_()
+ , name_()
+ , icon_custom_emoji_id_()
+{}
+
+editForumTopic::editForumTopic(int53 chat_id_, int53 message_thread_id_, string const &name_, int64 icon_custom_emoji_id_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , name_(name_)
+ , icon_custom_emoji_id_(icon_custom_emoji_id_)
+{}
+
+const std::int32_t editForumTopic::ID;
+
+void editForumTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editForumTopic");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_field("name", name_);
+ s.store_field("icon_custom_emoji_id", icon_custom_emoji_id_);
+ s.store_class_end();
+ }
+}
+
+editInlineMessageCaption::editInlineMessageCaption()
+ : inline_message_id_()
+ , reply_markup_()
+ , caption_()
+{}
+
+editInlineMessageCaption::editInlineMessageCaption(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<formattedText> &&caption_)
+ : inline_message_id_(inline_message_id_)
+ , reply_markup_(std::move(reply_markup_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t editInlineMessageCaption::ID;
+
+void editInlineMessageCaption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editInlineMessageCaption");
+ s.store_field("inline_message_id", inline_message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+editInlineMessageLiveLocation::editInlineMessageLiveLocation()
+ : inline_message_id_()
+ , reply_markup_()
+ , location_()
+ , heading_()
+ , proximity_alert_radius_()
+{}
+
+editInlineMessageLiveLocation::editInlineMessageLiveLocation(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<location> &&location_, int32 heading_, int32 proximity_alert_radius_)
+ : inline_message_id_(inline_message_id_)
+ , reply_markup_(std::move(reply_markup_))
+ , location_(std::move(location_))
+ , heading_(heading_)
+ , proximity_alert_radius_(proximity_alert_radius_)
+{}
+
+const std::int32_t editInlineMessageLiveLocation::ID;
+
+void editInlineMessageLiveLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editInlineMessageLiveLocation");
+ s.store_field("inline_message_id", inline_message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("heading", heading_);
+ s.store_field("proximity_alert_radius", proximity_alert_radius_);
+ s.store_class_end();
+ }
+}
+
+editInlineMessageMedia::editInlineMessageMedia()
+ : inline_message_id_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+editInlineMessageMedia::editInlineMessageMedia(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : inline_message_id_(inline_message_id_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t editInlineMessageMedia::ID;
+
+void editInlineMessageMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editInlineMessageMedia");
+ s.store_field("inline_message_id", inline_message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+editInlineMessageReplyMarkup::editInlineMessageReplyMarkup()
+ : inline_message_id_()
+ , reply_markup_()
+{}
+
+editInlineMessageReplyMarkup::editInlineMessageReplyMarkup(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : inline_message_id_(inline_message_id_)
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t editInlineMessageReplyMarkup::ID;
+
+void editInlineMessageReplyMarkup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editInlineMessageReplyMarkup");
+ s.store_field("inline_message_id", inline_message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_class_end();
+ }
+}
+
+editInlineMessageText::editInlineMessageText()
+ : inline_message_id_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+editInlineMessageText::editInlineMessageText(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : inline_message_id_(inline_message_id_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t editInlineMessageText::ID;
+
+void editInlineMessageText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editInlineMessageText");
+ s.store_field("inline_message_id", inline_message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+editMessageCaption::editMessageCaption()
+ : chat_id_()
+ , message_id_()
+ , reply_markup_()
+ , caption_()
+{}
+
+editMessageCaption::editMessageCaption(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<formattedText> &&caption_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , reply_markup_(std::move(reply_markup_))
+ , caption_(std::move(caption_))
+{}
+
+const std::int32_t editMessageCaption::ID;
+
+void editMessageCaption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editMessageCaption");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+editMessageLiveLocation::editMessageLiveLocation()
+ : chat_id_()
+ , message_id_()
+ , reply_markup_()
+ , location_()
+ , heading_()
+ , proximity_alert_radius_()
+{}
+
+editMessageLiveLocation::editMessageLiveLocation(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<location> &&location_, int32 heading_, int32 proximity_alert_radius_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , reply_markup_(std::move(reply_markup_))
+ , location_(std::move(location_))
+ , heading_(heading_)
+ , proximity_alert_radius_(proximity_alert_radius_)
+{}
+
+const std::int32_t editMessageLiveLocation::ID;
+
+void editMessageLiveLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editMessageLiveLocation");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("heading", heading_);
+ s.store_field("proximity_alert_radius", proximity_alert_radius_);
+ s.store_class_end();
+ }
+}
+
+editMessageMedia::editMessageMedia()
+ : chat_id_()
+ , message_id_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+editMessageMedia::editMessageMedia(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t editMessageMedia::ID;
+
+void editMessageMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editMessageMedia");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+editMessageReplyMarkup::editMessageReplyMarkup()
+ : chat_id_()
+ , message_id_()
+ , reply_markup_()
+{}
+
+editMessageReplyMarkup::editMessageReplyMarkup(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t editMessageReplyMarkup::ID;
+
+void editMessageReplyMarkup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editMessageReplyMarkup");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_class_end();
+ }
+}
+
+editMessageSchedulingState::editMessageSchedulingState()
+ : chat_id_()
+ , message_id_()
+ , scheduling_state_()
+{}
+
+editMessageSchedulingState::editMessageSchedulingState(int53 chat_id_, int53 message_id_, object_ptr<MessageSchedulingState> &&scheduling_state_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , scheduling_state_(std::move(scheduling_state_))
+{}
+
+const std::int32_t editMessageSchedulingState::ID;
+
+void editMessageSchedulingState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editMessageSchedulingState");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("scheduling_state", static_cast<const BaseObject *>(scheduling_state_.get()));
+ s.store_class_end();
+ }
+}
+
+editMessageText::editMessageText()
+ : chat_id_()
+ , message_id_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+editMessageText::editMessageText(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t editMessageText::ID;
+
+void editMessageText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editMessageText");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+editProxy::editProxy()
+ : proxy_id_()
+ , server_()
+ , port_()
+ , enable_()
+ , type_()
+{}
+
+editProxy::editProxy(int32 proxy_id_, string const &server_, int32 port_, bool enable_, object_ptr<ProxyType> &&type_)
+ : proxy_id_(proxy_id_)
+ , server_(server_)
+ , port_(port_)
+ , enable_(enable_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t editProxy::ID;
+
+void editProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "editProxy");
+ s.store_field("proxy_id", proxy_id_);
+ s.store_field("server", server_);
+ s.store_field("port", port_);
+ s.store_field("enable", enable_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+enableProxy::enableProxy()
+ : proxy_id_()
+{}
+
+enableProxy::enableProxy(int32 proxy_id_)
+ : proxy_id_(proxy_id_)
+{}
+
+const std::int32_t enableProxy::ID;
+
+void enableProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "enableProxy");
+ s.store_field("proxy_id", proxy_id_);
+ s.store_class_end();
+ }
+}
+
+endGroupCall::endGroupCall()
+ : group_call_id_()
+{}
+
+endGroupCall::endGroupCall(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t endGroupCall::ID;
+
+void endGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "endGroupCall");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+endGroupCallRecording::endGroupCallRecording()
+ : group_call_id_()
+{}
+
+endGroupCallRecording::endGroupCallRecording(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t endGroupCallRecording::ID;
+
+void endGroupCallRecording::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "endGroupCallRecording");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+endGroupCallScreenSharing::endGroupCallScreenSharing()
+ : group_call_id_()
+{}
+
+endGroupCallScreenSharing::endGroupCallScreenSharing(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t endGroupCallScreenSharing::ID;
+
+void endGroupCallScreenSharing::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "endGroupCallScreenSharing");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+finishFileGeneration::finishFileGeneration()
+ : generation_id_()
+ , error_()
+{}
+
+finishFileGeneration::finishFileGeneration(int64 generation_id_, object_ptr<error> &&error_)
+ : generation_id_(generation_id_)
+ , error_(std::move(error_))
+{}
+
+const std::int32_t finishFileGeneration::ID;
+
+void finishFileGeneration::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "finishFileGeneration");
+ s.store_field("generation_id", generation_id_);
+ s.store_object_field("error", static_cast<const BaseObject *>(error_.get()));
+ s.store_class_end();
+ }
+}
+
+forwardMessages::forwardMessages()
+ : chat_id_()
+ , message_thread_id_()
+ , from_chat_id_()
+ , message_ids_()
+ , options_()
+ , send_copy_()
+ , remove_caption_()
+ , only_preview_()
+{}
+
+forwardMessages::forwardMessages(int53 chat_id_, int53 message_thread_id_, int53 from_chat_id_, array<int53> &&message_ids_, object_ptr<messageSendOptions> &&options_, bool send_copy_, bool remove_caption_, bool only_preview_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , from_chat_id_(from_chat_id_)
+ , message_ids_(std::move(message_ids_))
+ , options_(std::move(options_))
+ , send_copy_(send_copy_)
+ , remove_caption_(remove_caption_)
+ , only_preview_(only_preview_)
+{}
+
+const std::int32_t forwardMessages::ID;
+
+void forwardMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "forwardMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_field("from_chat_id", from_chat_id_);
+ { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_object_field("options", static_cast<const BaseObject *>(options_.get()));
+ s.store_field("send_copy", send_copy_);
+ s.store_field("remove_caption", remove_caption_);
+ s.store_field("only_preview", only_preview_);
+ s.store_class_end();
+ }
+}
+
+getAccountTtl::getAccountTtl() {
+}
+
+const std::int32_t getAccountTtl::ID;
+
+void getAccountTtl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getAccountTtl");
+ s.store_class_end();
+ }
+}
+
+getActiveLiveLocationMessages::getActiveLiveLocationMessages() {
+}
+
+const std::int32_t getActiveLiveLocationMessages::ID;
+
+void getActiveLiveLocationMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getActiveLiveLocationMessages");
+ s.store_class_end();
+ }
+}
+
+getActiveSessions::getActiveSessions() {
+}
+
+const std::int32_t getActiveSessions::ID;
+
+void getActiveSessions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getActiveSessions");
+ s.store_class_end();
+ }
+}
+
+getAllPassportElements::getAllPassportElements()
+ : password_()
+{}
+
+getAllPassportElements::getAllPassportElements(string const &password_)
+ : password_(password_)
+{}
+
+const std::int32_t getAllPassportElements::ID;
+
+void getAllPassportElements::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getAllPassportElements");
+ s.store_field("password", password_);
+ s.store_class_end();
+ }
+}
+
+getAnimatedEmoji::getAnimatedEmoji()
+ : emoji_()
+{}
+
+getAnimatedEmoji::getAnimatedEmoji(string const &emoji_)
+ : emoji_(emoji_)
+{}
+
+const std::int32_t getAnimatedEmoji::ID;
+
+void getAnimatedEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getAnimatedEmoji");
+ s.store_field("emoji", emoji_);
+ s.store_class_end();
+ }
+}
+
+getApplicationConfig::getApplicationConfig() {
+}
+
+const std::int32_t getApplicationConfig::ID;
+
+void getApplicationConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getApplicationConfig");
+ s.store_class_end();
+ }
+}
+
+getApplicationDownloadLink::getApplicationDownloadLink() {
+}
+
+const std::int32_t getApplicationDownloadLink::ID;
+
+void getApplicationDownloadLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getApplicationDownloadLink");
+ s.store_class_end();
+ }
+}
+
+getArchivedStickerSets::getArchivedStickerSets()
+ : sticker_type_()
+ , offset_sticker_set_id_()
+ , limit_()
+{}
+
+getArchivedStickerSets::getArchivedStickerSets(object_ptr<StickerType> &&sticker_type_, int64 offset_sticker_set_id_, int32 limit_)
+ : sticker_type_(std::move(sticker_type_))
+ , offset_sticker_set_id_(offset_sticker_set_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getArchivedStickerSets::ID;
+
+void getArchivedStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getArchivedStickerSets");
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ s.store_field("offset_sticker_set_id", offset_sticker_set_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getAttachedStickerSets::getAttachedStickerSets()
+ : file_id_()
+{}
+
+getAttachedStickerSets::getAttachedStickerSets(int32 file_id_)
+ : file_id_(file_id_)
+{}
+
+const std::int32_t getAttachedStickerSets::ID;
+
+void getAttachedStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getAttachedStickerSets");
+ s.store_field("file_id", file_id_);
+ s.store_class_end();
+ }
+}
+
+getAttachmentMenuBot::getAttachmentMenuBot()
+ : bot_user_id_()
+{}
+
+getAttachmentMenuBot::getAttachmentMenuBot(int53 bot_user_id_)
+ : bot_user_id_(bot_user_id_)
+{}
+
+const std::int32_t getAttachmentMenuBot::ID;
+
+void getAttachmentMenuBot::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getAttachmentMenuBot");
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_class_end();
+ }
+}
+
+getAuthorizationState::getAuthorizationState() {
+}
+
+const std::int32_t getAuthorizationState::ID;
+
+void getAuthorizationState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getAuthorizationState");
+ s.store_class_end();
+ }
+}
+
+getAutoDownloadSettingsPresets::getAutoDownloadSettingsPresets() {
+}
+
+const std::int32_t getAutoDownloadSettingsPresets::ID;
+
+void getAutoDownloadSettingsPresets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getAutoDownloadSettingsPresets");
+ s.store_class_end();
+ }
+}
+
+getBackgroundUrl::getBackgroundUrl()
+ : name_()
+ , type_()
+{}
+
+getBackgroundUrl::getBackgroundUrl(string const &name_, object_ptr<BackgroundType> &&type_)
+ : name_(name_)
+ , type_(std::move(type_))
+{}
+
+const std::int32_t getBackgroundUrl::ID;
+
+void getBackgroundUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getBackgroundUrl");
+ s.store_field("name", name_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+getBackgrounds::getBackgrounds()
+ : for_dark_theme_()
+{}
+
+getBackgrounds::getBackgrounds(bool for_dark_theme_)
+ : for_dark_theme_(for_dark_theme_)
+{}
+
+const std::int32_t getBackgrounds::ID;
+
+void getBackgrounds::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getBackgrounds");
+ s.store_field("for_dark_theme", for_dark_theme_);
+ s.store_class_end();
+ }
+}
+
+getBankCardInfo::getBankCardInfo()
+ : bank_card_number_()
+{}
+
+getBankCardInfo::getBankCardInfo(string const &bank_card_number_)
+ : bank_card_number_(bank_card_number_)
+{}
+
+const std::int32_t getBankCardInfo::ID;
+
+void getBankCardInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getBankCardInfo");
+ s.store_field("bank_card_number", bank_card_number_);
+ s.store_class_end();
+ }
+}
+
+getBasicGroup::getBasicGroup()
+ : basic_group_id_()
+{}
+
+getBasicGroup::getBasicGroup(int53 basic_group_id_)
+ : basic_group_id_(basic_group_id_)
+{}
+
+const std::int32_t getBasicGroup::ID;
+
+void getBasicGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getBasicGroup");
+ s.store_field("basic_group_id", basic_group_id_);
+ s.store_class_end();
+ }
+}
+
+getBasicGroupFullInfo::getBasicGroupFullInfo()
+ : basic_group_id_()
+{}
+
+getBasicGroupFullInfo::getBasicGroupFullInfo(int53 basic_group_id_)
+ : basic_group_id_(basic_group_id_)
+{}
+
+const std::int32_t getBasicGroupFullInfo::ID;
+
+void getBasicGroupFullInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getBasicGroupFullInfo");
+ s.store_field("basic_group_id", basic_group_id_);
+ s.store_class_end();
+ }
+}
+
+getBlockedMessageSenders::getBlockedMessageSenders()
+ : offset_()
+ , limit_()
+{}
+
+getBlockedMessageSenders::getBlockedMessageSenders(int32 offset_, int32 limit_)
+ : offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getBlockedMessageSenders::ID;
+
+void getBlockedMessageSenders::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getBlockedMessageSenders");
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getCallbackQueryAnswer::getCallbackQueryAnswer()
+ : chat_id_()
+ , message_id_()
+ , payload_()
+{}
+
+getCallbackQueryAnswer::getCallbackQueryAnswer(int53 chat_id_, int53 message_id_, object_ptr<CallbackQueryPayload> &&payload_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , payload_(std::move(payload_))
+{}
+
+const std::int32_t getCallbackQueryAnswer::ID;
+
+void getCallbackQueryAnswer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getCallbackQueryAnswer");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("payload", static_cast<const BaseObject *>(payload_.get()));
+ s.store_class_end();
+ }
+}
+
+getCallbackQueryMessage::getCallbackQueryMessage()
+ : chat_id_()
+ , message_id_()
+ , callback_query_id_()
+{}
+
+getCallbackQueryMessage::getCallbackQueryMessage(int53 chat_id_, int53 message_id_, int64 callback_query_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , callback_query_id_(callback_query_id_)
+{}
+
+const std::int32_t getCallbackQueryMessage::ID;
+
+void getCallbackQueryMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getCallbackQueryMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("callback_query_id", callback_query_id_);
+ s.store_class_end();
+ }
+}
+
+getChat::getChat()
+ : chat_id_()
+{}
+
+getChat::getChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getChat::ID;
+
+void getChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getChatAdministrators::getChatAdministrators()
+ : chat_id_()
+{}
+
+getChatAdministrators::getChatAdministrators(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getChatAdministrators::ID;
+
+void getChatAdministrators::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatAdministrators");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getChatAvailableMessageSenders::getChatAvailableMessageSenders()
+ : chat_id_()
+{}
+
+getChatAvailableMessageSenders::getChatAvailableMessageSenders(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getChatAvailableMessageSenders::ID;
+
+void getChatAvailableMessageSenders::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatAvailableMessageSenders");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getChatEventLog::getChatEventLog()
+ : chat_id_()
+ , query_()
+ , from_event_id_()
+ , limit_()
+ , filters_()
+ , user_ids_()
+{}
+
+getChatEventLog::getChatEventLog(int53 chat_id_, string const &query_, int64 from_event_id_, int32 limit_, object_ptr<chatEventLogFilters> &&filters_, array<int53> &&user_ids_)
+ : chat_id_(chat_id_)
+ , query_(query_)
+ , from_event_id_(from_event_id_)
+ , limit_(limit_)
+ , filters_(std::move(filters_))
+ , user_ids_(std::move(user_ids_))
+{}
+
+const std::int32_t getChatEventLog::ID;
+
+void getChatEventLog::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatEventLog");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("query", query_);
+ s.store_field("from_event_id", from_event_id_);
+ s.store_field("limit", limit_);
+ s.store_object_field("filters", static_cast<const BaseObject *>(filters_.get()));
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+getChatFilter::getChatFilter()
+ : chat_filter_id_()
+{}
+
+getChatFilter::getChatFilter(int32 chat_filter_id_)
+ : chat_filter_id_(chat_filter_id_)
+{}
+
+const std::int32_t getChatFilter::ID;
+
+void getChatFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatFilter");
+ s.store_field("chat_filter_id", chat_filter_id_);
+ s.store_class_end();
+ }
+}
+
+getChatFilterDefaultIconName::getChatFilterDefaultIconName()
+ : filter_()
+{}
+
+getChatFilterDefaultIconName::getChatFilterDefaultIconName(object_ptr<chatFilter> &&filter_)
+ : filter_(std::move(filter_))
+{}
+
+const std::int32_t getChatFilterDefaultIconName::ID;
+
+void getChatFilterDefaultIconName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatFilterDefaultIconName");
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_class_end();
+ }
+}
+
+getChatHistory::getChatHistory()
+ : chat_id_()
+ , from_message_id_()
+ , offset_()
+ , limit_()
+ , only_local_()
+{}
+
+getChatHistory::getChatHistory(int53 chat_id_, int53 from_message_id_, int32 offset_, int32 limit_, bool only_local_)
+ : chat_id_(chat_id_)
+ , from_message_id_(from_message_id_)
+ , offset_(offset_)
+ , limit_(limit_)
+ , only_local_(only_local_)
+{}
+
+const std::int32_t getChatHistory::ID;
+
+void getChatHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatHistory");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("from_message_id", from_message_id_);
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_field("only_local", only_local_);
+ s.store_class_end();
+ }
+}
+
+getChatInviteLink::getChatInviteLink()
+ : chat_id_()
+ , invite_link_()
+{}
+
+getChatInviteLink::getChatInviteLink(int53 chat_id_, string const &invite_link_)
+ : chat_id_(chat_id_)
+ , invite_link_(invite_link_)
+{}
+
+const std::int32_t getChatInviteLink::ID;
+
+void getChatInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatInviteLink");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("invite_link", invite_link_);
+ s.store_class_end();
+ }
+}
+
+getChatInviteLinkCounts::getChatInviteLinkCounts()
+ : chat_id_()
+{}
+
+getChatInviteLinkCounts::getChatInviteLinkCounts(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getChatInviteLinkCounts::ID;
+
+void getChatInviteLinkCounts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatInviteLinkCounts");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getChatInviteLinkMembers::getChatInviteLinkMembers()
+ : chat_id_()
+ , invite_link_()
+ , offset_member_()
+ , limit_()
+{}
+
+getChatInviteLinkMembers::getChatInviteLinkMembers(int53 chat_id_, string const &invite_link_, object_ptr<chatInviteLinkMember> &&offset_member_, int32 limit_)
+ : chat_id_(chat_id_)
+ , invite_link_(invite_link_)
+ , offset_member_(std::move(offset_member_))
+ , limit_(limit_)
+{}
+
+const std::int32_t getChatInviteLinkMembers::ID;
+
+void getChatInviteLinkMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatInviteLinkMembers");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("invite_link", invite_link_);
+ s.store_object_field("offset_member", static_cast<const BaseObject *>(offset_member_.get()));
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getChatInviteLinks::getChatInviteLinks()
+ : chat_id_()
+ , creator_user_id_()
+ , is_revoked_()
+ , offset_date_()
+ , offset_invite_link_()
+ , limit_()
+{}
+
+getChatInviteLinks::getChatInviteLinks(int53 chat_id_, int53 creator_user_id_, bool is_revoked_, int32 offset_date_, string const &offset_invite_link_, int32 limit_)
+ : chat_id_(chat_id_)
+ , creator_user_id_(creator_user_id_)
+ , is_revoked_(is_revoked_)
+ , offset_date_(offset_date_)
+ , offset_invite_link_(offset_invite_link_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getChatInviteLinks::ID;
+
+void getChatInviteLinks::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatInviteLinks");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("creator_user_id", creator_user_id_);
+ s.store_field("is_revoked", is_revoked_);
+ s.store_field("offset_date", offset_date_);
+ s.store_field("offset_invite_link", offset_invite_link_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getChatJoinRequests::getChatJoinRequests()
+ : chat_id_()
+ , invite_link_()
+ , query_()
+ , offset_request_()
+ , limit_()
+{}
+
+getChatJoinRequests::getChatJoinRequests(int53 chat_id_, string const &invite_link_, string const &query_, object_ptr<chatJoinRequest> &&offset_request_, int32 limit_)
+ : chat_id_(chat_id_)
+ , invite_link_(invite_link_)
+ , query_(query_)
+ , offset_request_(std::move(offset_request_))
+ , limit_(limit_)
+{}
+
+const std::int32_t getChatJoinRequests::ID;
+
+void getChatJoinRequests::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatJoinRequests");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("invite_link", invite_link_);
+ s.store_field("query", query_);
+ s.store_object_field("offset_request", static_cast<const BaseObject *>(offset_request_.get()));
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getChatListsToAddChat::getChatListsToAddChat()
+ : chat_id_()
+{}
+
+getChatListsToAddChat::getChatListsToAddChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getChatListsToAddChat::ID;
+
+void getChatListsToAddChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatListsToAddChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getChatMember::getChatMember()
+ : chat_id_()
+ , member_id_()
+{}
+
+getChatMember::getChatMember(int53 chat_id_, object_ptr<MessageSender> &&member_id_)
+ : chat_id_(chat_id_)
+ , member_id_(std::move(member_id_))
+{}
+
+const std::int32_t getChatMember::ID;
+
+void getChatMember::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatMember");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get()));
+ s.store_class_end();
+ }
+}
+
+getChatMessageByDate::getChatMessageByDate()
+ : chat_id_()
+ , date_()
+{}
+
+getChatMessageByDate::getChatMessageByDate(int53 chat_id_, int32 date_)
+ : chat_id_(chat_id_)
+ , date_(date_)
+{}
+
+const std::int32_t getChatMessageByDate::ID;
+
+void getChatMessageByDate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatMessageByDate");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+getChatMessageCalendar::getChatMessageCalendar()
+ : chat_id_()
+ , filter_()
+ , from_message_id_()
+{}
+
+getChatMessageCalendar::getChatMessageCalendar(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 from_message_id_)
+ : chat_id_(chat_id_)
+ , filter_(std::move(filter_))
+ , from_message_id_(from_message_id_)
+{}
+
+const std::int32_t getChatMessageCalendar::ID;
+
+void getChatMessageCalendar::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatMessageCalendar");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("from_message_id", from_message_id_);
+ s.store_class_end();
+ }
+}
+
+getChatMessageCount::getChatMessageCount()
+ : chat_id_()
+ , filter_()
+ , return_local_()
+{}
+
+getChatMessageCount::getChatMessageCount(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, bool return_local_)
+ : chat_id_(chat_id_)
+ , filter_(std::move(filter_))
+ , return_local_(return_local_)
+{}
+
+const std::int32_t getChatMessageCount::ID;
+
+void getChatMessageCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatMessageCount");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("return_local", return_local_);
+ s.store_class_end();
+ }
+}
+
+getChatMessagePosition::getChatMessagePosition()
+ : chat_id_()
+ , message_id_()
+ , filter_()
+ , message_thread_id_()
+{}
+
+getChatMessagePosition::getChatMessagePosition(int53 chat_id_, int53 message_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 message_thread_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , filter_(std::move(filter_))
+ , message_thread_id_(message_thread_id_)
+{}
+
+const std::int32_t getChatMessagePosition::ID;
+
+void getChatMessagePosition::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatMessagePosition");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_class_end();
+ }
+}
+
+getChatNotificationSettingsExceptions::getChatNotificationSettingsExceptions()
+ : scope_()
+ , compare_sound_()
+{}
+
+getChatNotificationSettingsExceptions::getChatNotificationSettingsExceptions(object_ptr<NotificationSettingsScope> &&scope_, bool compare_sound_)
+ : scope_(std::move(scope_))
+ , compare_sound_(compare_sound_)
+{}
+
+const std::int32_t getChatNotificationSettingsExceptions::ID;
+
+void getChatNotificationSettingsExceptions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatNotificationSettingsExceptions");
+ s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get()));
+ s.store_field("compare_sound", compare_sound_);
+ s.store_class_end();
+ }
+}
+
+getChatPinnedMessage::getChatPinnedMessage()
+ : chat_id_()
+{}
+
+getChatPinnedMessage::getChatPinnedMessage(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getChatPinnedMessage::ID;
+
+void getChatPinnedMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatPinnedMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getChatScheduledMessages::getChatScheduledMessages()
+ : chat_id_()
+{}
+
+getChatScheduledMessages::getChatScheduledMessages(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getChatScheduledMessages::ID;
+
+void getChatScheduledMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatScheduledMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getChatSparseMessagePositions::getChatSparseMessagePositions()
+ : chat_id_()
+ , filter_()
+ , from_message_id_()
+ , limit_()
+{}
+
+getChatSparseMessagePositions::getChatSparseMessagePositions(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 from_message_id_, int32 limit_)
+ : chat_id_(chat_id_)
+ , filter_(std::move(filter_))
+ , from_message_id_(from_message_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getChatSparseMessagePositions::ID;
+
+void getChatSparseMessagePositions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatSparseMessagePositions");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("from_message_id", from_message_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getChatSponsoredMessages::getChatSponsoredMessages()
+ : chat_id_()
+{}
+
+getChatSponsoredMessages::getChatSponsoredMessages(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getChatSponsoredMessages::ID;
+
+void getChatSponsoredMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatSponsoredMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getChatStatistics::getChatStatistics()
+ : chat_id_()
+ , is_dark_()
+{}
+
+getChatStatistics::getChatStatistics(int53 chat_id_, bool is_dark_)
+ : chat_id_(chat_id_)
+ , is_dark_(is_dark_)
+{}
+
+const std::int32_t getChatStatistics::ID;
+
+void getChatStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChatStatistics");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("is_dark", is_dark_);
+ s.store_class_end();
+ }
+}
+
+getChats::getChats()
+ : chat_list_()
+ , limit_()
+{}
+
+getChats::getChats(object_ptr<ChatList> &&chat_list_, int32 limit_)
+ : chat_list_(std::move(chat_list_))
+ , limit_(limit_)
+{}
+
+const std::int32_t getChats::ID;
+
+void getChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getChats");
+ s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get()));
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getCommands::getCommands()
+ : scope_()
+ , language_code_()
+{}
+
+getCommands::getCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_)
+ : scope_(std::move(scope_))
+ , language_code_(language_code_)
+{}
+
+const std::int32_t getCommands::ID;
+
+void getCommands::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getCommands");
+ s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get()));
+ s.store_field("language_code", language_code_);
+ s.store_class_end();
+ }
+}
+
+getConnectedWebsites::getConnectedWebsites() {
+}
+
+const std::int32_t getConnectedWebsites::ID;
+
+void getConnectedWebsites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getConnectedWebsites");
+ s.store_class_end();
+ }
+}
+
+getContacts::getContacts() {
+}
+
+const std::int32_t getContacts::ID;
+
+void getContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getContacts");
+ s.store_class_end();
+ }
+}
+
+getCountries::getCountries() {
+}
+
+const std::int32_t getCountries::ID;
+
+void getCountries::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getCountries");
+ s.store_class_end();
+ }
+}
+
+getCountryCode::getCountryCode() {
+}
+
+const std::int32_t getCountryCode::ID;
+
+void getCountryCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getCountryCode");
+ s.store_class_end();
+ }
+}
+
+getCreatedPublicChats::getCreatedPublicChats()
+ : type_()
+{}
+
+getCreatedPublicChats::getCreatedPublicChats(object_ptr<PublicChatType> &&type_)
+ : type_(std::move(type_))
+{}
+
+const std::int32_t getCreatedPublicChats::ID;
+
+void getCreatedPublicChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getCreatedPublicChats");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+getCurrentState::getCurrentState() {
+}
+
+const std::int32_t getCurrentState::ID;
+
+void getCurrentState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getCurrentState");
+ s.store_class_end();
+ }
+}
+
+getCustomEmojiReactionAnimations::getCustomEmojiReactionAnimations() {
+}
+
+const std::int32_t getCustomEmojiReactionAnimations::ID;
+
+void getCustomEmojiReactionAnimations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getCustomEmojiReactionAnimations");
+ s.store_class_end();
+ }
+}
+
+getCustomEmojiStickers::getCustomEmojiStickers()
+ : custom_emoji_ids_()
+{}
+
+getCustomEmojiStickers::getCustomEmojiStickers(array<int64> &&custom_emoji_ids_)
+ : custom_emoji_ids_(std::move(custom_emoji_ids_))
+{}
+
+const std::int32_t getCustomEmojiStickers::ID;
+
+void getCustomEmojiStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getCustomEmojiStickers");
+ { s.store_vector_begin("custom_emoji_ids", custom_emoji_ids_.size()); for (const auto &_value : custom_emoji_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+getDatabaseStatistics::getDatabaseStatistics() {
+}
+
+const std::int32_t getDatabaseStatistics::ID;
+
+void getDatabaseStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getDatabaseStatistics");
+ s.store_class_end();
+ }
+}
+
+getDeepLinkInfo::getDeepLinkInfo()
+ : link_()
+{}
+
+getDeepLinkInfo::getDeepLinkInfo(string const &link_)
+ : link_(link_)
+{}
+
+const std::int32_t getDeepLinkInfo::ID;
+
+void getDeepLinkInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getDeepLinkInfo");
+ s.store_field("link", link_);
+ s.store_class_end();
+ }
+}
+
+getDefaultEmojiStatuses::getDefaultEmojiStatuses() {
+}
+
+const std::int32_t getDefaultEmojiStatuses::ID;
+
+void getDefaultEmojiStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getDefaultEmojiStatuses");
+ s.store_class_end();
+ }
+}
+
+getEmojiReaction::getEmojiReaction()
+ : emoji_()
+{}
+
+getEmojiReaction::getEmojiReaction(string const &emoji_)
+ : emoji_(emoji_)
+{}
+
+const std::int32_t getEmojiReaction::ID;
+
+void getEmojiReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getEmojiReaction");
+ s.store_field("emoji", emoji_);
+ s.store_class_end();
+ }
+}
+
+getEmojiSuggestionsUrl::getEmojiSuggestionsUrl()
+ : language_code_()
+{}
+
+getEmojiSuggestionsUrl::getEmojiSuggestionsUrl(string const &language_code_)
+ : language_code_(language_code_)
+{}
+
+const std::int32_t getEmojiSuggestionsUrl::ID;
+
+void getEmojiSuggestionsUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getEmojiSuggestionsUrl");
+ s.store_field("language_code", language_code_);
+ s.store_class_end();
+ }
+}
+
+getExternalLink::getExternalLink()
+ : link_()
+ , allow_write_access_()
+{}
+
+getExternalLink::getExternalLink(string const &link_, bool allow_write_access_)
+ : link_(link_)
+ , allow_write_access_(allow_write_access_)
+{}
+
+const std::int32_t getExternalLink::ID;
+
+void getExternalLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getExternalLink");
+ s.store_field("link", link_);
+ s.store_field("allow_write_access", allow_write_access_);
+ s.store_class_end();
+ }
+}
+
+getExternalLinkInfo::getExternalLinkInfo()
+ : link_()
+{}
+
+getExternalLinkInfo::getExternalLinkInfo(string const &link_)
+ : link_(link_)
+{}
+
+const std::int32_t getExternalLinkInfo::ID;
+
+void getExternalLinkInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getExternalLinkInfo");
+ s.store_field("link", link_);
+ s.store_class_end();
+ }
+}
+
+getFavoriteStickers::getFavoriteStickers() {
+}
+
+const std::int32_t getFavoriteStickers::ID;
+
+void getFavoriteStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getFavoriteStickers");
+ s.store_class_end();
+ }
+}
+
+getFile::getFile()
+ : file_id_()
+{}
+
+getFile::getFile(int32 file_id_)
+ : file_id_(file_id_)
+{}
+
+const std::int32_t getFile::ID;
+
+void getFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getFile");
+ s.store_field("file_id", file_id_);
+ s.store_class_end();
+ }
+}
+
+getFileDownloadedPrefixSize::getFileDownloadedPrefixSize()
+ : file_id_()
+ , offset_()
+{}
+
+getFileDownloadedPrefixSize::getFileDownloadedPrefixSize(int32 file_id_, int53 offset_)
+ : file_id_(file_id_)
+ , offset_(offset_)
+{}
+
+const std::int32_t getFileDownloadedPrefixSize::ID;
+
+void getFileDownloadedPrefixSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getFileDownloadedPrefixSize");
+ s.store_field("file_id", file_id_);
+ s.store_field("offset", offset_);
+ s.store_class_end();
+ }
+}
+
+getFileExtension::getFileExtension()
+ : mime_type_()
+{}
+
+getFileExtension::getFileExtension(string const &mime_type_)
+ : mime_type_(mime_type_)
+{}
+
+const std::int32_t getFileExtension::ID;
+
+void getFileExtension::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getFileExtension");
+ s.store_field("mime_type", mime_type_);
+ s.store_class_end();
+ }
+}
+
+getFileMimeType::getFileMimeType()
+ : file_name_()
+{}
+
+getFileMimeType::getFileMimeType(string const &file_name_)
+ : file_name_(file_name_)
+{}
+
+const std::int32_t getFileMimeType::ID;
+
+void getFileMimeType::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getFileMimeType");
+ s.store_field("file_name", file_name_);
+ s.store_class_end();
+ }
+}
+
+getForumTopicDefaultIcons::getForumTopicDefaultIcons() {
+}
+
+const std::int32_t getForumTopicDefaultIcons::ID;
+
+void getForumTopicDefaultIcons::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getForumTopicDefaultIcons");
+ s.store_class_end();
+ }
+}
+
+getGameHighScores::getGameHighScores()
+ : chat_id_()
+ , message_id_()
+ , user_id_()
+{}
+
+getGameHighScores::getGameHighScores(int53 chat_id_, int53 message_id_, int53 user_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t getGameHighScores::ID;
+
+void getGameHighScores::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getGameHighScores");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+getGroupCall::getGroupCall()
+ : group_call_id_()
+{}
+
+getGroupCall::getGroupCall(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t getGroupCall::ID;
+
+void getGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getGroupCall");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+getGroupCallInviteLink::getGroupCallInviteLink()
+ : group_call_id_()
+ , can_self_unmute_()
+{}
+
+getGroupCallInviteLink::getGroupCallInviteLink(int32 group_call_id_, bool can_self_unmute_)
+ : group_call_id_(group_call_id_)
+ , can_self_unmute_(can_self_unmute_)
+{}
+
+const std::int32_t getGroupCallInviteLink::ID;
+
+void getGroupCallInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getGroupCallInviteLink");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("can_self_unmute", can_self_unmute_);
+ s.store_class_end();
+ }
+}
+
+getGroupCallStreamSegment::getGroupCallStreamSegment()
+ : group_call_id_()
+ , time_offset_()
+ , scale_()
+ , channel_id_()
+ , video_quality_()
+{}
+
+getGroupCallStreamSegment::getGroupCallStreamSegment(int32 group_call_id_, int53 time_offset_, int32 scale_, int32 channel_id_, object_ptr<GroupCallVideoQuality> &&video_quality_)
+ : group_call_id_(group_call_id_)
+ , time_offset_(time_offset_)
+ , scale_(scale_)
+ , channel_id_(channel_id_)
+ , video_quality_(std::move(video_quality_))
+{}
+
+const std::int32_t getGroupCallStreamSegment::ID;
+
+void getGroupCallStreamSegment::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getGroupCallStreamSegment");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("time_offset", time_offset_);
+ s.store_field("scale", scale_);
+ s.store_field("channel_id", channel_id_);
+ s.store_object_field("video_quality", static_cast<const BaseObject *>(video_quality_.get()));
+ s.store_class_end();
+ }
+}
+
+getGroupCallStreams::getGroupCallStreams()
+ : group_call_id_()
+{}
+
+getGroupCallStreams::getGroupCallStreams(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t getGroupCallStreams::ID;
+
+void getGroupCallStreams::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getGroupCallStreams");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+getGroupsInCommon::getGroupsInCommon()
+ : user_id_()
+ , offset_chat_id_()
+ , limit_()
+{}
+
+getGroupsInCommon::getGroupsInCommon(int53 user_id_, int53 offset_chat_id_, int32 limit_)
+ : user_id_(user_id_)
+ , offset_chat_id_(offset_chat_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getGroupsInCommon::ID;
+
+void getGroupsInCommon::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getGroupsInCommon");
+ s.store_field("user_id", user_id_);
+ s.store_field("offset_chat_id", offset_chat_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getImportedContactCount::getImportedContactCount() {
+}
+
+const std::int32_t getImportedContactCount::ID;
+
+void getImportedContactCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getImportedContactCount");
+ s.store_class_end();
+ }
+}
+
+getInactiveSupergroupChats::getInactiveSupergroupChats() {
+}
+
+const std::int32_t getInactiveSupergroupChats::ID;
+
+void getInactiveSupergroupChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getInactiveSupergroupChats");
+ s.store_class_end();
+ }
+}
+
+getInlineGameHighScores::getInlineGameHighScores()
+ : inline_message_id_()
+ , user_id_()
+{}
+
+getInlineGameHighScores::getInlineGameHighScores(string const &inline_message_id_, int53 user_id_)
+ : inline_message_id_(inline_message_id_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t getInlineGameHighScores::ID;
+
+void getInlineGameHighScores::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getInlineGameHighScores");
+ s.store_field("inline_message_id", inline_message_id_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+getInlineQueryResults::getInlineQueryResults()
+ : bot_user_id_()
+ , chat_id_()
+ , user_location_()
+ , query_()
+ , offset_()
+{}
+
+getInlineQueryResults::getInlineQueryResults(int53 bot_user_id_, int53 chat_id_, object_ptr<location> &&user_location_, string const &query_, string const &offset_)
+ : bot_user_id_(bot_user_id_)
+ , chat_id_(chat_id_)
+ , user_location_(std::move(user_location_))
+ , query_(query_)
+ , offset_(offset_)
+{}
+
+const std::int32_t getInlineQueryResults::ID;
+
+void getInlineQueryResults::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getInlineQueryResults");
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("user_location", static_cast<const BaseObject *>(user_location_.get()));
+ s.store_field("query", query_);
+ s.store_field("offset", offset_);
+ s.store_class_end();
+ }
+}
+
+getInstalledStickerSets::getInstalledStickerSets()
+ : sticker_type_()
+{}
+
+getInstalledStickerSets::getInstalledStickerSets(object_ptr<StickerType> &&sticker_type_)
+ : sticker_type_(std::move(sticker_type_))
+{}
+
+const std::int32_t getInstalledStickerSets::ID;
+
+void getInstalledStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getInstalledStickerSets");
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ s.store_class_end();
+ }
+}
+
+getInternalLinkType::getInternalLinkType()
+ : link_()
+{}
+
+getInternalLinkType::getInternalLinkType(string const &link_)
+ : link_(link_)
+{}
+
+const std::int32_t getInternalLinkType::ID;
+
+void getInternalLinkType::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getInternalLinkType");
+ s.store_field("link", link_);
+ s.store_class_end();
+ }
+}
+
+getJsonString::getJsonString()
+ : json_value_()
+{}
+
+getJsonString::getJsonString(object_ptr<JsonValue> &&json_value_)
+ : json_value_(std::move(json_value_))
+{}
+
+const std::int32_t getJsonString::ID;
+
+void getJsonString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getJsonString");
+ s.store_object_field("json_value", static_cast<const BaseObject *>(json_value_.get()));
+ s.store_class_end();
+ }
+}
+
+getJsonValue::getJsonValue()
+ : json_()
+{}
+
+getJsonValue::getJsonValue(string const &json_)
+ : json_(json_)
+{}
+
+const std::int32_t getJsonValue::ID;
+
+void getJsonValue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getJsonValue");
+ s.store_field("json", json_);
+ s.store_class_end();
+ }
+}
+
+getLanguagePackInfo::getLanguagePackInfo()
+ : language_pack_id_()
+{}
+
+getLanguagePackInfo::getLanguagePackInfo(string const &language_pack_id_)
+ : language_pack_id_(language_pack_id_)
+{}
+
+const std::int32_t getLanguagePackInfo::ID;
+
+void getLanguagePackInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getLanguagePackInfo");
+ s.store_field("language_pack_id", language_pack_id_);
+ s.store_class_end();
+ }
+}
+
+getLanguagePackString::getLanguagePackString()
+ : language_pack_database_path_()
+ , localization_target_()
+ , language_pack_id_()
+ , key_()
+{}
+
+getLanguagePackString::getLanguagePackString(string const &language_pack_database_path_, string const &localization_target_, string const &language_pack_id_, string const &key_)
+ : language_pack_database_path_(language_pack_database_path_)
+ , localization_target_(localization_target_)
+ , language_pack_id_(language_pack_id_)
+ , key_(key_)
+{}
+
+const std::int32_t getLanguagePackString::ID;
+
+void getLanguagePackString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getLanguagePackString");
+ s.store_field("language_pack_database_path", language_pack_database_path_);
+ s.store_field("localization_target", localization_target_);
+ s.store_field("language_pack_id", language_pack_id_);
+ s.store_field("key", key_);
+ s.store_class_end();
+ }
+}
+
+getLanguagePackStrings::getLanguagePackStrings()
+ : language_pack_id_()
+ , keys_()
+{}
+
+getLanguagePackStrings::getLanguagePackStrings(string const &language_pack_id_, array<string> &&keys_)
+ : language_pack_id_(language_pack_id_)
+ , keys_(std::move(keys_))
+{}
+
+const std::int32_t getLanguagePackStrings::ID;
+
+void getLanguagePackStrings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getLanguagePackStrings");
+ s.store_field("language_pack_id", language_pack_id_);
+ { s.store_vector_begin("keys", keys_.size()); for (const auto &_value : keys_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+getLocalizationTargetInfo::getLocalizationTargetInfo()
+ : only_local_()
+{}
+
+getLocalizationTargetInfo::getLocalizationTargetInfo(bool only_local_)
+ : only_local_(only_local_)
+{}
+
+const std::int32_t getLocalizationTargetInfo::ID;
+
+void getLocalizationTargetInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getLocalizationTargetInfo");
+ s.store_field("only_local", only_local_);
+ s.store_class_end();
+ }
+}
+
+getLogStream::getLogStream() {
+}
+
+const std::int32_t getLogStream::ID;
+
+void getLogStream::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getLogStream");
+ s.store_class_end();
+ }
+}
+
+getLogTagVerbosityLevel::getLogTagVerbosityLevel()
+ : tag_()
+{}
+
+getLogTagVerbosityLevel::getLogTagVerbosityLevel(string const &tag_)
+ : tag_(tag_)
+{}
+
+const std::int32_t getLogTagVerbosityLevel::ID;
+
+void getLogTagVerbosityLevel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getLogTagVerbosityLevel");
+ s.store_field("tag", tag_);
+ s.store_class_end();
+ }
+}
+
+getLogTags::getLogTags() {
+}
+
+const std::int32_t getLogTags::ID;
+
+void getLogTags::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getLogTags");
+ s.store_class_end();
+ }
+}
+
+getLogVerbosityLevel::getLogVerbosityLevel() {
+}
+
+const std::int32_t getLogVerbosityLevel::ID;
+
+void getLogVerbosityLevel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getLogVerbosityLevel");
+ s.store_class_end();
+ }
+}
+
+getLoginUrl::getLoginUrl()
+ : chat_id_()
+ , message_id_()
+ , button_id_()
+ , allow_write_access_()
+{}
+
+getLoginUrl::getLoginUrl(int53 chat_id_, int53 message_id_, int53 button_id_, bool allow_write_access_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , button_id_(button_id_)
+ , allow_write_access_(allow_write_access_)
+{}
+
+const std::int32_t getLoginUrl::ID;
+
+void getLoginUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getLoginUrl");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("button_id", button_id_);
+ s.store_field("allow_write_access", allow_write_access_);
+ s.store_class_end();
+ }
+}
+
+getLoginUrlInfo::getLoginUrlInfo()
+ : chat_id_()
+ , message_id_()
+ , button_id_()
+{}
+
+getLoginUrlInfo::getLoginUrlInfo(int53 chat_id_, int53 message_id_, int53 button_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , button_id_(button_id_)
+{}
+
+const std::int32_t getLoginUrlInfo::ID;
+
+void getLoginUrlInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getLoginUrlInfo");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("button_id", button_id_);
+ s.store_class_end();
+ }
+}
+
+getMapThumbnailFile::getMapThumbnailFile()
+ : location_()
+ , zoom_()
+ , width_()
+ , height_()
+ , scale_()
+ , chat_id_()
+{}
+
+getMapThumbnailFile::getMapThumbnailFile(object_ptr<location> &&location_, int32 zoom_, int32 width_, int32 height_, int32 scale_, int53 chat_id_)
+ : location_(std::move(location_))
+ , zoom_(zoom_)
+ , width_(width_)
+ , height_(height_)
+ , scale_(scale_)
+ , chat_id_(chat_id_)
+{}
+
+const std::int32_t getMapThumbnailFile::ID;
+
+void getMapThumbnailFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMapThumbnailFile");
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("zoom", zoom_);
+ s.store_field("width", width_);
+ s.store_field("height", height_);
+ s.store_field("scale", scale_);
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getMarkdownText::getMarkdownText()
+ : text_()
+{}
+
+getMarkdownText::getMarkdownText(object_ptr<formattedText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t getMarkdownText::ID;
+
+void getMarkdownText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMarkdownText");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+getMe::getMe() {
+}
+
+const std::int32_t getMe::ID;
+
+void getMe::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMe");
+ s.store_class_end();
+ }
+}
+
+getMenuButton::getMenuButton()
+ : user_id_()
+{}
+
+getMenuButton::getMenuButton(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t getMenuButton::ID;
+
+void getMenuButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMenuButton");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+getMessage::getMessage()
+ : chat_id_()
+ , message_id_()
+{}
+
+getMessage::getMessage(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t getMessage::ID;
+
+void getMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+getMessageAddedReactions::getMessageAddedReactions()
+ : chat_id_()
+ , message_id_()
+ , reaction_type_()
+ , offset_()
+ , limit_()
+{}
+
+getMessageAddedReactions::getMessageAddedReactions(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_, string const &offset_, int32 limit_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , reaction_type_(std::move(reaction_type_))
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getMessageAddedReactions::ID;
+
+void getMessageAddedReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageAddedReactions");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("reaction_type", static_cast<const BaseObject *>(reaction_type_.get()));
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getMessageAvailableReactions::getMessageAvailableReactions()
+ : chat_id_()
+ , message_id_()
+ , row_size_()
+{}
+
+getMessageAvailableReactions::getMessageAvailableReactions(int53 chat_id_, int53 message_id_, int32 row_size_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , row_size_(row_size_)
+{}
+
+const std::int32_t getMessageAvailableReactions::ID;
+
+void getMessageAvailableReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageAvailableReactions");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("row_size", row_size_);
+ s.store_class_end();
+ }
+}
+
+getMessageEmbeddingCode::getMessageEmbeddingCode()
+ : chat_id_()
+ , message_id_()
+ , for_album_()
+{}
+
+getMessageEmbeddingCode::getMessageEmbeddingCode(int53 chat_id_, int53 message_id_, bool for_album_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , for_album_(for_album_)
+{}
+
+const std::int32_t getMessageEmbeddingCode::ID;
+
+void getMessageEmbeddingCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageEmbeddingCode");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("for_album", for_album_);
+ s.store_class_end();
+ }
+}
+
+getMessageFileType::getMessageFileType()
+ : message_file_head_()
+{}
+
+getMessageFileType::getMessageFileType(string const &message_file_head_)
+ : message_file_head_(message_file_head_)
+{}
+
+const std::int32_t getMessageFileType::ID;
+
+void getMessageFileType::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageFileType");
+ s.store_field("message_file_head", message_file_head_);
+ s.store_class_end();
+ }
+}
+
+getMessageImportConfirmationText::getMessageImportConfirmationText()
+ : chat_id_()
+{}
+
+getMessageImportConfirmationText::getMessageImportConfirmationText(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getMessageImportConfirmationText::ID;
+
+void getMessageImportConfirmationText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageImportConfirmationText");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getMessageLink::getMessageLink()
+ : chat_id_()
+ , message_id_()
+ , media_timestamp_()
+ , for_album_()
+ , in_message_thread_()
+{}
+
+getMessageLink::getMessageLink(int53 chat_id_, int53 message_id_, int32 media_timestamp_, bool for_album_, bool in_message_thread_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , media_timestamp_(media_timestamp_)
+ , for_album_(for_album_)
+ , in_message_thread_(in_message_thread_)
+{}
+
+const std::int32_t getMessageLink::ID;
+
+void getMessageLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageLink");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("media_timestamp", media_timestamp_);
+ s.store_field("for_album", for_album_);
+ s.store_field("in_message_thread", in_message_thread_);
+ s.store_class_end();
+ }
+}
+
+getMessageLinkInfo::getMessageLinkInfo()
+ : url_()
+{}
+
+getMessageLinkInfo::getMessageLinkInfo(string const &url_)
+ : url_(url_)
+{}
+
+const std::int32_t getMessageLinkInfo::ID;
+
+void getMessageLinkInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageLinkInfo");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+getMessageLocally::getMessageLocally()
+ : chat_id_()
+ , message_id_()
+{}
+
+getMessageLocally::getMessageLocally(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t getMessageLocally::ID;
+
+void getMessageLocally::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageLocally");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+getMessagePublicForwards::getMessagePublicForwards()
+ : chat_id_()
+ , message_id_()
+ , offset_()
+ , limit_()
+{}
+
+getMessagePublicForwards::getMessagePublicForwards(int53 chat_id_, int53 message_id_, string const &offset_, int32 limit_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getMessagePublicForwards::ID;
+
+void getMessagePublicForwards::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessagePublicForwards");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getMessageStatistics::getMessageStatistics()
+ : chat_id_()
+ , message_id_()
+ , is_dark_()
+{}
+
+getMessageStatistics::getMessageStatistics(int53 chat_id_, int53 message_id_, bool is_dark_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , is_dark_(is_dark_)
+{}
+
+const std::int32_t getMessageStatistics::ID;
+
+void getMessageStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageStatistics");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("is_dark", is_dark_);
+ s.store_class_end();
+ }
+}
+
+getMessageThread::getMessageThread()
+ : chat_id_()
+ , message_id_()
+{}
+
+getMessageThread::getMessageThread(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t getMessageThread::ID;
+
+void getMessageThread::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageThread");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+getMessageThreadHistory::getMessageThreadHistory()
+ : chat_id_()
+ , message_id_()
+ , from_message_id_()
+ , offset_()
+ , limit_()
+{}
+
+getMessageThreadHistory::getMessageThreadHistory(int53 chat_id_, int53 message_id_, int53 from_message_id_, int32 offset_, int32 limit_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , from_message_id_(from_message_id_)
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getMessageThreadHistory::ID;
+
+void getMessageThreadHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageThreadHistory");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("from_message_id", from_message_id_);
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getMessageViewers::getMessageViewers()
+ : chat_id_()
+ , message_id_()
+{}
+
+getMessageViewers::getMessageViewers(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t getMessageViewers::ID;
+
+void getMessageViewers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessageViewers");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+getMessages::getMessages()
+ : chat_id_()
+ , message_ids_()
+{}
+
+getMessages::getMessages(int53 chat_id_, array<int53> &&message_ids_)
+ : chat_id_(chat_id_)
+ , message_ids_(std::move(message_ids_))
+{}
+
+const std::int32_t getMessages::ID;
+
+void getMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getMessages");
+ s.store_field("chat_id", chat_id_);
+ { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+getNetworkStatistics::getNetworkStatistics()
+ : only_current_()
+{}
+
+getNetworkStatistics::getNetworkStatistics(bool only_current_)
+ : only_current_(only_current_)
+{}
+
+const std::int32_t getNetworkStatistics::ID;
+
+void getNetworkStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getNetworkStatistics");
+ s.store_field("only_current", only_current_);
+ s.store_class_end();
+ }
+}
+
+getOption::getOption()
+ : name_()
+{}
+
+getOption::getOption(string const &name_)
+ : name_(name_)
+{}
+
+const std::int32_t getOption::ID;
+
+void getOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getOption");
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+getPassportAuthorizationForm::getPassportAuthorizationForm()
+ : bot_user_id_()
+ , scope_()
+ , public_key_()
+ , nonce_()
+{}
+
+getPassportAuthorizationForm::getPassportAuthorizationForm(int53 bot_user_id_, string const &scope_, string const &public_key_, string const &nonce_)
+ : bot_user_id_(bot_user_id_)
+ , scope_(scope_)
+ , public_key_(public_key_)
+ , nonce_(nonce_)
+{}
+
+const std::int32_t getPassportAuthorizationForm::ID;
+
+void getPassportAuthorizationForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPassportAuthorizationForm");
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("scope", scope_);
+ s.store_field("public_key", public_key_);
+ s.store_field("nonce", nonce_);
+ s.store_class_end();
+ }
+}
+
+getPassportAuthorizationFormAvailableElements::getPassportAuthorizationFormAvailableElements()
+ : autorization_form_id_()
+ , password_()
+{}
+
+getPassportAuthorizationFormAvailableElements::getPassportAuthorizationFormAvailableElements(int32 autorization_form_id_, string const &password_)
+ : autorization_form_id_(autorization_form_id_)
+ , password_(password_)
+{}
+
+const std::int32_t getPassportAuthorizationFormAvailableElements::ID;
+
+void getPassportAuthorizationFormAvailableElements::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPassportAuthorizationFormAvailableElements");
+ s.store_field("autorization_form_id", autorization_form_id_);
+ s.store_field("password", password_);
+ s.store_class_end();
+ }
+}
+
+getPassportElement::getPassportElement()
+ : type_()
+ , password_()
+{}
+
+getPassportElement::getPassportElement(object_ptr<PassportElementType> &&type_, string const &password_)
+ : type_(std::move(type_))
+ , password_(password_)
+{}
+
+const std::int32_t getPassportElement::ID;
+
+void getPassportElement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPassportElement");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("password", password_);
+ s.store_class_end();
+ }
+}
+
+getPasswordState::getPasswordState() {
+}
+
+const std::int32_t getPasswordState::ID;
+
+void getPasswordState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPasswordState");
+ s.store_class_end();
+ }
+}
+
+getPaymentForm::getPaymentForm()
+ : input_invoice_()
+ , theme_()
+{}
+
+getPaymentForm::getPaymentForm(object_ptr<InputInvoice> &&input_invoice_, object_ptr<themeParameters> &&theme_)
+ : input_invoice_(std::move(input_invoice_))
+ , theme_(std::move(theme_))
+{}
+
+const std::int32_t getPaymentForm::ID;
+
+void getPaymentForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPaymentForm");
+ s.store_object_field("input_invoice", static_cast<const BaseObject *>(input_invoice_.get()));
+ s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get()));
+ s.store_class_end();
+ }
+}
+
+getPaymentReceipt::getPaymentReceipt()
+ : chat_id_()
+ , message_id_()
+{}
+
+getPaymentReceipt::getPaymentReceipt(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t getPaymentReceipt::ID;
+
+void getPaymentReceipt::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPaymentReceipt");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+getPhoneNumberInfo::getPhoneNumberInfo()
+ : phone_number_prefix_()
+{}
+
+getPhoneNumberInfo::getPhoneNumberInfo(string const &phone_number_prefix_)
+ : phone_number_prefix_(phone_number_prefix_)
+{}
+
+const std::int32_t getPhoneNumberInfo::ID;
+
+void getPhoneNumberInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPhoneNumberInfo");
+ s.store_field("phone_number_prefix", phone_number_prefix_);
+ s.store_class_end();
+ }
+}
+
+getPhoneNumberInfoSync::getPhoneNumberInfoSync()
+ : language_code_()
+ , phone_number_prefix_()
+{}
+
+getPhoneNumberInfoSync::getPhoneNumberInfoSync(string const &language_code_, string const &phone_number_prefix_)
+ : language_code_(language_code_)
+ , phone_number_prefix_(phone_number_prefix_)
+{}
+
+const std::int32_t getPhoneNumberInfoSync::ID;
+
+void getPhoneNumberInfoSync::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPhoneNumberInfoSync");
+ s.store_field("language_code", language_code_);
+ s.store_field("phone_number_prefix", phone_number_prefix_);
+ s.store_class_end();
+ }
+}
+
+getPollVoters::getPollVoters()
+ : chat_id_()
+ , message_id_()
+ , option_id_()
+ , offset_()
+ , limit_()
+{}
+
+getPollVoters::getPollVoters(int53 chat_id_, int53 message_id_, int32 option_id_, int32 offset_, int32 limit_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , option_id_(option_id_)
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getPollVoters::ID;
+
+void getPollVoters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPollVoters");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("option_id", option_id_);
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getPreferredCountryLanguage::getPreferredCountryLanguage()
+ : country_code_()
+{}
+
+getPreferredCountryLanguage::getPreferredCountryLanguage(string const &country_code_)
+ : country_code_(country_code_)
+{}
+
+const std::int32_t getPreferredCountryLanguage::ID;
+
+void getPreferredCountryLanguage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPreferredCountryLanguage");
+ s.store_field("country_code", country_code_);
+ s.store_class_end();
+ }
+}
+
+getPremiumFeatures::getPremiumFeatures()
+ : source_()
+{}
+
+getPremiumFeatures::getPremiumFeatures(object_ptr<PremiumSource> &&source_)
+ : source_(std::move(source_))
+{}
+
+const std::int32_t getPremiumFeatures::ID;
+
+void getPremiumFeatures::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPremiumFeatures");
+ s.store_object_field("source", static_cast<const BaseObject *>(source_.get()));
+ s.store_class_end();
+ }
+}
+
+getPremiumLimit::getPremiumLimit()
+ : limit_type_()
+{}
+
+getPremiumLimit::getPremiumLimit(object_ptr<PremiumLimitType> &&limit_type_)
+ : limit_type_(std::move(limit_type_))
+{}
+
+const std::int32_t getPremiumLimit::ID;
+
+void getPremiumLimit::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPremiumLimit");
+ s.store_object_field("limit_type", static_cast<const BaseObject *>(limit_type_.get()));
+ s.store_class_end();
+ }
+}
+
+getPremiumState::getPremiumState() {
+}
+
+const std::int32_t getPremiumState::ID;
+
+void getPremiumState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPremiumState");
+ s.store_class_end();
+ }
+}
+
+getPremiumStickerExamples::getPremiumStickerExamples() {
+}
+
+const std::int32_t getPremiumStickerExamples::ID;
+
+void getPremiumStickerExamples::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPremiumStickerExamples");
+ s.store_class_end();
+ }
+}
+
+getPremiumStickers::getPremiumStickers()
+ : limit_()
+{}
+
+getPremiumStickers::getPremiumStickers(int32 limit_)
+ : limit_(limit_)
+{}
+
+const std::int32_t getPremiumStickers::ID;
+
+void getPremiumStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPremiumStickers");
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getProxies::getProxies() {
+}
+
+const std::int32_t getProxies::ID;
+
+void getProxies::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getProxies");
+ s.store_class_end();
+ }
+}
+
+getProxyLink::getProxyLink()
+ : proxy_id_()
+{}
+
+getProxyLink::getProxyLink(int32 proxy_id_)
+ : proxy_id_(proxy_id_)
+{}
+
+const std::int32_t getProxyLink::ID;
+
+void getProxyLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getProxyLink");
+ s.store_field("proxy_id", proxy_id_);
+ s.store_class_end();
+ }
+}
+
+getPushReceiverId::getPushReceiverId()
+ : payload_()
+{}
+
+getPushReceiverId::getPushReceiverId(string const &payload_)
+ : payload_(payload_)
+{}
+
+const std::int32_t getPushReceiverId::ID;
+
+void getPushReceiverId::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getPushReceiverId");
+ s.store_field("payload", payload_);
+ s.store_class_end();
+ }
+}
+
+getRecentEmojiStatuses::getRecentEmojiStatuses() {
+}
+
+const std::int32_t getRecentEmojiStatuses::ID;
+
+void getRecentEmojiStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getRecentEmojiStatuses");
+ s.store_class_end();
+ }
+}
+
+getRecentInlineBots::getRecentInlineBots() {
+}
+
+const std::int32_t getRecentInlineBots::ID;
+
+void getRecentInlineBots::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getRecentInlineBots");
+ s.store_class_end();
+ }
+}
+
+getRecentStickers::getRecentStickers()
+ : is_attached_()
+{}
+
+getRecentStickers::getRecentStickers(bool is_attached_)
+ : is_attached_(is_attached_)
+{}
+
+const std::int32_t getRecentStickers::ID;
+
+void getRecentStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getRecentStickers");
+ s.store_field("is_attached", is_attached_);
+ s.store_class_end();
+ }
+}
+
+getRecentlyOpenedChats::getRecentlyOpenedChats()
+ : limit_()
+{}
+
+getRecentlyOpenedChats::getRecentlyOpenedChats(int32 limit_)
+ : limit_(limit_)
+{}
+
+const std::int32_t getRecentlyOpenedChats::ID;
+
+void getRecentlyOpenedChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getRecentlyOpenedChats");
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getRecentlyVisitedTMeUrls::getRecentlyVisitedTMeUrls()
+ : referrer_()
+{}
+
+getRecentlyVisitedTMeUrls::getRecentlyVisitedTMeUrls(string const &referrer_)
+ : referrer_(referrer_)
+{}
+
+const std::int32_t getRecentlyVisitedTMeUrls::ID;
+
+void getRecentlyVisitedTMeUrls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getRecentlyVisitedTMeUrls");
+ s.store_field("referrer", referrer_);
+ s.store_class_end();
+ }
+}
+
+getRecommendedChatFilters::getRecommendedChatFilters() {
+}
+
+const std::int32_t getRecommendedChatFilters::ID;
+
+void getRecommendedChatFilters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getRecommendedChatFilters");
+ s.store_class_end();
+ }
+}
+
+getRecoveryEmailAddress::getRecoveryEmailAddress()
+ : password_()
+{}
+
+getRecoveryEmailAddress::getRecoveryEmailAddress(string const &password_)
+ : password_(password_)
+{}
+
+const std::int32_t getRecoveryEmailAddress::ID;
+
+void getRecoveryEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getRecoveryEmailAddress");
+ s.store_field("password", password_);
+ s.store_class_end();
+ }
+}
+
+getRemoteFile::getRemoteFile()
+ : remote_file_id_()
+ , file_type_()
+{}
+
+getRemoteFile::getRemoteFile(string const &remote_file_id_, object_ptr<FileType> &&file_type_)
+ : remote_file_id_(remote_file_id_)
+ , file_type_(std::move(file_type_))
+{}
+
+const std::int32_t getRemoteFile::ID;
+
+void getRemoteFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getRemoteFile");
+ s.store_field("remote_file_id", remote_file_id_);
+ s.store_object_field("file_type", static_cast<const BaseObject *>(file_type_.get()));
+ s.store_class_end();
+ }
+}
+
+getRepliedMessage::getRepliedMessage()
+ : chat_id_()
+ , message_id_()
+{}
+
+getRepliedMessage::getRepliedMessage(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t getRepliedMessage::ID;
+
+void getRepliedMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getRepliedMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+getSavedAnimations::getSavedAnimations() {
+}
+
+const std::int32_t getSavedAnimations::ID;
+
+void getSavedAnimations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSavedAnimations");
+ s.store_class_end();
+ }
+}
+
+getSavedNotificationSound::getSavedNotificationSound()
+ : notification_sound_id_()
+{}
+
+getSavedNotificationSound::getSavedNotificationSound(int64 notification_sound_id_)
+ : notification_sound_id_(notification_sound_id_)
+{}
+
+const std::int32_t getSavedNotificationSound::ID;
+
+void getSavedNotificationSound::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSavedNotificationSound");
+ s.store_field("notification_sound_id", notification_sound_id_);
+ s.store_class_end();
+ }
+}
+
+getSavedNotificationSounds::getSavedNotificationSounds() {
+}
+
+const std::int32_t getSavedNotificationSounds::ID;
+
+void getSavedNotificationSounds::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSavedNotificationSounds");
+ s.store_class_end();
+ }
+}
+
+getSavedOrderInfo::getSavedOrderInfo() {
+}
+
+const std::int32_t getSavedOrderInfo::ID;
+
+void getSavedOrderInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSavedOrderInfo");
+ s.store_class_end();
+ }
+}
+
+getScopeNotificationSettings::getScopeNotificationSettings()
+ : scope_()
+{}
+
+getScopeNotificationSettings::getScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_)
+ : scope_(std::move(scope_))
+{}
+
+const std::int32_t getScopeNotificationSettings::ID;
+
+void getScopeNotificationSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getScopeNotificationSettings");
+ s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get()));
+ s.store_class_end();
+ }
+}
+
+getSecretChat::getSecretChat()
+ : secret_chat_id_()
+{}
+
+getSecretChat::getSecretChat(int32 secret_chat_id_)
+ : secret_chat_id_(secret_chat_id_)
+{}
+
+const std::int32_t getSecretChat::ID;
+
+void getSecretChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSecretChat");
+ s.store_field("secret_chat_id", secret_chat_id_);
+ s.store_class_end();
+ }
+}
+
+getStatisticalGraph::getStatisticalGraph()
+ : chat_id_()
+ , token_()
+ , x_()
+{}
+
+getStatisticalGraph::getStatisticalGraph(int53 chat_id_, string const &token_, int53 x_)
+ : chat_id_(chat_id_)
+ , token_(token_)
+ , x_(x_)
+{}
+
+const std::int32_t getStatisticalGraph::ID;
+
+void getStatisticalGraph::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getStatisticalGraph");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("token", token_);
+ s.store_field("x", x_);
+ s.store_class_end();
+ }
+}
+
+getStickerEmojis::getStickerEmojis()
+ : sticker_()
+{}
+
+getStickerEmojis::getStickerEmojis(object_ptr<InputFile> &&sticker_)
+ : sticker_(std::move(sticker_))
+{}
+
+const std::int32_t getStickerEmojis::ID;
+
+void getStickerEmojis::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getStickerEmojis");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+getStickerSet::getStickerSet()
+ : set_id_()
+{}
+
+getStickerSet::getStickerSet(int64 set_id_)
+ : set_id_(set_id_)
+{}
+
+const std::int32_t getStickerSet::ID;
+
+void getStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getStickerSet");
+ s.store_field("set_id", set_id_);
+ s.store_class_end();
+ }
+}
+
+getStickers::getStickers()
+ : sticker_type_()
+ , query_()
+ , limit_()
+ , chat_id_()
+{}
+
+getStickers::getStickers(object_ptr<StickerType> &&sticker_type_, string const &query_, int32 limit_, int53 chat_id_)
+ : sticker_type_(std::move(sticker_type_))
+ , query_(query_)
+ , limit_(limit_)
+ , chat_id_(chat_id_)
+{}
+
+const std::int32_t getStickers::ID;
+
+void getStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getStickers");
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ s.store_field("query", query_);
+ s.store_field("limit", limit_);
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getStorageStatistics::getStorageStatistics()
+ : chat_limit_()
+{}
+
+getStorageStatistics::getStorageStatistics(int32 chat_limit_)
+ : chat_limit_(chat_limit_)
+{}
+
+const std::int32_t getStorageStatistics::ID;
+
+void getStorageStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getStorageStatistics");
+ s.store_field("chat_limit", chat_limit_);
+ s.store_class_end();
+ }
+}
+
+getStorageStatisticsFast::getStorageStatisticsFast() {
+}
+
+const std::int32_t getStorageStatisticsFast::ID;
+
+void getStorageStatisticsFast::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getStorageStatisticsFast");
+ s.store_class_end();
+ }
+}
+
+getSuggestedFileName::getSuggestedFileName()
+ : file_id_()
+ , directory_()
+{}
+
+getSuggestedFileName::getSuggestedFileName(int32 file_id_, string const &directory_)
+ : file_id_(file_id_)
+ , directory_(directory_)
+{}
+
+const std::int32_t getSuggestedFileName::ID;
+
+void getSuggestedFileName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSuggestedFileName");
+ s.store_field("file_id", file_id_);
+ s.store_field("directory", directory_);
+ s.store_class_end();
+ }
+}
+
+getSuggestedStickerSetName::getSuggestedStickerSetName()
+ : title_()
+{}
+
+getSuggestedStickerSetName::getSuggestedStickerSetName(string const &title_)
+ : title_(title_)
+{}
+
+const std::int32_t getSuggestedStickerSetName::ID;
+
+void getSuggestedStickerSetName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSuggestedStickerSetName");
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+getSuitableDiscussionChats::getSuitableDiscussionChats() {
+}
+
+const std::int32_t getSuitableDiscussionChats::ID;
+
+void getSuitableDiscussionChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSuitableDiscussionChats");
+ s.store_class_end();
+ }
+}
+
+getSupergroup::getSupergroup()
+ : supergroup_id_()
+{}
+
+getSupergroup::getSupergroup(int53 supergroup_id_)
+ : supergroup_id_(supergroup_id_)
+{}
+
+const std::int32_t getSupergroup::ID;
+
+void getSupergroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSupergroup");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_class_end();
+ }
+}
+
+getSupergroupFullInfo::getSupergroupFullInfo()
+ : supergroup_id_()
+{}
+
+getSupergroupFullInfo::getSupergroupFullInfo(int53 supergroup_id_)
+ : supergroup_id_(supergroup_id_)
+{}
+
+const std::int32_t getSupergroupFullInfo::ID;
+
+void getSupergroupFullInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSupergroupFullInfo");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_class_end();
+ }
+}
+
+getSupergroupMembers::getSupergroupMembers()
+ : supergroup_id_()
+ , filter_()
+ , offset_()
+ , limit_()
+{}
+
+getSupergroupMembers::getSupergroupMembers(int53 supergroup_id_, object_ptr<SupergroupMembersFilter> &&filter_, int32 offset_, int32 limit_)
+ : supergroup_id_(supergroup_id_)
+ , filter_(std::move(filter_))
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getSupergroupMembers::ID;
+
+void getSupergroupMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSupergroupMembers");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getSupportUser::getSupportUser() {
+}
+
+const std::int32_t getSupportUser::ID;
+
+void getSupportUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getSupportUser");
+ s.store_class_end();
+ }
+}
+
+getTemporaryPasswordState::getTemporaryPasswordState() {
+}
+
+const std::int32_t getTemporaryPasswordState::ID;
+
+void getTemporaryPasswordState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getTemporaryPasswordState");
+ s.store_class_end();
+ }
+}
+
+getTextEntities::getTextEntities()
+ : text_()
+{}
+
+getTextEntities::getTextEntities(string const &text_)
+ : text_(text_)
+{}
+
+const std::int32_t getTextEntities::ID;
+
+void getTextEntities::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getTextEntities");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+getThemeParametersJsonString::getThemeParametersJsonString()
+ : theme_()
+{}
+
+getThemeParametersJsonString::getThemeParametersJsonString(object_ptr<themeParameters> &&theme_)
+ : theme_(std::move(theme_))
+{}
+
+const std::int32_t getThemeParametersJsonString::ID;
+
+void getThemeParametersJsonString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getThemeParametersJsonString");
+ s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get()));
+ s.store_class_end();
+ }
+}
+
+getThemedEmojiStatuses::getThemedEmojiStatuses() {
+}
+
+const std::int32_t getThemedEmojiStatuses::ID;
+
+void getThemedEmojiStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getThemedEmojiStatuses");
+ s.store_class_end();
+ }
+}
+
+getTopChats::getTopChats()
+ : category_()
+ , limit_()
+{}
+
+getTopChats::getTopChats(object_ptr<TopChatCategory> &&category_, int32 limit_)
+ : category_(std::move(category_))
+ , limit_(limit_)
+{}
+
+const std::int32_t getTopChats::ID;
+
+void getTopChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getTopChats");
+ s.store_object_field("category", static_cast<const BaseObject *>(category_.get()));
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getTrendingStickerSets::getTrendingStickerSets()
+ : sticker_type_()
+ , offset_()
+ , limit_()
+{}
+
+getTrendingStickerSets::getTrendingStickerSets(object_ptr<StickerType> &&sticker_type_, int32 offset_, int32 limit_)
+ : sticker_type_(std::move(sticker_type_))
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getTrendingStickerSets::ID;
+
+void getTrendingStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getTrendingStickerSets");
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getUser::getUser()
+ : user_id_()
+{}
+
+getUser::getUser(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t getUser::ID;
+
+void getUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getUser");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+getUserFullInfo::getUserFullInfo()
+ : user_id_()
+{}
+
+getUserFullInfo::getUserFullInfo(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t getUserFullInfo::ID;
+
+void getUserFullInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getUserFullInfo");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+getUserPrivacySettingRules::getUserPrivacySettingRules()
+ : setting_()
+{}
+
+getUserPrivacySettingRules::getUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_)
+ : setting_(std::move(setting_))
+{}
+
+const std::int32_t getUserPrivacySettingRules::ID;
+
+void getUserPrivacySettingRules::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getUserPrivacySettingRules");
+ s.store_object_field("setting", static_cast<const BaseObject *>(setting_.get()));
+ s.store_class_end();
+ }
+}
+
+getUserProfilePhotos::getUserProfilePhotos()
+ : user_id_()
+ , offset_()
+ , limit_()
+{}
+
+getUserProfilePhotos::getUserProfilePhotos(int53 user_id_, int32 offset_, int32 limit_)
+ : user_id_(user_id_)
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t getUserProfilePhotos::ID;
+
+void getUserProfilePhotos::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getUserProfilePhotos");
+ s.store_field("user_id", user_id_);
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+getUserSupportInfo::getUserSupportInfo()
+ : user_id_()
+{}
+
+getUserSupportInfo::getUserSupportInfo(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t getUserSupportInfo::ID;
+
+void getUserSupportInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getUserSupportInfo");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+getVideoChatAvailableParticipants::getVideoChatAvailableParticipants()
+ : chat_id_()
+{}
+
+getVideoChatAvailableParticipants::getVideoChatAvailableParticipants(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getVideoChatAvailableParticipants::ID;
+
+void getVideoChatAvailableParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getVideoChatAvailableParticipants");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getVideoChatRtmpUrl::getVideoChatRtmpUrl()
+ : chat_id_()
+{}
+
+getVideoChatRtmpUrl::getVideoChatRtmpUrl(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t getVideoChatRtmpUrl::ID;
+
+void getVideoChatRtmpUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getVideoChatRtmpUrl");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+getWebAppUrl::getWebAppUrl()
+ : bot_user_id_()
+ , url_()
+ , theme_()
+ , application_name_()
+{}
+
+getWebAppUrl::getWebAppUrl(int53 bot_user_id_, string const &url_, object_ptr<themeParameters> &&theme_, string const &application_name_)
+ : bot_user_id_(bot_user_id_)
+ , url_(url_)
+ , theme_(std::move(theme_))
+ , application_name_(application_name_)
+{}
+
+const std::int32_t getWebAppUrl::ID;
+
+void getWebAppUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getWebAppUrl");
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("url", url_);
+ s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get()));
+ s.store_field("application_name", application_name_);
+ s.store_class_end();
+ }
+}
+
+getWebPageInstantView::getWebPageInstantView()
+ : url_()
+ , force_full_()
+{}
+
+getWebPageInstantView::getWebPageInstantView(string const &url_, bool force_full_)
+ : url_(url_)
+ , force_full_(force_full_)
+{}
+
+const std::int32_t getWebPageInstantView::ID;
+
+void getWebPageInstantView::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getWebPageInstantView");
+ s.store_field("url", url_);
+ s.store_field("force_full", force_full_);
+ s.store_class_end();
+ }
+}
+
+getWebPagePreview::getWebPagePreview()
+ : text_()
+{}
+
+getWebPagePreview::getWebPagePreview(object_ptr<formattedText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t getWebPagePreview::ID;
+
+void getWebPagePreview::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "getWebPagePreview");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+hideSuggestedAction::hideSuggestedAction()
+ : action_()
+{}
+
+hideSuggestedAction::hideSuggestedAction(object_ptr<SuggestedAction> &&action_)
+ : action_(std::move(action_))
+{}
+
+const std::int32_t hideSuggestedAction::ID;
+
+void hideSuggestedAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "hideSuggestedAction");
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+importContacts::importContacts()
+ : contacts_()
+{}
+
+importContacts::importContacts(array<object_ptr<contact>> &&contacts_)
+ : contacts_(std::move(contacts_))
+{}
+
+const std::int32_t importContacts::ID;
+
+void importContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "importContacts");
+ { s.store_vector_begin("contacts", contacts_.size()); for (const auto &_value : contacts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+importMessages::importMessages()
+ : chat_id_()
+ , message_file_()
+ , attached_files_()
+{}
+
+importMessages::importMessages(int53 chat_id_, object_ptr<InputFile> &&message_file_, array<object_ptr<InputFile>> &&attached_files_)
+ : chat_id_(chat_id_)
+ , message_file_(std::move(message_file_))
+ , attached_files_(std::move(attached_files_))
+{}
+
+const std::int32_t importMessages::ID;
+
+void importMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "importMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("message_file", static_cast<const BaseObject *>(message_file_.get()));
+ { s.store_vector_begin("attached_files", attached_files_.size()); for (const auto &_value : attached_files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+inviteGroupCallParticipants::inviteGroupCallParticipants()
+ : group_call_id_()
+ , user_ids_()
+{}
+
+inviteGroupCallParticipants::inviteGroupCallParticipants(int32 group_call_id_, array<int53> &&user_ids_)
+ : group_call_id_(group_call_id_)
+ , user_ids_(std::move(user_ids_))
+{}
+
+const std::int32_t inviteGroupCallParticipants::ID;
+
+void inviteGroupCallParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inviteGroupCallParticipants");
+ s.store_field("group_call_id", group_call_id_);
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+joinChat::joinChat()
+ : chat_id_()
+{}
+
+joinChat::joinChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t joinChat::ID;
+
+void joinChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "joinChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+joinChatByInviteLink::joinChatByInviteLink()
+ : invite_link_()
+{}
+
+joinChatByInviteLink::joinChatByInviteLink(string const &invite_link_)
+ : invite_link_(invite_link_)
+{}
+
+const std::int32_t joinChatByInviteLink::ID;
+
+void joinChatByInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "joinChatByInviteLink");
+ s.store_field("invite_link", invite_link_);
+ s.store_class_end();
+ }
+}
+
+joinGroupCall::joinGroupCall()
+ : group_call_id_()
+ , participant_id_()
+ , audio_source_id_()
+ , payload_()
+ , is_muted_()
+ , is_my_video_enabled_()
+ , invite_hash_()
+{}
+
+joinGroupCall::joinGroupCall(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, int32 audio_source_id_, string const &payload_, bool is_muted_, bool is_my_video_enabled_, string const &invite_hash_)
+ : group_call_id_(group_call_id_)
+ , participant_id_(std::move(participant_id_))
+ , audio_source_id_(audio_source_id_)
+ , payload_(payload_)
+ , is_muted_(is_muted_)
+ , is_my_video_enabled_(is_my_video_enabled_)
+ , invite_hash_(invite_hash_)
+{}
+
+const std::int32_t joinGroupCall::ID;
+
+void joinGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "joinGroupCall");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get()));
+ s.store_field("audio_source_id", audio_source_id_);
+ s.store_field("payload", payload_);
+ s.store_field("is_muted", is_muted_);
+ s.store_field("is_my_video_enabled", is_my_video_enabled_);
+ s.store_field("invite_hash", invite_hash_);
+ s.store_class_end();
+ }
+}
+
+leaveChat::leaveChat()
+ : chat_id_()
+{}
+
+leaveChat::leaveChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t leaveChat::ID;
+
+void leaveChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "leaveChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+leaveGroupCall::leaveGroupCall()
+ : group_call_id_()
+{}
+
+leaveGroupCall::leaveGroupCall(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t leaveGroupCall::ID;
+
+void leaveGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "leaveGroupCall");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+loadChats::loadChats()
+ : chat_list_()
+ , limit_()
+{}
+
+loadChats::loadChats(object_ptr<ChatList> &&chat_list_, int32 limit_)
+ : chat_list_(std::move(chat_list_))
+ , limit_(limit_)
+{}
+
+const std::int32_t loadChats::ID;
+
+void loadChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "loadChats");
+ s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get()));
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+loadGroupCallParticipants::loadGroupCallParticipants()
+ : group_call_id_()
+ , limit_()
+{}
+
+loadGroupCallParticipants::loadGroupCallParticipants(int32 group_call_id_, int32 limit_)
+ : group_call_id_(group_call_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t loadGroupCallParticipants::ID;
+
+void loadGroupCallParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "loadGroupCallParticipants");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+logOut::logOut() {
+}
+
+const std::int32_t logOut::ID;
+
+void logOut::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "logOut");
+ s.store_class_end();
+ }
+}
+
+openChat::openChat()
+ : chat_id_()
+{}
+
+openChat::openChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t openChat::ID;
+
+void openChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "openChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+openMessageContent::openMessageContent()
+ : chat_id_()
+ , message_id_()
+{}
+
+openMessageContent::openMessageContent(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t openMessageContent::ID;
+
+void openMessageContent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "openMessageContent");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+openWebApp::openWebApp()
+ : chat_id_()
+ , bot_user_id_()
+ , url_()
+ , theme_()
+ , application_name_()
+ , message_thread_id_()
+ , reply_to_message_id_()
+{}
+
+openWebApp::openWebApp(int53 chat_id_, int53 bot_user_id_, string const &url_, object_ptr<themeParameters> &&theme_, string const &application_name_, int53 message_thread_id_, int53 reply_to_message_id_)
+ : chat_id_(chat_id_)
+ , bot_user_id_(bot_user_id_)
+ , url_(url_)
+ , theme_(std::move(theme_))
+ , application_name_(application_name_)
+ , message_thread_id_(message_thread_id_)
+ , reply_to_message_id_(reply_to_message_id_)
+{}
+
+const std::int32_t openWebApp::ID;
+
+void openWebApp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "openWebApp");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("url", url_);
+ s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get()));
+ s.store_field("application_name", application_name_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_field("reply_to_message_id", reply_to_message_id_);
+ s.store_class_end();
+ }
+}
+
+optimizeStorage::optimizeStorage()
+ : size_()
+ , ttl_()
+ , count_()
+ , immunity_delay_()
+ , file_types_()
+ , chat_ids_()
+ , exclude_chat_ids_()
+ , return_deleted_file_statistics_()
+ , chat_limit_()
+{}
+
+optimizeStorage::optimizeStorage(int53 size_, int32 ttl_, int32 count_, int32 immunity_delay_, array<object_ptr<FileType>> &&file_types_, array<int53> &&chat_ids_, array<int53> &&exclude_chat_ids_, bool return_deleted_file_statistics_, int32 chat_limit_)
+ : size_(size_)
+ , ttl_(ttl_)
+ , count_(count_)
+ , immunity_delay_(immunity_delay_)
+ , file_types_(std::move(file_types_))
+ , chat_ids_(std::move(chat_ids_))
+ , exclude_chat_ids_(std::move(exclude_chat_ids_))
+ , return_deleted_file_statistics_(return_deleted_file_statistics_)
+ , chat_limit_(chat_limit_)
+{}
+
+const std::int32_t optimizeStorage::ID;
+
+void optimizeStorage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "optimizeStorage");
+ s.store_field("size", size_);
+ s.store_field("ttl", ttl_);
+ s.store_field("count", count_);
+ s.store_field("immunity_delay", immunity_delay_);
+ { s.store_vector_begin("file_types", file_types_.size()); for (const auto &_value : file_types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chat_ids", chat_ids_.size()); for (const auto &_value : chat_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("exclude_chat_ids", exclude_chat_ids_.size()); for (const auto &_value : exclude_chat_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("return_deleted_file_statistics", return_deleted_file_statistics_);
+ s.store_field("chat_limit", chat_limit_);
+ s.store_class_end();
+ }
+}
+
+parseMarkdown::parseMarkdown()
+ : text_()
+{}
+
+parseMarkdown::parseMarkdown(object_ptr<formattedText> &&text_)
+ : text_(std::move(text_))
+{}
+
+const std::int32_t parseMarkdown::ID;
+
+void parseMarkdown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "parseMarkdown");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+parseTextEntities::parseTextEntities()
+ : text_()
+ , parse_mode_()
+{}
+
+parseTextEntities::parseTextEntities(string const &text_, object_ptr<TextParseMode> &&parse_mode_)
+ : text_(text_)
+ , parse_mode_(std::move(parse_mode_))
+{}
+
+const std::int32_t parseTextEntities::ID;
+
+void parseTextEntities::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "parseTextEntities");
+ s.store_field("text", text_);
+ s.store_object_field("parse_mode", static_cast<const BaseObject *>(parse_mode_.get()));
+ s.store_class_end();
+ }
+}
+
+pinChatMessage::pinChatMessage()
+ : chat_id_()
+ , message_id_()
+ , disable_notification_()
+ , only_for_self_()
+{}
+
+pinChatMessage::pinChatMessage(int53 chat_id_, int53 message_id_, bool disable_notification_, bool only_for_self_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , disable_notification_(disable_notification_)
+ , only_for_self_(only_for_self_)
+{}
+
+const std::int32_t pinChatMessage::ID;
+
+void pinChatMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pinChatMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("disable_notification", disable_notification_);
+ s.store_field("only_for_self", only_for_self_);
+ s.store_class_end();
+ }
+}
+
+pingProxy::pingProxy()
+ : proxy_id_()
+{}
+
+pingProxy::pingProxy(int32 proxy_id_)
+ : proxy_id_(proxy_id_)
+{}
+
+const std::int32_t pingProxy::ID;
+
+void pingProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pingProxy");
+ s.store_field("proxy_id", proxy_id_);
+ s.store_class_end();
+ }
+}
+
+preliminaryUploadFile::preliminaryUploadFile()
+ : file_()
+ , file_type_()
+ , priority_()
+{}
+
+preliminaryUploadFile::preliminaryUploadFile(object_ptr<InputFile> &&file_, object_ptr<FileType> &&file_type_, int32 priority_)
+ : file_(std::move(file_))
+ , file_type_(std::move(file_type_))
+ , priority_(priority_)
+{}
+
+const std::int32_t preliminaryUploadFile::ID;
+
+void preliminaryUploadFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "preliminaryUploadFile");
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_object_field("file_type", static_cast<const BaseObject *>(file_type_.get()));
+ s.store_field("priority", priority_);
+ s.store_class_end();
+ }
+}
+
+processChatJoinRequest::processChatJoinRequest()
+ : chat_id_()
+ , user_id_()
+ , approve_()
+{}
+
+processChatJoinRequest::processChatJoinRequest(int53 chat_id_, int53 user_id_, bool approve_)
+ : chat_id_(chat_id_)
+ , user_id_(user_id_)
+ , approve_(approve_)
+{}
+
+const std::int32_t processChatJoinRequest::ID;
+
+void processChatJoinRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "processChatJoinRequest");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("user_id", user_id_);
+ s.store_field("approve", approve_);
+ s.store_class_end();
+ }
+}
+
+processChatJoinRequests::processChatJoinRequests()
+ : chat_id_()
+ , invite_link_()
+ , approve_()
+{}
+
+processChatJoinRequests::processChatJoinRequests(int53 chat_id_, string const &invite_link_, bool approve_)
+ : chat_id_(chat_id_)
+ , invite_link_(invite_link_)
+ , approve_(approve_)
+{}
+
+const std::int32_t processChatJoinRequests::ID;
+
+void processChatJoinRequests::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "processChatJoinRequests");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("invite_link", invite_link_);
+ s.store_field("approve", approve_);
+ s.store_class_end();
+ }
+}
+
+processPushNotification::processPushNotification()
+ : payload_()
+{}
+
+processPushNotification::processPushNotification(string const &payload_)
+ : payload_(payload_)
+{}
+
+const std::int32_t processPushNotification::ID;
+
+void processPushNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "processPushNotification");
+ s.store_field("payload", payload_);
+ s.store_class_end();
+ }
+}
+
+rateSpeechRecognition::rateSpeechRecognition()
+ : chat_id_()
+ , message_id_()
+ , is_good_()
+{}
+
+rateSpeechRecognition::rateSpeechRecognition(int53 chat_id_, int53 message_id_, bool is_good_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , is_good_(is_good_)
+{}
+
+const std::int32_t rateSpeechRecognition::ID;
+
+void rateSpeechRecognition::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "rateSpeechRecognition");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("is_good", is_good_);
+ s.store_class_end();
+ }
+}
+
+readAllChatMentions::readAllChatMentions()
+ : chat_id_()
+{}
+
+readAllChatMentions::readAllChatMentions(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t readAllChatMentions::ID;
+
+void readAllChatMentions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "readAllChatMentions");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+readAllChatReactions::readAllChatReactions()
+ : chat_id_()
+{}
+
+readAllChatReactions::readAllChatReactions(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t readAllChatReactions::ID;
+
+void readAllChatReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "readAllChatReactions");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+readAllMessageThreadMentions::readAllMessageThreadMentions()
+ : chat_id_()
+ , message_thread_id_()
+{}
+
+readAllMessageThreadMentions::readAllMessageThreadMentions(int53 chat_id_, int53 message_thread_id_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+{}
+
+const std::int32_t readAllMessageThreadMentions::ID;
+
+void readAllMessageThreadMentions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "readAllMessageThreadMentions");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_class_end();
+ }
+}
+
+readAllMessageThreadReactions::readAllMessageThreadReactions()
+ : chat_id_()
+ , message_thread_id_()
+{}
+
+readAllMessageThreadReactions::readAllMessageThreadReactions(int53 chat_id_, int53 message_thread_id_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+{}
+
+const std::int32_t readAllMessageThreadReactions::ID;
+
+void readAllMessageThreadReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "readAllMessageThreadReactions");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_class_end();
+ }
+}
+
+readFilePart::readFilePart()
+ : file_id_()
+ , offset_()
+ , count_()
+{}
+
+readFilePart::readFilePart(int32 file_id_, int53 offset_, int53 count_)
+ : file_id_(file_id_)
+ , offset_(offset_)
+ , count_(count_)
+{}
+
+const std::int32_t readFilePart::ID;
+
+void readFilePart::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "readFilePart");
+ s.store_field("file_id", file_id_);
+ s.store_field("offset", offset_);
+ s.store_field("count", count_);
+ s.store_class_end();
+ }
+}
+
+recognizeSpeech::recognizeSpeech()
+ : chat_id_()
+ , message_id_()
+{}
+
+recognizeSpeech::recognizeSpeech(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t recognizeSpeech::ID;
+
+void recognizeSpeech::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recognizeSpeech");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+recoverAuthenticationPassword::recoverAuthenticationPassword()
+ : recovery_code_()
+ , new_password_()
+ , new_hint_()
+{}
+
+recoverAuthenticationPassword::recoverAuthenticationPassword(string const &recovery_code_, string const &new_password_, string const &new_hint_)
+ : recovery_code_(recovery_code_)
+ , new_password_(new_password_)
+ , new_hint_(new_hint_)
+{}
+
+const std::int32_t recoverAuthenticationPassword::ID;
+
+void recoverAuthenticationPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recoverAuthenticationPassword");
+ s.store_field("recovery_code", recovery_code_);
+ s.store_field("new_password", new_password_);
+ s.store_field("new_hint", new_hint_);
+ s.store_class_end();
+ }
+}
+
+recoverPassword::recoverPassword()
+ : recovery_code_()
+ , new_password_()
+ , new_hint_()
+{}
+
+recoverPassword::recoverPassword(string const &recovery_code_, string const &new_password_, string const &new_hint_)
+ : recovery_code_(recovery_code_)
+ , new_password_(new_password_)
+ , new_hint_(new_hint_)
+{}
+
+const std::int32_t recoverPassword::ID;
+
+void recoverPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recoverPassword");
+ s.store_field("recovery_code", recovery_code_);
+ s.store_field("new_password", new_password_);
+ s.store_field("new_hint", new_hint_);
+ s.store_class_end();
+ }
+}
+
+registerDevice::registerDevice()
+ : device_token_()
+ , other_user_ids_()
+{}
+
+registerDevice::registerDevice(object_ptr<DeviceToken> &&device_token_, array<int53> &&other_user_ids_)
+ : device_token_(std::move(device_token_))
+ , other_user_ids_(std::move(other_user_ids_))
+{}
+
+const std::int32_t registerDevice::ID;
+
+void registerDevice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "registerDevice");
+ s.store_object_field("device_token", static_cast<const BaseObject *>(device_token_.get()));
+ { s.store_vector_begin("other_user_ids", other_user_ids_.size()); for (const auto &_value : other_user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+registerUser::registerUser()
+ : first_name_()
+ , last_name_()
+{}
+
+registerUser::registerUser(string const &first_name_, string const &last_name_)
+ : first_name_(first_name_)
+ , last_name_(last_name_)
+{}
+
+const std::int32_t registerUser::ID;
+
+void registerUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "registerUser");
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_class_end();
+ }
+}
+
+removeAllFilesFromDownloads::removeAllFilesFromDownloads()
+ : only_active_()
+ , only_completed_()
+ , delete_from_cache_()
+{}
+
+removeAllFilesFromDownloads::removeAllFilesFromDownloads(bool only_active_, bool only_completed_, bool delete_from_cache_)
+ : only_active_(only_active_)
+ , only_completed_(only_completed_)
+ , delete_from_cache_(delete_from_cache_)
+{}
+
+const std::int32_t removeAllFilesFromDownloads::ID;
+
+void removeAllFilesFromDownloads::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeAllFilesFromDownloads");
+ s.store_field("only_active", only_active_);
+ s.store_field("only_completed", only_completed_);
+ s.store_field("delete_from_cache", delete_from_cache_);
+ s.store_class_end();
+ }
+}
+
+removeBackground::removeBackground()
+ : background_id_()
+{}
+
+removeBackground::removeBackground(int64 background_id_)
+ : background_id_(background_id_)
+{}
+
+const std::int32_t removeBackground::ID;
+
+void removeBackground::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeBackground");
+ s.store_field("background_id", background_id_);
+ s.store_class_end();
+ }
+}
+
+removeChatActionBar::removeChatActionBar()
+ : chat_id_()
+{}
+
+removeChatActionBar::removeChatActionBar(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t removeChatActionBar::ID;
+
+void removeChatActionBar::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeChatActionBar");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+removeContacts::removeContacts()
+ : user_ids_()
+{}
+
+removeContacts::removeContacts(array<int53> &&user_ids_)
+ : user_ids_(std::move(user_ids_))
+{}
+
+const std::int32_t removeContacts::ID;
+
+void removeContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeContacts");
+ { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+removeFavoriteSticker::removeFavoriteSticker()
+ : sticker_()
+{}
+
+removeFavoriteSticker::removeFavoriteSticker(object_ptr<InputFile> &&sticker_)
+ : sticker_(std::move(sticker_))
+{}
+
+const std::int32_t removeFavoriteSticker::ID;
+
+void removeFavoriteSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeFavoriteSticker");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+removeFileFromDownloads::removeFileFromDownloads()
+ : file_id_()
+ , delete_from_cache_()
+{}
+
+removeFileFromDownloads::removeFileFromDownloads(int32 file_id_, bool delete_from_cache_)
+ : file_id_(file_id_)
+ , delete_from_cache_(delete_from_cache_)
+{}
+
+const std::int32_t removeFileFromDownloads::ID;
+
+void removeFileFromDownloads::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeFileFromDownloads");
+ s.store_field("file_id", file_id_);
+ s.store_field("delete_from_cache", delete_from_cache_);
+ s.store_class_end();
+ }
+}
+
+removeMessageReaction::removeMessageReaction()
+ : chat_id_()
+ , message_id_()
+ , reaction_type_()
+{}
+
+removeMessageReaction::removeMessageReaction(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , reaction_type_(std::move(reaction_type_))
+{}
+
+const std::int32_t removeMessageReaction::ID;
+
+void removeMessageReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeMessageReaction");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("reaction_type", static_cast<const BaseObject *>(reaction_type_.get()));
+ s.store_class_end();
+ }
+}
+
+removeNotification::removeNotification()
+ : notification_group_id_()
+ , notification_id_()
+{}
+
+removeNotification::removeNotification(int32 notification_group_id_, int32 notification_id_)
+ : notification_group_id_(notification_group_id_)
+ , notification_id_(notification_id_)
+{}
+
+const std::int32_t removeNotification::ID;
+
+void removeNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeNotification");
+ s.store_field("notification_group_id", notification_group_id_);
+ s.store_field("notification_id", notification_id_);
+ s.store_class_end();
+ }
+}
+
+removeNotificationGroup::removeNotificationGroup()
+ : notification_group_id_()
+ , max_notification_id_()
+{}
+
+removeNotificationGroup::removeNotificationGroup(int32 notification_group_id_, int32 max_notification_id_)
+ : notification_group_id_(notification_group_id_)
+ , max_notification_id_(max_notification_id_)
+{}
+
+const std::int32_t removeNotificationGroup::ID;
+
+void removeNotificationGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeNotificationGroup");
+ s.store_field("notification_group_id", notification_group_id_);
+ s.store_field("max_notification_id", max_notification_id_);
+ s.store_class_end();
+ }
+}
+
+removeProxy::removeProxy()
+ : proxy_id_()
+{}
+
+removeProxy::removeProxy(int32 proxy_id_)
+ : proxy_id_(proxy_id_)
+{}
+
+const std::int32_t removeProxy::ID;
+
+void removeProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeProxy");
+ s.store_field("proxy_id", proxy_id_);
+ s.store_class_end();
+ }
+}
+
+removeRecentHashtag::removeRecentHashtag()
+ : hashtag_()
+{}
+
+removeRecentHashtag::removeRecentHashtag(string const &hashtag_)
+ : hashtag_(hashtag_)
+{}
+
+const std::int32_t removeRecentHashtag::ID;
+
+void removeRecentHashtag::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeRecentHashtag");
+ s.store_field("hashtag", hashtag_);
+ s.store_class_end();
+ }
+}
+
+removeRecentSticker::removeRecentSticker()
+ : is_attached_()
+ , sticker_()
+{}
+
+removeRecentSticker::removeRecentSticker(bool is_attached_, object_ptr<InputFile> &&sticker_)
+ : is_attached_(is_attached_)
+ , sticker_(std::move(sticker_))
+{}
+
+const std::int32_t removeRecentSticker::ID;
+
+void removeRecentSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeRecentSticker");
+ s.store_field("is_attached", is_attached_);
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+removeRecentlyFoundChat::removeRecentlyFoundChat()
+ : chat_id_()
+{}
+
+removeRecentlyFoundChat::removeRecentlyFoundChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t removeRecentlyFoundChat::ID;
+
+void removeRecentlyFoundChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeRecentlyFoundChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+removeSavedAnimation::removeSavedAnimation()
+ : animation_()
+{}
+
+removeSavedAnimation::removeSavedAnimation(object_ptr<InputFile> &&animation_)
+ : animation_(std::move(animation_))
+{}
+
+const std::int32_t removeSavedAnimation::ID;
+
+void removeSavedAnimation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeSavedAnimation");
+ s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get()));
+ s.store_class_end();
+ }
+}
+
+removeSavedNotificationSound::removeSavedNotificationSound()
+ : notification_sound_id_()
+{}
+
+removeSavedNotificationSound::removeSavedNotificationSound(int64 notification_sound_id_)
+ : notification_sound_id_(notification_sound_id_)
+{}
+
+const std::int32_t removeSavedNotificationSound::ID;
+
+void removeSavedNotificationSound::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeSavedNotificationSound");
+ s.store_field("notification_sound_id", notification_sound_id_);
+ s.store_class_end();
+ }
+}
+
+removeStickerFromSet::removeStickerFromSet()
+ : sticker_()
+{}
+
+removeStickerFromSet::removeStickerFromSet(object_ptr<InputFile> &&sticker_)
+ : sticker_(std::move(sticker_))
+{}
+
+const std::int32_t removeStickerFromSet::ID;
+
+void removeStickerFromSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeStickerFromSet");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+removeTopChat::removeTopChat()
+ : category_()
+ , chat_id_()
+{}
+
+removeTopChat::removeTopChat(object_ptr<TopChatCategory> &&category_, int53 chat_id_)
+ : category_(std::move(category_))
+ , chat_id_(chat_id_)
+{}
+
+const std::int32_t removeTopChat::ID;
+
+void removeTopChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "removeTopChat");
+ s.store_object_field("category", static_cast<const BaseObject *>(category_.get()));
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+reorderActiveUsernames::reorderActiveUsernames()
+ : usernames_()
+{}
+
+reorderActiveUsernames::reorderActiveUsernames(array<string> &&usernames_)
+ : usernames_(std::move(usernames_))
+{}
+
+const std::int32_t reorderActiveUsernames::ID;
+
+void reorderActiveUsernames::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reorderActiveUsernames");
+ { s.store_vector_begin("usernames", usernames_.size()); for (const auto &_value : usernames_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+reorderChatFilters::reorderChatFilters()
+ : chat_filter_ids_()
+ , main_chat_list_position_()
+{}
+
+reorderChatFilters::reorderChatFilters(array<int32> &&chat_filter_ids_, int32 main_chat_list_position_)
+ : chat_filter_ids_(std::move(chat_filter_ids_))
+ , main_chat_list_position_(main_chat_list_position_)
+{}
+
+const std::int32_t reorderChatFilters::ID;
+
+void reorderChatFilters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reorderChatFilters");
+ { s.store_vector_begin("chat_filter_ids", chat_filter_ids_.size()); for (const auto &_value : chat_filter_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("main_chat_list_position", main_chat_list_position_);
+ s.store_class_end();
+ }
+}
+
+reorderInstalledStickerSets::reorderInstalledStickerSets()
+ : sticker_type_()
+ , sticker_set_ids_()
+{}
+
+reorderInstalledStickerSets::reorderInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, array<int64> &&sticker_set_ids_)
+ : sticker_type_(std::move(sticker_type_))
+ , sticker_set_ids_(std::move(sticker_set_ids_))
+{}
+
+const std::int32_t reorderInstalledStickerSets::ID;
+
+void reorderInstalledStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reorderInstalledStickerSets");
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ { s.store_vector_begin("sticker_set_ids", sticker_set_ids_.size()); for (const auto &_value : sticker_set_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+reorderSupergroupActiveUsernames::reorderSupergroupActiveUsernames()
+ : supergroup_id_()
+ , usernames_()
+{}
+
+reorderSupergroupActiveUsernames::reorderSupergroupActiveUsernames(int53 supergroup_id_, array<string> &&usernames_)
+ : supergroup_id_(supergroup_id_)
+ , usernames_(std::move(usernames_))
+{}
+
+const std::int32_t reorderSupergroupActiveUsernames::ID;
+
+void reorderSupergroupActiveUsernames::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reorderSupergroupActiveUsernames");
+ s.store_field("supergroup_id", supergroup_id_);
+ { s.store_vector_begin("usernames", usernames_.size()); for (const auto &_value : usernames_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+replacePrimaryChatInviteLink::replacePrimaryChatInviteLink()
+ : chat_id_()
+{}
+
+replacePrimaryChatInviteLink::replacePrimaryChatInviteLink(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t replacePrimaryChatInviteLink::ID;
+
+void replacePrimaryChatInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "replacePrimaryChatInviteLink");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+replaceVideoChatRtmpUrl::replaceVideoChatRtmpUrl()
+ : chat_id_()
+{}
+
+replaceVideoChatRtmpUrl::replaceVideoChatRtmpUrl(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t replaceVideoChatRtmpUrl::ID;
+
+void replaceVideoChatRtmpUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "replaceVideoChatRtmpUrl");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+reportChat::reportChat()
+ : chat_id_()
+ , message_ids_()
+ , reason_()
+ , text_()
+{}
+
+reportChat::reportChat(int53 chat_id_, array<int53> &&message_ids_, object_ptr<ChatReportReason> &&reason_, string const &text_)
+ : chat_id_(chat_id_)
+ , message_ids_(std::move(message_ids_))
+ , reason_(std::move(reason_))
+ , text_(text_)
+{}
+
+const std::int32_t reportChat::ID;
+
+void reportChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reportChat");
+ s.store_field("chat_id", chat_id_);
+ { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get()));
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+reportChatPhoto::reportChatPhoto()
+ : chat_id_()
+ , file_id_()
+ , reason_()
+ , text_()
+{}
+
+reportChatPhoto::reportChatPhoto(int53 chat_id_, int32 file_id_, object_ptr<ChatReportReason> &&reason_, string const &text_)
+ : chat_id_(chat_id_)
+ , file_id_(file_id_)
+ , reason_(std::move(reason_))
+ , text_(text_)
+{}
+
+const std::int32_t reportChatPhoto::ID;
+
+void reportChatPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reportChatPhoto");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("file_id", file_id_);
+ s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get()));
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+reportMessageReactions::reportMessageReactions()
+ : chat_id_()
+ , message_id_()
+ , sender_id_()
+{}
+
+reportMessageReactions::reportMessageReactions(int53 chat_id_, int53 message_id_, object_ptr<MessageSender> &&sender_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , sender_id_(std::move(sender_id_))
+{}
+
+const std::int32_t reportMessageReactions::ID;
+
+void reportMessageReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reportMessageReactions");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get()));
+ s.store_class_end();
+ }
+}
+
+reportSupergroupSpam::reportSupergroupSpam()
+ : supergroup_id_()
+ , message_ids_()
+{}
+
+reportSupergroupSpam::reportSupergroupSpam(int53 supergroup_id_, array<int53> &&message_ids_)
+ : supergroup_id_(supergroup_id_)
+ , message_ids_(std::move(message_ids_))
+{}
+
+const std::int32_t reportSupergroupSpam::ID;
+
+void reportSupergroupSpam::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reportSupergroupSpam");
+ s.store_field("supergroup_id", supergroup_id_);
+ { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+requestAuthenticationPasswordRecovery::requestAuthenticationPasswordRecovery() {
+}
+
+const std::int32_t requestAuthenticationPasswordRecovery::ID;
+
+void requestAuthenticationPasswordRecovery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "requestAuthenticationPasswordRecovery");
+ s.store_class_end();
+ }
+}
+
+requestPasswordRecovery::requestPasswordRecovery() {
+}
+
+const std::int32_t requestPasswordRecovery::ID;
+
+void requestPasswordRecovery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "requestPasswordRecovery");
+ s.store_class_end();
+ }
+}
+
+requestQrCodeAuthentication::requestQrCodeAuthentication()
+ : other_user_ids_()
+{}
+
+requestQrCodeAuthentication::requestQrCodeAuthentication(array<int53> &&other_user_ids_)
+ : other_user_ids_(std::move(other_user_ids_))
+{}
+
+const std::int32_t requestQrCodeAuthentication::ID;
+
+void requestQrCodeAuthentication::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "requestQrCodeAuthentication");
+ { s.store_vector_begin("other_user_ids", other_user_ids_.size()); for (const auto &_value : other_user_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+resendAuthenticationCode::resendAuthenticationCode() {
+}
+
+const std::int32_t resendAuthenticationCode::ID;
+
+void resendAuthenticationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resendAuthenticationCode");
+ s.store_class_end();
+ }
+}
+
+resendChangePhoneNumberCode::resendChangePhoneNumberCode() {
+}
+
+const std::int32_t resendChangePhoneNumberCode::ID;
+
+void resendChangePhoneNumberCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resendChangePhoneNumberCode");
+ s.store_class_end();
+ }
+}
+
+resendEmailAddressVerificationCode::resendEmailAddressVerificationCode() {
+}
+
+const std::int32_t resendEmailAddressVerificationCode::ID;
+
+void resendEmailAddressVerificationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resendEmailAddressVerificationCode");
+ s.store_class_end();
+ }
+}
+
+resendLoginEmailAddressCode::resendLoginEmailAddressCode() {
+}
+
+const std::int32_t resendLoginEmailAddressCode::ID;
+
+void resendLoginEmailAddressCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resendLoginEmailAddressCode");
+ s.store_class_end();
+ }
+}
+
+resendMessages::resendMessages()
+ : chat_id_()
+ , message_ids_()
+{}
+
+resendMessages::resendMessages(int53 chat_id_, array<int53> &&message_ids_)
+ : chat_id_(chat_id_)
+ , message_ids_(std::move(message_ids_))
+{}
+
+const std::int32_t resendMessages::ID;
+
+void resendMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resendMessages");
+ s.store_field("chat_id", chat_id_);
+ { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+resendPhoneNumberConfirmationCode::resendPhoneNumberConfirmationCode() {
+}
+
+const std::int32_t resendPhoneNumberConfirmationCode::ID;
+
+void resendPhoneNumberConfirmationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resendPhoneNumberConfirmationCode");
+ s.store_class_end();
+ }
+}
+
+resendPhoneNumberVerificationCode::resendPhoneNumberVerificationCode() {
+}
+
+const std::int32_t resendPhoneNumberVerificationCode::ID;
+
+void resendPhoneNumberVerificationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resendPhoneNumberVerificationCode");
+ s.store_class_end();
+ }
+}
+
+resendRecoveryEmailAddressCode::resendRecoveryEmailAddressCode() {
+}
+
+const std::int32_t resendRecoveryEmailAddressCode::ID;
+
+void resendRecoveryEmailAddressCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resendRecoveryEmailAddressCode");
+ s.store_class_end();
+ }
+}
+
+resetAllNotificationSettings::resetAllNotificationSettings() {
+}
+
+const std::int32_t resetAllNotificationSettings::ID;
+
+void resetAllNotificationSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resetAllNotificationSettings");
+ s.store_class_end();
+ }
+}
+
+resetBackgrounds::resetBackgrounds() {
+}
+
+const std::int32_t resetBackgrounds::ID;
+
+void resetBackgrounds::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resetBackgrounds");
+ s.store_class_end();
+ }
+}
+
+resetNetworkStatistics::resetNetworkStatistics() {
+}
+
+const std::int32_t resetNetworkStatistics::ID;
+
+void resetNetworkStatistics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resetNetworkStatistics");
+ s.store_class_end();
+ }
+}
+
+resetPassword::resetPassword() {
+}
+
+const std::int32_t resetPassword::ID;
+
+void resetPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "resetPassword");
+ s.store_class_end();
+ }
+}
+
+revokeChatInviteLink::revokeChatInviteLink()
+ : chat_id_()
+ , invite_link_()
+{}
+
+revokeChatInviteLink::revokeChatInviteLink(int53 chat_id_, string const &invite_link_)
+ : chat_id_(chat_id_)
+ , invite_link_(invite_link_)
+{}
+
+const std::int32_t revokeChatInviteLink::ID;
+
+void revokeChatInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "revokeChatInviteLink");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("invite_link", invite_link_);
+ s.store_class_end();
+ }
+}
+
+revokeGroupCallInviteLink::revokeGroupCallInviteLink()
+ : group_call_id_()
+{}
+
+revokeGroupCallInviteLink::revokeGroupCallInviteLink(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t revokeGroupCallInviteLink::ID;
+
+void revokeGroupCallInviteLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "revokeGroupCallInviteLink");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+saveApplicationLogEvent::saveApplicationLogEvent()
+ : type_()
+ , chat_id_()
+ , data_()
+{}
+
+saveApplicationLogEvent::saveApplicationLogEvent(string const &type_, int53 chat_id_, object_ptr<JsonValue> &&data_)
+ : type_(type_)
+ , chat_id_(chat_id_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t saveApplicationLogEvent::ID;
+
+void saveApplicationLogEvent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "saveApplicationLogEvent");
+ s.store_field("type", type_);
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("data", static_cast<const BaseObject *>(data_.get()));
+ s.store_class_end();
+ }
+}
+
+searchBackground::searchBackground()
+ : name_()
+{}
+
+searchBackground::searchBackground(string const &name_)
+ : name_(name_)
+{}
+
+const std::int32_t searchBackground::ID;
+
+void searchBackground::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchBackground");
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+searchCallMessages::searchCallMessages()
+ : from_message_id_()
+ , limit_()
+ , only_missed_()
+{}
+
+searchCallMessages::searchCallMessages(int53 from_message_id_, int32 limit_, bool only_missed_)
+ : from_message_id_(from_message_id_)
+ , limit_(limit_)
+ , only_missed_(only_missed_)
+{}
+
+const std::int32_t searchCallMessages::ID;
+
+void searchCallMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchCallMessages");
+ s.store_field("from_message_id", from_message_id_);
+ s.store_field("limit", limit_);
+ s.store_field("only_missed", only_missed_);
+ s.store_class_end();
+ }
+}
+
+searchChatMembers::searchChatMembers()
+ : chat_id_()
+ , query_()
+ , limit_()
+ , filter_()
+{}
+
+searchChatMembers::searchChatMembers(int53 chat_id_, string const &query_, int32 limit_, object_ptr<ChatMembersFilter> &&filter_)
+ : chat_id_(chat_id_)
+ , query_(query_)
+ , limit_(limit_)
+ , filter_(std::move(filter_))
+{}
+
+const std::int32_t searchChatMembers::ID;
+
+void searchChatMembers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchChatMembers");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("query", query_);
+ s.store_field("limit", limit_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_class_end();
+ }
+}
+
+searchChatMessages::searchChatMessages()
+ : chat_id_()
+ , query_()
+ , sender_id_()
+ , from_message_id_()
+ , offset_()
+ , limit_()
+ , filter_()
+ , message_thread_id_()
+{}
+
+searchChatMessages::searchChatMessages(int53 chat_id_, string const &query_, object_ptr<MessageSender> &&sender_id_, int53 from_message_id_, int32 offset_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_, int53 message_thread_id_)
+ : chat_id_(chat_id_)
+ , query_(query_)
+ , sender_id_(std::move(sender_id_))
+ , from_message_id_(from_message_id_)
+ , offset_(offset_)
+ , limit_(limit_)
+ , filter_(std::move(filter_))
+ , message_thread_id_(message_thread_id_)
+{}
+
+const std::int32_t searchChatMessages::ID;
+
+void searchChatMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchChatMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("query", query_);
+ s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get()));
+ s.store_field("from_message_id", from_message_id_);
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_class_end();
+ }
+}
+
+searchChatRecentLocationMessages::searchChatRecentLocationMessages()
+ : chat_id_()
+ , limit_()
+{}
+
+searchChatRecentLocationMessages::searchChatRecentLocationMessages(int53 chat_id_, int32 limit_)
+ : chat_id_(chat_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t searchChatRecentLocationMessages::ID;
+
+void searchChatRecentLocationMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchChatRecentLocationMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+searchChats::searchChats()
+ : query_()
+ , limit_()
+{}
+
+searchChats::searchChats(string const &query_, int32 limit_)
+ : query_(query_)
+ , limit_(limit_)
+{}
+
+const std::int32_t searchChats::ID;
+
+void searchChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchChats");
+ s.store_field("query", query_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+searchChatsNearby::searchChatsNearby()
+ : location_()
+{}
+
+searchChatsNearby::searchChatsNearby(object_ptr<location> &&location_)
+ : location_(std::move(location_))
+{}
+
+const std::int32_t searchChatsNearby::ID;
+
+void searchChatsNearby::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchChatsNearby");
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_class_end();
+ }
+}
+
+searchChatsOnServer::searchChatsOnServer()
+ : query_()
+ , limit_()
+{}
+
+searchChatsOnServer::searchChatsOnServer(string const &query_, int32 limit_)
+ : query_(query_)
+ , limit_(limit_)
+{}
+
+const std::int32_t searchChatsOnServer::ID;
+
+void searchChatsOnServer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchChatsOnServer");
+ s.store_field("query", query_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+searchContacts::searchContacts()
+ : query_()
+ , limit_()
+{}
+
+searchContacts::searchContacts(string const &query_, int32 limit_)
+ : query_(query_)
+ , limit_(limit_)
+{}
+
+const std::int32_t searchContacts::ID;
+
+void searchContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchContacts");
+ s.store_field("query", query_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+searchEmojis::searchEmojis()
+ : text_()
+ , exact_match_()
+ , input_language_codes_()
+{}
+
+searchEmojis::searchEmojis(string const &text_, bool exact_match_, array<string> &&input_language_codes_)
+ : text_(text_)
+ , exact_match_(exact_match_)
+ , input_language_codes_(std::move(input_language_codes_))
+{}
+
+const std::int32_t searchEmojis::ID;
+
+void searchEmojis::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchEmojis");
+ s.store_field("text", text_);
+ s.store_field("exact_match", exact_match_);
+ { s.store_vector_begin("input_language_codes", input_language_codes_.size()); for (const auto &_value : input_language_codes_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+searchFileDownloads::searchFileDownloads()
+ : query_()
+ , only_active_()
+ , only_completed_()
+ , offset_()
+ , limit_()
+{}
+
+searchFileDownloads::searchFileDownloads(string const &query_, bool only_active_, bool only_completed_, string const &offset_, int32 limit_)
+ : query_(query_)
+ , only_active_(only_active_)
+ , only_completed_(only_completed_)
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t searchFileDownloads::ID;
+
+void searchFileDownloads::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchFileDownloads");
+ s.store_field("query", query_);
+ s.store_field("only_active", only_active_);
+ s.store_field("only_completed", only_completed_);
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+searchHashtags::searchHashtags()
+ : prefix_()
+ , limit_()
+{}
+
+searchHashtags::searchHashtags(string const &prefix_, int32 limit_)
+ : prefix_(prefix_)
+ , limit_(limit_)
+{}
+
+const std::int32_t searchHashtags::ID;
+
+void searchHashtags::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchHashtags");
+ s.store_field("prefix", prefix_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+searchInstalledStickerSets::searchInstalledStickerSets()
+ : sticker_type_()
+ , query_()
+ , limit_()
+{}
+
+searchInstalledStickerSets::searchInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, string const &query_, int32 limit_)
+ : sticker_type_(std::move(sticker_type_))
+ , query_(query_)
+ , limit_(limit_)
+{}
+
+const std::int32_t searchInstalledStickerSets::ID;
+
+void searchInstalledStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchInstalledStickerSets");
+ s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get()));
+ s.store_field("query", query_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+searchMessages::searchMessages()
+ : chat_list_()
+ , query_()
+ , offset_date_()
+ , offset_chat_id_()
+ , offset_message_id_()
+ , limit_()
+ , filter_()
+ , min_date_()
+ , max_date_()
+{}
+
+searchMessages::searchMessages(object_ptr<ChatList> &&chat_list_, string const &query_, int32 offset_date_, int53 offset_chat_id_, int53 offset_message_id_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_, int32 min_date_, int32 max_date_)
+ : chat_list_(std::move(chat_list_))
+ , query_(query_)
+ , offset_date_(offset_date_)
+ , offset_chat_id_(offset_chat_id_)
+ , offset_message_id_(offset_message_id_)
+ , limit_(limit_)
+ , filter_(std::move(filter_))
+ , min_date_(min_date_)
+ , max_date_(max_date_)
+{}
+
+const std::int32_t searchMessages::ID;
+
+void searchMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchMessages");
+ s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get()));
+ s.store_field("query", query_);
+ s.store_field("offset_date", offset_date_);
+ s.store_field("offset_chat_id", offset_chat_id_);
+ s.store_field("offset_message_id", offset_message_id_);
+ s.store_field("limit", limit_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("min_date", min_date_);
+ s.store_field("max_date", max_date_);
+ s.store_class_end();
+ }
+}
+
+searchOutgoingDocumentMessages::searchOutgoingDocumentMessages()
+ : query_()
+ , limit_()
+{}
+
+searchOutgoingDocumentMessages::searchOutgoingDocumentMessages(string const &query_, int32 limit_)
+ : query_(query_)
+ , limit_(limit_)
+{}
+
+const std::int32_t searchOutgoingDocumentMessages::ID;
+
+void searchOutgoingDocumentMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchOutgoingDocumentMessages");
+ s.store_field("query", query_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+searchPublicChat::searchPublicChat()
+ : username_()
+{}
+
+searchPublicChat::searchPublicChat(string const &username_)
+ : username_(username_)
+{}
+
+const std::int32_t searchPublicChat::ID;
+
+void searchPublicChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchPublicChat");
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+searchPublicChats::searchPublicChats()
+ : query_()
+{}
+
+searchPublicChats::searchPublicChats(string const &query_)
+ : query_(query_)
+{}
+
+const std::int32_t searchPublicChats::ID;
+
+void searchPublicChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchPublicChats");
+ s.store_field("query", query_);
+ s.store_class_end();
+ }
+}
+
+searchSecretMessages::searchSecretMessages()
+ : chat_id_()
+ , query_()
+ , offset_()
+ , limit_()
+ , filter_()
+{}
+
+searchSecretMessages::searchSecretMessages(int53 chat_id_, string const &query_, string const &offset_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_)
+ : chat_id_(chat_id_)
+ , query_(query_)
+ , offset_(offset_)
+ , limit_(limit_)
+ , filter_(std::move(filter_))
+{}
+
+const std::int32_t searchSecretMessages::ID;
+
+void searchSecretMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchSecretMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("query", query_);
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_class_end();
+ }
+}
+
+searchStickerSet::searchStickerSet()
+ : name_()
+{}
+
+searchStickerSet::searchStickerSet(string const &name_)
+ : name_(name_)
+{}
+
+const std::int32_t searchStickerSet::ID;
+
+void searchStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchStickerSet");
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+searchStickerSets::searchStickerSets()
+ : query_()
+{}
+
+searchStickerSets::searchStickerSets(string const &query_)
+ : query_(query_)
+{}
+
+const std::int32_t searchStickerSets::ID;
+
+void searchStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchStickerSets");
+ s.store_field("query", query_);
+ s.store_class_end();
+ }
+}
+
+searchStickers::searchStickers()
+ : emoji_()
+ , limit_()
+{}
+
+searchStickers::searchStickers(string const &emoji_, int32 limit_)
+ : emoji_(emoji_)
+ , limit_(limit_)
+{}
+
+const std::int32_t searchStickers::ID;
+
+void searchStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchStickers");
+ s.store_field("emoji", emoji_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+searchUserByPhoneNumber::searchUserByPhoneNumber()
+ : phone_number_()
+{}
+
+searchUserByPhoneNumber::searchUserByPhoneNumber(string const &phone_number_)
+ : phone_number_(phone_number_)
+{}
+
+const std::int32_t searchUserByPhoneNumber::ID;
+
+void searchUserByPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchUserByPhoneNumber");
+ s.store_field("phone_number", phone_number_);
+ s.store_class_end();
+ }
+}
+
+sendBotStartMessage::sendBotStartMessage()
+ : bot_user_id_()
+ , chat_id_()
+ , parameter_()
+{}
+
+sendBotStartMessage::sendBotStartMessage(int53 bot_user_id_, int53 chat_id_, string const &parameter_)
+ : bot_user_id_(bot_user_id_)
+ , chat_id_(chat_id_)
+ , parameter_(parameter_)
+{}
+
+const std::int32_t sendBotStartMessage::ID;
+
+void sendBotStartMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendBotStartMessage");
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("chat_id", chat_id_);
+ s.store_field("parameter", parameter_);
+ s.store_class_end();
+ }
+}
+
+sendCallDebugInformation::sendCallDebugInformation()
+ : call_id_()
+ , debug_information_()
+{}
+
+sendCallDebugInformation::sendCallDebugInformation(int32 call_id_, string const &debug_information_)
+ : call_id_(call_id_)
+ , debug_information_(debug_information_)
+{}
+
+const std::int32_t sendCallDebugInformation::ID;
+
+void sendCallDebugInformation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendCallDebugInformation");
+ s.store_field("call_id", call_id_);
+ s.store_field("debug_information", debug_information_);
+ s.store_class_end();
+ }
+}
+
+sendCallLog::sendCallLog()
+ : call_id_()
+ , log_file_()
+{}
+
+sendCallLog::sendCallLog(int32 call_id_, object_ptr<InputFile> &&log_file_)
+ : call_id_(call_id_)
+ , log_file_(std::move(log_file_))
+{}
+
+const std::int32_t sendCallLog::ID;
+
+void sendCallLog::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendCallLog");
+ s.store_field("call_id", call_id_);
+ s.store_object_field("log_file", static_cast<const BaseObject *>(log_file_.get()));
+ s.store_class_end();
+ }
+}
+
+sendCallRating::sendCallRating()
+ : call_id_()
+ , rating_()
+ , comment_()
+ , problems_()
+{}
+
+sendCallRating::sendCallRating(int32 call_id_, int32 rating_, string const &comment_, array<object_ptr<CallProblem>> &&problems_)
+ : call_id_(call_id_)
+ , rating_(rating_)
+ , comment_(comment_)
+ , problems_(std::move(problems_))
+{}
+
+const std::int32_t sendCallRating::ID;
+
+void sendCallRating::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendCallRating");
+ s.store_field("call_id", call_id_);
+ s.store_field("rating", rating_);
+ s.store_field("comment", comment_);
+ { s.store_vector_begin("problems", problems_.size()); for (const auto &_value : problems_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+sendCallSignalingData::sendCallSignalingData()
+ : call_id_()
+ , data_()
+{}
+
+sendCallSignalingData::sendCallSignalingData(int32 call_id_, bytes const &data_)
+ : call_id_(call_id_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t sendCallSignalingData::ID;
+
+void sendCallSignalingData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendCallSignalingData");
+ s.store_field("call_id", call_id_);
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+sendChatAction::sendChatAction()
+ : chat_id_()
+ , message_thread_id_()
+ , action_()
+{}
+
+sendChatAction::sendChatAction(int53 chat_id_, int53 message_thread_id_, object_ptr<ChatAction> &&action_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , action_(std::move(action_))
+{}
+
+const std::int32_t sendChatAction::ID;
+
+void sendChatAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendChatAction");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+sendChatScreenshotTakenNotification::sendChatScreenshotTakenNotification()
+ : chat_id_()
+{}
+
+sendChatScreenshotTakenNotification::sendChatScreenshotTakenNotification(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t sendChatScreenshotTakenNotification::ID;
+
+void sendChatScreenshotTakenNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendChatScreenshotTakenNotification");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+sendCustomRequest::sendCustomRequest()
+ : method_()
+ , parameters_()
+{}
+
+sendCustomRequest::sendCustomRequest(string const &method_, string const &parameters_)
+ : method_(method_)
+ , parameters_(parameters_)
+{}
+
+const std::int32_t sendCustomRequest::ID;
+
+void sendCustomRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendCustomRequest");
+ s.store_field("method", method_);
+ s.store_field("parameters", parameters_);
+ s.store_class_end();
+ }
+}
+
+sendEmailAddressVerificationCode::sendEmailAddressVerificationCode()
+ : email_address_()
+{}
+
+sendEmailAddressVerificationCode::sendEmailAddressVerificationCode(string const &email_address_)
+ : email_address_(email_address_)
+{}
+
+const std::int32_t sendEmailAddressVerificationCode::ID;
+
+void sendEmailAddressVerificationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendEmailAddressVerificationCode");
+ s.store_field("email_address", email_address_);
+ s.store_class_end();
+ }
+}
+
+sendInlineQueryResultMessage::sendInlineQueryResultMessage()
+ : chat_id_()
+ , message_thread_id_()
+ , reply_to_message_id_()
+ , options_()
+ , query_id_()
+ , result_id_()
+ , hide_via_bot_()
+{}
+
+sendInlineQueryResultMessage::sendInlineQueryResultMessage(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, int64 query_id_, string const &result_id_, bool hide_via_bot_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , reply_to_message_id_(reply_to_message_id_)
+ , options_(std::move(options_))
+ , query_id_(query_id_)
+ , result_id_(result_id_)
+ , hide_via_bot_(hide_via_bot_)
+{}
+
+const std::int32_t sendInlineQueryResultMessage::ID;
+
+void sendInlineQueryResultMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendInlineQueryResultMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_field("reply_to_message_id", reply_to_message_id_);
+ s.store_object_field("options", static_cast<const BaseObject *>(options_.get()));
+ s.store_field("query_id", query_id_);
+ s.store_field("result_id", result_id_);
+ s.store_field("hide_via_bot", hide_via_bot_);
+ s.store_class_end();
+ }
+}
+
+sendMessage::sendMessage()
+ : chat_id_()
+ , message_thread_id_()
+ , reply_to_message_id_()
+ , options_()
+ , reply_markup_()
+ , input_message_content_()
+{}
+
+sendMessage::sendMessage(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , reply_to_message_id_(reply_to_message_id_)
+ , options_(std::move(options_))
+ , reply_markup_(std::move(reply_markup_))
+ , input_message_content_(std::move(input_message_content_))
+{}
+
+const std::int32_t sendMessage::ID;
+
+void sendMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_field("reply_to_message_id", reply_to_message_id_);
+ s.store_object_field("options", static_cast<const BaseObject *>(options_.get()));
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get()));
+ s.store_class_end();
+ }
+}
+
+sendMessageAlbum::sendMessageAlbum()
+ : chat_id_()
+ , message_thread_id_()
+ , reply_to_message_id_()
+ , options_()
+ , input_message_contents_()
+ , only_preview_()
+{}
+
+sendMessageAlbum::sendMessageAlbum(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, array<object_ptr<InputMessageContent>> &&input_message_contents_, bool only_preview_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , reply_to_message_id_(reply_to_message_id_)
+ , options_(std::move(options_))
+ , input_message_contents_(std::move(input_message_contents_))
+ , only_preview_(only_preview_)
+{}
+
+const std::int32_t sendMessageAlbum::ID;
+
+void sendMessageAlbum::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageAlbum");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_field("reply_to_message_id", reply_to_message_id_);
+ s.store_object_field("options", static_cast<const BaseObject *>(options_.get()));
+ { s.store_vector_begin("input_message_contents", input_message_contents_.size()); for (const auto &_value : input_message_contents_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("only_preview", only_preview_);
+ s.store_class_end();
+ }
+}
+
+sendPassportAuthorizationForm::sendPassportAuthorizationForm()
+ : autorization_form_id_()
+ , types_()
+{}
+
+sendPassportAuthorizationForm::sendPassportAuthorizationForm(int32 autorization_form_id_, array<object_ptr<PassportElementType>> &&types_)
+ : autorization_form_id_(autorization_form_id_)
+ , types_(std::move(types_))
+{}
+
+const std::int32_t sendPassportAuthorizationForm::ID;
+
+void sendPassportAuthorizationForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendPassportAuthorizationForm");
+ s.store_field("autorization_form_id", autorization_form_id_);
+ { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+sendPaymentForm::sendPaymentForm()
+ : input_invoice_()
+ , payment_form_id_()
+ , order_info_id_()
+ , shipping_option_id_()
+ , credentials_()
+ , tip_amount_()
+{}
+
+sendPaymentForm::sendPaymentForm(object_ptr<InputInvoice> &&input_invoice_, int64 payment_form_id_, string const &order_info_id_, string const &shipping_option_id_, object_ptr<InputCredentials> &&credentials_, int53 tip_amount_)
+ : input_invoice_(std::move(input_invoice_))
+ , payment_form_id_(payment_form_id_)
+ , order_info_id_(order_info_id_)
+ , shipping_option_id_(shipping_option_id_)
+ , credentials_(std::move(credentials_))
+ , tip_amount_(tip_amount_)
+{}
+
+const std::int32_t sendPaymentForm::ID;
+
+void sendPaymentForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendPaymentForm");
+ s.store_object_field("input_invoice", static_cast<const BaseObject *>(input_invoice_.get()));
+ s.store_field("payment_form_id", payment_form_id_);
+ s.store_field("order_info_id", order_info_id_);
+ s.store_field("shipping_option_id", shipping_option_id_);
+ s.store_object_field("credentials", static_cast<const BaseObject *>(credentials_.get()));
+ s.store_field("tip_amount", tip_amount_);
+ s.store_class_end();
+ }
+}
+
+sendPhoneNumberConfirmationCode::sendPhoneNumberConfirmationCode()
+ : hash_()
+ , phone_number_()
+ , settings_()
+{}
+
+sendPhoneNumberConfirmationCode::sendPhoneNumberConfirmationCode(string const &hash_, string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_)
+ : hash_(hash_)
+ , phone_number_(phone_number_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t sendPhoneNumberConfirmationCode::ID;
+
+void sendPhoneNumberConfirmationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendPhoneNumberConfirmationCode");
+ s.store_field("hash", hash_);
+ s.store_field("phone_number", phone_number_);
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+sendPhoneNumberVerificationCode::sendPhoneNumberVerificationCode()
+ : phone_number_()
+ , settings_()
+{}
+
+sendPhoneNumberVerificationCode::sendPhoneNumberVerificationCode(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_)
+ : phone_number_(phone_number_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t sendPhoneNumberVerificationCode::ID;
+
+void sendPhoneNumberVerificationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendPhoneNumberVerificationCode");
+ s.store_field("phone_number", phone_number_);
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+sendWebAppData::sendWebAppData()
+ : bot_user_id_()
+ , button_text_()
+ , data_()
+{}
+
+sendWebAppData::sendWebAppData(int53 bot_user_id_, string const &button_text_, string const &data_)
+ : bot_user_id_(bot_user_id_)
+ , button_text_(button_text_)
+ , data_(data_)
+{}
+
+const std::int32_t sendWebAppData::ID;
+
+void sendWebAppData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendWebAppData");
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("button_text", button_text_);
+ s.store_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+setAccountTtl::setAccountTtl()
+ : ttl_()
+{}
+
+setAccountTtl::setAccountTtl(object_ptr<accountTtl> &&ttl_)
+ : ttl_(std::move(ttl_))
+{}
+
+const std::int32_t setAccountTtl::ID;
+
+void setAccountTtl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setAccountTtl");
+ s.store_object_field("ttl", static_cast<const BaseObject *>(ttl_.get()));
+ s.store_class_end();
+ }
+}
+
+setAlarm::setAlarm()
+ : seconds_()
+{}
+
+setAlarm::setAlarm(double seconds_)
+ : seconds_(seconds_)
+{}
+
+const std::int32_t setAlarm::ID;
+
+void setAlarm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setAlarm");
+ s.store_field("seconds", seconds_);
+ s.store_class_end();
+ }
+}
+
+setAuthenticationEmailAddress::setAuthenticationEmailAddress()
+ : email_address_()
+{}
+
+setAuthenticationEmailAddress::setAuthenticationEmailAddress(string const &email_address_)
+ : email_address_(email_address_)
+{}
+
+const std::int32_t setAuthenticationEmailAddress::ID;
+
+void setAuthenticationEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setAuthenticationEmailAddress");
+ s.store_field("email_address", email_address_);
+ s.store_class_end();
+ }
+}
+
+setAuthenticationPhoneNumber::setAuthenticationPhoneNumber()
+ : phone_number_()
+ , settings_()
+{}
+
+setAuthenticationPhoneNumber::setAuthenticationPhoneNumber(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_)
+ : phone_number_(phone_number_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t setAuthenticationPhoneNumber::ID;
+
+void setAuthenticationPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setAuthenticationPhoneNumber");
+ s.store_field("phone_number", phone_number_);
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+setAutoDownloadSettings::setAutoDownloadSettings()
+ : settings_()
+ , type_()
+{}
+
+setAutoDownloadSettings::setAutoDownloadSettings(object_ptr<autoDownloadSettings> &&settings_, object_ptr<NetworkType> &&type_)
+ : settings_(std::move(settings_))
+ , type_(std::move(type_))
+{}
+
+const std::int32_t setAutoDownloadSettings::ID;
+
+void setAutoDownloadSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setAutoDownloadSettings");
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+setBackground::setBackground()
+ : background_()
+ , type_()
+ , for_dark_theme_()
+{}
+
+setBackground::setBackground(object_ptr<InputBackground> &&background_, object_ptr<BackgroundType> &&type_, bool for_dark_theme_)
+ : background_(std::move(background_))
+ , type_(std::move(type_))
+ , for_dark_theme_(for_dark_theme_)
+{}
+
+const std::int32_t setBackground::ID;
+
+void setBackground::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setBackground");
+ s.store_object_field("background", static_cast<const BaseObject *>(background_.get()));
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("for_dark_theme", for_dark_theme_);
+ s.store_class_end();
+ }
+}
+
+setBio::setBio()
+ : bio_()
+{}
+
+setBio::setBio(string const &bio_)
+ : bio_(bio_)
+{}
+
+const std::int32_t setBio::ID;
+
+void setBio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setBio");
+ s.store_field("bio", bio_);
+ s.store_class_end();
+ }
+}
+
+setBotUpdatesStatus::setBotUpdatesStatus()
+ : pending_update_count_()
+ , error_message_()
+{}
+
+setBotUpdatesStatus::setBotUpdatesStatus(int32 pending_update_count_, string const &error_message_)
+ : pending_update_count_(pending_update_count_)
+ , error_message_(error_message_)
+{}
+
+const std::int32_t setBotUpdatesStatus::ID;
+
+void setBotUpdatesStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setBotUpdatesStatus");
+ s.store_field("pending_update_count", pending_update_count_);
+ s.store_field("error_message", error_message_);
+ s.store_class_end();
+ }
+}
+
+setChatAvailableReactions::setChatAvailableReactions()
+ : chat_id_()
+ , available_reactions_()
+{}
+
+setChatAvailableReactions::setChatAvailableReactions(int53 chat_id_, object_ptr<ChatAvailableReactions> &&available_reactions_)
+ : chat_id_(chat_id_)
+ , available_reactions_(std::move(available_reactions_))
+{}
+
+const std::int32_t setChatAvailableReactions::ID;
+
+void setChatAvailableReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatAvailableReactions");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get()));
+ s.store_class_end();
+ }
+}
+
+setChatClientData::setChatClientData()
+ : chat_id_()
+ , client_data_()
+{}
+
+setChatClientData::setChatClientData(int53 chat_id_, string const &client_data_)
+ : chat_id_(chat_id_)
+ , client_data_(client_data_)
+{}
+
+const std::int32_t setChatClientData::ID;
+
+void setChatClientData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatClientData");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("client_data", client_data_);
+ s.store_class_end();
+ }
+}
+
+setChatDescription::setChatDescription()
+ : chat_id_()
+ , description_()
+{}
+
+setChatDescription::setChatDescription(int53 chat_id_, string const &description_)
+ : chat_id_(chat_id_)
+ , description_(description_)
+{}
+
+const std::int32_t setChatDescription::ID;
+
+void setChatDescription::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatDescription");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("description", description_);
+ s.store_class_end();
+ }
+}
+
+setChatDiscussionGroup::setChatDiscussionGroup()
+ : chat_id_()
+ , discussion_chat_id_()
+{}
+
+setChatDiscussionGroup::setChatDiscussionGroup(int53 chat_id_, int53 discussion_chat_id_)
+ : chat_id_(chat_id_)
+ , discussion_chat_id_(discussion_chat_id_)
+{}
+
+const std::int32_t setChatDiscussionGroup::ID;
+
+void setChatDiscussionGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatDiscussionGroup");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("discussion_chat_id", discussion_chat_id_);
+ s.store_class_end();
+ }
+}
+
+setChatDraftMessage::setChatDraftMessage()
+ : chat_id_()
+ , message_thread_id_()
+ , draft_message_()
+{}
+
+setChatDraftMessage::setChatDraftMessage(int53 chat_id_, int53 message_thread_id_, object_ptr<draftMessage> &&draft_message_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , draft_message_(std::move(draft_message_))
+{}
+
+const std::int32_t setChatDraftMessage::ID;
+
+void setChatDraftMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatDraftMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_object_field("draft_message", static_cast<const BaseObject *>(draft_message_.get()));
+ s.store_class_end();
+ }
+}
+
+setChatLocation::setChatLocation()
+ : chat_id_()
+ , location_()
+{}
+
+setChatLocation::setChatLocation(int53 chat_id_, object_ptr<chatLocation> &&location_)
+ : chat_id_(chat_id_)
+ , location_(std::move(location_))
+{}
+
+const std::int32_t setChatLocation::ID;
+
+void setChatLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatLocation");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_class_end();
+ }
+}
+
+setChatMemberStatus::setChatMemberStatus()
+ : chat_id_()
+ , member_id_()
+ , status_()
+{}
+
+setChatMemberStatus::setChatMemberStatus(int53 chat_id_, object_ptr<MessageSender> &&member_id_, object_ptr<ChatMemberStatus> &&status_)
+ : chat_id_(chat_id_)
+ , member_id_(std::move(member_id_))
+ , status_(std::move(status_))
+{}
+
+const std::int32_t setChatMemberStatus::ID;
+
+void setChatMemberStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatMemberStatus");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get()));
+ s.store_object_field("status", static_cast<const BaseObject *>(status_.get()));
+ s.store_class_end();
+ }
+}
+
+setChatMessageSender::setChatMessageSender()
+ : chat_id_()
+ , message_sender_id_()
+{}
+
+setChatMessageSender::setChatMessageSender(int53 chat_id_, object_ptr<MessageSender> &&message_sender_id_)
+ : chat_id_(chat_id_)
+ , message_sender_id_(std::move(message_sender_id_))
+{}
+
+const std::int32_t setChatMessageSender::ID;
+
+void setChatMessageSender::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatMessageSender");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("message_sender_id", static_cast<const BaseObject *>(message_sender_id_.get()));
+ s.store_class_end();
+ }
+}
+
+setChatMessageTtl::setChatMessageTtl()
+ : chat_id_()
+ , ttl_()
+{}
+
+setChatMessageTtl::setChatMessageTtl(int53 chat_id_, int32 ttl_)
+ : chat_id_(chat_id_)
+ , ttl_(ttl_)
+{}
+
+const std::int32_t setChatMessageTtl::ID;
+
+void setChatMessageTtl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatMessageTtl");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("ttl", ttl_);
+ s.store_class_end();
+ }
+}
+
+setChatNotificationSettings::setChatNotificationSettings()
+ : chat_id_()
+ , notification_settings_()
+{}
+
+setChatNotificationSettings::setChatNotificationSettings(int53 chat_id_, object_ptr<chatNotificationSettings> &&notification_settings_)
+ : chat_id_(chat_id_)
+ , notification_settings_(std::move(notification_settings_))
+{}
+
+const std::int32_t setChatNotificationSettings::ID;
+
+void setChatNotificationSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatNotificationSettings");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get()));
+ s.store_class_end();
+ }
+}
+
+setChatPermissions::setChatPermissions()
+ : chat_id_()
+ , permissions_()
+{}
+
+setChatPermissions::setChatPermissions(int53 chat_id_, object_ptr<chatPermissions> &&permissions_)
+ : chat_id_(chat_id_)
+ , permissions_(std::move(permissions_))
+{}
+
+const std::int32_t setChatPermissions::ID;
+
+void setChatPermissions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatPermissions");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("permissions", static_cast<const BaseObject *>(permissions_.get()));
+ s.store_class_end();
+ }
+}
+
+setChatPhoto::setChatPhoto()
+ : chat_id_()
+ , photo_()
+{}
+
+setChatPhoto::setChatPhoto(int53 chat_id_, object_ptr<InputChatPhoto> &&photo_)
+ : chat_id_(chat_id_)
+ , photo_(std::move(photo_))
+{}
+
+const std::int32_t setChatPhoto::ID;
+
+void setChatPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatPhoto");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_class_end();
+ }
+}
+
+setChatSlowModeDelay::setChatSlowModeDelay()
+ : chat_id_()
+ , slow_mode_delay_()
+{}
+
+setChatSlowModeDelay::setChatSlowModeDelay(int53 chat_id_, int32 slow_mode_delay_)
+ : chat_id_(chat_id_)
+ , slow_mode_delay_(slow_mode_delay_)
+{}
+
+const std::int32_t setChatSlowModeDelay::ID;
+
+void setChatSlowModeDelay::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatSlowModeDelay");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("slow_mode_delay", slow_mode_delay_);
+ s.store_class_end();
+ }
+}
+
+setChatTheme::setChatTheme()
+ : chat_id_()
+ , theme_name_()
+{}
+
+setChatTheme::setChatTheme(int53 chat_id_, string const &theme_name_)
+ : chat_id_(chat_id_)
+ , theme_name_(theme_name_)
+{}
+
+const std::int32_t setChatTheme::ID;
+
+void setChatTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatTheme");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("theme_name", theme_name_);
+ s.store_class_end();
+ }
+}
+
+setChatTitle::setChatTitle()
+ : chat_id_()
+ , title_()
+{}
+
+setChatTitle::setChatTitle(int53 chat_id_, string const &title_)
+ : chat_id_(chat_id_)
+ , title_(title_)
+{}
+
+const std::int32_t setChatTitle::ID;
+
+void setChatTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setChatTitle");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+setCommands::setCommands()
+ : scope_()
+ , language_code_()
+ , commands_()
+{}
+
+setCommands::setCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_, array<object_ptr<botCommand>> &&commands_)
+ : scope_(std::move(scope_))
+ , language_code_(language_code_)
+ , commands_(std::move(commands_))
+{}
+
+const std::int32_t setCommands::ID;
+
+void setCommands::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setCommands");
+ s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get()));
+ s.store_field("language_code", language_code_);
+ { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+setCustomLanguagePack::setCustomLanguagePack()
+ : info_()
+ , strings_()
+{}
+
+setCustomLanguagePack::setCustomLanguagePack(object_ptr<languagePackInfo> &&info_, array<object_ptr<languagePackString>> &&strings_)
+ : info_(std::move(info_))
+ , strings_(std::move(strings_))
+{}
+
+const std::int32_t setCustomLanguagePack::ID;
+
+void setCustomLanguagePack::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setCustomLanguagePack");
+ s.store_object_field("info", static_cast<const BaseObject *>(info_.get()));
+ { s.store_vector_begin("strings", strings_.size()); for (const auto &_value : strings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+setCustomLanguagePackString::setCustomLanguagePackString()
+ : language_pack_id_()
+ , new_string_()
+{}
+
+setCustomLanguagePackString::setCustomLanguagePackString(string const &language_pack_id_, object_ptr<languagePackString> &&new_string_)
+ : language_pack_id_(language_pack_id_)
+ , new_string_(std::move(new_string_))
+{}
+
+const std::int32_t setCustomLanguagePackString::ID;
+
+void setCustomLanguagePackString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setCustomLanguagePackString");
+ s.store_field("language_pack_id", language_pack_id_);
+ s.store_object_field("new_string", static_cast<const BaseObject *>(new_string_.get()));
+ s.store_class_end();
+ }
+}
+
+setDatabaseEncryptionKey::setDatabaseEncryptionKey()
+ : new_encryption_key_()
+{}
+
+setDatabaseEncryptionKey::setDatabaseEncryptionKey(bytes const &new_encryption_key_)
+ : new_encryption_key_(std::move(new_encryption_key_))
+{}
+
+const std::int32_t setDatabaseEncryptionKey::ID;
+
+void setDatabaseEncryptionKey::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setDatabaseEncryptionKey");
+ s.store_bytes_field("new_encryption_key", new_encryption_key_);
+ s.store_class_end();
+ }
+}
+
+setDefaultChannelAdministratorRights::setDefaultChannelAdministratorRights()
+ : default_channel_administrator_rights_()
+{}
+
+setDefaultChannelAdministratorRights::setDefaultChannelAdministratorRights(object_ptr<chatAdministratorRights> &&default_channel_administrator_rights_)
+ : default_channel_administrator_rights_(std::move(default_channel_administrator_rights_))
+{}
+
+const std::int32_t setDefaultChannelAdministratorRights::ID;
+
+void setDefaultChannelAdministratorRights::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setDefaultChannelAdministratorRights");
+ s.store_object_field("default_channel_administrator_rights", static_cast<const BaseObject *>(default_channel_administrator_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+setDefaultGroupAdministratorRights::setDefaultGroupAdministratorRights()
+ : default_group_administrator_rights_()
+{}
+
+setDefaultGroupAdministratorRights::setDefaultGroupAdministratorRights(object_ptr<chatAdministratorRights> &&default_group_administrator_rights_)
+ : default_group_administrator_rights_(std::move(default_group_administrator_rights_))
+{}
+
+const std::int32_t setDefaultGroupAdministratorRights::ID;
+
+void setDefaultGroupAdministratorRights::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setDefaultGroupAdministratorRights");
+ s.store_object_field("default_group_administrator_rights", static_cast<const BaseObject *>(default_group_administrator_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+setDefaultReactionType::setDefaultReactionType()
+ : reaction_type_()
+{}
+
+setDefaultReactionType::setDefaultReactionType(object_ptr<ReactionType> &&reaction_type_)
+ : reaction_type_(std::move(reaction_type_))
+{}
+
+const std::int32_t setDefaultReactionType::ID;
+
+void setDefaultReactionType::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setDefaultReactionType");
+ s.store_object_field("reaction_type", static_cast<const BaseObject *>(reaction_type_.get()));
+ s.store_class_end();
+ }
+}
+
+setEmojiStatus::setEmojiStatus()
+ : emoji_status_()
+ , duration_()
+{}
+
+setEmojiStatus::setEmojiStatus(object_ptr<emojiStatus> &&emoji_status_, int32 duration_)
+ : emoji_status_(std::move(emoji_status_))
+ , duration_(duration_)
+{}
+
+const std::int32_t setEmojiStatus::ID;
+
+void setEmojiStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setEmojiStatus");
+ s.store_object_field("emoji_status", static_cast<const BaseObject *>(emoji_status_.get()));
+ s.store_field("duration", duration_);
+ s.store_class_end();
+ }
+}
+
+setFileGenerationProgress::setFileGenerationProgress()
+ : generation_id_()
+ , expected_size_()
+ , local_prefix_size_()
+{}
+
+setFileGenerationProgress::setFileGenerationProgress(int64 generation_id_, int53 expected_size_, int53 local_prefix_size_)
+ : generation_id_(generation_id_)
+ , expected_size_(expected_size_)
+ , local_prefix_size_(local_prefix_size_)
+{}
+
+const std::int32_t setFileGenerationProgress::ID;
+
+void setFileGenerationProgress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setFileGenerationProgress");
+ s.store_field("generation_id", generation_id_);
+ s.store_field("expected_size", expected_size_);
+ s.store_field("local_prefix_size", local_prefix_size_);
+ s.store_class_end();
+ }
+}
+
+setGameScore::setGameScore()
+ : chat_id_()
+ , message_id_()
+ , edit_message_()
+ , user_id_()
+ , score_()
+ , force_()
+{}
+
+setGameScore::setGameScore(int53 chat_id_, int53 message_id_, bool edit_message_, int53 user_id_, int32 score_, bool force_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , edit_message_(edit_message_)
+ , user_id_(user_id_)
+ , score_(score_)
+ , force_(force_)
+{}
+
+const std::int32_t setGameScore::ID;
+
+void setGameScore::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setGameScore");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_field("edit_message", edit_message_);
+ s.store_field("user_id", user_id_);
+ s.store_field("score", score_);
+ s.store_field("force", force_);
+ s.store_class_end();
+ }
+}
+
+setGroupCallParticipantIsSpeaking::setGroupCallParticipantIsSpeaking()
+ : group_call_id_()
+ , audio_source_()
+ , is_speaking_()
+{}
+
+setGroupCallParticipantIsSpeaking::setGroupCallParticipantIsSpeaking(int32 group_call_id_, int32 audio_source_, bool is_speaking_)
+ : group_call_id_(group_call_id_)
+ , audio_source_(audio_source_)
+ , is_speaking_(is_speaking_)
+{}
+
+const std::int32_t setGroupCallParticipantIsSpeaking::ID;
+
+void setGroupCallParticipantIsSpeaking::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setGroupCallParticipantIsSpeaking");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("audio_source", audio_source_);
+ s.store_field("is_speaking", is_speaking_);
+ s.store_class_end();
+ }
+}
+
+setGroupCallParticipantVolumeLevel::setGroupCallParticipantVolumeLevel()
+ : group_call_id_()
+ , participant_id_()
+ , volume_level_()
+{}
+
+setGroupCallParticipantVolumeLevel::setGroupCallParticipantVolumeLevel(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, int32 volume_level_)
+ : group_call_id_(group_call_id_)
+ , participant_id_(std::move(participant_id_))
+ , volume_level_(volume_level_)
+{}
+
+const std::int32_t setGroupCallParticipantVolumeLevel::ID;
+
+void setGroupCallParticipantVolumeLevel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setGroupCallParticipantVolumeLevel");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get()));
+ s.store_field("volume_level", volume_level_);
+ s.store_class_end();
+ }
+}
+
+setGroupCallTitle::setGroupCallTitle()
+ : group_call_id_()
+ , title_()
+{}
+
+setGroupCallTitle::setGroupCallTitle(int32 group_call_id_, string const &title_)
+ : group_call_id_(group_call_id_)
+ , title_(title_)
+{}
+
+const std::int32_t setGroupCallTitle::ID;
+
+void setGroupCallTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setGroupCallTitle");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+setInactiveSessionTtl::setInactiveSessionTtl()
+ : inactive_session_ttl_days_()
+{}
+
+setInactiveSessionTtl::setInactiveSessionTtl(int32 inactive_session_ttl_days_)
+ : inactive_session_ttl_days_(inactive_session_ttl_days_)
+{}
+
+const std::int32_t setInactiveSessionTtl::ID;
+
+void setInactiveSessionTtl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setInactiveSessionTtl");
+ s.store_field("inactive_session_ttl_days", inactive_session_ttl_days_);
+ s.store_class_end();
+ }
+}
+
+setInlineGameScore::setInlineGameScore()
+ : inline_message_id_()
+ , edit_message_()
+ , user_id_()
+ , score_()
+ , force_()
+{}
+
+setInlineGameScore::setInlineGameScore(string const &inline_message_id_, bool edit_message_, int53 user_id_, int32 score_, bool force_)
+ : inline_message_id_(inline_message_id_)
+ , edit_message_(edit_message_)
+ , user_id_(user_id_)
+ , score_(score_)
+ , force_(force_)
+{}
+
+const std::int32_t setInlineGameScore::ID;
+
+void setInlineGameScore::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setInlineGameScore");
+ s.store_field("inline_message_id", inline_message_id_);
+ s.store_field("edit_message", edit_message_);
+ s.store_field("user_id", user_id_);
+ s.store_field("score", score_);
+ s.store_field("force", force_);
+ s.store_class_end();
+ }
+}
+
+setLocation::setLocation()
+ : location_()
+{}
+
+setLocation::setLocation(object_ptr<location> &&location_)
+ : location_(std::move(location_))
+{}
+
+const std::int32_t setLocation::ID;
+
+void setLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setLocation");
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_class_end();
+ }
+}
+
+setLogStream::setLogStream()
+ : log_stream_()
+{}
+
+setLogStream::setLogStream(object_ptr<LogStream> &&log_stream_)
+ : log_stream_(std::move(log_stream_))
+{}
+
+const std::int32_t setLogStream::ID;
+
+void setLogStream::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setLogStream");
+ s.store_object_field("log_stream", static_cast<const BaseObject *>(log_stream_.get()));
+ s.store_class_end();
+ }
+}
+
+setLogTagVerbosityLevel::setLogTagVerbosityLevel()
+ : tag_()
+ , new_verbosity_level_()
+{}
+
+setLogTagVerbosityLevel::setLogTagVerbosityLevel(string const &tag_, int32 new_verbosity_level_)
+ : tag_(tag_)
+ , new_verbosity_level_(new_verbosity_level_)
+{}
+
+const std::int32_t setLogTagVerbosityLevel::ID;
+
+void setLogTagVerbosityLevel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setLogTagVerbosityLevel");
+ s.store_field("tag", tag_);
+ s.store_field("new_verbosity_level", new_verbosity_level_);
+ s.store_class_end();
+ }
+}
+
+setLogVerbosityLevel::setLogVerbosityLevel()
+ : new_verbosity_level_()
+{}
+
+setLogVerbosityLevel::setLogVerbosityLevel(int32 new_verbosity_level_)
+ : new_verbosity_level_(new_verbosity_level_)
+{}
+
+const std::int32_t setLogVerbosityLevel::ID;
+
+void setLogVerbosityLevel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setLogVerbosityLevel");
+ s.store_field("new_verbosity_level", new_verbosity_level_);
+ s.store_class_end();
+ }
+}
+
+setLoginEmailAddress::setLoginEmailAddress()
+ : new_login_email_address_()
+{}
+
+setLoginEmailAddress::setLoginEmailAddress(string const &new_login_email_address_)
+ : new_login_email_address_(new_login_email_address_)
+{}
+
+const std::int32_t setLoginEmailAddress::ID;
+
+void setLoginEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setLoginEmailAddress");
+ s.store_field("new_login_email_address", new_login_email_address_);
+ s.store_class_end();
+ }
+}
+
+setMenuButton::setMenuButton()
+ : user_id_()
+ , menu_button_()
+{}
+
+setMenuButton::setMenuButton(int53 user_id_, object_ptr<botMenuButton> &&menu_button_)
+ : user_id_(user_id_)
+ , menu_button_(std::move(menu_button_))
+{}
+
+const std::int32_t setMenuButton::ID;
+
+void setMenuButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setMenuButton");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("menu_button", static_cast<const BaseObject *>(menu_button_.get()));
+ s.store_class_end();
+ }
+}
+
+setName::setName()
+ : first_name_()
+ , last_name_()
+{}
+
+setName::setName(string const &first_name_, string const &last_name_)
+ : first_name_(first_name_)
+ , last_name_(last_name_)
+{}
+
+const std::int32_t setName::ID;
+
+void setName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setName");
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_class_end();
+ }
+}
+
+setNetworkType::setNetworkType()
+ : type_()
+{}
+
+setNetworkType::setNetworkType(object_ptr<NetworkType> &&type_)
+ : type_(std::move(type_))
+{}
+
+const std::int32_t setNetworkType::ID;
+
+void setNetworkType::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setNetworkType");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+setOption::setOption()
+ : name_()
+ , value_()
+{}
+
+setOption::setOption(string const &name_, object_ptr<OptionValue> &&value_)
+ : name_(name_)
+ , value_(std::move(value_))
+{}
+
+const std::int32_t setOption::ID;
+
+void setOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setOption");
+ s.store_field("name", name_);
+ s.store_object_field("value", static_cast<const BaseObject *>(value_.get()));
+ s.store_class_end();
+ }
+}
+
+setPassportElement::setPassportElement()
+ : element_()
+ , password_()
+{}
+
+setPassportElement::setPassportElement(object_ptr<InputPassportElement> &&element_, string const &password_)
+ : element_(std::move(element_))
+ , password_(password_)
+{}
+
+const std::int32_t setPassportElement::ID;
+
+void setPassportElement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setPassportElement");
+ s.store_object_field("element", static_cast<const BaseObject *>(element_.get()));
+ s.store_field("password", password_);
+ s.store_class_end();
+ }
+}
+
+setPassportElementErrors::setPassportElementErrors()
+ : user_id_()
+ , errors_()
+{}
+
+setPassportElementErrors::setPassportElementErrors(int53 user_id_, array<object_ptr<inputPassportElementError>> &&errors_)
+ : user_id_(user_id_)
+ , errors_(std::move(errors_))
+{}
+
+const std::int32_t setPassportElementErrors::ID;
+
+void setPassportElementErrors::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setPassportElementErrors");
+ s.store_field("user_id", user_id_);
+ { s.store_vector_begin("errors", errors_.size()); for (const auto &_value : errors_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+setPassword::setPassword()
+ : old_password_()
+ , new_password_()
+ , new_hint_()
+ , set_recovery_email_address_()
+ , new_recovery_email_address_()
+{}
+
+setPassword::setPassword(string const &old_password_, string const &new_password_, string const &new_hint_, bool set_recovery_email_address_, string const &new_recovery_email_address_)
+ : old_password_(old_password_)
+ , new_password_(new_password_)
+ , new_hint_(new_hint_)
+ , set_recovery_email_address_(set_recovery_email_address_)
+ , new_recovery_email_address_(new_recovery_email_address_)
+{}
+
+const std::int32_t setPassword::ID;
+
+void setPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setPassword");
+ s.store_field("old_password", old_password_);
+ s.store_field("new_password", new_password_);
+ s.store_field("new_hint", new_hint_);
+ s.store_field("set_recovery_email_address", set_recovery_email_address_);
+ s.store_field("new_recovery_email_address", new_recovery_email_address_);
+ s.store_class_end();
+ }
+}
+
+setPinnedChats::setPinnedChats()
+ : chat_list_()
+ , chat_ids_()
+{}
+
+setPinnedChats::setPinnedChats(object_ptr<ChatList> &&chat_list_, array<int53> &&chat_ids_)
+ : chat_list_(std::move(chat_list_))
+ , chat_ids_(std::move(chat_ids_))
+{}
+
+const std::int32_t setPinnedChats::ID;
+
+void setPinnedChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setPinnedChats");
+ s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get()));
+ { s.store_vector_begin("chat_ids", chat_ids_.size()); for (const auto &_value : chat_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+setPollAnswer::setPollAnswer()
+ : chat_id_()
+ , message_id_()
+ , option_ids_()
+{}
+
+setPollAnswer::setPollAnswer(int53 chat_id_, int53 message_id_, array<int32> &&option_ids_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , option_ids_(std::move(option_ids_))
+{}
+
+const std::int32_t setPollAnswer::ID;
+
+void setPollAnswer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setPollAnswer");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ { s.store_vector_begin("option_ids", option_ids_.size()); for (const auto &_value : option_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+setProfilePhoto::setProfilePhoto()
+ : photo_()
+{}
+
+setProfilePhoto::setProfilePhoto(object_ptr<InputChatPhoto> &&photo_)
+ : photo_(std::move(photo_))
+{}
+
+const std::int32_t setProfilePhoto::ID;
+
+void setProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setProfilePhoto");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_class_end();
+ }
+}
+
+setRecoveryEmailAddress::setRecoveryEmailAddress()
+ : password_()
+ , new_recovery_email_address_()
+{}
+
+setRecoveryEmailAddress::setRecoveryEmailAddress(string const &password_, string const &new_recovery_email_address_)
+ : password_(password_)
+ , new_recovery_email_address_(new_recovery_email_address_)
+{}
+
+const std::int32_t setRecoveryEmailAddress::ID;
+
+void setRecoveryEmailAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setRecoveryEmailAddress");
+ s.store_field("password", password_);
+ s.store_field("new_recovery_email_address", new_recovery_email_address_);
+ s.store_class_end();
+ }
+}
+
+setScopeNotificationSettings::setScopeNotificationSettings()
+ : scope_()
+ , notification_settings_()
+{}
+
+setScopeNotificationSettings::setScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_, object_ptr<scopeNotificationSettings> &&notification_settings_)
+ : scope_(std::move(scope_))
+ , notification_settings_(std::move(notification_settings_))
+{}
+
+const std::int32_t setScopeNotificationSettings::ID;
+
+void setScopeNotificationSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setScopeNotificationSettings");
+ s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get()));
+ s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get()));
+ s.store_class_end();
+ }
+}
+
+setStickerPositionInSet::setStickerPositionInSet()
+ : sticker_()
+ , position_()
+{}
+
+setStickerPositionInSet::setStickerPositionInSet(object_ptr<InputFile> &&sticker_, int32 position_)
+ : sticker_(std::move(sticker_))
+ , position_(position_)
+{}
+
+const std::int32_t setStickerPositionInSet::ID;
+
+void setStickerPositionInSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setStickerPositionInSet");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_field("position", position_);
+ s.store_class_end();
+ }
+}
+
+setStickerSetThumbnail::setStickerSetThumbnail()
+ : user_id_()
+ , name_()
+ , thumbnail_()
+{}
+
+setStickerSetThumbnail::setStickerSetThumbnail(int53 user_id_, string const &name_, object_ptr<InputFile> &&thumbnail_)
+ : user_id_(user_id_)
+ , name_(name_)
+ , thumbnail_(std::move(thumbnail_))
+{}
+
+const std::int32_t setStickerSetThumbnail::ID;
+
+void setStickerSetThumbnail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setStickerSetThumbnail");
+ s.store_field("user_id", user_id_);
+ s.store_field("name", name_);
+ s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get()));
+ s.store_class_end();
+ }
+}
+
+setSupergroupStickerSet::setSupergroupStickerSet()
+ : supergroup_id_()
+ , sticker_set_id_()
+{}
+
+setSupergroupStickerSet::setSupergroupStickerSet(int53 supergroup_id_, int64 sticker_set_id_)
+ : supergroup_id_(supergroup_id_)
+ , sticker_set_id_(sticker_set_id_)
+{}
+
+const std::int32_t setSupergroupStickerSet::ID;
+
+void setSupergroupStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setSupergroupStickerSet");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_field("sticker_set_id", sticker_set_id_);
+ s.store_class_end();
+ }
+}
+
+setSupergroupUsername::setSupergroupUsername()
+ : supergroup_id_()
+ , username_()
+{}
+
+setSupergroupUsername::setSupergroupUsername(int53 supergroup_id_, string const &username_)
+ : supergroup_id_(supergroup_id_)
+ , username_(username_)
+{}
+
+const std::int32_t setSupergroupUsername::ID;
+
+void setSupergroupUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setSupergroupUsername");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+setTdlibParameters::setTdlibParameters()
+ : use_test_dc_()
+ , database_directory_()
+ , files_directory_()
+ , database_encryption_key_()
+ , use_file_database_()
+ , use_chat_info_database_()
+ , use_message_database_()
+ , use_secret_chats_()
+ , api_id_()
+ , api_hash_()
+ , system_language_code_()
+ , device_model_()
+ , system_version_()
+ , application_version_()
+ , enable_storage_optimizer_()
+ , ignore_file_names_()
+{}
+
+setTdlibParameters::setTdlibParameters(bool use_test_dc_, string const &database_directory_, string const &files_directory_, bytes const &database_encryption_key_, bool use_file_database_, bool use_chat_info_database_, bool use_message_database_, bool use_secret_chats_, int32 api_id_, string const &api_hash_, string const &system_language_code_, string const &device_model_, string const &system_version_, string const &application_version_, bool enable_storage_optimizer_, bool ignore_file_names_)
+ : use_test_dc_(use_test_dc_)
+ , database_directory_(database_directory_)
+ , files_directory_(files_directory_)
+ , database_encryption_key_(std::move(database_encryption_key_))
+ , use_file_database_(use_file_database_)
+ , use_chat_info_database_(use_chat_info_database_)
+ , use_message_database_(use_message_database_)
+ , use_secret_chats_(use_secret_chats_)
+ , api_id_(api_id_)
+ , api_hash_(api_hash_)
+ , system_language_code_(system_language_code_)
+ , device_model_(device_model_)
+ , system_version_(system_version_)
+ , application_version_(application_version_)
+ , enable_storage_optimizer_(enable_storage_optimizer_)
+ , ignore_file_names_(ignore_file_names_)
+{}
+
+const std::int32_t setTdlibParameters::ID;
+
+void setTdlibParameters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setTdlibParameters");
+ s.store_field("use_test_dc", use_test_dc_);
+ s.store_field("database_directory", database_directory_);
+ s.store_field("files_directory", files_directory_);
+ s.store_bytes_field("database_encryption_key", database_encryption_key_);
+ s.store_field("use_file_database", use_file_database_);
+ s.store_field("use_chat_info_database", use_chat_info_database_);
+ s.store_field("use_message_database", use_message_database_);
+ s.store_field("use_secret_chats", use_secret_chats_);
+ s.store_field("api_id", api_id_);
+ s.store_field("api_hash", api_hash_);
+ s.store_field("system_language_code", system_language_code_);
+ s.store_field("device_model", device_model_);
+ s.store_field("system_version", system_version_);
+ s.store_field("application_version", application_version_);
+ s.store_field("enable_storage_optimizer", enable_storage_optimizer_);
+ s.store_field("ignore_file_names", ignore_file_names_);
+ s.store_class_end();
+ }
+}
+
+setUserPrivacySettingRules::setUserPrivacySettingRules()
+ : setting_()
+ , rules_()
+{}
+
+setUserPrivacySettingRules::setUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_, object_ptr<userPrivacySettingRules> &&rules_)
+ : setting_(std::move(setting_))
+ , rules_(std::move(rules_))
+{}
+
+const std::int32_t setUserPrivacySettingRules::ID;
+
+void setUserPrivacySettingRules::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setUserPrivacySettingRules");
+ s.store_object_field("setting", static_cast<const BaseObject *>(setting_.get()));
+ s.store_object_field("rules", static_cast<const BaseObject *>(rules_.get()));
+ s.store_class_end();
+ }
+}
+
+setUserSupportInfo::setUserSupportInfo()
+ : user_id_()
+ , message_()
+{}
+
+setUserSupportInfo::setUserSupportInfo(int53 user_id_, object_ptr<formattedText> &&message_)
+ : user_id_(user_id_)
+ , message_(std::move(message_))
+{}
+
+const std::int32_t setUserSupportInfo::ID;
+
+void setUserSupportInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setUserSupportInfo");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+setUsername::setUsername()
+ : username_()
+{}
+
+setUsername::setUsername(string const &username_)
+ : username_(username_)
+{}
+
+const std::int32_t setUsername::ID;
+
+void setUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setUsername");
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+setVideoChatDefaultParticipant::setVideoChatDefaultParticipant()
+ : chat_id_()
+ , default_participant_id_()
+{}
+
+setVideoChatDefaultParticipant::setVideoChatDefaultParticipant(int53 chat_id_, object_ptr<MessageSender> &&default_participant_id_)
+ : chat_id_(chat_id_)
+ , default_participant_id_(std::move(default_participant_id_))
+{}
+
+const std::int32_t setVideoChatDefaultParticipant::ID;
+
+void setVideoChatDefaultParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "setVideoChatDefaultParticipant");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("default_participant_id", static_cast<const BaseObject *>(default_participant_id_.get()));
+ s.store_class_end();
+ }
+}
+
+sharePhoneNumber::sharePhoneNumber()
+ : user_id_()
+{}
+
+sharePhoneNumber::sharePhoneNumber(int53 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t sharePhoneNumber::ID;
+
+void sharePhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sharePhoneNumber");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+startGroupCallRecording::startGroupCallRecording()
+ : group_call_id_()
+ , title_()
+ , record_video_()
+ , use_portrait_orientation_()
+{}
+
+startGroupCallRecording::startGroupCallRecording(int32 group_call_id_, string const &title_, bool record_video_, bool use_portrait_orientation_)
+ : group_call_id_(group_call_id_)
+ , title_(title_)
+ , record_video_(record_video_)
+ , use_portrait_orientation_(use_portrait_orientation_)
+{}
+
+const std::int32_t startGroupCallRecording::ID;
+
+void startGroupCallRecording::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "startGroupCallRecording");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("title", title_);
+ s.store_field("record_video", record_video_);
+ s.store_field("use_portrait_orientation", use_portrait_orientation_);
+ s.store_class_end();
+ }
+}
+
+startGroupCallScreenSharing::startGroupCallScreenSharing()
+ : group_call_id_()
+ , audio_source_id_()
+ , payload_()
+{}
+
+startGroupCallScreenSharing::startGroupCallScreenSharing(int32 group_call_id_, int32 audio_source_id_, string const &payload_)
+ : group_call_id_(group_call_id_)
+ , audio_source_id_(audio_source_id_)
+ , payload_(payload_)
+{}
+
+const std::int32_t startGroupCallScreenSharing::ID;
+
+void startGroupCallScreenSharing::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "startGroupCallScreenSharing");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("audio_source_id", audio_source_id_);
+ s.store_field("payload", payload_);
+ s.store_class_end();
+ }
+}
+
+startScheduledGroupCall::startScheduledGroupCall()
+ : group_call_id_()
+{}
+
+startScheduledGroupCall::startScheduledGroupCall(int32 group_call_id_)
+ : group_call_id_(group_call_id_)
+{}
+
+const std::int32_t startScheduledGroupCall::ID;
+
+void startScheduledGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "startScheduledGroupCall");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_class_end();
+ }
+}
+
+stopPoll::stopPoll()
+ : chat_id_()
+ , message_id_()
+ , reply_markup_()
+{}
+
+stopPoll::stopPoll(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t stopPoll::ID;
+
+void stopPoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stopPoll");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get()));
+ s.store_class_end();
+ }
+}
+
+synchronizeLanguagePack::synchronizeLanguagePack()
+ : language_pack_id_()
+{}
+
+synchronizeLanguagePack::synchronizeLanguagePack(string const &language_pack_id_)
+ : language_pack_id_(language_pack_id_)
+{}
+
+const std::int32_t synchronizeLanguagePack::ID;
+
+void synchronizeLanguagePack::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "synchronizeLanguagePack");
+ s.store_field("language_pack_id", language_pack_id_);
+ s.store_class_end();
+ }
+}
+
+terminateAllOtherSessions::terminateAllOtherSessions() {
+}
+
+const std::int32_t terminateAllOtherSessions::ID;
+
+void terminateAllOtherSessions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "terminateAllOtherSessions");
+ s.store_class_end();
+ }
+}
+
+terminateSession::terminateSession()
+ : session_id_()
+{}
+
+terminateSession::terminateSession(int64 session_id_)
+ : session_id_(session_id_)
+{}
+
+const std::int32_t terminateSession::ID;
+
+void terminateSession::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "terminateSession");
+ s.store_field("session_id", session_id_);
+ s.store_class_end();
+ }
+}
+
+testCallBytes::testCallBytes()
+ : x_()
+{}
+
+testCallBytes::testCallBytes(bytes const &x_)
+ : x_(std::move(x_))
+{}
+
+const std::int32_t testCallBytes::ID;
+
+void testCallBytes::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testCallBytes");
+ s.store_bytes_field("x", x_);
+ s.store_class_end();
+ }
+}
+
+testCallEmpty::testCallEmpty() {
+}
+
+const std::int32_t testCallEmpty::ID;
+
+void testCallEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testCallEmpty");
+ s.store_class_end();
+ }
+}
+
+testCallString::testCallString()
+ : x_()
+{}
+
+testCallString::testCallString(string const &x_)
+ : x_(x_)
+{}
+
+const std::int32_t testCallString::ID;
+
+void testCallString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testCallString");
+ s.store_field("x", x_);
+ s.store_class_end();
+ }
+}
+
+testCallVectorInt::testCallVectorInt()
+ : x_()
+{}
+
+testCallVectorInt::testCallVectorInt(array<int32> &&x_)
+ : x_(std::move(x_))
+{}
+
+const std::int32_t testCallVectorInt::ID;
+
+void testCallVectorInt::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testCallVectorInt");
+ { s.store_vector_begin("x", x_.size()); for (const auto &_value : x_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+testCallVectorIntObject::testCallVectorIntObject()
+ : x_()
+{}
+
+testCallVectorIntObject::testCallVectorIntObject(array<object_ptr<testInt>> &&x_)
+ : x_(std::move(x_))
+{}
+
+const std::int32_t testCallVectorIntObject::ID;
+
+void testCallVectorIntObject::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testCallVectorIntObject");
+ { s.store_vector_begin("x", x_.size()); for (const auto &_value : x_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+testCallVectorString::testCallVectorString()
+ : x_()
+{}
+
+testCallVectorString::testCallVectorString(array<string> &&x_)
+ : x_(std::move(x_))
+{}
+
+const std::int32_t testCallVectorString::ID;
+
+void testCallVectorString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testCallVectorString");
+ { s.store_vector_begin("x", x_.size()); for (const auto &_value : x_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+testCallVectorStringObject::testCallVectorStringObject()
+ : x_()
+{}
+
+testCallVectorStringObject::testCallVectorStringObject(array<object_ptr<testString>> &&x_)
+ : x_(std::move(x_))
+{}
+
+const std::int32_t testCallVectorStringObject::ID;
+
+void testCallVectorStringObject::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testCallVectorStringObject");
+ { s.store_vector_begin("x", x_.size()); for (const auto &_value : x_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+testGetDifference::testGetDifference() {
+}
+
+const std::int32_t testGetDifference::ID;
+
+void testGetDifference::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testGetDifference");
+ s.store_class_end();
+ }
+}
+
+testNetwork::testNetwork() {
+}
+
+const std::int32_t testNetwork::ID;
+
+void testNetwork::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testNetwork");
+ s.store_class_end();
+ }
+}
+
+testProxy::testProxy()
+ : server_()
+ , port_()
+ , type_()
+ , dc_id_()
+ , timeout_()
+{}
+
+testProxy::testProxy(string const &server_, int32 port_, object_ptr<ProxyType> &&type_, int32 dc_id_, double timeout_)
+ : server_(server_)
+ , port_(port_)
+ , type_(std::move(type_))
+ , dc_id_(dc_id_)
+ , timeout_(timeout_)
+{}
+
+const std::int32_t testProxy::ID;
+
+void testProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testProxy");
+ s.store_field("server", server_);
+ s.store_field("port", port_);
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("dc_id", dc_id_);
+ s.store_field("timeout", timeout_);
+ s.store_class_end();
+ }
+}
+
+testReturnError::testReturnError()
+ : error_()
+{}
+
+testReturnError::testReturnError(object_ptr<error> &&error_)
+ : error_(std::move(error_))
+{}
+
+const std::int32_t testReturnError::ID;
+
+void testReturnError::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testReturnError");
+ s.store_object_field("error", static_cast<const BaseObject *>(error_.get()));
+ s.store_class_end();
+ }
+}
+
+testSquareInt::testSquareInt()
+ : x_()
+{}
+
+testSquareInt::testSquareInt(int32 x_)
+ : x_(x_)
+{}
+
+const std::int32_t testSquareInt::ID;
+
+void testSquareInt::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testSquareInt");
+ s.store_field("x", x_);
+ s.store_class_end();
+ }
+}
+
+testUseUpdate::testUseUpdate() {
+}
+
+const std::int32_t testUseUpdate::ID;
+
+void testUseUpdate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "testUseUpdate");
+ s.store_class_end();
+ }
+}
+
+toggleAllDownloadsArePaused::toggleAllDownloadsArePaused()
+ : are_paused_()
+{}
+
+toggleAllDownloadsArePaused::toggleAllDownloadsArePaused(bool are_paused_)
+ : are_paused_(are_paused_)
+{}
+
+const std::int32_t toggleAllDownloadsArePaused::ID;
+
+void toggleAllDownloadsArePaused::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleAllDownloadsArePaused");
+ s.store_field("are_paused", are_paused_);
+ s.store_class_end();
+ }
+}
+
+toggleBotIsAddedToAttachmentMenu::toggleBotIsAddedToAttachmentMenu()
+ : bot_user_id_()
+ , is_added_()
+{}
+
+toggleBotIsAddedToAttachmentMenu::toggleBotIsAddedToAttachmentMenu(int53 bot_user_id_, bool is_added_)
+ : bot_user_id_(bot_user_id_)
+ , is_added_(is_added_)
+{}
+
+const std::int32_t toggleBotIsAddedToAttachmentMenu::ID;
+
+void toggleBotIsAddedToAttachmentMenu::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleBotIsAddedToAttachmentMenu");
+ s.store_field("bot_user_id", bot_user_id_);
+ s.store_field("is_added", is_added_);
+ s.store_class_end();
+ }
+}
+
+toggleChatDefaultDisableNotification::toggleChatDefaultDisableNotification()
+ : chat_id_()
+ , default_disable_notification_()
+{}
+
+toggleChatDefaultDisableNotification::toggleChatDefaultDisableNotification(int53 chat_id_, bool default_disable_notification_)
+ : chat_id_(chat_id_)
+ , default_disable_notification_(default_disable_notification_)
+{}
+
+const std::int32_t toggleChatDefaultDisableNotification::ID;
+
+void toggleChatDefaultDisableNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleChatDefaultDisableNotification");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("default_disable_notification", default_disable_notification_);
+ s.store_class_end();
+ }
+}
+
+toggleChatHasProtectedContent::toggleChatHasProtectedContent()
+ : chat_id_()
+ , has_protected_content_()
+{}
+
+toggleChatHasProtectedContent::toggleChatHasProtectedContent(int53 chat_id_, bool has_protected_content_)
+ : chat_id_(chat_id_)
+ , has_protected_content_(has_protected_content_)
+{}
+
+const std::int32_t toggleChatHasProtectedContent::ID;
+
+void toggleChatHasProtectedContent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleChatHasProtectedContent");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("has_protected_content", has_protected_content_);
+ s.store_class_end();
+ }
+}
+
+toggleChatIsMarkedAsUnread::toggleChatIsMarkedAsUnread()
+ : chat_id_()
+ , is_marked_as_unread_()
+{}
+
+toggleChatIsMarkedAsUnread::toggleChatIsMarkedAsUnread(int53 chat_id_, bool is_marked_as_unread_)
+ : chat_id_(chat_id_)
+ , is_marked_as_unread_(is_marked_as_unread_)
+{}
+
+const std::int32_t toggleChatIsMarkedAsUnread::ID;
+
+void toggleChatIsMarkedAsUnread::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleChatIsMarkedAsUnread");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("is_marked_as_unread", is_marked_as_unread_);
+ s.store_class_end();
+ }
+}
+
+toggleChatIsPinned::toggleChatIsPinned()
+ : chat_list_()
+ , chat_id_()
+ , is_pinned_()
+{}
+
+toggleChatIsPinned::toggleChatIsPinned(object_ptr<ChatList> &&chat_list_, int53 chat_id_, bool is_pinned_)
+ : chat_list_(std::move(chat_list_))
+ , chat_id_(chat_id_)
+ , is_pinned_(is_pinned_)
+{}
+
+const std::int32_t toggleChatIsPinned::ID;
+
+void toggleChatIsPinned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleChatIsPinned");
+ s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get()));
+ s.store_field("chat_id", chat_id_);
+ s.store_field("is_pinned", is_pinned_);
+ s.store_class_end();
+ }
+}
+
+toggleDownloadIsPaused::toggleDownloadIsPaused()
+ : file_id_()
+ , is_paused_()
+{}
+
+toggleDownloadIsPaused::toggleDownloadIsPaused(int32 file_id_, bool is_paused_)
+ : file_id_(file_id_)
+ , is_paused_(is_paused_)
+{}
+
+const std::int32_t toggleDownloadIsPaused::ID;
+
+void toggleDownloadIsPaused::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleDownloadIsPaused");
+ s.store_field("file_id", file_id_);
+ s.store_field("is_paused", is_paused_);
+ s.store_class_end();
+ }
+}
+
+toggleForumTopicIsClosed::toggleForumTopicIsClosed()
+ : chat_id_()
+ , message_thread_id_()
+ , is_closed_()
+{}
+
+toggleForumTopicIsClosed::toggleForumTopicIsClosed(int53 chat_id_, int53 message_thread_id_, bool is_closed_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , is_closed_(is_closed_)
+{}
+
+const std::int32_t toggleForumTopicIsClosed::ID;
+
+void toggleForumTopicIsClosed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleForumTopicIsClosed");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_field("is_closed", is_closed_);
+ s.store_class_end();
+ }
+}
+
+toggleGroupCallEnabledStartNotification::toggleGroupCallEnabledStartNotification()
+ : group_call_id_()
+ , enabled_start_notification_()
+{}
+
+toggleGroupCallEnabledStartNotification::toggleGroupCallEnabledStartNotification(int32 group_call_id_, bool enabled_start_notification_)
+ : group_call_id_(group_call_id_)
+ , enabled_start_notification_(enabled_start_notification_)
+{}
+
+const std::int32_t toggleGroupCallEnabledStartNotification::ID;
+
+void toggleGroupCallEnabledStartNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleGroupCallEnabledStartNotification");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("enabled_start_notification", enabled_start_notification_);
+ s.store_class_end();
+ }
+}
+
+toggleGroupCallIsMyVideoEnabled::toggleGroupCallIsMyVideoEnabled()
+ : group_call_id_()
+ , is_my_video_enabled_()
+{}
+
+toggleGroupCallIsMyVideoEnabled::toggleGroupCallIsMyVideoEnabled(int32 group_call_id_, bool is_my_video_enabled_)
+ : group_call_id_(group_call_id_)
+ , is_my_video_enabled_(is_my_video_enabled_)
+{}
+
+const std::int32_t toggleGroupCallIsMyVideoEnabled::ID;
+
+void toggleGroupCallIsMyVideoEnabled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleGroupCallIsMyVideoEnabled");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("is_my_video_enabled", is_my_video_enabled_);
+ s.store_class_end();
+ }
+}
+
+toggleGroupCallIsMyVideoPaused::toggleGroupCallIsMyVideoPaused()
+ : group_call_id_()
+ , is_my_video_paused_()
+{}
+
+toggleGroupCallIsMyVideoPaused::toggleGroupCallIsMyVideoPaused(int32 group_call_id_, bool is_my_video_paused_)
+ : group_call_id_(group_call_id_)
+ , is_my_video_paused_(is_my_video_paused_)
+{}
+
+const std::int32_t toggleGroupCallIsMyVideoPaused::ID;
+
+void toggleGroupCallIsMyVideoPaused::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleGroupCallIsMyVideoPaused");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("is_my_video_paused", is_my_video_paused_);
+ s.store_class_end();
+ }
+}
+
+toggleGroupCallMuteNewParticipants::toggleGroupCallMuteNewParticipants()
+ : group_call_id_()
+ , mute_new_participants_()
+{}
+
+toggleGroupCallMuteNewParticipants::toggleGroupCallMuteNewParticipants(int32 group_call_id_, bool mute_new_participants_)
+ : group_call_id_(group_call_id_)
+ , mute_new_participants_(mute_new_participants_)
+{}
+
+const std::int32_t toggleGroupCallMuteNewParticipants::ID;
+
+void toggleGroupCallMuteNewParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleGroupCallMuteNewParticipants");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("mute_new_participants", mute_new_participants_);
+ s.store_class_end();
+ }
+}
+
+toggleGroupCallParticipantIsHandRaised::toggleGroupCallParticipantIsHandRaised()
+ : group_call_id_()
+ , participant_id_()
+ , is_hand_raised_()
+{}
+
+toggleGroupCallParticipantIsHandRaised::toggleGroupCallParticipantIsHandRaised(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, bool is_hand_raised_)
+ : group_call_id_(group_call_id_)
+ , participant_id_(std::move(participant_id_))
+ , is_hand_raised_(is_hand_raised_)
+{}
+
+const std::int32_t toggleGroupCallParticipantIsHandRaised::ID;
+
+void toggleGroupCallParticipantIsHandRaised::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleGroupCallParticipantIsHandRaised");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get()));
+ s.store_field("is_hand_raised", is_hand_raised_);
+ s.store_class_end();
+ }
+}
+
+toggleGroupCallParticipantIsMuted::toggleGroupCallParticipantIsMuted()
+ : group_call_id_()
+ , participant_id_()
+ , is_muted_()
+{}
+
+toggleGroupCallParticipantIsMuted::toggleGroupCallParticipantIsMuted(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, bool is_muted_)
+ : group_call_id_(group_call_id_)
+ , participant_id_(std::move(participant_id_))
+ , is_muted_(is_muted_)
+{}
+
+const std::int32_t toggleGroupCallParticipantIsMuted::ID;
+
+void toggleGroupCallParticipantIsMuted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleGroupCallParticipantIsMuted");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get()));
+ s.store_field("is_muted", is_muted_);
+ s.store_class_end();
+ }
+}
+
+toggleGroupCallScreenSharingIsPaused::toggleGroupCallScreenSharingIsPaused()
+ : group_call_id_()
+ , is_paused_()
+{}
+
+toggleGroupCallScreenSharingIsPaused::toggleGroupCallScreenSharingIsPaused(int32 group_call_id_, bool is_paused_)
+ : group_call_id_(group_call_id_)
+ , is_paused_(is_paused_)
+{}
+
+const std::int32_t toggleGroupCallScreenSharingIsPaused::ID;
+
+void toggleGroupCallScreenSharingIsPaused::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleGroupCallScreenSharingIsPaused");
+ s.store_field("group_call_id", group_call_id_);
+ s.store_field("is_paused", is_paused_);
+ s.store_class_end();
+ }
+}
+
+toggleMessageSenderIsBlocked::toggleMessageSenderIsBlocked()
+ : sender_id_()
+ , is_blocked_()
+{}
+
+toggleMessageSenderIsBlocked::toggleMessageSenderIsBlocked(object_ptr<MessageSender> &&sender_id_, bool is_blocked_)
+ : sender_id_(std::move(sender_id_))
+ , is_blocked_(is_blocked_)
+{}
+
+const std::int32_t toggleMessageSenderIsBlocked::ID;
+
+void toggleMessageSenderIsBlocked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleMessageSenderIsBlocked");
+ s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get()));
+ s.store_field("is_blocked", is_blocked_);
+ s.store_class_end();
+ }
+}
+
+toggleSessionCanAcceptCalls::toggleSessionCanAcceptCalls()
+ : session_id_()
+ , can_accept_calls_()
+{}
+
+toggleSessionCanAcceptCalls::toggleSessionCanAcceptCalls(int64 session_id_, bool can_accept_calls_)
+ : session_id_(session_id_)
+ , can_accept_calls_(can_accept_calls_)
+{}
+
+const std::int32_t toggleSessionCanAcceptCalls::ID;
+
+void toggleSessionCanAcceptCalls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleSessionCanAcceptCalls");
+ s.store_field("session_id", session_id_);
+ s.store_field("can_accept_calls", can_accept_calls_);
+ s.store_class_end();
+ }
+}
+
+toggleSessionCanAcceptSecretChats::toggleSessionCanAcceptSecretChats()
+ : session_id_()
+ , can_accept_secret_chats_()
+{}
+
+toggleSessionCanAcceptSecretChats::toggleSessionCanAcceptSecretChats(int64 session_id_, bool can_accept_secret_chats_)
+ : session_id_(session_id_)
+ , can_accept_secret_chats_(can_accept_secret_chats_)
+{}
+
+const std::int32_t toggleSessionCanAcceptSecretChats::ID;
+
+void toggleSessionCanAcceptSecretChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleSessionCanAcceptSecretChats");
+ s.store_field("session_id", session_id_);
+ s.store_field("can_accept_secret_chats", can_accept_secret_chats_);
+ s.store_class_end();
+ }
+}
+
+toggleSupergroupIsAllHistoryAvailable::toggleSupergroupIsAllHistoryAvailable()
+ : supergroup_id_()
+ , is_all_history_available_()
+{}
+
+toggleSupergroupIsAllHistoryAvailable::toggleSupergroupIsAllHistoryAvailable(int53 supergroup_id_, bool is_all_history_available_)
+ : supergroup_id_(supergroup_id_)
+ , is_all_history_available_(is_all_history_available_)
+{}
+
+const std::int32_t toggleSupergroupIsAllHistoryAvailable::ID;
+
+void toggleSupergroupIsAllHistoryAvailable::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleSupergroupIsAllHistoryAvailable");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_field("is_all_history_available", is_all_history_available_);
+ s.store_class_end();
+ }
+}
+
+toggleSupergroupIsBroadcastGroup::toggleSupergroupIsBroadcastGroup()
+ : supergroup_id_()
+{}
+
+toggleSupergroupIsBroadcastGroup::toggleSupergroupIsBroadcastGroup(int53 supergroup_id_)
+ : supergroup_id_(supergroup_id_)
+{}
+
+const std::int32_t toggleSupergroupIsBroadcastGroup::ID;
+
+void toggleSupergroupIsBroadcastGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleSupergroupIsBroadcastGroup");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_class_end();
+ }
+}
+
+toggleSupergroupIsForum::toggleSupergroupIsForum()
+ : supergroup_id_()
+ , is_forum_()
+{}
+
+toggleSupergroupIsForum::toggleSupergroupIsForum(int53 supergroup_id_, bool is_forum_)
+ : supergroup_id_(supergroup_id_)
+ , is_forum_(is_forum_)
+{}
+
+const std::int32_t toggleSupergroupIsForum::ID;
+
+void toggleSupergroupIsForum::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleSupergroupIsForum");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_field("is_forum", is_forum_);
+ s.store_class_end();
+ }
+}
+
+toggleSupergroupJoinByRequest::toggleSupergroupJoinByRequest()
+ : supergroup_id_()
+ , join_by_request_()
+{}
+
+toggleSupergroupJoinByRequest::toggleSupergroupJoinByRequest(int53 supergroup_id_, bool join_by_request_)
+ : supergroup_id_(supergroup_id_)
+ , join_by_request_(join_by_request_)
+{}
+
+const std::int32_t toggleSupergroupJoinByRequest::ID;
+
+void toggleSupergroupJoinByRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleSupergroupJoinByRequest");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_field("join_by_request", join_by_request_);
+ s.store_class_end();
+ }
+}
+
+toggleSupergroupJoinToSendMessages::toggleSupergroupJoinToSendMessages()
+ : supergroup_id_()
+ , join_to_send_messages_()
+{}
+
+toggleSupergroupJoinToSendMessages::toggleSupergroupJoinToSendMessages(int53 supergroup_id_, bool join_to_send_messages_)
+ : supergroup_id_(supergroup_id_)
+ , join_to_send_messages_(join_to_send_messages_)
+{}
+
+const std::int32_t toggleSupergroupJoinToSendMessages::ID;
+
+void toggleSupergroupJoinToSendMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleSupergroupJoinToSendMessages");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_field("join_to_send_messages", join_to_send_messages_);
+ s.store_class_end();
+ }
+}
+
+toggleSupergroupSignMessages::toggleSupergroupSignMessages()
+ : supergroup_id_()
+ , sign_messages_()
+{}
+
+toggleSupergroupSignMessages::toggleSupergroupSignMessages(int53 supergroup_id_, bool sign_messages_)
+ : supergroup_id_(supergroup_id_)
+ , sign_messages_(sign_messages_)
+{}
+
+const std::int32_t toggleSupergroupSignMessages::ID;
+
+void toggleSupergroupSignMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleSupergroupSignMessages");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_field("sign_messages", sign_messages_);
+ s.store_class_end();
+ }
+}
+
+toggleSupergroupUsernameIsActive::toggleSupergroupUsernameIsActive()
+ : supergroup_id_()
+ , username_()
+ , is_active_()
+{}
+
+toggleSupergroupUsernameIsActive::toggleSupergroupUsernameIsActive(int53 supergroup_id_, string const &username_, bool is_active_)
+ : supergroup_id_(supergroup_id_)
+ , username_(username_)
+ , is_active_(is_active_)
+{}
+
+const std::int32_t toggleSupergroupUsernameIsActive::ID;
+
+void toggleSupergroupUsernameIsActive::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleSupergroupUsernameIsActive");
+ s.store_field("supergroup_id", supergroup_id_);
+ s.store_field("username", username_);
+ s.store_field("is_active", is_active_);
+ s.store_class_end();
+ }
+}
+
+toggleUsernameIsActive::toggleUsernameIsActive()
+ : username_()
+ , is_active_()
+{}
+
+toggleUsernameIsActive::toggleUsernameIsActive(string const &username_, bool is_active_)
+ : username_(username_)
+ , is_active_(is_active_)
+{}
+
+const std::int32_t toggleUsernameIsActive::ID;
+
+void toggleUsernameIsActive::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "toggleUsernameIsActive");
+ s.store_field("username", username_);
+ s.store_field("is_active", is_active_);
+ s.store_class_end();
+ }
+}
+
+transferChatOwnership::transferChatOwnership()
+ : chat_id_()
+ , user_id_()
+ , password_()
+{}
+
+transferChatOwnership::transferChatOwnership(int53 chat_id_, int53 user_id_, string const &password_)
+ : chat_id_(chat_id_)
+ , user_id_(user_id_)
+ , password_(password_)
+{}
+
+const std::int32_t transferChatOwnership::ID;
+
+void transferChatOwnership::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "transferChatOwnership");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("user_id", user_id_);
+ s.store_field("password", password_);
+ s.store_class_end();
+ }
+}
+
+translateText::translateText()
+ : text_()
+ , from_language_code_()
+ , to_language_code_()
+{}
+
+translateText::translateText(string const &text_, string const &from_language_code_, string const &to_language_code_)
+ : text_(text_)
+ , from_language_code_(from_language_code_)
+ , to_language_code_(to_language_code_)
+{}
+
+const std::int32_t translateText::ID;
+
+void translateText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "translateText");
+ s.store_field("text", text_);
+ s.store_field("from_language_code", from_language_code_);
+ s.store_field("to_language_code", to_language_code_);
+ s.store_class_end();
+ }
+}
+
+unpinAllChatMessages::unpinAllChatMessages()
+ : chat_id_()
+{}
+
+unpinAllChatMessages::unpinAllChatMessages(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t unpinAllChatMessages::ID;
+
+void unpinAllChatMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "unpinAllChatMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+unpinAllMessageThreadMessages::unpinAllMessageThreadMessages()
+ : chat_id_()
+ , message_thread_id_()
+{}
+
+unpinAllMessageThreadMessages::unpinAllMessageThreadMessages(int53 chat_id_, int53 message_thread_id_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+{}
+
+const std::int32_t unpinAllMessageThreadMessages::ID;
+
+void unpinAllMessageThreadMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "unpinAllMessageThreadMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ s.store_class_end();
+ }
+}
+
+unpinChatMessage::unpinChatMessage()
+ : chat_id_()
+ , message_id_()
+{}
+
+unpinChatMessage::unpinChatMessage(int53 chat_id_, int53 message_id_)
+ : chat_id_(chat_id_)
+ , message_id_(message_id_)
+{}
+
+const std::int32_t unpinChatMessage::ID;
+
+void unpinChatMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "unpinChatMessage");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_id", message_id_);
+ s.store_class_end();
+ }
+}
+
+upgradeBasicGroupChatToSupergroupChat::upgradeBasicGroupChatToSupergroupChat()
+ : chat_id_()
+{}
+
+upgradeBasicGroupChatToSupergroupChat::upgradeBasicGroupChatToSupergroupChat(int53 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t upgradeBasicGroupChatToSupergroupChat::ID;
+
+void upgradeBasicGroupChatToSupergroupChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upgradeBasicGroupChatToSupergroupChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+uploadStickerFile::uploadStickerFile()
+ : user_id_()
+ , sticker_()
+{}
+
+uploadStickerFile::uploadStickerFile(int53 user_id_, object_ptr<inputSticker> &&sticker_)
+ : user_id_(user_id_)
+ , sticker_(std::move(sticker_))
+{}
+
+const std::int32_t uploadStickerFile::ID;
+
+void uploadStickerFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "uploadStickerFile");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+validateOrderInfo::validateOrderInfo()
+ : input_invoice_()
+ , order_info_()
+ , allow_save_()
+{}
+
+validateOrderInfo::validateOrderInfo(object_ptr<InputInvoice> &&input_invoice_, object_ptr<orderInfo> &&order_info_, bool allow_save_)
+ : input_invoice_(std::move(input_invoice_))
+ , order_info_(std::move(order_info_))
+ , allow_save_(allow_save_)
+{}
+
+const std::int32_t validateOrderInfo::ID;
+
+void validateOrderInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "validateOrderInfo");
+ s.store_object_field("input_invoice", static_cast<const BaseObject *>(input_invoice_.get()));
+ s.store_object_field("order_info", static_cast<const BaseObject *>(order_info_.get()));
+ s.store_field("allow_save", allow_save_);
+ s.store_class_end();
+ }
+}
+
+viewMessages::viewMessages()
+ : chat_id_()
+ , message_thread_id_()
+ , message_ids_()
+ , force_read_()
+{}
+
+viewMessages::viewMessages(int53 chat_id_, int53 message_thread_id_, array<int53> &&message_ids_, bool force_read_)
+ : chat_id_(chat_id_)
+ , message_thread_id_(message_thread_id_)
+ , message_ids_(std::move(message_ids_))
+ , force_read_(force_read_)
+{}
+
+const std::int32_t viewMessages::ID;
+
+void viewMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "viewMessages");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message_thread_id", message_thread_id_);
+ { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("force_read", force_read_);
+ s.store_class_end();
+ }
+}
+
+viewPremiumFeature::viewPremiumFeature()
+ : feature_()
+{}
+
+viewPremiumFeature::viewPremiumFeature(object_ptr<PremiumFeature> &&feature_)
+ : feature_(std::move(feature_))
+{}
+
+const std::int32_t viewPremiumFeature::ID;
+
+void viewPremiumFeature::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "viewPremiumFeature");
+ s.store_object_field("feature", static_cast<const BaseObject *>(feature_.get()));
+ s.store_class_end();
+ }
+}
+
+viewTrendingStickerSets::viewTrendingStickerSets()
+ : sticker_set_ids_()
+{}
+
+viewTrendingStickerSets::viewTrendingStickerSets(array<int64> &&sticker_set_ids_)
+ : sticker_set_ids_(std::move(sticker_set_ids_))
+{}
+
+const std::int32_t viewTrendingStickerSets::ID;
+
+void viewTrendingStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "viewTrendingStickerSets");
+ { s.store_vector_begin("sticker_set_ids", sticker_set_ids_.size()); for (const auto &_value : sticker_set_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+writeGeneratedFilePart::writeGeneratedFilePart()
+ : generation_id_()
+ , offset_()
+ , data_()
+{}
+
+writeGeneratedFilePart::writeGeneratedFilePart(int64 generation_id_, int53 offset_, bytes const &data_)
+ : generation_id_(generation_id_)
+ , offset_(offset_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t writeGeneratedFilePart::ID;
+
+void writeGeneratedFilePart::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "writeGeneratedFilePart");
+ s.store_field("generation_id", generation_id_);
+ s.store_field("offset", offset_);
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+} // namespace td_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.h b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.h
new file mode 100644
index 0000000000..7c2724d39a
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.h
@@ -0,0 +1,29772 @@
+#pragma once
+
+#include "td/tl/TlObject.h"
+
+#include <string>
+
+#include <cstdint>
+#include <utility>
+#include <vector>
+
+namespace td {
+class TlStorerToString;
+
+namespace td_api {
+
+using int32 = std::int32_t;
+using int53 = std::int64_t;
+using int64 = std::int64_t;
+
+using string = std::string;
+
+using bytes = std::string;
+
+template <class Type>
+using array = std::vector<Type>;
+
+using BaseObject = ::td::TlObject;
+
+template <class Type>
+using object_ptr = ::td::tl_object_ptr<Type>;
+
+template <class Type, class... Args>
+object_ptr<Type> make_object(Args &&... args) {
+ return object_ptr<Type>(new Type(std::forward<Args>(args)...));
+}
+
+template <class ToType, class FromType>
+object_ptr<ToType> move_object_as(FromType &&from) {
+ return object_ptr<ToType>(static_cast<ToType *>(from.release()));
+}
+
+std::string to_string(const BaseObject &value);
+
+template <class T>
+std::string to_string(const object_ptr<T> &value) {
+ if (value == nullptr) {
+ return "null";
+ }
+
+ return to_string(*value);
+}
+
+template <class T>
+std::string to_string(const std::vector<object_ptr<T>> &values) {
+ std::string result = "{\n";
+ for (const auto &value : values) {
+ if (value == nullptr) {
+ result += "null\n";
+ } else {
+ result += to_string(*value);
+ }
+ }
+ result += "}\n";
+ return result;
+}
+
+class accountTtl;
+
+class addedReaction;
+
+class addedReactions;
+
+class address;
+
+class animatedChatPhoto;
+
+class animatedEmoji;
+
+class animation;
+
+class animations;
+
+class attachmentMenuBot;
+
+class attachmentMenuBotColor;
+
+class audio;
+
+class authenticationCodeInfo;
+
+class AuthenticationCodeType;
+
+class AuthorizationState;
+
+class autoDownloadSettings;
+
+class autoDownloadSettingsPresets;
+
+class availableReaction;
+
+class availableReactions;
+
+class background;
+
+class BackgroundFill;
+
+class BackgroundType;
+
+class backgrounds;
+
+class bankCardActionOpenUrl;
+
+class bankCardInfo;
+
+class basicGroup;
+
+class basicGroupFullInfo;
+
+class botCommand;
+
+class BotCommandScope;
+
+class botCommands;
+
+class botInfo;
+
+class botMenuButton;
+
+class call;
+
+class CallDiscardReason;
+
+class callId;
+
+class CallProblem;
+
+class callProtocol;
+
+class callServer;
+
+class CallServerType;
+
+class CallState;
+
+class callbackQueryAnswer;
+
+class CallbackQueryPayload;
+
+class CanTransferOwnershipResult;
+
+class chat;
+
+class ChatAction;
+
+class ChatActionBar;
+
+class chatAdministrator;
+
+class chatAdministratorRights;
+
+class chatAdministrators;
+
+class ChatAvailableReactions;
+
+class chatEvent;
+
+class ChatEventAction;
+
+class chatEventLogFilters;
+
+class chatEvents;
+
+class chatFilter;
+
+class chatFilterInfo;
+
+class chatInviteLink;
+
+class chatInviteLinkCount;
+
+class chatInviteLinkCounts;
+
+class chatInviteLinkInfo;
+
+class chatInviteLinkMember;
+
+class chatInviteLinkMembers;
+
+class chatInviteLinks;
+
+class chatJoinRequest;
+
+class chatJoinRequests;
+
+class chatJoinRequestsInfo;
+
+class ChatList;
+
+class chatLists;
+
+class chatLocation;
+
+class chatMember;
+
+class ChatMemberStatus;
+
+class chatMembers;
+
+class ChatMembersFilter;
+
+class chatMessageSender;
+
+class chatMessageSenders;
+
+class chatNearby;
+
+class chatNotificationSettings;
+
+class chatPermissions;
+
+class chatPhoto;
+
+class chatPhotoInfo;
+
+class chatPhotos;
+
+class chatPosition;
+
+class ChatReportReason;
+
+class ChatSource;
+
+class ChatStatistics;
+
+class chatStatisticsAdministratorActionsInfo;
+
+class chatStatisticsInviterInfo;
+
+class chatStatisticsMessageInteractionInfo;
+
+class chatStatisticsMessageSenderInfo;
+
+class chatTheme;
+
+class ChatType;
+
+class chats;
+
+class chatsNearby;
+
+class CheckChatUsernameResult;
+
+class CheckStickerSetNameResult;
+
+class closedVectorPath;
+
+class connectedWebsite;
+
+class connectedWebsites;
+
+class ConnectionState;
+
+class contact;
+
+class count;
+
+class countries;
+
+class countryInfo;
+
+class customRequestResult;
+
+class databaseStatistics;
+
+class date;
+
+class dateRange;
+
+class datedFile;
+
+class deepLinkInfo;
+
+class DeviceToken;
+
+class DiceStickers;
+
+class document;
+
+class downloadedFileCounts;
+
+class draftMessage;
+
+class EmailAddressAuthentication;
+
+class emailAddressAuthenticationCodeInfo;
+
+class emojiReaction;
+
+class emojiStatus;
+
+class emojiStatuses;
+
+class emojis;
+
+class encryptedCredentials;
+
+class encryptedPassportElement;
+
+class error;
+
+class file;
+
+class fileDownload;
+
+class fileDownloadedPrefixSize;
+
+class filePart;
+
+class FileType;
+
+class formattedText;
+
+class forumTopic;
+
+class forumTopicIcon;
+
+class forumTopicInfo;
+
+class foundFileDownloads;
+
+class foundMessages;
+
+class game;
+
+class gameHighScore;
+
+class gameHighScores;
+
+class groupCall;
+
+class groupCallId;
+
+class groupCallParticipant;
+
+class groupCallParticipantVideoInfo;
+
+class groupCallRecentSpeaker;
+
+class groupCallStream;
+
+class groupCallStreams;
+
+class GroupCallVideoQuality;
+
+class groupCallVideoSourceGroup;
+
+class hashtags;
+
+class httpUrl;
+
+class identityDocument;
+
+class importedContacts;
+
+class inlineKeyboardButton;
+
+class InlineKeyboardButtonType;
+
+class InlineQueryResult;
+
+class inlineQueryResults;
+
+class InputBackground;
+
+class InputChatPhoto;
+
+class InputCredentials;
+
+class InputFile;
+
+class inputIdentityDocument;
+
+class InputInlineQueryResult;
+
+class InputInvoice;
+
+class InputMessageContent;
+
+class InputPassportElement;
+
+class inputPassportElementError;
+
+class InputPassportElementErrorSource;
+
+class inputPersonalDocument;
+
+class inputSticker;
+
+class inputThumbnail;
+
+class InternalLinkType;
+
+class invoice;
+
+class jsonObjectMember;
+
+class JsonValue;
+
+class keyboardButton;
+
+class KeyboardButtonType;
+
+class labeledPricePart;
+
+class languagePackInfo;
+
+class languagePackString;
+
+class LanguagePackStringValue;
+
+class languagePackStrings;
+
+class localFile;
+
+class localizationTargetInfo;
+
+class location;
+
+class LogStream;
+
+class logTags;
+
+class logVerbosityLevel;
+
+class LoginUrlInfo;
+
+class MaskPoint;
+
+class maskPosition;
+
+class message;
+
+class messageCalendar;
+
+class messageCalendarDay;
+
+class MessageContent;
+
+class messageCopyOptions;
+
+class MessageExtendedMedia;
+
+class MessageFileType;
+
+class messageForwardInfo;
+
+class MessageForwardOrigin;
+
+class messageInteractionInfo;
+
+class messageLink;
+
+class messageLinkInfo;
+
+class messagePosition;
+
+class messagePositions;
+
+class messageReaction;
+
+class messageReplyInfo;
+
+class MessageSchedulingState;
+
+class messageSendOptions;
+
+class MessageSender;
+
+class messageSenders;
+
+class MessageSendingState;
+
+class messageStatistics;
+
+class messageThreadInfo;
+
+class messages;
+
+class minithumbnail;
+
+class networkStatistics;
+
+class NetworkStatisticsEntry;
+
+class NetworkType;
+
+class notification;
+
+class notificationGroup;
+
+class NotificationGroupType;
+
+class NotificationSettingsScope;
+
+class notificationSound;
+
+class notificationSounds;
+
+class NotificationType;
+
+class ok;
+
+class OptionValue;
+
+class orderInfo;
+
+class PageBlock;
+
+class pageBlockCaption;
+
+class PageBlockHorizontalAlignment;
+
+class pageBlockListItem;
+
+class pageBlockRelatedArticle;
+
+class pageBlockTableCell;
+
+class PageBlockVerticalAlignment;
+
+class passportAuthorizationForm;
+
+class PassportElement;
+
+class passportElementError;
+
+class PassportElementErrorSource;
+
+class PassportElementType;
+
+class passportElements;
+
+class passportElementsWithErrors;
+
+class passportRequiredElement;
+
+class passportSuitableElement;
+
+class passwordState;
+
+class paymentForm;
+
+class paymentOption;
+
+class PaymentProvider;
+
+class paymentReceipt;
+
+class paymentResult;
+
+class personalDetails;
+
+class personalDocument;
+
+class phoneNumberAuthenticationSettings;
+
+class phoneNumberInfo;
+
+class photo;
+
+class photoSize;
+
+class point;
+
+class poll;
+
+class pollOption;
+
+class PollType;
+
+class PremiumFeature;
+
+class premiumFeaturePromotionAnimation;
+
+class premiumFeatures;
+
+class premiumLimit;
+
+class PremiumLimitType;
+
+class premiumPaymentOption;
+
+class PremiumSource;
+
+class premiumState;
+
+class profilePhoto;
+
+class proxies;
+
+class proxy;
+
+class ProxyType;
+
+class PublicChatType;
+
+class PushMessageContent;
+
+class pushReceiverId;
+
+class ReactionType;
+
+class recommendedChatFilter;
+
+class recommendedChatFilters;
+
+class recoveryEmailAddress;
+
+class remoteFile;
+
+class ReplyMarkup;
+
+class ResetPasswordResult;
+
+class RichText;
+
+class rtmpUrl;
+
+class savedCredentials;
+
+class scopeNotificationSettings;
+
+class SearchMessagesFilter;
+
+class seconds;
+
+class secretChat;
+
+class SecretChatState;
+
+class sentWebAppMessage;
+
+class session;
+
+class SessionType;
+
+class sessions;
+
+class shippingOption;
+
+class SpeechRecognitionResult;
+
+class sponsoredMessage;
+
+class sponsoredMessages;
+
+class StatisticalGraph;
+
+class statisticalValue;
+
+class sticker;
+
+class StickerFormat;
+
+class stickerSet;
+
+class stickerSetInfo;
+
+class stickerSets;
+
+class StickerType;
+
+class stickers;
+
+class storageStatistics;
+
+class storageStatisticsByChat;
+
+class storageStatisticsByFileType;
+
+class storageStatisticsFast;
+
+class StorePaymentPurpose;
+
+class SuggestedAction;
+
+class supergroup;
+
+class supergroupFullInfo;
+
+class SupergroupMembersFilter;
+
+class tMeUrl;
+
+class TMeUrlType;
+
+class tMeUrls;
+
+class TargetChat;
+
+class temporaryPasswordState;
+
+class termsOfService;
+
+class testBytes;
+
+class testInt;
+
+class testString;
+
+class testVectorInt;
+
+class testVectorIntObject;
+
+class testVectorString;
+
+class testVectorStringObject;
+
+class text;
+
+class textEntities;
+
+class textEntity;
+
+class TextEntityType;
+
+class TextParseMode;
+
+class themeParameters;
+
+class themeSettings;
+
+class thumbnail;
+
+class ThumbnailFormat;
+
+class TopChatCategory;
+
+class trendingStickerSets;
+
+class unreadReaction;
+
+class Update;
+
+class updates;
+
+class user;
+
+class userFullInfo;
+
+class UserPrivacySetting;
+
+class UserPrivacySettingRule;
+
+class userPrivacySettingRules;
+
+class UserStatus;
+
+class userSupportInfo;
+
+class UserType;
+
+class usernames;
+
+class users;
+
+class validatedOrderInfo;
+
+class VectorPathCommand;
+
+class venue;
+
+class video;
+
+class videoChat;
+
+class videoNote;
+
+class voiceNote;
+
+class webAppInfo;
+
+class webPage;
+
+class webPageInstantView;
+
+class Object;
+
+class Object: public TlObject {
+ public:
+};
+
+class Function: public TlObject {
+ public:
+};
+
+class accountTtl final : public Object {
+ public:
+ int32 days_;
+
+ accountTtl();
+
+ explicit accountTtl(int32 days_);
+
+ static const std::int32_t ID = 1324495492;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addedReaction final : public Object {
+ public:
+ object_ptr<ReactionType> type_;
+ object_ptr<MessageSender> sender_id_;
+
+ addedReaction();
+
+ addedReaction(object_ptr<ReactionType> &&type_, object_ptr<MessageSender> &&sender_id_);
+
+ static const std::int32_t ID = -1130587313;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addedReactions final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<addedReaction>> reactions_;
+ string next_offset_;
+
+ addedReactions();
+
+ addedReactions(int32 total_count_, array<object_ptr<addedReaction>> &&reactions_, string const &next_offset_);
+
+ static const std::int32_t ID = 226352304;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class address final : public Object {
+ public:
+ string country_code_;
+ string state_;
+ string city_;
+ string street_line1_;
+ string street_line2_;
+ string postal_code_;
+
+ address();
+
+ address(string const &country_code_, string const &state_, string const &city_, string const &street_line1_, string const &street_line2_, string const &postal_code_);
+
+ static const std::int32_t ID = -2043654342;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class animatedChatPhoto final : public Object {
+ public:
+ int32 length_;
+ object_ptr<file> file_;
+ double main_frame_timestamp_;
+
+ animatedChatPhoto();
+
+ animatedChatPhoto(int32 length_, object_ptr<file> &&file_, double main_frame_timestamp_);
+
+ static const std::int32_t ID = 191994926;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class animatedEmoji final : public Object {
+ public:
+ object_ptr<sticker> sticker_;
+ int32 sticker_width_;
+ int32 sticker_height_;
+ int32 fitzpatrick_type_;
+ object_ptr<file> sound_;
+
+ animatedEmoji();
+
+ animatedEmoji(object_ptr<sticker> &&sticker_, int32 sticker_width_, int32 sticker_height_, int32 fitzpatrick_type_, object_ptr<file> &&sound_);
+
+ static const std::int32_t ID = 1378918079;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class animation final : public Object {
+ public:
+ int32 duration_;
+ int32 width_;
+ int32 height_;
+ string file_name_;
+ string mime_type_;
+ bool has_stickers_;
+ object_ptr<minithumbnail> minithumbnail_;
+ object_ptr<thumbnail> thumbnail_;
+ object_ptr<file> animation_;
+
+ animation();
+
+ animation(int32 duration_, int32 width_, int32 height_, string const &file_name_, string const &mime_type_, bool has_stickers_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&animation_);
+
+ static const std::int32_t ID = -872359106;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class animations final : public Object {
+ public:
+ array<object_ptr<animation>> animations_;
+
+ animations();
+
+ explicit animations(array<object_ptr<animation>> &&animations_);
+
+ static const std::int32_t ID = 344216945;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachmentMenuBot final : public Object {
+ public:
+ int53 bot_user_id_;
+ bool supports_self_chat_;
+ bool supports_user_chats_;
+ bool supports_bot_chats_;
+ bool supports_group_chats_;
+ bool supports_channel_chats_;
+ bool supports_settings_;
+ string name_;
+ object_ptr<attachmentMenuBotColor> name_color_;
+ object_ptr<file> default_icon_;
+ object_ptr<file> ios_static_icon_;
+ object_ptr<file> ios_animated_icon_;
+ object_ptr<file> android_icon_;
+ object_ptr<file> macos_icon_;
+ object_ptr<attachmentMenuBotColor> icon_color_;
+ object_ptr<file> web_app_placeholder_;
+
+ attachmentMenuBot();
+
+ attachmentMenuBot(int53 bot_user_id_, bool supports_self_chat_, bool supports_user_chats_, bool supports_bot_chats_, bool supports_group_chats_, bool supports_channel_chats_, bool supports_settings_, string const &name_, object_ptr<attachmentMenuBotColor> &&name_color_, object_ptr<file> &&default_icon_, object_ptr<file> &&ios_static_icon_, object_ptr<file> &&ios_animated_icon_, object_ptr<file> &&android_icon_, object_ptr<file> &&macos_icon_, object_ptr<attachmentMenuBotColor> &&icon_color_, object_ptr<file> &&web_app_placeholder_);
+
+ static const std::int32_t ID = -1566056904;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachmentMenuBotColor final : public Object {
+ public:
+ int32 light_color_;
+ int32 dark_color_;
+
+ attachmentMenuBotColor();
+
+ attachmentMenuBotColor(int32 light_color_, int32 dark_color_);
+
+ static const std::int32_t ID = 1680039612;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class audio final : public Object {
+ public:
+ int32 duration_;
+ string title_;
+ string performer_;
+ string file_name_;
+ string mime_type_;
+ object_ptr<minithumbnail> album_cover_minithumbnail_;
+ object_ptr<thumbnail> album_cover_thumbnail_;
+ array<object_ptr<thumbnail>> external_album_covers_;
+ object_ptr<file> audio_;
+
+ audio();
+
+ audio(int32 duration_, string const &title_, string const &performer_, string const &file_name_, string const &mime_type_, object_ptr<minithumbnail> &&album_cover_minithumbnail_, object_ptr<thumbnail> &&album_cover_thumbnail_, array<object_ptr<thumbnail>> &&external_album_covers_, object_ptr<file> &&audio_);
+
+ static const std::int32_t ID = -166398841;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authenticationCodeInfo final : public Object {
+ public:
+ string phone_number_;
+ object_ptr<AuthenticationCodeType> type_;
+ object_ptr<AuthenticationCodeType> next_type_;
+ int32 timeout_;
+
+ authenticationCodeInfo();
+
+ authenticationCodeInfo(string const &phone_number_, object_ptr<AuthenticationCodeType> &&type_, object_ptr<AuthenticationCodeType> &&next_type_, int32 timeout_);
+
+ static const std::int32_t ID = -860345416;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class AuthenticationCodeType: public Object {
+ public:
+};
+
+class authenticationCodeTypeTelegramMessage final : public AuthenticationCodeType {
+ public:
+ int32 length_;
+
+ authenticationCodeTypeTelegramMessage();
+
+ explicit authenticationCodeTypeTelegramMessage(int32 length_);
+
+ static const std::int32_t ID = 2079628074;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authenticationCodeTypeSms final : public AuthenticationCodeType {
+ public:
+ int32 length_;
+
+ authenticationCodeTypeSms();
+
+ explicit authenticationCodeTypeSms(int32 length_);
+
+ static const std::int32_t ID = 962650760;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authenticationCodeTypeCall final : public AuthenticationCodeType {
+ public:
+ int32 length_;
+
+ authenticationCodeTypeCall();
+
+ explicit authenticationCodeTypeCall(int32 length_);
+
+ static const std::int32_t ID = 1636265063;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authenticationCodeTypeFlashCall final : public AuthenticationCodeType {
+ public:
+ string pattern_;
+
+ authenticationCodeTypeFlashCall();
+
+ explicit authenticationCodeTypeFlashCall(string const &pattern_);
+
+ static const std::int32_t ID = 1395882402;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authenticationCodeTypeMissedCall final : public AuthenticationCodeType {
+ public:
+ string phone_number_prefix_;
+ int32 length_;
+
+ authenticationCodeTypeMissedCall();
+
+ authenticationCodeTypeMissedCall(string const &phone_number_prefix_, int32 length_);
+
+ static const std::int32_t ID = 700123783;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class AuthorizationState: public Object {
+ public:
+};
+
+class authorizationStateWaitTdlibParameters final : public AuthorizationState {
+ public:
+
+ authorizationStateWaitTdlibParameters();
+
+ static const std::int32_t ID = 904720988;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateWaitPhoneNumber final : public AuthorizationState {
+ public:
+
+ authorizationStateWaitPhoneNumber();
+
+ static const std::int32_t ID = 306402531;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateWaitEmailAddress final : public AuthorizationState {
+ public:
+ bool allow_apple_id_;
+ bool allow_google_id_;
+
+ authorizationStateWaitEmailAddress();
+
+ authorizationStateWaitEmailAddress(bool allow_apple_id_, bool allow_google_id_);
+
+ static const std::int32_t ID = 1040478663;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateWaitEmailCode final : public AuthorizationState {
+ public:
+ bool allow_apple_id_;
+ bool allow_google_id_;
+ object_ptr<emailAddressAuthenticationCodeInfo> code_info_;
+ int32 next_phone_number_authorization_date_;
+
+ authorizationStateWaitEmailCode();
+
+ authorizationStateWaitEmailCode(bool allow_apple_id_, bool allow_google_id_, object_ptr<emailAddressAuthenticationCodeInfo> &&code_info_, int32 next_phone_number_authorization_date_);
+
+ static const std::int32_t ID = 174262505;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateWaitCode final : public AuthorizationState {
+ public:
+ object_ptr<authenticationCodeInfo> code_info_;
+
+ authorizationStateWaitCode();
+
+ explicit authorizationStateWaitCode(object_ptr<authenticationCodeInfo> &&code_info_);
+
+ static const std::int32_t ID = 52643073;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateWaitOtherDeviceConfirmation final : public AuthorizationState {
+ public:
+ string link_;
+
+ authorizationStateWaitOtherDeviceConfirmation();
+
+ explicit authorizationStateWaitOtherDeviceConfirmation(string const &link_);
+
+ static const std::int32_t ID = 860166378;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateWaitRegistration final : public AuthorizationState {
+ public:
+ object_ptr<termsOfService> terms_of_service_;
+
+ authorizationStateWaitRegistration();
+
+ explicit authorizationStateWaitRegistration(object_ptr<termsOfService> &&terms_of_service_);
+
+ static const std::int32_t ID = 550350511;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateWaitPassword final : public AuthorizationState {
+ public:
+ string password_hint_;
+ bool has_recovery_email_address_;
+ string recovery_email_address_pattern_;
+
+ authorizationStateWaitPassword();
+
+ authorizationStateWaitPassword(string const &password_hint_, bool has_recovery_email_address_, string const &recovery_email_address_pattern_);
+
+ static const std::int32_t ID = 187548796;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateReady final : public AuthorizationState {
+ public:
+
+ authorizationStateReady();
+
+ static const std::int32_t ID = -1834871737;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateLoggingOut final : public AuthorizationState {
+ public:
+
+ authorizationStateLoggingOut();
+
+ static const std::int32_t ID = 154449270;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateClosing final : public AuthorizationState {
+ public:
+
+ authorizationStateClosing();
+
+ static const std::int32_t ID = 445855311;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorizationStateClosed final : public AuthorizationState {
+ public:
+
+ authorizationStateClosed();
+
+ static const std::int32_t ID = 1526047584;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class autoDownloadSettings final : public Object {
+ public:
+ bool is_auto_download_enabled_;
+ int32 max_photo_file_size_;
+ int53 max_video_file_size_;
+ int53 max_other_file_size_;
+ int32 video_upload_bitrate_;
+ bool preload_large_videos_;
+ bool preload_next_audio_;
+ bool use_less_data_for_calls_;
+
+ autoDownloadSettings();
+
+ autoDownloadSettings(bool is_auto_download_enabled_, int32 max_photo_file_size_, int53 max_video_file_size_, int53 max_other_file_size_, int32 video_upload_bitrate_, bool preload_large_videos_, bool preload_next_audio_, bool use_less_data_for_calls_);
+
+ static const std::int32_t ID = -813805749;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class autoDownloadSettingsPresets final : public Object {
+ public:
+ object_ptr<autoDownloadSettings> low_;
+ object_ptr<autoDownloadSettings> medium_;
+ object_ptr<autoDownloadSettings> high_;
+
+ autoDownloadSettingsPresets();
+
+ autoDownloadSettingsPresets(object_ptr<autoDownloadSettings> &&low_, object_ptr<autoDownloadSettings> &&medium_, object_ptr<autoDownloadSettings> &&high_);
+
+ static const std::int32_t ID = -782099166;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class availableReaction final : public Object {
+ public:
+ object_ptr<ReactionType> type_;
+ bool needs_premium_;
+
+ availableReaction();
+
+ availableReaction(object_ptr<ReactionType> &&type_, bool needs_premium_);
+
+ static const std::int32_t ID = -117292153;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class availableReactions final : public Object {
+ public:
+ array<object_ptr<availableReaction>> top_reactions_;
+ array<object_ptr<availableReaction>> recent_reactions_;
+ array<object_ptr<availableReaction>> popular_reactions_;
+ bool allow_custom_emoji_;
+
+ availableReactions();
+
+ availableReactions(array<object_ptr<availableReaction>> &&top_reactions_, array<object_ptr<availableReaction>> &&recent_reactions_, array<object_ptr<availableReaction>> &&popular_reactions_, bool allow_custom_emoji_);
+
+ static const std::int32_t ID = 1995943616;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class background final : public Object {
+ public:
+ int64 id_;
+ bool is_default_;
+ bool is_dark_;
+ string name_;
+ object_ptr<document> document_;
+ object_ptr<BackgroundType> type_;
+
+ background();
+
+ background(int64 id_, bool is_default_, bool is_dark_, string const &name_, object_ptr<document> &&document_, object_ptr<BackgroundType> &&type_);
+
+ static const std::int32_t ID = -429971172;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class BackgroundFill: public Object {
+ public:
+};
+
+class backgroundFillSolid final : public BackgroundFill {
+ public:
+ int32 color_;
+
+ backgroundFillSolid();
+
+ explicit backgroundFillSolid(int32 color_);
+
+ static const std::int32_t ID = 1010678813;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class backgroundFillGradient final : public BackgroundFill {
+ public:
+ int32 top_color_;
+ int32 bottom_color_;
+ int32 rotation_angle_;
+
+ backgroundFillGradient();
+
+ backgroundFillGradient(int32 top_color_, int32 bottom_color_, int32 rotation_angle_);
+
+ static const std::int32_t ID = -1839206017;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class backgroundFillFreeformGradient final : public BackgroundFill {
+ public:
+ array<int32> colors_;
+
+ backgroundFillFreeformGradient();
+
+ explicit backgroundFillFreeformGradient(array<int32> &&colors_);
+
+ static const std::int32_t ID = -1145469255;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class BackgroundType: public Object {
+ public:
+};
+
+class backgroundTypeWallpaper final : public BackgroundType {
+ public:
+ bool is_blurred_;
+ bool is_moving_;
+
+ backgroundTypeWallpaper();
+
+ backgroundTypeWallpaper(bool is_blurred_, bool is_moving_);
+
+ static const std::int32_t ID = 1972128891;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class backgroundTypePattern final : public BackgroundType {
+ public:
+ object_ptr<BackgroundFill> fill_;
+ int32 intensity_;
+ bool is_inverted_;
+ bool is_moving_;
+
+ backgroundTypePattern();
+
+ backgroundTypePattern(object_ptr<BackgroundFill> &&fill_, int32 intensity_, bool is_inverted_, bool is_moving_);
+
+ static const std::int32_t ID = 1290213117;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class backgroundTypeFill final : public BackgroundType {
+ public:
+ object_ptr<BackgroundFill> fill_;
+
+ backgroundTypeFill();
+
+ explicit backgroundTypeFill(object_ptr<BackgroundFill> &&fill_);
+
+ static const std::int32_t ID = 993008684;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class backgrounds final : public Object {
+ public:
+ array<object_ptr<background>> backgrounds_;
+
+ backgrounds();
+
+ explicit backgrounds(array<object_ptr<background>> &&backgrounds_);
+
+ static const std::int32_t ID = 724728704;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class bankCardActionOpenUrl final : public Object {
+ public:
+ string text_;
+ string url_;
+
+ bankCardActionOpenUrl();
+
+ bankCardActionOpenUrl(string const &text_, string const &url_);
+
+ static const std::int32_t ID = -196454267;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class bankCardInfo final : public Object {
+ public:
+ string title_;
+ array<object_ptr<bankCardActionOpenUrl>> actions_;
+
+ bankCardInfo();
+
+ bankCardInfo(string const &title_, array<object_ptr<bankCardActionOpenUrl>> &&actions_);
+
+ static const std::int32_t ID = -2116647730;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class basicGroup final : public Object {
+ public:
+ int53 id_;
+ int32 member_count_;
+ object_ptr<ChatMemberStatus> status_;
+ bool is_active_;
+ int53 upgraded_to_supergroup_id_;
+
+ basicGroup();
+
+ basicGroup(int53 id_, int32 member_count_, object_ptr<ChatMemberStatus> &&status_, bool is_active_, int53 upgraded_to_supergroup_id_);
+
+ static const std::int32_t ID = -194767217;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class basicGroupFullInfo final : public Object {
+ public:
+ object_ptr<chatPhoto> photo_;
+ string description_;
+ int53 creator_user_id_;
+ array<object_ptr<chatMember>> members_;
+ object_ptr<chatInviteLink> invite_link_;
+ array<object_ptr<botCommands>> bot_commands_;
+
+ basicGroupFullInfo();
+
+ basicGroupFullInfo(object_ptr<chatPhoto> &&photo_, string const &description_, int53 creator_user_id_, array<object_ptr<chatMember>> &&members_, object_ptr<chatInviteLink> &&invite_link_, array<object_ptr<botCommands>> &&bot_commands_);
+
+ static const std::int32_t ID = 2022233397;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommand final : public Object {
+ public:
+ string command_;
+ string description_;
+
+ botCommand();
+
+ botCommand(string const &command_, string const &description_);
+
+ static const std::int32_t ID = -1032140601;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class BotCommandScope: public Object {
+ public:
+};
+
+class botCommandScopeDefault final : public BotCommandScope {
+ public:
+
+ botCommandScopeDefault();
+
+ static const std::int32_t ID = 795652779;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopeAllPrivateChats final : public BotCommandScope {
+ public:
+
+ botCommandScopeAllPrivateChats();
+
+ static const std::int32_t ID = -344889543;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopeAllGroupChats final : public BotCommandScope {
+ public:
+
+ botCommandScopeAllGroupChats();
+
+ static const std::int32_t ID = -981088162;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopeAllChatAdministrators final : public BotCommandScope {
+ public:
+
+ botCommandScopeAllChatAdministrators();
+
+ static const std::int32_t ID = 1998329169;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopeChat final : public BotCommandScope {
+ public:
+ int53 chat_id_;
+
+ botCommandScopeChat();
+
+ explicit botCommandScopeChat(int53 chat_id_);
+
+ static const std::int32_t ID = -430234971;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopeChatAdministrators final : public BotCommandScope {
+ public:
+ int53 chat_id_;
+
+ botCommandScopeChatAdministrators();
+
+ explicit botCommandScopeChatAdministrators(int53 chat_id_);
+
+ static const std::int32_t ID = 1119682126;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopeChatMember final : public BotCommandScope {
+ public:
+ int53 chat_id_;
+ int53 user_id_;
+
+ botCommandScopeChatMember();
+
+ botCommandScopeChatMember(int53 chat_id_, int53 user_id_);
+
+ static const std::int32_t ID = -211380494;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommands final : public Object {
+ public:
+ int53 bot_user_id_;
+ array<object_ptr<botCommand>> commands_;
+
+ botCommands();
+
+ botCommands(int53 bot_user_id_, array<object_ptr<botCommand>> &&commands_);
+
+ static const std::int32_t ID = 1741364468;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botInfo final : public Object {
+ public:
+ string share_text_;
+ string description_;
+ object_ptr<photo> photo_;
+ object_ptr<animation> animation_;
+ object_ptr<botMenuButton> menu_button_;
+ array<object_ptr<botCommand>> commands_;
+ object_ptr<chatAdministratorRights> default_group_administrator_rights_;
+ object_ptr<chatAdministratorRights> default_channel_administrator_rights_;
+
+ botInfo();
+
+ botInfo(string const &share_text_, string const &description_, object_ptr<photo> &&photo_, object_ptr<animation> &&animation_, object_ptr<botMenuButton> &&menu_button_, array<object_ptr<botCommand>> &&commands_, object_ptr<chatAdministratorRights> &&default_group_administrator_rights_, object_ptr<chatAdministratorRights> &&default_channel_administrator_rights_);
+
+ static const std::int32_t ID = 429675178;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botMenuButton final : public Object {
+ public:
+ string text_;
+ string url_;
+
+ botMenuButton();
+
+ botMenuButton(string const &text_, string const &url_);
+
+ static const std::int32_t ID = -944407322;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class call final : public Object {
+ public:
+ int32 id_;
+ int53 user_id_;
+ bool is_outgoing_;
+ bool is_video_;
+ object_ptr<CallState> state_;
+
+ call();
+
+ call(int32 id_, int53 user_id_, bool is_outgoing_, bool is_video_, object_ptr<CallState> &&state_);
+
+ static const std::int32_t ID = 920360804;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class CallDiscardReason: public Object {
+ public:
+};
+
+class callDiscardReasonEmpty final : public CallDiscardReason {
+ public:
+
+ callDiscardReasonEmpty();
+
+ static const std::int32_t ID = -1258917949;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callDiscardReasonMissed final : public CallDiscardReason {
+ public:
+
+ callDiscardReasonMissed();
+
+ static const std::int32_t ID = 1680358012;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callDiscardReasonDeclined final : public CallDiscardReason {
+ public:
+
+ callDiscardReasonDeclined();
+
+ static const std::int32_t ID = -1729926094;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callDiscardReasonDisconnected final : public CallDiscardReason {
+ public:
+
+ callDiscardReasonDisconnected();
+
+ static const std::int32_t ID = -1342872670;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callDiscardReasonHungUp final : public CallDiscardReason {
+ public:
+
+ callDiscardReasonHungUp();
+
+ static const std::int32_t ID = 438216166;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callId final : public Object {
+ public:
+ int32 id_;
+
+ callId();
+
+ explicit callId(int32 id_);
+
+ static const std::int32_t ID = 65717769;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class CallProblem: public Object {
+ public:
+};
+
+class callProblemEcho final : public CallProblem {
+ public:
+
+ callProblemEcho();
+
+ static const std::int32_t ID = 801116548;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callProblemNoise final : public CallProblem {
+ public:
+
+ callProblemNoise();
+
+ static const std::int32_t ID = 1053065359;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callProblemInterruptions final : public CallProblem {
+ public:
+
+ callProblemInterruptions();
+
+ static const std::int32_t ID = 1119493218;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callProblemDistortedSpeech final : public CallProblem {
+ public:
+
+ callProblemDistortedSpeech();
+
+ static const std::int32_t ID = 379960581;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callProblemSilentLocal final : public CallProblem {
+ public:
+
+ callProblemSilentLocal();
+
+ static const std::int32_t ID = 253652790;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callProblemSilentRemote final : public CallProblem {
+ public:
+
+ callProblemSilentRemote();
+
+ static const std::int32_t ID = 573634714;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callProblemDropped final : public CallProblem {
+ public:
+
+ callProblemDropped();
+
+ static const std::int32_t ID = -1207311487;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callProblemDistortedVideo final : public CallProblem {
+ public:
+
+ callProblemDistortedVideo();
+
+ static const std::int32_t ID = 385245706;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callProblemPixelatedVideo final : public CallProblem {
+ public:
+
+ callProblemPixelatedVideo();
+
+ static const std::int32_t ID = 2115315411;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callProtocol final : public Object {
+ public:
+ bool udp_p2p_;
+ bool udp_reflector_;
+ int32 min_layer_;
+ int32 max_layer_;
+ array<string> library_versions_;
+
+ callProtocol();
+
+ callProtocol(bool udp_p2p_, bool udp_reflector_, int32 min_layer_, int32 max_layer_, array<string> &&library_versions_);
+
+ static const std::int32_t ID = -1075562897;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callServer final : public Object {
+ public:
+ int64 id_;
+ string ip_address_;
+ string ipv6_address_;
+ int32 port_;
+ object_ptr<CallServerType> type_;
+
+ callServer();
+
+ callServer(int64 id_, string const &ip_address_, string const &ipv6_address_, int32 port_, object_ptr<CallServerType> &&type_);
+
+ static const std::int32_t ID = 1865932695;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class CallServerType: public Object {
+ public:
+};
+
+class callServerTypeTelegramReflector final : public CallServerType {
+ public:
+ bytes peer_tag_;
+ bool is_tcp_;
+
+ callServerTypeTelegramReflector();
+
+ callServerTypeTelegramReflector(bytes const &peer_tag_, bool is_tcp_);
+
+ static const std::int32_t ID = 850343189;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callServerTypeWebrtc final : public CallServerType {
+ public:
+ string username_;
+ string password_;
+ bool supports_turn_;
+ bool supports_stun_;
+
+ callServerTypeWebrtc();
+
+ callServerTypeWebrtc(string const &username_, string const &password_, bool supports_turn_, bool supports_stun_);
+
+ static const std::int32_t ID = 1250622821;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class CallState: public Object {
+ public:
+};
+
+class callStatePending final : public CallState {
+ public:
+ bool is_created_;
+ bool is_received_;
+
+ callStatePending();
+
+ callStatePending(bool is_created_, bool is_received_);
+
+ static const std::int32_t ID = 1073048620;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callStateExchangingKeys final : public CallState {
+ public:
+
+ callStateExchangingKeys();
+
+ static const std::int32_t ID = -1848149403;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callStateReady final : public CallState {
+ public:
+ object_ptr<callProtocol> protocol_;
+ array<object_ptr<callServer>> servers_;
+ string config_;
+ bytes encryption_key_;
+ array<string> emojis_;
+ bool allow_p2p_;
+
+ callStateReady();
+
+ callStateReady(object_ptr<callProtocol> &&protocol_, array<object_ptr<callServer>> &&servers_, string const &config_, bytes const &encryption_key_, array<string> &&emojis_, bool allow_p2p_);
+
+ static const std::int32_t ID = -2000107571;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callStateHangingUp final : public CallState {
+ public:
+
+ callStateHangingUp();
+
+ static const std::int32_t ID = -2133790038;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callStateDiscarded final : public CallState {
+ public:
+ object_ptr<CallDiscardReason> reason_;
+ bool need_rating_;
+ bool need_debug_information_;
+ bool need_log_;
+
+ callStateDiscarded();
+
+ callStateDiscarded(object_ptr<CallDiscardReason> &&reason_, bool need_rating_, bool need_debug_information_, bool need_log_);
+
+ static const std::int32_t ID = 1394310213;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callStateError final : public CallState {
+ public:
+ object_ptr<error> error_;
+
+ callStateError();
+
+ explicit callStateError(object_ptr<error> &&error_);
+
+ static const std::int32_t ID = -975215467;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callbackQueryAnswer final : public Object {
+ public:
+ string text_;
+ bool show_alert_;
+ string url_;
+
+ callbackQueryAnswer();
+
+ callbackQueryAnswer(string const &text_, bool show_alert_, string const &url_);
+
+ static const std::int32_t ID = 360867933;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class CallbackQueryPayload: public Object {
+ public:
+};
+
+class callbackQueryPayloadData final : public CallbackQueryPayload {
+ public:
+ bytes data_;
+
+ callbackQueryPayloadData();
+
+ explicit callbackQueryPayloadData(bytes const &data_);
+
+ static const std::int32_t ID = -1977729946;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callbackQueryPayloadDataWithPassword final : public CallbackQueryPayload {
+ public:
+ string password_;
+ bytes data_;
+
+ callbackQueryPayloadDataWithPassword();
+
+ callbackQueryPayloadDataWithPassword(string const &password_, bytes const &data_);
+
+ static const std::int32_t ID = 1340266738;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class callbackQueryPayloadGame final : public CallbackQueryPayload {
+ public:
+ string game_short_name_;
+
+ callbackQueryPayloadGame();
+
+ explicit callbackQueryPayloadGame(string const &game_short_name_);
+
+ static const std::int32_t ID = 1303571512;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class CanTransferOwnershipResult: public Object {
+ public:
+};
+
+class canTransferOwnershipResultOk final : public CanTransferOwnershipResult {
+ public:
+
+ canTransferOwnershipResultOk();
+
+ static const std::int32_t ID = -89881021;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class canTransferOwnershipResultPasswordNeeded final : public CanTransferOwnershipResult {
+ public:
+
+ canTransferOwnershipResultPasswordNeeded();
+
+ static const std::int32_t ID = 1548372703;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class canTransferOwnershipResultPasswordTooFresh final : public CanTransferOwnershipResult {
+ public:
+ int32 retry_after_;
+
+ canTransferOwnershipResultPasswordTooFresh();
+
+ explicit canTransferOwnershipResultPasswordTooFresh(int32 retry_after_);
+
+ static const std::int32_t ID = 811440913;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class canTransferOwnershipResultSessionTooFresh final : public CanTransferOwnershipResult {
+ public:
+ int32 retry_after_;
+
+ canTransferOwnershipResultSessionTooFresh();
+
+ explicit canTransferOwnershipResultSessionTooFresh(int32 retry_after_);
+
+ static const std::int32_t ID = 984664289;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chat final : public Object {
+ public:
+ int53 id_;
+ object_ptr<ChatType> type_;
+ string title_;
+ object_ptr<chatPhotoInfo> photo_;
+ object_ptr<chatPermissions> permissions_;
+ object_ptr<message> last_message_;
+ array<object_ptr<chatPosition>> positions_;
+ object_ptr<MessageSender> message_sender_id_;
+ bool has_protected_content_;
+ bool is_marked_as_unread_;
+ bool is_blocked_;
+ bool has_scheduled_messages_;
+ bool can_be_deleted_only_for_self_;
+ bool can_be_deleted_for_all_users_;
+ bool can_be_reported_;
+ bool default_disable_notification_;
+ int32 unread_count_;
+ int53 last_read_inbox_message_id_;
+ int53 last_read_outbox_message_id_;
+ int32 unread_mention_count_;
+ int32 unread_reaction_count_;
+ object_ptr<chatNotificationSettings> notification_settings_;
+ object_ptr<ChatAvailableReactions> available_reactions_;
+ int32 message_ttl_;
+ string theme_name_;
+ object_ptr<ChatActionBar> action_bar_;
+ object_ptr<videoChat> video_chat_;
+ object_ptr<chatJoinRequestsInfo> pending_join_requests_;
+ int53 reply_markup_message_id_;
+ object_ptr<draftMessage> draft_message_;
+ string client_data_;
+
+ chat();
+
+ chat(int53 id_, object_ptr<ChatType> &&type_, string const &title_, object_ptr<chatPhotoInfo> &&photo_, object_ptr<chatPermissions> &&permissions_, object_ptr<message> &&last_message_, array<object_ptr<chatPosition>> &&positions_, object_ptr<MessageSender> &&message_sender_id_, bool has_protected_content_, bool is_marked_as_unread_, bool is_blocked_, bool has_scheduled_messages_, bool can_be_deleted_only_for_self_, bool can_be_deleted_for_all_users_, bool can_be_reported_, bool default_disable_notification_, int32 unread_count_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int32 unread_mention_count_, int32 unread_reaction_count_, object_ptr<chatNotificationSettings> &&notification_settings_, object_ptr<ChatAvailableReactions> &&available_reactions_, int32 message_ttl_, string const &theme_name_, object_ptr<ChatActionBar> &&action_bar_, object_ptr<videoChat> &&video_chat_, object_ptr<chatJoinRequestsInfo> &&pending_join_requests_, int53 reply_markup_message_id_, object_ptr<draftMessage> &&draft_message_, string const &client_data_);
+
+ static const std::int32_t ID = -1395697186;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatAction: public Object {
+ public:
+};
+
+class chatActionTyping final : public ChatAction {
+ public:
+
+ chatActionTyping();
+
+ static const std::int32_t ID = 380122167;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionRecordingVideo final : public ChatAction {
+ public:
+
+ chatActionRecordingVideo();
+
+ static const std::int32_t ID = 216553362;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionUploadingVideo final : public ChatAction {
+ public:
+ int32 progress_;
+
+ chatActionUploadingVideo();
+
+ explicit chatActionUploadingVideo(int32 progress_);
+
+ static const std::int32_t ID = 1234185270;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionRecordingVoiceNote final : public ChatAction {
+ public:
+
+ chatActionRecordingVoiceNote();
+
+ static const std::int32_t ID = -808850058;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionUploadingVoiceNote final : public ChatAction {
+ public:
+ int32 progress_;
+
+ chatActionUploadingVoiceNote();
+
+ explicit chatActionUploadingVoiceNote(int32 progress_);
+
+ static const std::int32_t ID = -613643666;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionUploadingPhoto final : public ChatAction {
+ public:
+ int32 progress_;
+
+ chatActionUploadingPhoto();
+
+ explicit chatActionUploadingPhoto(int32 progress_);
+
+ static const std::int32_t ID = 654240583;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionUploadingDocument final : public ChatAction {
+ public:
+ int32 progress_;
+
+ chatActionUploadingDocument();
+
+ explicit chatActionUploadingDocument(int32 progress_);
+
+ static const std::int32_t ID = 167884362;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionChoosingSticker final : public ChatAction {
+ public:
+
+ chatActionChoosingSticker();
+
+ static const std::int32_t ID = 372753697;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionChoosingLocation final : public ChatAction {
+ public:
+
+ chatActionChoosingLocation();
+
+ static const std::int32_t ID = -2017893596;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionChoosingContact final : public ChatAction {
+ public:
+
+ chatActionChoosingContact();
+
+ static const std::int32_t ID = -1222507496;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionStartPlayingGame final : public ChatAction {
+ public:
+
+ chatActionStartPlayingGame();
+
+ static const std::int32_t ID = -865884164;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionRecordingVideoNote final : public ChatAction {
+ public:
+
+ chatActionRecordingVideoNote();
+
+ static const std::int32_t ID = 16523393;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionUploadingVideoNote final : public ChatAction {
+ public:
+ int32 progress_;
+
+ chatActionUploadingVideoNote();
+
+ explicit chatActionUploadingVideoNote(int32 progress_);
+
+ static const std::int32_t ID = 1172364918;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionWatchingAnimations final : public ChatAction {
+ public:
+ string emoji_;
+
+ chatActionWatchingAnimations();
+
+ explicit chatActionWatchingAnimations(string const &emoji_);
+
+ static const std::int32_t ID = 2052990641;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionCancel final : public ChatAction {
+ public:
+
+ chatActionCancel();
+
+ static const std::int32_t ID = 1160523958;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatActionBar: public Object {
+ public:
+};
+
+class chatActionBarReportSpam final : public ChatActionBar {
+ public:
+ bool can_unarchive_;
+
+ chatActionBarReportSpam();
+
+ explicit chatActionBarReportSpam(bool can_unarchive_);
+
+ static const std::int32_t ID = -1312758246;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionBarReportUnrelatedLocation final : public ChatActionBar {
+ public:
+
+ chatActionBarReportUnrelatedLocation();
+
+ static const std::int32_t ID = 758175489;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionBarInviteMembers final : public ChatActionBar {
+ public:
+
+ chatActionBarInviteMembers();
+
+ static const std::int32_t ID = 1985313904;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionBarReportAddBlock final : public ChatActionBar {
+ public:
+ bool can_unarchive_;
+ int32 distance_;
+
+ chatActionBarReportAddBlock();
+
+ chatActionBarReportAddBlock(bool can_unarchive_, int32 distance_);
+
+ static const std::int32_t ID = -914150419;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionBarAddContact final : public ChatActionBar {
+ public:
+
+ chatActionBarAddContact();
+
+ static const std::int32_t ID = -733325295;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionBarSharePhoneNumber final : public ChatActionBar {
+ public:
+
+ chatActionBarSharePhoneNumber();
+
+ static const std::int32_t ID = 35188697;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatActionBarJoinRequest final : public ChatActionBar {
+ public:
+ string title_;
+ bool is_channel_;
+ int32 request_date_;
+
+ chatActionBarJoinRequest();
+
+ chatActionBarJoinRequest(string const &title_, bool is_channel_, int32 request_date_);
+
+ static const std::int32_t ID = 1037140744;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatAdministrator final : public Object {
+ public:
+ int53 user_id_;
+ string custom_title_;
+ bool is_owner_;
+
+ chatAdministrator();
+
+ chatAdministrator(int53 user_id_, string const &custom_title_, bool is_owner_);
+
+ static const std::int32_t ID = 1920449836;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatAdministratorRights final : public Object {
+ public:
+ bool can_manage_chat_;
+ bool can_change_info_;
+ bool can_post_messages_;
+ bool can_edit_messages_;
+ bool can_delete_messages_;
+ bool can_invite_users_;
+ bool can_restrict_members_;
+ bool can_pin_messages_;
+ bool can_manage_topics_;
+ bool can_promote_members_;
+ bool can_manage_video_chats_;
+ bool is_anonymous_;
+
+ chatAdministratorRights();
+
+ chatAdministratorRights(bool can_manage_chat_, bool can_change_info_, bool can_post_messages_, bool can_edit_messages_, bool can_delete_messages_, bool can_invite_users_, bool can_restrict_members_, bool can_pin_messages_, bool can_manage_topics_, bool can_promote_members_, bool can_manage_video_chats_, bool is_anonymous_);
+
+ static const std::int32_t ID = -1384650041;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatAdministrators final : public Object {
+ public:
+ array<object_ptr<chatAdministrator>> administrators_;
+
+ chatAdministrators();
+
+ explicit chatAdministrators(array<object_ptr<chatAdministrator>> &&administrators_);
+
+ static const std::int32_t ID = -2126186435;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatAvailableReactions: public Object {
+ public:
+};
+
+class chatAvailableReactionsAll final : public ChatAvailableReactions {
+ public:
+
+ chatAvailableReactionsAll();
+
+ static const std::int32_t ID = -537887666;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatAvailableReactionsSome final : public ChatAvailableReactions {
+ public:
+ array<object_ptr<ReactionType>> reactions_;
+
+ chatAvailableReactionsSome();
+
+ explicit chatAvailableReactionsSome(array<object_ptr<ReactionType>> &&reactions_);
+
+ static const std::int32_t ID = -640810821;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEvent final : public Object {
+ public:
+ int64 id_;
+ int32 date_;
+ object_ptr<MessageSender> member_id_;
+ object_ptr<ChatEventAction> action_;
+
+ chatEvent();
+
+ chatEvent(int64 id_, int32 date_, object_ptr<MessageSender> &&member_id_, object_ptr<ChatEventAction> &&action_);
+
+ static const std::int32_t ID = -652102704;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatEventAction: public Object {
+ public:
+};
+
+class chatEventMessageEdited final : public ChatEventAction {
+ public:
+ object_ptr<message> old_message_;
+ object_ptr<message> new_message_;
+
+ chatEventMessageEdited();
+
+ chatEventMessageEdited(object_ptr<message> &&old_message_, object_ptr<message> &&new_message_);
+
+ static const std::int32_t ID = -430967304;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMessageDeleted final : public ChatEventAction {
+ public:
+ object_ptr<message> message_;
+
+ chatEventMessageDeleted();
+
+ explicit chatEventMessageDeleted(object_ptr<message> &&message_);
+
+ static const std::int32_t ID = -892974601;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMessagePinned final : public ChatEventAction {
+ public:
+ object_ptr<message> message_;
+
+ chatEventMessagePinned();
+
+ explicit chatEventMessagePinned(object_ptr<message> &&message_);
+
+ static const std::int32_t ID = 438742298;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMessageUnpinned final : public ChatEventAction {
+ public:
+ object_ptr<message> message_;
+
+ chatEventMessageUnpinned();
+
+ explicit chatEventMessageUnpinned(object_ptr<message> &&message_);
+
+ static const std::int32_t ID = -376161513;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventPollStopped final : public ChatEventAction {
+ public:
+ object_ptr<message> message_;
+
+ chatEventPollStopped();
+
+ explicit chatEventPollStopped(object_ptr<message> &&message_);
+
+ static const std::int32_t ID = 2009893861;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMemberJoined final : public ChatEventAction {
+ public:
+
+ chatEventMemberJoined();
+
+ static const std::int32_t ID = -235468508;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMemberJoinedByInviteLink final : public ChatEventAction {
+ public:
+ object_ptr<chatInviteLink> invite_link_;
+
+ chatEventMemberJoinedByInviteLink();
+
+ explicit chatEventMemberJoinedByInviteLink(object_ptr<chatInviteLink> &&invite_link_);
+
+ static const std::int32_t ID = -253307459;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMemberJoinedByRequest final : public ChatEventAction {
+ public:
+ int53 approver_user_id_;
+ object_ptr<chatInviteLink> invite_link_;
+
+ chatEventMemberJoinedByRequest();
+
+ chatEventMemberJoinedByRequest(int53 approver_user_id_, object_ptr<chatInviteLink> &&invite_link_);
+
+ static const std::int32_t ID = -1647804865;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMemberInvited final : public ChatEventAction {
+ public:
+ int53 user_id_;
+ object_ptr<ChatMemberStatus> status_;
+
+ chatEventMemberInvited();
+
+ chatEventMemberInvited(int53 user_id_, object_ptr<ChatMemberStatus> &&status_);
+
+ static const std::int32_t ID = 953663433;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMemberLeft final : public ChatEventAction {
+ public:
+
+ chatEventMemberLeft();
+
+ static const std::int32_t ID = -948420593;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMemberPromoted final : public ChatEventAction {
+ public:
+ int53 user_id_;
+ object_ptr<ChatMemberStatus> old_status_;
+ object_ptr<ChatMemberStatus> new_status_;
+
+ chatEventMemberPromoted();
+
+ chatEventMemberPromoted(int53 user_id_, object_ptr<ChatMemberStatus> &&old_status_, object_ptr<ChatMemberStatus> &&new_status_);
+
+ static const std::int32_t ID = 525297761;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMemberRestricted final : public ChatEventAction {
+ public:
+ object_ptr<MessageSender> member_id_;
+ object_ptr<ChatMemberStatus> old_status_;
+ object_ptr<ChatMemberStatus> new_status_;
+
+ chatEventMemberRestricted();
+
+ chatEventMemberRestricted(object_ptr<MessageSender> &&member_id_, object_ptr<ChatMemberStatus> &&old_status_, object_ptr<ChatMemberStatus> &&new_status_);
+
+ static const std::int32_t ID = 1603608069;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventAvailableReactionsChanged final : public ChatEventAction {
+ public:
+ object_ptr<ChatAvailableReactions> old_available_reactions_;
+ object_ptr<ChatAvailableReactions> new_available_reactions_;
+
+ chatEventAvailableReactionsChanged();
+
+ chatEventAvailableReactionsChanged(object_ptr<ChatAvailableReactions> &&old_available_reactions_, object_ptr<ChatAvailableReactions> &&new_available_reactions_);
+
+ static const std::int32_t ID = -1749491521;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventDescriptionChanged final : public ChatEventAction {
+ public:
+ string old_description_;
+ string new_description_;
+
+ chatEventDescriptionChanged();
+
+ chatEventDescriptionChanged(string const &old_description_, string const &new_description_);
+
+ static const std::int32_t ID = 39112478;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventLinkedChatChanged final : public ChatEventAction {
+ public:
+ int53 old_linked_chat_id_;
+ int53 new_linked_chat_id_;
+
+ chatEventLinkedChatChanged();
+
+ chatEventLinkedChatChanged(int53 old_linked_chat_id_, int53 new_linked_chat_id_);
+
+ static const std::int32_t ID = 1797419439;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventLocationChanged final : public ChatEventAction {
+ public:
+ object_ptr<chatLocation> old_location_;
+ object_ptr<chatLocation> new_location_;
+
+ chatEventLocationChanged();
+
+ chatEventLocationChanged(object_ptr<chatLocation> &&old_location_, object_ptr<chatLocation> &&new_location_);
+
+ static const std::int32_t ID = -405930674;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventMessageTtlChanged final : public ChatEventAction {
+ public:
+ int32 old_message_ttl_;
+ int32 new_message_ttl_;
+
+ chatEventMessageTtlChanged();
+
+ chatEventMessageTtlChanged(int32 old_message_ttl_, int32 new_message_ttl_);
+
+ static const std::int32_t ID = 776386995;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventPermissionsChanged final : public ChatEventAction {
+ public:
+ object_ptr<chatPermissions> old_permissions_;
+ object_ptr<chatPermissions> new_permissions_;
+
+ chatEventPermissionsChanged();
+
+ chatEventPermissionsChanged(object_ptr<chatPermissions> &&old_permissions_, object_ptr<chatPermissions> &&new_permissions_);
+
+ static const std::int32_t ID = -1311557720;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventPhotoChanged final : public ChatEventAction {
+ public:
+ object_ptr<chatPhoto> old_photo_;
+ object_ptr<chatPhoto> new_photo_;
+
+ chatEventPhotoChanged();
+
+ chatEventPhotoChanged(object_ptr<chatPhoto> &&old_photo_, object_ptr<chatPhoto> &&new_photo_);
+
+ static const std::int32_t ID = -811572541;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventSlowModeDelayChanged final : public ChatEventAction {
+ public:
+ int32 old_slow_mode_delay_;
+ int32 new_slow_mode_delay_;
+
+ chatEventSlowModeDelayChanged();
+
+ chatEventSlowModeDelayChanged(int32 old_slow_mode_delay_, int32 new_slow_mode_delay_);
+
+ static const std::int32_t ID = -1653195765;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventStickerSetChanged final : public ChatEventAction {
+ public:
+ int64 old_sticker_set_id_;
+ int64 new_sticker_set_id_;
+
+ chatEventStickerSetChanged();
+
+ chatEventStickerSetChanged(int64 old_sticker_set_id_, int64 new_sticker_set_id_);
+
+ static const std::int32_t ID = -1243130481;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventTitleChanged final : public ChatEventAction {
+ public:
+ string old_title_;
+ string new_title_;
+
+ chatEventTitleChanged();
+
+ chatEventTitleChanged(string const &old_title_, string const &new_title_);
+
+ static const std::int32_t ID = 1134103250;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventUsernameChanged final : public ChatEventAction {
+ public:
+ string old_username_;
+ string new_username_;
+
+ chatEventUsernameChanged();
+
+ chatEventUsernameChanged(string const &old_username_, string const &new_username_);
+
+ static const std::int32_t ID = 1728558443;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventActiveUsernamesChanged final : public ChatEventAction {
+ public:
+ array<string> old_usernames_;
+ array<string> new_usernames_;
+
+ chatEventActiveUsernamesChanged();
+
+ chatEventActiveUsernamesChanged(array<string> &&old_usernames_, array<string> &&new_usernames_);
+
+ static const std::int32_t ID = -1508790810;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventHasProtectedContentToggled final : public ChatEventAction {
+ public:
+ bool has_protected_content_;
+
+ chatEventHasProtectedContentToggled();
+
+ explicit chatEventHasProtectedContentToggled(bool has_protected_content_);
+
+ static const std::int32_t ID = -184270335;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventInvitesToggled final : public ChatEventAction {
+ public:
+ bool can_invite_users_;
+
+ chatEventInvitesToggled();
+
+ explicit chatEventInvitesToggled(bool can_invite_users_);
+
+ static const std::int32_t ID = -62548373;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventIsAllHistoryAvailableToggled final : public ChatEventAction {
+ public:
+ bool is_all_history_available_;
+
+ chatEventIsAllHistoryAvailableToggled();
+
+ explicit chatEventIsAllHistoryAvailableToggled(bool is_all_history_available_);
+
+ static const std::int32_t ID = -1599063019;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventSignMessagesToggled final : public ChatEventAction {
+ public:
+ bool sign_messages_;
+
+ chatEventSignMessagesToggled();
+
+ explicit chatEventSignMessagesToggled(bool sign_messages_);
+
+ static const std::int32_t ID = -1313265634;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventInviteLinkEdited final : public ChatEventAction {
+ public:
+ object_ptr<chatInviteLink> old_invite_link_;
+ object_ptr<chatInviteLink> new_invite_link_;
+
+ chatEventInviteLinkEdited();
+
+ chatEventInviteLinkEdited(object_ptr<chatInviteLink> &&old_invite_link_, object_ptr<chatInviteLink> &&new_invite_link_);
+
+ static const std::int32_t ID = -460190366;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventInviteLinkRevoked final : public ChatEventAction {
+ public:
+ object_ptr<chatInviteLink> invite_link_;
+
+ chatEventInviteLinkRevoked();
+
+ explicit chatEventInviteLinkRevoked(object_ptr<chatInviteLink> &&invite_link_);
+
+ static const std::int32_t ID = -1579417629;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventInviteLinkDeleted final : public ChatEventAction {
+ public:
+ object_ptr<chatInviteLink> invite_link_;
+
+ chatEventInviteLinkDeleted();
+
+ explicit chatEventInviteLinkDeleted(object_ptr<chatInviteLink> &&invite_link_);
+
+ static const std::int32_t ID = -1394974361;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventVideoChatCreated final : public ChatEventAction {
+ public:
+ int32 group_call_id_;
+
+ chatEventVideoChatCreated();
+
+ explicit chatEventVideoChatCreated(int32 group_call_id_);
+
+ static const std::int32_t ID = 1822853755;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventVideoChatEnded final : public ChatEventAction {
+ public:
+ int32 group_call_id_;
+
+ chatEventVideoChatEnded();
+
+ explicit chatEventVideoChatEnded(int32 group_call_id_);
+
+ static const std::int32_t ID = 1630039112;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventVideoChatMuteNewParticipantsToggled final : public ChatEventAction {
+ public:
+ bool mute_new_participants_;
+
+ chatEventVideoChatMuteNewParticipantsToggled();
+
+ explicit chatEventVideoChatMuteNewParticipantsToggled(bool mute_new_participants_);
+
+ static const std::int32_t ID = -126547970;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventVideoChatParticipantIsMutedToggled final : public ChatEventAction {
+ public:
+ object_ptr<MessageSender> participant_id_;
+ bool is_muted_;
+
+ chatEventVideoChatParticipantIsMutedToggled();
+
+ chatEventVideoChatParticipantIsMutedToggled(object_ptr<MessageSender> &&participant_id_, bool is_muted_);
+
+ static const std::int32_t ID = 521165047;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventVideoChatParticipantVolumeLevelChanged final : public ChatEventAction {
+ public:
+ object_ptr<MessageSender> participant_id_;
+ int32 volume_level_;
+
+ chatEventVideoChatParticipantVolumeLevelChanged();
+
+ chatEventVideoChatParticipantVolumeLevelChanged(object_ptr<MessageSender> &&participant_id_, int32 volume_level_);
+
+ static const std::int32_t ID = 1131385534;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventIsForumToggled final : public ChatEventAction {
+ public:
+ bool is_forum_;
+
+ chatEventIsForumToggled();
+
+ explicit chatEventIsForumToggled(bool is_forum_);
+
+ static const std::int32_t ID = 1516491033;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventForumTopicCreated final : public ChatEventAction {
+ public:
+ object_ptr<forumTopicInfo> topic_info_;
+
+ chatEventForumTopicCreated();
+
+ explicit chatEventForumTopicCreated(object_ptr<forumTopicInfo> &&topic_info_);
+
+ static const std::int32_t ID = 2005269314;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventForumTopicEdited final : public ChatEventAction {
+ public:
+ object_ptr<forumTopicInfo> old_topic_info_;
+ object_ptr<forumTopicInfo> new_topic_info_;
+
+ chatEventForumTopicEdited();
+
+ chatEventForumTopicEdited(object_ptr<forumTopicInfo> &&old_topic_info_, object_ptr<forumTopicInfo> &&new_topic_info_);
+
+ static const std::int32_t ID = 1624910860;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventForumTopicToggleIsClosed final : public ChatEventAction {
+ public:
+ object_ptr<forumTopicInfo> topic_info_;
+
+ chatEventForumTopicToggleIsClosed();
+
+ explicit chatEventForumTopicToggleIsClosed(object_ptr<forumTopicInfo> &&topic_info_);
+
+ static const std::int32_t ID = -962704070;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventForumTopicDeleted final : public ChatEventAction {
+ public:
+ object_ptr<forumTopicInfo> topic_info_;
+
+ chatEventForumTopicDeleted();
+
+ explicit chatEventForumTopicDeleted(object_ptr<forumTopicInfo> &&topic_info_);
+
+ static const std::int32_t ID = -1332795123;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventForumTopicPinned final : public ChatEventAction {
+ public:
+ object_ptr<forumTopicInfo> old_topic_info_;
+ object_ptr<forumTopicInfo> new_topic_info_;
+
+ chatEventForumTopicPinned();
+
+ chatEventForumTopicPinned(object_ptr<forumTopicInfo> &&old_topic_info_, object_ptr<forumTopicInfo> &&new_topic_info_);
+
+ static const std::int32_t ID = 2143626222;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEventLogFilters final : public Object {
+ public:
+ bool message_edits_;
+ bool message_deletions_;
+ bool message_pins_;
+ bool member_joins_;
+ bool member_leaves_;
+ bool member_invites_;
+ bool member_promotions_;
+ bool member_restrictions_;
+ bool info_changes_;
+ bool setting_changes_;
+ bool invite_link_changes_;
+ bool video_chat_changes_;
+ bool forum_changes_;
+
+ chatEventLogFilters();
+
+ chatEventLogFilters(bool message_edits_, bool message_deletions_, bool message_pins_, bool member_joins_, bool member_leaves_, bool member_invites_, bool member_promotions_, bool member_restrictions_, bool info_changes_, bool setting_changes_, bool invite_link_changes_, bool video_chat_changes_, bool forum_changes_);
+
+ static const std::int32_t ID = 1648261677;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatEvents final : public Object {
+ public:
+ array<object_ptr<chatEvent>> events_;
+
+ chatEvents();
+
+ explicit chatEvents(array<object_ptr<chatEvent>> &&events_);
+
+ static const std::int32_t ID = -585329664;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatFilter final : public Object {
+ public:
+ string title_;
+ string icon_name_;
+ array<int53> pinned_chat_ids_;
+ array<int53> included_chat_ids_;
+ array<int53> excluded_chat_ids_;
+ bool exclude_muted_;
+ bool exclude_read_;
+ bool exclude_archived_;
+ bool include_contacts_;
+ bool include_non_contacts_;
+ bool include_bots_;
+ bool include_groups_;
+ bool include_channels_;
+
+ chatFilter();
+
+ chatFilter(string const &title_, string const &icon_name_, array<int53> &&pinned_chat_ids_, array<int53> &&included_chat_ids_, array<int53> &&excluded_chat_ids_, bool exclude_muted_, bool exclude_read_, bool exclude_archived_, bool include_contacts_, bool include_non_contacts_, bool include_bots_, bool include_groups_, bool include_channels_);
+
+ static const std::int32_t ID = -664815123;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatFilterInfo final : public Object {
+ public:
+ int32 id_;
+ string title_;
+ string icon_name_;
+
+ chatFilterInfo();
+
+ chatFilterInfo(int32 id_, string const &title_, string const &icon_name_);
+
+ static const std::int32_t ID = -943721165;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInviteLink final : public Object {
+ public:
+ string invite_link_;
+ string name_;
+ int53 creator_user_id_;
+ int32 date_;
+ int32 edit_date_;
+ int32 expiration_date_;
+ int32 member_limit_;
+ int32 member_count_;
+ int32 pending_join_request_count_;
+ bool creates_join_request_;
+ bool is_primary_;
+ bool is_revoked_;
+
+ chatInviteLink();
+
+ chatInviteLink(string const &invite_link_, string const &name_, int53 creator_user_id_, int32 date_, int32 edit_date_, int32 expiration_date_, int32 member_limit_, int32 member_count_, int32 pending_join_request_count_, bool creates_join_request_, bool is_primary_, bool is_revoked_);
+
+ static const std::int32_t ID = -205812476;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInviteLinkCount final : public Object {
+ public:
+ int53 user_id_;
+ int32 invite_link_count_;
+ int32 revoked_invite_link_count_;
+
+ chatInviteLinkCount();
+
+ chatInviteLinkCount(int53 user_id_, int32 invite_link_count_, int32 revoked_invite_link_count_);
+
+ static const std::int32_t ID = -1021999210;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInviteLinkCounts final : public Object {
+ public:
+ array<object_ptr<chatInviteLinkCount>> invite_link_counts_;
+
+ chatInviteLinkCounts();
+
+ explicit chatInviteLinkCounts(array<object_ptr<chatInviteLinkCount>> &&invite_link_counts_);
+
+ static const std::int32_t ID = 920326637;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInviteLinkInfo final : public Object {
+ public:
+ int53 chat_id_;
+ int32 accessible_for_;
+ object_ptr<ChatType> type_;
+ string title_;
+ object_ptr<chatPhotoInfo> photo_;
+ string description_;
+ int32 member_count_;
+ array<int53> member_user_ids_;
+ bool creates_join_request_;
+ bool is_public_;
+
+ chatInviteLinkInfo();
+
+ chatInviteLinkInfo(int53 chat_id_, int32 accessible_for_, object_ptr<ChatType> &&type_, string const &title_, object_ptr<chatPhotoInfo> &&photo_, string const &description_, int32 member_count_, array<int53> &&member_user_ids_, bool creates_join_request_, bool is_public_);
+
+ static const std::int32_t ID = 546234276;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInviteLinkMember final : public Object {
+ public:
+ int53 user_id_;
+ int32 joined_chat_date_;
+ int53 approver_user_id_;
+
+ chatInviteLinkMember();
+
+ chatInviteLinkMember(int53 user_id_, int32 joined_chat_date_, int53 approver_user_id_);
+
+ static const std::int32_t ID = -1409060582;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInviteLinkMembers final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<chatInviteLinkMember>> members_;
+
+ chatInviteLinkMembers();
+
+ chatInviteLinkMembers(int32 total_count_, array<object_ptr<chatInviteLinkMember>> &&members_);
+
+ static const std::int32_t ID = 315635051;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInviteLinks final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<chatInviteLink>> invite_links_;
+
+ chatInviteLinks();
+
+ chatInviteLinks(int32 total_count_, array<object_ptr<chatInviteLink>> &&invite_links_);
+
+ static const std::int32_t ID = 112891427;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatJoinRequest final : public Object {
+ public:
+ int53 user_id_;
+ int32 date_;
+ string bio_;
+
+ chatJoinRequest();
+
+ chatJoinRequest(int53 user_id_, int32 date_, string const &bio_);
+
+ static const std::int32_t ID = 59341416;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatJoinRequests final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<chatJoinRequest>> requests_;
+
+ chatJoinRequests();
+
+ chatJoinRequests(int32 total_count_, array<object_ptr<chatJoinRequest>> &&requests_);
+
+ static const std::int32_t ID = 1291680519;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatJoinRequestsInfo final : public Object {
+ public:
+ int32 total_count_;
+ array<int53> user_ids_;
+
+ chatJoinRequestsInfo();
+
+ chatJoinRequestsInfo(int32 total_count_, array<int53> &&user_ids_);
+
+ static const std::int32_t ID = 888534463;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatList: public Object {
+ public:
+};
+
+class chatListMain final : public ChatList {
+ public:
+
+ chatListMain();
+
+ static const std::int32_t ID = -400991316;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatListArchive final : public ChatList {
+ public:
+
+ chatListArchive();
+
+ static const std::int32_t ID = 362770115;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatListFilter final : public ChatList {
+ public:
+ int32 chat_filter_id_;
+
+ chatListFilter();
+
+ explicit chatListFilter(int32 chat_filter_id_);
+
+ static const std::int32_t ID = -2022707655;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatLists final : public Object {
+ public:
+ array<object_ptr<ChatList>> chat_lists_;
+
+ chatLists();
+
+ explicit chatLists(array<object_ptr<ChatList>> &&chat_lists_);
+
+ static const std::int32_t ID = -258292771;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatLocation final : public Object {
+ public:
+ object_ptr<location> location_;
+ string address_;
+
+ chatLocation();
+
+ chatLocation(object_ptr<location> &&location_, string const &address_);
+
+ static const std::int32_t ID = -1566863583;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMember final : public Object {
+ public:
+ object_ptr<MessageSender> member_id_;
+ int53 inviter_user_id_;
+ int32 joined_chat_date_;
+ object_ptr<ChatMemberStatus> status_;
+
+ chatMember();
+
+ chatMember(object_ptr<MessageSender> &&member_id_, int53 inviter_user_id_, int32 joined_chat_date_, object_ptr<ChatMemberStatus> &&status_);
+
+ static const std::int32_t ID = 1829953909;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatMemberStatus: public Object {
+ public:
+};
+
+class chatMemberStatusCreator final : public ChatMemberStatus {
+ public:
+ string custom_title_;
+ bool is_anonymous_;
+ bool is_member_;
+
+ chatMemberStatusCreator();
+
+ chatMemberStatusCreator(string const &custom_title_, bool is_anonymous_, bool is_member_);
+
+ static const std::int32_t ID = -160019714;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMemberStatusAdministrator final : public ChatMemberStatus {
+ public:
+ string custom_title_;
+ bool can_be_edited_;
+ object_ptr<chatAdministratorRights> rights_;
+
+ chatMemberStatusAdministrator();
+
+ chatMemberStatusAdministrator(string const &custom_title_, bool can_be_edited_, object_ptr<chatAdministratorRights> &&rights_);
+
+ static const std::int32_t ID = -70024163;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMemberStatusMember final : public ChatMemberStatus {
+ public:
+
+ chatMemberStatusMember();
+
+ static const std::int32_t ID = 844723285;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMemberStatusRestricted final : public ChatMemberStatus {
+ public:
+ bool is_member_;
+ int32 restricted_until_date_;
+ object_ptr<chatPermissions> permissions_;
+
+ chatMemberStatusRestricted();
+
+ chatMemberStatusRestricted(bool is_member_, int32 restricted_until_date_, object_ptr<chatPermissions> &&permissions_);
+
+ static const std::int32_t ID = 1661432998;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMemberStatusLeft final : public ChatMemberStatus {
+ public:
+
+ chatMemberStatusLeft();
+
+ static const std::int32_t ID = -5815259;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMemberStatusBanned final : public ChatMemberStatus {
+ public:
+ int32 banned_until_date_;
+
+ chatMemberStatusBanned();
+
+ explicit chatMemberStatusBanned(int32 banned_until_date_);
+
+ static const std::int32_t ID = -1653518666;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMembers final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<chatMember>> members_;
+
+ chatMembers();
+
+ chatMembers(int32 total_count_, array<object_ptr<chatMember>> &&members_);
+
+ static const std::int32_t ID = -497558622;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatMembersFilter: public Object {
+ public:
+};
+
+class chatMembersFilterContacts final : public ChatMembersFilter {
+ public:
+
+ chatMembersFilterContacts();
+
+ static const std::int32_t ID = 1774485671;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMembersFilterAdministrators final : public ChatMembersFilter {
+ public:
+
+ chatMembersFilterAdministrators();
+
+ static const std::int32_t ID = -1266893796;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMembersFilterMembers final : public ChatMembersFilter {
+ public:
+
+ chatMembersFilterMembers();
+
+ static const std::int32_t ID = 670504342;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMembersFilterMention final : public ChatMembersFilter {
+ public:
+ int53 message_thread_id_;
+
+ chatMembersFilterMention();
+
+ explicit chatMembersFilterMention(int53 message_thread_id_);
+
+ static const std::int32_t ID = 856419831;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMembersFilterRestricted final : public ChatMembersFilter {
+ public:
+
+ chatMembersFilterRestricted();
+
+ static const std::int32_t ID = 1256282813;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMembersFilterBanned final : public ChatMembersFilter {
+ public:
+
+ chatMembersFilterBanned();
+
+ static const std::int32_t ID = -1863102648;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMembersFilterBots final : public ChatMembersFilter {
+ public:
+
+ chatMembersFilterBots();
+
+ static const std::int32_t ID = -1422567288;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMessageSender final : public Object {
+ public:
+ object_ptr<MessageSender> sender_;
+ bool needs_premium_;
+
+ chatMessageSender();
+
+ chatMessageSender(object_ptr<MessageSender> &&sender_, bool needs_premium_);
+
+ static const std::int32_t ID = 760590010;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatMessageSenders final : public Object {
+ public:
+ array<object_ptr<chatMessageSender>> senders_;
+
+ chatMessageSenders();
+
+ explicit chatMessageSenders(array<object_ptr<chatMessageSender>> &&senders_);
+
+ static const std::int32_t ID = -1866230970;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatNearby final : public Object {
+ public:
+ int53 chat_id_;
+ int32 distance_;
+
+ chatNearby();
+
+ chatNearby(int53 chat_id_, int32 distance_);
+
+ static const std::int32_t ID = 48120405;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatNotificationSettings final : public Object {
+ public:
+ bool use_default_mute_for_;
+ int32 mute_for_;
+ bool use_default_sound_;
+ int64 sound_id_;
+ bool use_default_show_preview_;
+ bool show_preview_;
+ bool use_default_disable_pinned_message_notifications_;
+ bool disable_pinned_message_notifications_;
+ bool use_default_disable_mention_notifications_;
+ bool disable_mention_notifications_;
+
+ chatNotificationSettings();
+
+ chatNotificationSettings(bool use_default_mute_for_, int32 mute_for_, bool use_default_sound_, int64 sound_id_, bool use_default_show_preview_, bool show_preview_, bool use_default_disable_pinned_message_notifications_, bool disable_pinned_message_notifications_, bool use_default_disable_mention_notifications_, bool disable_mention_notifications_);
+
+ static const std::int32_t ID = 944322400;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatPermissions final : public Object {
+ public:
+ bool can_send_messages_;
+ bool can_send_media_messages_;
+ bool can_send_polls_;
+ bool can_send_other_messages_;
+ bool can_add_web_page_previews_;
+ bool can_change_info_;
+ bool can_invite_users_;
+ bool can_pin_messages_;
+ bool can_manage_topics_;
+
+ chatPermissions();
+
+ chatPermissions(bool can_send_messages_, bool can_send_media_messages_, bool can_send_polls_, bool can_send_other_messages_, bool can_add_web_page_previews_, bool can_change_info_, bool can_invite_users_, bool can_pin_messages_, bool can_manage_topics_);
+
+ static const std::int32_t ID = -835592567;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatPhoto final : public Object {
+ public:
+ int64 id_;
+ int32 added_date_;
+ object_ptr<minithumbnail> minithumbnail_;
+ array<object_ptr<photoSize>> sizes_;
+ object_ptr<animatedChatPhoto> animation_;
+ object_ptr<animatedChatPhoto> small_animation_;
+
+ chatPhoto();
+
+ chatPhoto(int64 id_, int32 added_date_, object_ptr<minithumbnail> &&minithumbnail_, array<object_ptr<photoSize>> &&sizes_, object_ptr<animatedChatPhoto> &&animation_, object_ptr<animatedChatPhoto> &&small_animation_);
+
+ static const std::int32_t ID = 1854980206;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatPhotoInfo final : public Object {
+ public:
+ object_ptr<file> small_;
+ object_ptr<file> big_;
+ object_ptr<minithumbnail> minithumbnail_;
+ bool has_animation_;
+
+ chatPhotoInfo();
+
+ chatPhotoInfo(object_ptr<file> &&small_, object_ptr<file> &&big_, object_ptr<minithumbnail> &&minithumbnail_, bool has_animation_);
+
+ static const std::int32_t ID = 167058358;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatPhotos final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<chatPhoto>> photos_;
+
+ chatPhotos();
+
+ chatPhotos(int32 total_count_, array<object_ptr<chatPhoto>> &&photos_);
+
+ static const std::int32_t ID = -1510699180;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatPosition final : public Object {
+ public:
+ object_ptr<ChatList> list_;
+ int64 order_;
+ bool is_pinned_;
+ object_ptr<ChatSource> source_;
+
+ chatPosition();
+
+ chatPosition(object_ptr<ChatList> &&list_, int64 order_, bool is_pinned_, object_ptr<ChatSource> &&source_);
+
+ static const std::int32_t ID = -622557355;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatReportReason: public Object {
+ public:
+};
+
+class chatReportReasonSpam final : public ChatReportReason {
+ public:
+
+ chatReportReasonSpam();
+
+ static const std::int32_t ID = -510848863;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReportReasonViolence final : public ChatReportReason {
+ public:
+
+ chatReportReasonViolence();
+
+ static const std::int32_t ID = -1330235395;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReportReasonPornography final : public ChatReportReason {
+ public:
+
+ chatReportReasonPornography();
+
+ static const std::int32_t ID = 722614385;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReportReasonChildAbuse final : public ChatReportReason {
+ public:
+
+ chatReportReasonChildAbuse();
+
+ static const std::int32_t ID = -1070686531;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReportReasonCopyright final : public ChatReportReason {
+ public:
+
+ chatReportReasonCopyright();
+
+ static const std::int32_t ID = 986898080;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReportReasonUnrelatedLocation final : public ChatReportReason {
+ public:
+
+ chatReportReasonUnrelatedLocation();
+
+ static const std::int32_t ID = 2632403;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReportReasonFake final : public ChatReportReason {
+ public:
+
+ chatReportReasonFake();
+
+ static const std::int32_t ID = -1713230446;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReportReasonIllegalDrugs final : public ChatReportReason {
+ public:
+
+ chatReportReasonIllegalDrugs();
+
+ static const std::int32_t ID = -844539307;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReportReasonPersonalDetails final : public ChatReportReason {
+ public:
+
+ chatReportReasonPersonalDetails();
+
+ static const std::int32_t ID = 1121159029;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReportReasonCustom final : public ChatReportReason {
+ public:
+
+ chatReportReasonCustom();
+
+ static const std::int32_t ID = 1288925974;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatSource: public Object {
+ public:
+};
+
+class chatSourceMtprotoProxy final : public ChatSource {
+ public:
+
+ chatSourceMtprotoProxy();
+
+ static const std::int32_t ID = 394074115;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatSourcePublicServiceAnnouncement final : public ChatSource {
+ public:
+ string type_;
+ string text_;
+
+ chatSourcePublicServiceAnnouncement();
+
+ chatSourcePublicServiceAnnouncement(string const &type_, string const &text_);
+
+ static const std::int32_t ID = -328571244;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatStatistics: public Object {
+ public:
+};
+
+class chatStatisticsSupergroup final : public ChatStatistics {
+ public:
+ object_ptr<dateRange> period_;
+ object_ptr<statisticalValue> member_count_;
+ object_ptr<statisticalValue> message_count_;
+ object_ptr<statisticalValue> viewer_count_;
+ object_ptr<statisticalValue> sender_count_;
+ object_ptr<StatisticalGraph> member_count_graph_;
+ object_ptr<StatisticalGraph> join_graph_;
+ object_ptr<StatisticalGraph> join_by_source_graph_;
+ object_ptr<StatisticalGraph> language_graph_;
+ object_ptr<StatisticalGraph> message_content_graph_;
+ object_ptr<StatisticalGraph> action_graph_;
+ object_ptr<StatisticalGraph> day_graph_;
+ object_ptr<StatisticalGraph> week_graph_;
+ array<object_ptr<chatStatisticsMessageSenderInfo>> top_senders_;
+ array<object_ptr<chatStatisticsAdministratorActionsInfo>> top_administrators_;
+ array<object_ptr<chatStatisticsInviterInfo>> top_inviters_;
+
+ chatStatisticsSupergroup();
+
+ chatStatisticsSupergroup(object_ptr<dateRange> &&period_, object_ptr<statisticalValue> &&member_count_, object_ptr<statisticalValue> &&message_count_, object_ptr<statisticalValue> &&viewer_count_, object_ptr<statisticalValue> &&sender_count_, object_ptr<StatisticalGraph> &&member_count_graph_, object_ptr<StatisticalGraph> &&join_graph_, object_ptr<StatisticalGraph> &&join_by_source_graph_, object_ptr<StatisticalGraph> &&language_graph_, object_ptr<StatisticalGraph> &&message_content_graph_, object_ptr<StatisticalGraph> &&action_graph_, object_ptr<StatisticalGraph> &&day_graph_, object_ptr<StatisticalGraph> &&week_graph_, array<object_ptr<chatStatisticsMessageSenderInfo>> &&top_senders_, array<object_ptr<chatStatisticsAdministratorActionsInfo>> &&top_administrators_, array<object_ptr<chatStatisticsInviterInfo>> &&top_inviters_);
+
+ static const std::int32_t ID = -17244633;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatStatisticsChannel final : public ChatStatistics {
+ public:
+ object_ptr<dateRange> period_;
+ object_ptr<statisticalValue> member_count_;
+ object_ptr<statisticalValue> mean_view_count_;
+ object_ptr<statisticalValue> mean_share_count_;
+ double enabled_notifications_percentage_;
+ object_ptr<StatisticalGraph> member_count_graph_;
+ object_ptr<StatisticalGraph> join_graph_;
+ object_ptr<StatisticalGraph> mute_graph_;
+ object_ptr<StatisticalGraph> view_count_by_hour_graph_;
+ object_ptr<StatisticalGraph> view_count_by_source_graph_;
+ object_ptr<StatisticalGraph> join_by_source_graph_;
+ object_ptr<StatisticalGraph> language_graph_;
+ object_ptr<StatisticalGraph> message_interaction_graph_;
+ object_ptr<StatisticalGraph> instant_view_interaction_graph_;
+ array<object_ptr<chatStatisticsMessageInteractionInfo>> recent_message_interactions_;
+
+ chatStatisticsChannel();
+
+ chatStatisticsChannel(object_ptr<dateRange> &&period_, object_ptr<statisticalValue> &&member_count_, object_ptr<statisticalValue> &&mean_view_count_, object_ptr<statisticalValue> &&mean_share_count_, double enabled_notifications_percentage_, object_ptr<StatisticalGraph> &&member_count_graph_, object_ptr<StatisticalGraph> &&join_graph_, object_ptr<StatisticalGraph> &&mute_graph_, object_ptr<StatisticalGraph> &&view_count_by_hour_graph_, object_ptr<StatisticalGraph> &&view_count_by_source_graph_, object_ptr<StatisticalGraph> &&join_by_source_graph_, object_ptr<StatisticalGraph> &&language_graph_, object_ptr<StatisticalGraph> &&message_interaction_graph_, object_ptr<StatisticalGraph> &&instant_view_interaction_graph_, array<object_ptr<chatStatisticsMessageInteractionInfo>> &&recent_message_interactions_);
+
+ static const std::int32_t ID = -825434183;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatStatisticsAdministratorActionsInfo final : public Object {
+ public:
+ int53 user_id_;
+ int32 deleted_message_count_;
+ int32 banned_user_count_;
+ int32 restricted_user_count_;
+
+ chatStatisticsAdministratorActionsInfo();
+
+ chatStatisticsAdministratorActionsInfo(int53 user_id_, int32 deleted_message_count_, int32 banned_user_count_, int32 restricted_user_count_);
+
+ static const std::int32_t ID = -406467202;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatStatisticsInviterInfo final : public Object {
+ public:
+ int53 user_id_;
+ int32 added_member_count_;
+
+ chatStatisticsInviterInfo();
+
+ chatStatisticsInviterInfo(int53 user_id_, int32 added_member_count_);
+
+ static const std::int32_t ID = 629396619;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatStatisticsMessageInteractionInfo final : public Object {
+ public:
+ int53 message_id_;
+ int32 view_count_;
+ int32 forward_count_;
+
+ chatStatisticsMessageInteractionInfo();
+
+ chatStatisticsMessageInteractionInfo(int53 message_id_, int32 view_count_, int32 forward_count_);
+
+ static const std::int32_t ID = -765580756;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatStatisticsMessageSenderInfo final : public Object {
+ public:
+ int53 user_id_;
+ int32 sent_message_count_;
+ int32 average_character_count_;
+
+ chatStatisticsMessageSenderInfo();
+
+ chatStatisticsMessageSenderInfo(int53 user_id_, int32 sent_message_count_, int32 average_character_count_);
+
+ static const std::int32_t ID = 1762295371;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatTheme final : public Object {
+ public:
+ string name_;
+ object_ptr<themeSettings> light_settings_;
+ object_ptr<themeSettings> dark_settings_;
+
+ chatTheme();
+
+ chatTheme(string const &name_, object_ptr<themeSettings> &&light_settings_, object_ptr<themeSettings> &&dark_settings_);
+
+ static const std::int32_t ID = -113218503;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatType: public Object {
+ public:
+};
+
+class chatTypePrivate final : public ChatType {
+ public:
+ int53 user_id_;
+
+ chatTypePrivate();
+
+ explicit chatTypePrivate(int53 user_id_);
+
+ static const std::int32_t ID = 1579049844;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatTypeBasicGroup final : public ChatType {
+ public:
+ int53 basic_group_id_;
+
+ chatTypeBasicGroup();
+
+ explicit chatTypeBasicGroup(int53 basic_group_id_);
+
+ static const std::int32_t ID = 973884508;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatTypeSupergroup final : public ChatType {
+ public:
+ int53 supergroup_id_;
+ bool is_channel_;
+
+ chatTypeSupergroup();
+
+ chatTypeSupergroup(int53 supergroup_id_, bool is_channel_);
+
+ static const std::int32_t ID = -1472570774;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatTypeSecret final : public ChatType {
+ public:
+ int32 secret_chat_id_;
+ int53 user_id_;
+
+ chatTypeSecret();
+
+ chatTypeSecret(int32 secret_chat_id_, int53 user_id_);
+
+ static const std::int32_t ID = 862366513;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chats final : public Object {
+ public:
+ int32 total_count_;
+ array<int53> chat_ids_;
+
+ chats();
+
+ chats(int32 total_count_, array<int53> &&chat_ids_);
+
+ static const std::int32_t ID = 1809654812;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatsNearby final : public Object {
+ public:
+ array<object_ptr<chatNearby>> users_nearby_;
+ array<object_ptr<chatNearby>> supergroups_nearby_;
+
+ chatsNearby();
+
+ chatsNearby(array<object_ptr<chatNearby>> &&users_nearby_, array<object_ptr<chatNearby>> &&supergroups_nearby_);
+
+ static const std::int32_t ID = 187746081;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class CheckChatUsernameResult: public Object {
+ public:
+};
+
+class checkChatUsernameResultOk final : public CheckChatUsernameResult {
+ public:
+
+ checkChatUsernameResultOk();
+
+ static const std::int32_t ID = -1498956964;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkChatUsernameResultUsernameInvalid final : public CheckChatUsernameResult {
+ public:
+
+ checkChatUsernameResultUsernameInvalid();
+
+ static const std::int32_t ID = -636979370;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkChatUsernameResultUsernameOccupied final : public CheckChatUsernameResult {
+ public:
+
+ checkChatUsernameResultUsernameOccupied();
+
+ static const std::int32_t ID = 1320892201;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkChatUsernameResultPublicChatsTooMuch final : public CheckChatUsernameResult {
+ public:
+
+ checkChatUsernameResultPublicChatsTooMuch();
+
+ static const std::int32_t ID = 858247741;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkChatUsernameResultPublicGroupsUnavailable final : public CheckChatUsernameResult {
+ public:
+
+ checkChatUsernameResultPublicGroupsUnavailable();
+
+ static const std::int32_t ID = -51833641;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class CheckStickerSetNameResult: public Object {
+ public:
+};
+
+class checkStickerSetNameResultOk final : public CheckStickerSetNameResult {
+ public:
+
+ checkStickerSetNameResultOk();
+
+ static const std::int32_t ID = -1404308904;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkStickerSetNameResultNameInvalid final : public CheckStickerSetNameResult {
+ public:
+
+ checkStickerSetNameResultNameInvalid();
+
+ static const std::int32_t ID = 177992244;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkStickerSetNameResultNameOccupied final : public CheckStickerSetNameResult {
+ public:
+
+ checkStickerSetNameResultNameOccupied();
+
+ static const std::int32_t ID = 1012980872;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class closedVectorPath final : public Object {
+ public:
+ array<object_ptr<VectorPathCommand>> commands_;
+
+ closedVectorPath();
+
+ explicit closedVectorPath(array<object_ptr<VectorPathCommand>> &&commands_);
+
+ static const std::int32_t ID = 589951657;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class connectedWebsite final : public Object {
+ public:
+ int64 id_;
+ string domain_name_;
+ int53 bot_user_id_;
+ string browser_;
+ string platform_;
+ int32 log_in_date_;
+ int32 last_active_date_;
+ string ip_;
+ string location_;
+
+ connectedWebsite();
+
+ connectedWebsite(int64 id_, string const &domain_name_, int53 bot_user_id_, string const &browser_, string const &platform_, int32 log_in_date_, int32 last_active_date_, string const &ip_, string const &location_);
+
+ static const std::int32_t ID = 844014445;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class connectedWebsites final : public Object {
+ public:
+ array<object_ptr<connectedWebsite>> websites_;
+
+ connectedWebsites();
+
+ explicit connectedWebsites(array<object_ptr<connectedWebsite>> &&websites_);
+
+ static const std::int32_t ID = -1727949694;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ConnectionState: public Object {
+ public:
+};
+
+class connectionStateWaitingForNetwork final : public ConnectionState {
+ public:
+
+ connectionStateWaitingForNetwork();
+
+ static const std::int32_t ID = 1695405912;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class connectionStateConnectingToProxy final : public ConnectionState {
+ public:
+
+ connectionStateConnectingToProxy();
+
+ static const std::int32_t ID = -93187239;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class connectionStateConnecting final : public ConnectionState {
+ public:
+
+ connectionStateConnecting();
+
+ static const std::int32_t ID = -1298400670;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class connectionStateUpdating final : public ConnectionState {
+ public:
+
+ connectionStateUpdating();
+
+ static const std::int32_t ID = -188104009;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class connectionStateReady final : public ConnectionState {
+ public:
+
+ connectionStateReady();
+
+ static const std::int32_t ID = 48608492;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contact final : public Object {
+ public:
+ string phone_number_;
+ string first_name_;
+ string last_name_;
+ string vcard_;
+ int53 user_id_;
+
+ contact();
+
+ contact(string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_, int53 user_id_);
+
+ static const std::int32_t ID = -1993844876;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class count final : public Object {
+ public:
+ int32 count_;
+
+ count();
+
+ explicit count(int32 count_);
+
+ static const std::int32_t ID = 1295577348;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class countries final : public Object {
+ public:
+ array<object_ptr<countryInfo>> countries_;
+
+ countries();
+
+ explicit countries(array<object_ptr<countryInfo>> &&countries_);
+
+ static const std::int32_t ID = 1854211813;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class countryInfo final : public Object {
+ public:
+ string country_code_;
+ string name_;
+ string english_name_;
+ bool is_hidden_;
+ array<string> calling_codes_;
+
+ countryInfo();
+
+ countryInfo(string const &country_code_, string const &name_, string const &english_name_, bool is_hidden_, array<string> &&calling_codes_);
+
+ static const std::int32_t ID = 1617195722;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class customRequestResult final : public Object {
+ public:
+ string result_;
+
+ customRequestResult();
+
+ explicit customRequestResult(string const &result_);
+
+ static const std::int32_t ID = -2009960452;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class databaseStatistics final : public Object {
+ public:
+ string statistics_;
+
+ databaseStatistics();
+
+ explicit databaseStatistics(string const &statistics_);
+
+ static const std::int32_t ID = -1123912880;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class date final : public Object {
+ public:
+ int32 day_;
+ int32 month_;
+ int32 year_;
+
+ date();
+
+ date(int32 day_, int32 month_, int32 year_);
+
+ static const std::int32_t ID = -277956960;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class dateRange final : public Object {
+ public:
+ int32 start_date_;
+ int32 end_date_;
+
+ dateRange();
+
+ dateRange(int32 start_date_, int32 end_date_);
+
+ static const std::int32_t ID = 1360333926;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class datedFile final : public Object {
+ public:
+ object_ptr<file> file_;
+ int32 date_;
+
+ datedFile();
+
+ datedFile(object_ptr<file> &&file_, int32 date_);
+
+ static const std::int32_t ID = -1840795491;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deepLinkInfo final : public Object {
+ public:
+ object_ptr<formattedText> text_;
+ bool need_update_application_;
+
+ deepLinkInfo();
+
+ deepLinkInfo(object_ptr<formattedText> &&text_, bool need_update_application_);
+
+ static const std::int32_t ID = 1864081662;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class DeviceToken: public Object {
+ public:
+};
+
+class deviceTokenFirebaseCloudMessaging final : public DeviceToken {
+ public:
+ string token_;
+ bool encrypt_;
+
+ deviceTokenFirebaseCloudMessaging();
+
+ deviceTokenFirebaseCloudMessaging(string const &token_, bool encrypt_);
+
+ static const std::int32_t ID = -797881849;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deviceTokenApplePush final : public DeviceToken {
+ public:
+ string device_token_;
+ bool is_app_sandbox_;
+
+ deviceTokenApplePush();
+
+ deviceTokenApplePush(string const &device_token_, bool is_app_sandbox_);
+
+ static const std::int32_t ID = 387541955;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deviceTokenApplePushVoIP final : public DeviceToken {
+ public:
+ string device_token_;
+ bool is_app_sandbox_;
+ bool encrypt_;
+
+ deviceTokenApplePushVoIP();
+
+ deviceTokenApplePushVoIP(string const &device_token_, bool is_app_sandbox_, bool encrypt_);
+
+ static const std::int32_t ID = 804275689;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deviceTokenWindowsPush final : public DeviceToken {
+ public:
+ string access_token_;
+
+ deviceTokenWindowsPush();
+
+ explicit deviceTokenWindowsPush(string const &access_token_);
+
+ static const std::int32_t ID = -1410514289;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deviceTokenMicrosoftPush final : public DeviceToken {
+ public:
+ string channel_uri_;
+
+ deviceTokenMicrosoftPush();
+
+ explicit deviceTokenMicrosoftPush(string const &channel_uri_);
+
+ static const std::int32_t ID = 1224269900;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deviceTokenMicrosoftPushVoIP final : public DeviceToken {
+ public:
+ string channel_uri_;
+
+ deviceTokenMicrosoftPushVoIP();
+
+ explicit deviceTokenMicrosoftPushVoIP(string const &channel_uri_);
+
+ static const std::int32_t ID = -785603759;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deviceTokenWebPush final : public DeviceToken {
+ public:
+ string endpoint_;
+ string p256dh_base64url_;
+ string auth_base64url_;
+
+ deviceTokenWebPush();
+
+ deviceTokenWebPush(string const &endpoint_, string const &p256dh_base64url_, string const &auth_base64url_);
+
+ static const std::int32_t ID = -1694507273;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deviceTokenSimplePush final : public DeviceToken {
+ public:
+ string endpoint_;
+
+ deviceTokenSimplePush();
+
+ explicit deviceTokenSimplePush(string const &endpoint_);
+
+ static const std::int32_t ID = 49584736;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deviceTokenUbuntuPush final : public DeviceToken {
+ public:
+ string token_;
+
+ deviceTokenUbuntuPush();
+
+ explicit deviceTokenUbuntuPush(string const &token_);
+
+ static const std::int32_t ID = 1782320422;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deviceTokenBlackBerryPush final : public DeviceToken {
+ public:
+ string token_;
+
+ deviceTokenBlackBerryPush();
+
+ explicit deviceTokenBlackBerryPush(string const &token_);
+
+ static const std::int32_t ID = 1559167234;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deviceTokenTizenPush final : public DeviceToken {
+ public:
+ string reg_id_;
+
+ deviceTokenTizenPush();
+
+ explicit deviceTokenTizenPush(string const &reg_id_);
+
+ static const std::int32_t ID = -1359947213;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class DiceStickers: public Object {
+ public:
+};
+
+class diceStickersRegular final : public DiceStickers {
+ public:
+ object_ptr<sticker> sticker_;
+
+ diceStickersRegular();
+
+ explicit diceStickersRegular(object_ptr<sticker> &&sticker_);
+
+ static const std::int32_t ID = -740299570;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class diceStickersSlotMachine final : public DiceStickers {
+ public:
+ object_ptr<sticker> background_;
+ object_ptr<sticker> lever_;
+ object_ptr<sticker> left_reel_;
+ object_ptr<sticker> center_reel_;
+ object_ptr<sticker> right_reel_;
+
+ diceStickersSlotMachine();
+
+ diceStickersSlotMachine(object_ptr<sticker> &&background_, object_ptr<sticker> &&lever_, object_ptr<sticker> &&left_reel_, object_ptr<sticker> &&center_reel_, object_ptr<sticker> &&right_reel_);
+
+ static const std::int32_t ID = -375223124;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class document final : public Object {
+ public:
+ string file_name_;
+ string mime_type_;
+ object_ptr<minithumbnail> minithumbnail_;
+ object_ptr<thumbnail> thumbnail_;
+ object_ptr<file> document_;
+
+ document();
+
+ document(string const &file_name_, string const &mime_type_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&document_);
+
+ static const std::int32_t ID = -1357271080;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class downloadedFileCounts final : public Object {
+ public:
+ int32 active_count_;
+ int32 paused_count_;
+ int32 completed_count_;
+
+ downloadedFileCounts();
+
+ downloadedFileCounts(int32 active_count_, int32 paused_count_, int32 completed_count_);
+
+ static const std::int32_t ID = -1973999550;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class draftMessage final : public Object {
+ public:
+ int53 reply_to_message_id_;
+ int32 date_;
+ object_ptr<InputMessageContent> input_message_text_;
+
+ draftMessage();
+
+ draftMessage(int53 reply_to_message_id_, int32 date_, object_ptr<InputMessageContent> &&input_message_text_);
+
+ static const std::int32_t ID = 1373050112;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class EmailAddressAuthentication: public Object {
+ public:
+};
+
+class emailAddressAuthenticationCode final : public EmailAddressAuthentication {
+ public:
+ string code_;
+
+ emailAddressAuthenticationCode();
+
+ explicit emailAddressAuthenticationCode(string const &code_);
+
+ static const std::int32_t ID = -993257022;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emailAddressAuthenticationAppleId final : public EmailAddressAuthentication {
+ public:
+ string token_;
+
+ emailAddressAuthenticationAppleId();
+
+ explicit emailAddressAuthenticationAppleId(string const &token_);
+
+ static const std::int32_t ID = 633948265;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emailAddressAuthenticationGoogleId final : public EmailAddressAuthentication {
+ public:
+ string token_;
+
+ emailAddressAuthenticationGoogleId();
+
+ explicit emailAddressAuthenticationGoogleId(string const &token_);
+
+ static const std::int32_t ID = -19142846;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emailAddressAuthenticationCodeInfo final : public Object {
+ public:
+ string email_address_pattern_;
+ int32 length_;
+
+ emailAddressAuthenticationCodeInfo();
+
+ emailAddressAuthenticationCodeInfo(string const &email_address_pattern_, int32 length_);
+
+ static const std::int32_t ID = 1151066659;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emojiReaction final : public Object {
+ public:
+ string emoji_;
+ string title_;
+ bool is_active_;
+ object_ptr<sticker> static_icon_;
+ object_ptr<sticker> appear_animation_;
+ object_ptr<sticker> select_animation_;
+ object_ptr<sticker> activate_animation_;
+ object_ptr<sticker> effect_animation_;
+ object_ptr<sticker> around_animation_;
+ object_ptr<sticker> center_animation_;
+
+ emojiReaction();
+
+ emojiReaction(string const &emoji_, string const &title_, bool is_active_, object_ptr<sticker> &&static_icon_, object_ptr<sticker> &&appear_animation_, object_ptr<sticker> &&select_animation_, object_ptr<sticker> &&activate_animation_, object_ptr<sticker> &&effect_animation_, object_ptr<sticker> &&around_animation_, object_ptr<sticker> &&center_animation_);
+
+ static const std::int32_t ID = 1616063583;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emojiStatus final : public Object {
+ public:
+ int64 custom_emoji_id_;
+
+ emojiStatus();
+
+ explicit emojiStatus(int64 custom_emoji_id_);
+
+ static const std::int32_t ID = 1092133478;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emojiStatuses final : public Object {
+ public:
+ array<object_ptr<emojiStatus>> emoji_statuses_;
+
+ emojiStatuses();
+
+ explicit emojiStatuses(array<object_ptr<emojiStatus>> &&emoji_statuses_);
+
+ static const std::int32_t ID = 1186104146;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emojis final : public Object {
+ public:
+ array<string> emojis_;
+
+ emojis();
+
+ explicit emojis(array<string> &&emojis_);
+
+ static const std::int32_t ID = 950339552;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class encryptedCredentials final : public Object {
+ public:
+ bytes data_;
+ bytes hash_;
+ bytes secret_;
+
+ encryptedCredentials();
+
+ encryptedCredentials(bytes const &data_, bytes const &hash_, bytes const &secret_);
+
+ static const std::int32_t ID = 1331106766;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class encryptedPassportElement final : public Object {
+ public:
+ object_ptr<PassportElementType> type_;
+ bytes data_;
+ object_ptr<datedFile> front_side_;
+ object_ptr<datedFile> reverse_side_;
+ object_ptr<datedFile> selfie_;
+ array<object_ptr<datedFile>> translation_;
+ array<object_ptr<datedFile>> files_;
+ string value_;
+ string hash_;
+
+ encryptedPassportElement();
+
+ encryptedPassportElement(object_ptr<PassportElementType> &&type_, bytes const &data_, object_ptr<datedFile> &&front_side_, object_ptr<datedFile> &&reverse_side_, object_ptr<datedFile> &&selfie_, array<object_ptr<datedFile>> &&translation_, array<object_ptr<datedFile>> &&files_, string const &value_, string const &hash_);
+
+ static const std::int32_t ID = 2002386193;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class error final : public Object {
+ public:
+ int32 code_;
+ string message_;
+
+ error();
+
+ error(int32 code_, string const &message_);
+
+ static const std::int32_t ID = -1679978726;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class file final : public Object {
+ public:
+ int32 id_;
+ int53 size_;
+ int53 expected_size_;
+ object_ptr<localFile> local_;
+ object_ptr<remoteFile> remote_;
+
+ file();
+
+ file(int32 id_, int53 size_, int53 expected_size_, object_ptr<localFile> &&local_, object_ptr<remoteFile> &&remote_);
+
+ static const std::int32_t ID = 1263291956;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileDownload final : public Object {
+ public:
+ int32 file_id_;
+ object_ptr<message> message_;
+ int32 add_date_;
+ int32 complete_date_;
+ bool is_paused_;
+
+ fileDownload();
+
+ fileDownload(int32 file_id_, object_ptr<message> &&message_, int32 add_date_, int32 complete_date_, bool is_paused_);
+
+ static const std::int32_t ID = -2092100780;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileDownloadedPrefixSize final : public Object {
+ public:
+ int53 size_;
+
+ fileDownloadedPrefixSize();
+
+ explicit fileDownloadedPrefixSize(int53 size_);
+
+ static const std::int32_t ID = -2015205381;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class filePart final : public Object {
+ public:
+ bytes data_;
+
+ filePart();
+
+ explicit filePart(bytes const &data_);
+
+ static const std::int32_t ID = 911821878;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class FileType: public Object {
+ public:
+};
+
+class fileTypeNone final : public FileType {
+ public:
+
+ fileTypeNone();
+
+ static const std::int32_t ID = 2003009189;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeAnimation final : public FileType {
+ public:
+
+ fileTypeAnimation();
+
+ static const std::int32_t ID = -290816582;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeAudio final : public FileType {
+ public:
+
+ fileTypeAudio();
+
+ static const std::int32_t ID = -709112160;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeDocument final : public FileType {
+ public:
+
+ fileTypeDocument();
+
+ static const std::int32_t ID = -564722929;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeNotificationSound final : public FileType {
+ public:
+
+ fileTypeNotificationSound();
+
+ static const std::int32_t ID = -1020289271;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypePhoto final : public FileType {
+ public:
+
+ fileTypePhoto();
+
+ static const std::int32_t ID = -1718914651;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeProfilePhoto final : public FileType {
+ public:
+
+ fileTypeProfilePhoto();
+
+ static const std::int32_t ID = 1795089315;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeSecret final : public FileType {
+ public:
+
+ fileTypeSecret();
+
+ static const std::int32_t ID = -1871899401;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeSecretThumbnail final : public FileType {
+ public:
+
+ fileTypeSecretThumbnail();
+
+ static const std::int32_t ID = -1401326026;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeSecure final : public FileType {
+ public:
+
+ fileTypeSecure();
+
+ static const std::int32_t ID = -1419133146;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeSticker final : public FileType {
+ public:
+
+ fileTypeSticker();
+
+ static const std::int32_t ID = 475233385;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeThumbnail final : public FileType {
+ public:
+
+ fileTypeThumbnail();
+
+ static const std::int32_t ID = -12443298;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeUnknown final : public FileType {
+ public:
+
+ fileTypeUnknown();
+
+ static const std::int32_t ID = -2011566768;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeVideo final : public FileType {
+ public:
+
+ fileTypeVideo();
+
+ static const std::int32_t ID = 1430816539;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeVideoNote final : public FileType {
+ public:
+
+ fileTypeVideoNote();
+
+ static const std::int32_t ID = -518412385;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeVoiceNote final : public FileType {
+ public:
+
+ fileTypeVoiceNote();
+
+ static const std::int32_t ID = -588681661;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileTypeWallpaper final : public FileType {
+ public:
+
+ fileTypeWallpaper();
+
+ static const std::int32_t ID = 1854930076;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class formattedText final : public Object {
+ public:
+ string text_;
+ array<object_ptr<textEntity>> entities_;
+
+ formattedText();
+
+ formattedText(string const &text_, array<object_ptr<textEntity>> &&entities_);
+
+ static const std::int32_t ID = -252624564;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class forumTopic final : public Object {
+ public:
+ object_ptr<forumTopicInfo> info_;
+ object_ptr<message> last_message_;
+ bool is_pinned_;
+ int32 unread_count_;
+ int53 last_read_inbox_message_id_;
+ int53 last_read_outbox_message_id_;
+ int32 unread_mention_count_;
+ int32 unread_reaction_count_;
+ object_ptr<chatNotificationSettings> notification_settings_;
+ object_ptr<draftMessage> draft_message_;
+
+ forumTopic();
+
+ forumTopic(object_ptr<forumTopicInfo> &&info_, object_ptr<message> &&last_message_, bool is_pinned_, int32 unread_count_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int32 unread_mention_count_, int32 unread_reaction_count_, object_ptr<chatNotificationSettings> &&notification_settings_, object_ptr<draftMessage> &&draft_message_);
+
+ static const std::int32_t ID = 303279334;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class forumTopicIcon final : public Object {
+ public:
+ int32 color_;
+ int64 custom_emoji_id_;
+
+ forumTopicIcon();
+
+ forumTopicIcon(int32 color_, int64 custom_emoji_id_);
+
+ static const std::int32_t ID = -818765421;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class forumTopicInfo final : public Object {
+ public:
+ int53 message_thread_id_;
+ string name_;
+ object_ptr<forumTopicIcon> icon_;
+ int32 creation_date_;
+ object_ptr<MessageSender> creator_id_;
+ bool is_outgoing_;
+ bool is_closed_;
+
+ forumTopicInfo();
+
+ forumTopicInfo(int53 message_thread_id_, string const &name_, object_ptr<forumTopicIcon> &&icon_, int32 creation_date_, object_ptr<MessageSender> &&creator_id_, bool is_outgoing_, bool is_closed_);
+
+ static const std::int32_t ID = -745571750;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class foundFileDownloads final : public Object {
+ public:
+ object_ptr<downloadedFileCounts> total_counts_;
+ array<object_ptr<fileDownload>> files_;
+ string next_offset_;
+
+ foundFileDownloads();
+
+ foundFileDownloads(object_ptr<downloadedFileCounts> &&total_counts_, array<object_ptr<fileDownload>> &&files_, string const &next_offset_);
+
+ static const std::int32_t ID = 1395890392;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class foundMessages final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<message>> messages_;
+ string next_offset_;
+
+ foundMessages();
+
+ foundMessages(int32 total_count_, array<object_ptr<message>> &&messages_, string const &next_offset_);
+
+ static const std::int32_t ID = -529809608;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class game final : public Object {
+ public:
+ int64 id_;
+ string short_name_;
+ string title_;
+ object_ptr<formattedText> text_;
+ string description_;
+ object_ptr<photo> photo_;
+ object_ptr<animation> animation_;
+
+ game();
+
+ game(int64 id_, string const &short_name_, string const &title_, object_ptr<formattedText> &&text_, string const &description_, object_ptr<photo> &&photo_, object_ptr<animation> &&animation_);
+
+ static const std::int32_t ID = -1565597752;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class gameHighScore final : public Object {
+ public:
+ int32 position_;
+ int53 user_id_;
+ int32 score_;
+
+ gameHighScore();
+
+ gameHighScore(int32 position_, int53 user_id_, int32 score_);
+
+ static const std::int32_t ID = 342871838;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class gameHighScores final : public Object {
+ public:
+ array<object_ptr<gameHighScore>> scores_;
+
+ gameHighScores();
+
+ explicit gameHighScores(array<object_ptr<gameHighScore>> &&scores_);
+
+ static const std::int32_t ID = -725770727;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCall final : public Object {
+ public:
+ int32 id_;
+ string title_;
+ int32 scheduled_start_date_;
+ bool enabled_start_notification_;
+ bool is_active_;
+ bool is_rtmp_stream_;
+ bool is_joined_;
+ bool need_rejoin_;
+ bool can_be_managed_;
+ int32 participant_count_;
+ bool has_hidden_listeners_;
+ bool loaded_all_participants_;
+ array<object_ptr<groupCallRecentSpeaker>> recent_speakers_;
+ bool is_my_video_enabled_;
+ bool is_my_video_paused_;
+ bool can_enable_video_;
+ bool mute_new_participants_;
+ bool can_toggle_mute_new_participants_;
+ int32 record_duration_;
+ bool is_video_recorded_;
+ int32 duration_;
+
+ groupCall();
+
+ groupCall(int32 id_, string const &title_, int32 scheduled_start_date_, bool enabled_start_notification_, bool is_active_, bool is_rtmp_stream_, bool is_joined_, bool need_rejoin_, bool can_be_managed_, int32 participant_count_, bool has_hidden_listeners_, bool loaded_all_participants_, array<object_ptr<groupCallRecentSpeaker>> &&recent_speakers_, bool is_my_video_enabled_, bool is_my_video_paused_, bool can_enable_video_, bool mute_new_participants_, bool can_toggle_mute_new_participants_, int32 record_duration_, bool is_video_recorded_, int32 duration_);
+
+ static const std::int32_t ID = -123443355;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallId final : public Object {
+ public:
+ int32 id_;
+
+ groupCallId();
+
+ explicit groupCallId(int32 id_);
+
+ static const std::int32_t ID = 350534469;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallParticipant final : public Object {
+ public:
+ object_ptr<MessageSender> participant_id_;
+ int32 audio_source_id_;
+ int32 screen_sharing_audio_source_id_;
+ object_ptr<groupCallParticipantVideoInfo> video_info_;
+ object_ptr<groupCallParticipantVideoInfo> screen_sharing_video_info_;
+ string bio_;
+ bool is_current_user_;
+ bool is_speaking_;
+ bool is_hand_raised_;
+ bool can_be_muted_for_all_users_;
+ bool can_be_unmuted_for_all_users_;
+ bool can_be_muted_for_current_user_;
+ bool can_be_unmuted_for_current_user_;
+ bool is_muted_for_all_users_;
+ bool is_muted_for_current_user_;
+ bool can_unmute_self_;
+ int32 volume_level_;
+ string order_;
+
+ groupCallParticipant();
+
+ groupCallParticipant(object_ptr<MessageSender> &&participant_id_, int32 audio_source_id_, int32 screen_sharing_audio_source_id_, object_ptr<groupCallParticipantVideoInfo> &&video_info_, object_ptr<groupCallParticipantVideoInfo> &&screen_sharing_video_info_, string const &bio_, bool is_current_user_, bool is_speaking_, bool is_hand_raised_, bool can_be_muted_for_all_users_, bool can_be_unmuted_for_all_users_, bool can_be_muted_for_current_user_, bool can_be_unmuted_for_current_user_, bool is_muted_for_all_users_, bool is_muted_for_current_user_, bool can_unmute_self_, int32 volume_level_, string const &order_);
+
+ static const std::int32_t ID = 2059182571;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallParticipantVideoInfo final : public Object {
+ public:
+ array<object_ptr<groupCallVideoSourceGroup>> source_groups_;
+ string endpoint_id_;
+ bool is_paused_;
+
+ groupCallParticipantVideoInfo();
+
+ groupCallParticipantVideoInfo(array<object_ptr<groupCallVideoSourceGroup>> &&source_groups_, string const &endpoint_id_, bool is_paused_);
+
+ static const std::int32_t ID = -14294645;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallRecentSpeaker final : public Object {
+ public:
+ object_ptr<MessageSender> participant_id_;
+ bool is_speaking_;
+
+ groupCallRecentSpeaker();
+
+ groupCallRecentSpeaker(object_ptr<MessageSender> &&participant_id_, bool is_speaking_);
+
+ static const std::int32_t ID = 1819519436;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallStream final : public Object {
+ public:
+ int32 channel_id_;
+ int32 scale_;
+ int53 time_offset_;
+
+ groupCallStream();
+
+ groupCallStream(int32 channel_id_, int32 scale_, int53 time_offset_);
+
+ static const std::int32_t ID = -264564795;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallStreams final : public Object {
+ public:
+ array<object_ptr<groupCallStream>> streams_;
+
+ groupCallStreams();
+
+ explicit groupCallStreams(array<object_ptr<groupCallStream>> &&streams_);
+
+ static const std::int32_t ID = -1032959578;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class GroupCallVideoQuality: public Object {
+ public:
+};
+
+class groupCallVideoQualityThumbnail final : public GroupCallVideoQuality {
+ public:
+
+ groupCallVideoQualityThumbnail();
+
+ static const std::int32_t ID = -379186304;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallVideoQualityMedium final : public GroupCallVideoQuality {
+ public:
+
+ groupCallVideoQualityMedium();
+
+ static const std::int32_t ID = 394968234;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallVideoQualityFull final : public GroupCallVideoQuality {
+ public:
+
+ groupCallVideoQualityFull();
+
+ static const std::int32_t ID = -2125916617;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallVideoSourceGroup final : public Object {
+ public:
+ string semantics_;
+ array<int32> source_ids_;
+
+ groupCallVideoSourceGroup();
+
+ groupCallVideoSourceGroup(string const &semantics_, array<int32> &&source_ids_);
+
+ static const std::int32_t ID = -1190900785;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class hashtags final : public Object {
+ public:
+ array<string> hashtags_;
+
+ hashtags();
+
+ explicit hashtags(array<string> &&hashtags_);
+
+ static const std::int32_t ID = 676798885;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class httpUrl final : public Object {
+ public:
+ string url_;
+
+ httpUrl();
+
+ explicit httpUrl(string const &url_);
+
+ static const std::int32_t ID = -2018019930;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class identityDocument final : public Object {
+ public:
+ string number_;
+ object_ptr<date> expiry_date_;
+ object_ptr<datedFile> front_side_;
+ object_ptr<datedFile> reverse_side_;
+ object_ptr<datedFile> selfie_;
+ array<object_ptr<datedFile>> translation_;
+
+ identityDocument();
+
+ identityDocument(string const &number_, object_ptr<date> &&expiry_date_, object_ptr<datedFile> &&front_side_, object_ptr<datedFile> &&reverse_side_, object_ptr<datedFile> &&selfie_, array<object_ptr<datedFile>> &&translation_);
+
+ static const std::int32_t ID = 445952972;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class importedContacts final : public Object {
+ public:
+ array<int53> user_ids_;
+ array<int32> importer_count_;
+
+ importedContacts();
+
+ importedContacts(array<int53> &&user_ids_, array<int32> &&importer_count_);
+
+ static const std::int32_t ID = 2068432290;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineKeyboardButton final : public Object {
+ public:
+ string text_;
+ object_ptr<InlineKeyboardButtonType> type_;
+
+ inlineKeyboardButton();
+
+ inlineKeyboardButton(string const &text_, object_ptr<InlineKeyboardButtonType> &&type_);
+
+ static const std::int32_t ID = -372105704;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InlineKeyboardButtonType: public Object {
+ public:
+};
+
+class inlineKeyboardButtonTypeUrl final : public InlineKeyboardButtonType {
+ public:
+ string url_;
+
+ inlineKeyboardButtonTypeUrl();
+
+ explicit inlineKeyboardButtonTypeUrl(string const &url_);
+
+ static const std::int32_t ID = 1130741420;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineKeyboardButtonTypeLoginUrl final : public InlineKeyboardButtonType {
+ public:
+ string url_;
+ int53 id_;
+ string forward_text_;
+
+ inlineKeyboardButtonTypeLoginUrl();
+
+ inlineKeyboardButtonTypeLoginUrl(string const &url_, int53 id_, string const &forward_text_);
+
+ static const std::int32_t ID = -1203413081;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineKeyboardButtonTypeWebApp final : public InlineKeyboardButtonType {
+ public:
+ string url_;
+
+ inlineKeyboardButtonTypeWebApp();
+
+ explicit inlineKeyboardButtonTypeWebApp(string const &url_);
+
+ static const std::int32_t ID = -1767471672;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineKeyboardButtonTypeCallback final : public InlineKeyboardButtonType {
+ public:
+ bytes data_;
+
+ inlineKeyboardButtonTypeCallback();
+
+ explicit inlineKeyboardButtonTypeCallback(bytes const &data_);
+
+ static const std::int32_t ID = -1127515139;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineKeyboardButtonTypeCallbackWithPassword final : public InlineKeyboardButtonType {
+ public:
+ bytes data_;
+
+ inlineKeyboardButtonTypeCallbackWithPassword();
+
+ explicit inlineKeyboardButtonTypeCallbackWithPassword(bytes const &data_);
+
+ static const std::int32_t ID = 908018248;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineKeyboardButtonTypeCallbackGame final : public InlineKeyboardButtonType {
+ public:
+
+ inlineKeyboardButtonTypeCallbackGame();
+
+ static const std::int32_t ID = -383429528;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineKeyboardButtonTypeSwitchInline final : public InlineKeyboardButtonType {
+ public:
+ string query_;
+ bool in_current_chat_;
+
+ inlineKeyboardButtonTypeSwitchInline();
+
+ inlineKeyboardButtonTypeSwitchInline(string const &query_, bool in_current_chat_);
+
+ static const std::int32_t ID = -2035563307;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineKeyboardButtonTypeBuy final : public InlineKeyboardButtonType {
+ public:
+
+ inlineKeyboardButtonTypeBuy();
+
+ static const std::int32_t ID = 1360739440;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineKeyboardButtonTypeUser final : public InlineKeyboardButtonType {
+ public:
+ int53 user_id_;
+
+ inlineKeyboardButtonTypeUser();
+
+ explicit inlineKeyboardButtonTypeUser(int53 user_id_);
+
+ static const std::int32_t ID = 1836574114;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InlineQueryResult: public Object {
+ public:
+};
+
+class inlineQueryResultArticle final : public InlineQueryResult {
+ public:
+ string id_;
+ string url_;
+ bool hide_url_;
+ string title_;
+ string description_;
+ object_ptr<thumbnail> thumbnail_;
+
+ inlineQueryResultArticle();
+
+ inlineQueryResultArticle(string const &id_, string const &url_, bool hide_url_, string const &title_, string const &description_, object_ptr<thumbnail> &&thumbnail_);
+
+ static const std::int32_t ID = 206340825;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultContact final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<contact> contact_;
+ object_ptr<thumbnail> thumbnail_;
+
+ inlineQueryResultContact();
+
+ inlineQueryResultContact(string const &id_, object_ptr<contact> &&contact_, object_ptr<thumbnail> &&thumbnail_);
+
+ static const std::int32_t ID = -181960174;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultLocation final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<location> location_;
+ string title_;
+ object_ptr<thumbnail> thumbnail_;
+
+ inlineQueryResultLocation();
+
+ inlineQueryResultLocation(string const &id_, object_ptr<location> &&location_, string const &title_, object_ptr<thumbnail> &&thumbnail_);
+
+ static const std::int32_t ID = 466004752;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultVenue final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<venue> venue_;
+ object_ptr<thumbnail> thumbnail_;
+
+ inlineQueryResultVenue();
+
+ inlineQueryResultVenue(string const &id_, object_ptr<venue> &&venue_, object_ptr<thumbnail> &&thumbnail_);
+
+ static const std::int32_t ID = 1281036382;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultGame final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<game> game_;
+
+ inlineQueryResultGame();
+
+ inlineQueryResultGame(string const &id_, object_ptr<game> &&game_);
+
+ static const std::int32_t ID = 1706916987;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultAnimation final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<animation> animation_;
+ string title_;
+
+ inlineQueryResultAnimation();
+
+ inlineQueryResultAnimation(string const &id_, object_ptr<animation> &&animation_, string const &title_);
+
+ static const std::int32_t ID = 2009984267;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultAudio final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<audio> audio_;
+
+ inlineQueryResultAudio();
+
+ inlineQueryResultAudio(string const &id_, object_ptr<audio> &&audio_);
+
+ static const std::int32_t ID = 842650360;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultDocument final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<document> document_;
+ string title_;
+ string description_;
+
+ inlineQueryResultDocument();
+
+ inlineQueryResultDocument(string const &id_, object_ptr<document> &&document_, string const &title_, string const &description_);
+
+ static const std::int32_t ID = -1491268539;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultPhoto final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<photo> photo_;
+ string title_;
+ string description_;
+
+ inlineQueryResultPhoto();
+
+ inlineQueryResultPhoto(string const &id_, object_ptr<photo> &&photo_, string const &title_, string const &description_);
+
+ static const std::int32_t ID = 1848319440;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultSticker final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<sticker> sticker_;
+
+ inlineQueryResultSticker();
+
+ inlineQueryResultSticker(string const &id_, object_ptr<sticker> &&sticker_);
+
+ static const std::int32_t ID = -1848224245;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultVideo final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<video> video_;
+ string title_;
+ string description_;
+
+ inlineQueryResultVideo();
+
+ inlineQueryResultVideo(string const &id_, object_ptr<video> &&video_, string const &title_, string const &description_);
+
+ static const std::int32_t ID = -1373158683;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResultVoiceNote final : public InlineQueryResult {
+ public:
+ string id_;
+ object_ptr<voiceNote> voice_note_;
+ string title_;
+
+ inlineQueryResultVoiceNote();
+
+ inlineQueryResultVoiceNote(string const &id_, object_ptr<voiceNote> &&voice_note_, string const &title_);
+
+ static const std::int32_t ID = -1897393105;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryResults final : public Object {
+ public:
+ int64 inline_query_id_;
+ string next_offset_;
+ array<object_ptr<InlineQueryResult>> results_;
+ string switch_pm_text_;
+ string switch_pm_parameter_;
+
+ inlineQueryResults();
+
+ inlineQueryResults(int64 inline_query_id_, string const &next_offset_, array<object_ptr<InlineQueryResult>> &&results_, string const &switch_pm_text_, string const &switch_pm_parameter_);
+
+ static const std::int32_t ID = 1000709656;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputBackground: public Object {
+ public:
+};
+
+class inputBackgroundLocal final : public InputBackground {
+ public:
+ object_ptr<InputFile> background_;
+
+ inputBackgroundLocal();
+
+ explicit inputBackgroundLocal(object_ptr<InputFile> &&background_);
+
+ static const std::int32_t ID = -1747094364;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBackgroundRemote final : public InputBackground {
+ public:
+ int64 background_id_;
+
+ inputBackgroundRemote();
+
+ explicit inputBackgroundRemote(int64 background_id_);
+
+ static const std::int32_t ID = -274976231;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputChatPhoto: public Object {
+ public:
+};
+
+class inputChatPhotoPrevious final : public InputChatPhoto {
+ public:
+ int64 chat_photo_id_;
+
+ inputChatPhotoPrevious();
+
+ explicit inputChatPhotoPrevious(int64 chat_photo_id_);
+
+ static const std::int32_t ID = 23128529;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputChatPhotoStatic final : public InputChatPhoto {
+ public:
+ object_ptr<InputFile> photo_;
+
+ inputChatPhotoStatic();
+
+ explicit inputChatPhotoStatic(object_ptr<InputFile> &&photo_);
+
+ static const std::int32_t ID = 1979179699;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputChatPhotoAnimation final : public InputChatPhoto {
+ public:
+ object_ptr<InputFile> animation_;
+ double main_frame_timestamp_;
+
+ inputChatPhotoAnimation();
+
+ inputChatPhotoAnimation(object_ptr<InputFile> &&animation_, double main_frame_timestamp_);
+
+ static const std::int32_t ID = 90846242;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputCredentials: public Object {
+ public:
+};
+
+class inputCredentialsSaved final : public InputCredentials {
+ public:
+ string saved_credentials_id_;
+
+ inputCredentialsSaved();
+
+ explicit inputCredentialsSaved(string const &saved_credentials_id_);
+
+ static const std::int32_t ID = -2034385364;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputCredentialsNew final : public InputCredentials {
+ public:
+ string data_;
+ bool allow_save_;
+
+ inputCredentialsNew();
+
+ inputCredentialsNew(string const &data_, bool allow_save_);
+
+ static const std::int32_t ID = -829689558;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputCredentialsApplePay final : public InputCredentials {
+ public:
+ string data_;
+
+ inputCredentialsApplePay();
+
+ explicit inputCredentialsApplePay(string const &data_);
+
+ static const std::int32_t ID = -1246570799;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputCredentialsGooglePay final : public InputCredentials {
+ public:
+ string data_;
+
+ inputCredentialsGooglePay();
+
+ explicit inputCredentialsGooglePay(string const &data_);
+
+ static const std::int32_t ID = 844384100;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputFile: public Object {
+ public:
+};
+
+class inputFileId final : public InputFile {
+ public:
+ int32 id_;
+
+ inputFileId();
+
+ explicit inputFileId(int32 id_);
+
+ static const std::int32_t ID = 1788906253;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputFileRemote final : public InputFile {
+ public:
+ string id_;
+
+ inputFileRemote();
+
+ explicit inputFileRemote(string const &id_);
+
+ static const std::int32_t ID = -107574466;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputFileLocal final : public InputFile {
+ public:
+ string path_;
+
+ inputFileLocal();
+
+ explicit inputFileLocal(string const &path_);
+
+ static const std::int32_t ID = 2056030919;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputFileGenerated final : public InputFile {
+ public:
+ string original_path_;
+ string conversion_;
+ int53 expected_size_;
+
+ inputFileGenerated();
+
+ inputFileGenerated(string const &original_path_, string const &conversion_, int53 expected_size_);
+
+ static const std::int32_t ID = -1333385216;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputIdentityDocument final : public Object {
+ public:
+ string number_;
+ object_ptr<date> expiry_date_;
+ object_ptr<InputFile> front_side_;
+ object_ptr<InputFile> reverse_side_;
+ object_ptr<InputFile> selfie_;
+ array<object_ptr<InputFile>> translation_;
+
+ inputIdentityDocument();
+
+ inputIdentityDocument(string const &number_, object_ptr<date> &&expiry_date_, object_ptr<InputFile> &&front_side_, object_ptr<InputFile> &&reverse_side_, object_ptr<InputFile> &&selfie_, array<object_ptr<InputFile>> &&translation_);
+
+ static const std::int32_t ID = -381776063;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputInlineQueryResult: public Object {
+ public:
+};
+
+class inputInlineQueryResultAnimation final : public InputInlineQueryResult {
+ public:
+ string id_;
+ string title_;
+ string thumbnail_url_;
+ string thumbnail_mime_type_;
+ string video_url_;
+ string video_mime_type_;
+ int32 video_duration_;
+ int32 video_width_;
+ int32 video_height_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultAnimation();
+
+ inputInlineQueryResultAnimation(string const &id_, string const &title_, string const &thumbnail_url_, string const &thumbnail_mime_type_, string const &video_url_, string const &video_mime_type_, int32 video_duration_, int32 video_width_, int32 video_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = -1489808874;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultArticle final : public InputInlineQueryResult {
+ public:
+ string id_;
+ string url_;
+ bool hide_url_;
+ string title_;
+ string description_;
+ string thumbnail_url_;
+ int32 thumbnail_width_;
+ int32 thumbnail_height_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultArticle();
+
+ inputInlineQueryResultArticle(string const &id_, string const &url_, bool hide_url_, string const &title_, string const &description_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = 1973670156;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultAudio final : public InputInlineQueryResult {
+ public:
+ string id_;
+ string title_;
+ string performer_;
+ string audio_url_;
+ int32 audio_duration_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultAudio();
+
+ inputInlineQueryResultAudio(string const &id_, string const &title_, string const &performer_, string const &audio_url_, int32 audio_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = 1260139988;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultContact final : public InputInlineQueryResult {
+ public:
+ string id_;
+ object_ptr<contact> contact_;
+ string thumbnail_url_;
+ int32 thumbnail_width_;
+ int32 thumbnail_height_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultContact();
+
+ inputInlineQueryResultContact(string const &id_, object_ptr<contact> &&contact_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = 1846064594;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultDocument final : public InputInlineQueryResult {
+ public:
+ string id_;
+ string title_;
+ string description_;
+ string document_url_;
+ string mime_type_;
+ string thumbnail_url_;
+ int32 thumbnail_width_;
+ int32 thumbnail_height_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultDocument();
+
+ inputInlineQueryResultDocument(string const &id_, string const &title_, string const &description_, string const &document_url_, string const &mime_type_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = 578801869;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultGame final : public InputInlineQueryResult {
+ public:
+ string id_;
+ string game_short_name_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ inputInlineQueryResultGame();
+
+ inputInlineQueryResultGame(string const &id_, string const &game_short_name_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = 966074327;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultLocation final : public InputInlineQueryResult {
+ public:
+ string id_;
+ object_ptr<location> location_;
+ int32 live_period_;
+ string title_;
+ string thumbnail_url_;
+ int32 thumbnail_width_;
+ int32 thumbnail_height_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultLocation();
+
+ inputInlineQueryResultLocation(string const &id_, object_ptr<location> &&location_, int32 live_period_, string const &title_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = -1887650218;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultPhoto final : public InputInlineQueryResult {
+ public:
+ string id_;
+ string title_;
+ string description_;
+ string thumbnail_url_;
+ string photo_url_;
+ int32 photo_width_;
+ int32 photo_height_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultPhoto();
+
+ inputInlineQueryResultPhoto(string const &id_, string const &title_, string const &description_, string const &thumbnail_url_, string const &photo_url_, int32 photo_width_, int32 photo_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = -1123338721;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultSticker final : public InputInlineQueryResult {
+ public:
+ string id_;
+ string thumbnail_url_;
+ string sticker_url_;
+ int32 sticker_width_;
+ int32 sticker_height_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultSticker();
+
+ inputInlineQueryResultSticker(string const &id_, string const &thumbnail_url_, string const &sticker_url_, int32 sticker_width_, int32 sticker_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = 274007129;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultVenue final : public InputInlineQueryResult {
+ public:
+ string id_;
+ object_ptr<venue> venue_;
+ string thumbnail_url_;
+ int32 thumbnail_width_;
+ int32 thumbnail_height_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultVenue();
+
+ inputInlineQueryResultVenue(string const &id_, object_ptr<venue> &&venue_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = 541704509;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultVideo final : public InputInlineQueryResult {
+ public:
+ string id_;
+ string title_;
+ string description_;
+ string thumbnail_url_;
+ string video_url_;
+ string mime_type_;
+ int32 video_width_;
+ int32 video_height_;
+ int32 video_duration_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultVideo();
+
+ inputInlineQueryResultVideo(string const &id_, string const &title_, string const &description_, string const &thumbnail_url_, string const &video_url_, string const &mime_type_, int32 video_width_, int32 video_height_, int32 video_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = 1724073191;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInlineQueryResultVoiceNote final : public InputInlineQueryResult {
+ public:
+ string id_;
+ string title_;
+ string voice_note_url_;
+ int32 voice_note_duration_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ inputInlineQueryResultVoiceNote();
+
+ inputInlineQueryResultVoiceNote(string const &id_, string const &title_, string const &voice_note_url_, int32 voice_note_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = -1790072503;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputInvoice: public Object {
+ public:
+};
+
+class inputInvoiceMessage final : public InputInvoice {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ inputInvoiceMessage();
+
+ inputInvoiceMessage(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = 1490872848;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInvoiceName final : public InputInvoice {
+ public:
+ string name_;
+
+ inputInvoiceName();
+
+ explicit inputInvoiceName(string const &name_);
+
+ static const std::int32_t ID = -1312155917;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputMessageContent: public Object {
+ public:
+};
+
+class inputMessageText final : public InputMessageContent {
+ public:
+ object_ptr<formattedText> text_;
+ bool disable_web_page_preview_;
+ bool clear_draft_;
+
+ inputMessageText();
+
+ inputMessageText(object_ptr<formattedText> &&text_, bool disable_web_page_preview_, bool clear_draft_);
+
+ static const std::int32_t ID = 247050392;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageAnimation final : public InputMessageContent {
+ public:
+ object_ptr<InputFile> animation_;
+ object_ptr<inputThumbnail> thumbnail_;
+ array<int32> added_sticker_file_ids_;
+ int32 duration_;
+ int32 width_;
+ int32 height_;
+ object_ptr<formattedText> caption_;
+
+ inputMessageAnimation();
+
+ inputMessageAnimation(object_ptr<InputFile> &&animation_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 duration_, int32 width_, int32 height_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = 1208433535;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageAudio final : public InputMessageContent {
+ public:
+ object_ptr<InputFile> audio_;
+ object_ptr<inputThumbnail> album_cover_thumbnail_;
+ int32 duration_;
+ string title_;
+ string performer_;
+ object_ptr<formattedText> caption_;
+
+ inputMessageAudio();
+
+ inputMessageAudio(object_ptr<InputFile> &&audio_, object_ptr<inputThumbnail> &&album_cover_thumbnail_, int32 duration_, string const &title_, string const &performer_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = -626786126;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageDocument final : public InputMessageContent {
+ public:
+ object_ptr<InputFile> document_;
+ object_ptr<inputThumbnail> thumbnail_;
+ bool disable_content_type_detection_;
+ object_ptr<formattedText> caption_;
+
+ inputMessageDocument();
+
+ inputMessageDocument(object_ptr<InputFile> &&document_, object_ptr<inputThumbnail> &&thumbnail_, bool disable_content_type_detection_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = 1633383097;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagePhoto final : public InputMessageContent {
+ public:
+ object_ptr<InputFile> photo_;
+ object_ptr<inputThumbnail> thumbnail_;
+ array<int32> added_sticker_file_ids_;
+ int32 width_;
+ int32 height_;
+ object_ptr<formattedText> caption_;
+ int32 ttl_;
+
+ inputMessagePhoto();
+
+ inputMessagePhoto(object_ptr<InputFile> &&photo_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 width_, int32 height_, object_ptr<formattedText> &&caption_, int32 ttl_);
+
+ static const std::int32_t ID = 1648801584;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageSticker final : public InputMessageContent {
+ public:
+ object_ptr<InputFile> sticker_;
+ object_ptr<inputThumbnail> thumbnail_;
+ int32 width_;
+ int32 height_;
+ string emoji_;
+
+ inputMessageSticker();
+
+ inputMessageSticker(object_ptr<InputFile> &&sticker_, object_ptr<inputThumbnail> &&thumbnail_, int32 width_, int32 height_, string const &emoji_);
+
+ static const std::int32_t ID = 1072805625;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageVideo final : public InputMessageContent {
+ public:
+ object_ptr<InputFile> video_;
+ object_ptr<inputThumbnail> thumbnail_;
+ array<int32> added_sticker_file_ids_;
+ int32 duration_;
+ int32 width_;
+ int32 height_;
+ bool supports_streaming_;
+ object_ptr<formattedText> caption_;
+ int32 ttl_;
+
+ inputMessageVideo();
+
+ inputMessageVideo(object_ptr<InputFile> &&video_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 duration_, int32 width_, int32 height_, bool supports_streaming_, object_ptr<formattedText> &&caption_, int32 ttl_);
+
+ static const std::int32_t ID = -2108486755;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageVideoNote final : public InputMessageContent {
+ public:
+ object_ptr<InputFile> video_note_;
+ object_ptr<inputThumbnail> thumbnail_;
+ int32 duration_;
+ int32 length_;
+
+ inputMessageVideoNote();
+
+ inputMessageVideoNote(object_ptr<InputFile> &&video_note_, object_ptr<inputThumbnail> &&thumbnail_, int32 duration_, int32 length_);
+
+ static const std::int32_t ID = 279108859;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageVoiceNote final : public InputMessageContent {
+ public:
+ object_ptr<InputFile> voice_note_;
+ int32 duration_;
+ bytes waveform_;
+ object_ptr<formattedText> caption_;
+
+ inputMessageVoiceNote();
+
+ inputMessageVoiceNote(object_ptr<InputFile> &&voice_note_, int32 duration_, bytes const &waveform_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = 2136519657;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageLocation final : public InputMessageContent {
+ public:
+ object_ptr<location> location_;
+ int32 live_period_;
+ int32 heading_;
+ int32 proximity_alert_radius_;
+
+ inputMessageLocation();
+
+ inputMessageLocation(object_ptr<location> &&location_, int32 live_period_, int32 heading_, int32 proximity_alert_radius_);
+
+ static const std::int32_t ID = 648735088;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageVenue final : public InputMessageContent {
+ public:
+ object_ptr<venue> venue_;
+
+ inputMessageVenue();
+
+ explicit inputMessageVenue(object_ptr<venue> &&venue_);
+
+ static const std::int32_t ID = 1447926269;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageContact final : public InputMessageContent {
+ public:
+ object_ptr<contact> contact_;
+
+ inputMessageContact();
+
+ explicit inputMessageContact(object_ptr<contact> &&contact_);
+
+ static const std::int32_t ID = -982446849;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageDice final : public InputMessageContent {
+ public:
+ string emoji_;
+ bool clear_draft_;
+
+ inputMessageDice();
+
+ inputMessageDice(string const &emoji_, bool clear_draft_);
+
+ static const std::int32_t ID = 841574313;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageGame final : public InputMessageContent {
+ public:
+ int53 bot_user_id_;
+ string game_short_name_;
+
+ inputMessageGame();
+
+ inputMessageGame(int53 bot_user_id_, string const &game_short_name_);
+
+ static const std::int32_t ID = 1252944610;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageInvoice final : public InputMessageContent {
+ public:
+ object_ptr<invoice> invoice_;
+ string title_;
+ string description_;
+ string photo_url_;
+ int32 photo_size_;
+ int32 photo_width_;
+ int32 photo_height_;
+ bytes payload_;
+ string provider_token_;
+ string provider_data_;
+ string start_parameter_;
+ object_ptr<InputMessageContent> extended_media_content_;
+
+ inputMessageInvoice();
+
+ inputMessageInvoice(object_ptr<invoice> &&invoice_, string const &title_, string const &description_, string const &photo_url_, int32 photo_size_, int32 photo_width_, int32 photo_height_, bytes const &payload_, string const &provider_token_, string const &provider_data_, string const &start_parameter_, object_ptr<InputMessageContent> &&extended_media_content_);
+
+ static const std::int32_t ID = 885857632;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagePoll final : public InputMessageContent {
+ public:
+ string question_;
+ array<string> options_;
+ bool is_anonymous_;
+ object_ptr<PollType> type_;
+ int32 open_period_;
+ int32 close_date_;
+ bool is_closed_;
+
+ inputMessagePoll();
+
+ inputMessagePoll(string const &question_, array<string> &&options_, bool is_anonymous_, object_ptr<PollType> &&type_, int32 open_period_, int32 close_date_, bool is_closed_);
+
+ static const std::int32_t ID = 2054629900;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageForwarded final : public InputMessageContent {
+ public:
+ int53 from_chat_id_;
+ int53 message_id_;
+ bool in_game_share_;
+ object_ptr<messageCopyOptions> copy_options_;
+
+ inputMessageForwarded();
+
+ inputMessageForwarded(int53 from_chat_id_, int53 message_id_, bool in_game_share_, object_ptr<messageCopyOptions> &&copy_options_);
+
+ static const std::int32_t ID = 1696232440;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputPassportElement: public Object {
+ public:
+};
+
+class inputPassportElementPersonalDetails final : public InputPassportElement {
+ public:
+ object_ptr<personalDetails> personal_details_;
+
+ inputPassportElementPersonalDetails();
+
+ explicit inputPassportElementPersonalDetails(object_ptr<personalDetails> &&personal_details_);
+
+ static const std::int32_t ID = 164791359;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementPassport final : public InputPassportElement {
+ public:
+ object_ptr<inputIdentityDocument> passport_;
+
+ inputPassportElementPassport();
+
+ explicit inputPassportElementPassport(object_ptr<inputIdentityDocument> &&passport_);
+
+ static const std::int32_t ID = -497011356;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementDriverLicense final : public InputPassportElement {
+ public:
+ object_ptr<inputIdentityDocument> driver_license_;
+
+ inputPassportElementDriverLicense();
+
+ explicit inputPassportElementDriverLicense(object_ptr<inputIdentityDocument> &&driver_license_);
+
+ static const std::int32_t ID = 304813264;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementIdentityCard final : public InputPassportElement {
+ public:
+ object_ptr<inputIdentityDocument> identity_card_;
+
+ inputPassportElementIdentityCard();
+
+ explicit inputPassportElementIdentityCard(object_ptr<inputIdentityDocument> &&identity_card_);
+
+ static const std::int32_t ID = -9963390;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementInternalPassport final : public InputPassportElement {
+ public:
+ object_ptr<inputIdentityDocument> internal_passport_;
+
+ inputPassportElementInternalPassport();
+
+ explicit inputPassportElementInternalPassport(object_ptr<inputIdentityDocument> &&internal_passport_);
+
+ static const std::int32_t ID = 715360043;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementAddress final : public InputPassportElement {
+ public:
+ object_ptr<address> address_;
+
+ inputPassportElementAddress();
+
+ explicit inputPassportElementAddress(object_ptr<address> &&address_);
+
+ static const std::int32_t ID = 461630480;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementUtilityBill final : public InputPassportElement {
+ public:
+ object_ptr<inputPersonalDocument> utility_bill_;
+
+ inputPassportElementUtilityBill();
+
+ explicit inputPassportElementUtilityBill(object_ptr<inputPersonalDocument> &&utility_bill_);
+
+ static const std::int32_t ID = 1389203841;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementBankStatement final : public InputPassportElement {
+ public:
+ object_ptr<inputPersonalDocument> bank_statement_;
+
+ inputPassportElementBankStatement();
+
+ explicit inputPassportElementBankStatement(object_ptr<inputPersonalDocument> &&bank_statement_);
+
+ static const std::int32_t ID = -26585208;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementRentalAgreement final : public InputPassportElement {
+ public:
+ object_ptr<inputPersonalDocument> rental_agreement_;
+
+ inputPassportElementRentalAgreement();
+
+ explicit inputPassportElementRentalAgreement(object_ptr<inputPersonalDocument> &&rental_agreement_);
+
+ static const std::int32_t ID = 1736154155;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementPassportRegistration final : public InputPassportElement {
+ public:
+ object_ptr<inputPersonalDocument> passport_registration_;
+
+ inputPassportElementPassportRegistration();
+
+ explicit inputPassportElementPassportRegistration(object_ptr<inputPersonalDocument> &&passport_registration_);
+
+ static const std::int32_t ID = 1314562128;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementTemporaryRegistration final : public InputPassportElement {
+ public:
+ object_ptr<inputPersonalDocument> temporary_registration_;
+
+ inputPassportElementTemporaryRegistration();
+
+ explicit inputPassportElementTemporaryRegistration(object_ptr<inputPersonalDocument> &&temporary_registration_);
+
+ static const std::int32_t ID = -1913238047;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementPhoneNumber final : public InputPassportElement {
+ public:
+ string phone_number_;
+
+ inputPassportElementPhoneNumber();
+
+ explicit inputPassportElementPhoneNumber(string const &phone_number_);
+
+ static const std::int32_t ID = 1319357497;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementEmailAddress final : public InputPassportElement {
+ public:
+ string email_address_;
+
+ inputPassportElementEmailAddress();
+
+ explicit inputPassportElementEmailAddress(string const &email_address_);
+
+ static const std::int32_t ID = -248605659;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementError final : public Object {
+ public:
+ object_ptr<PassportElementType> type_;
+ string message_;
+ object_ptr<InputPassportElementErrorSource> source_;
+
+ inputPassportElementError();
+
+ inputPassportElementError(object_ptr<PassportElementType> &&type_, string const &message_, object_ptr<InputPassportElementErrorSource> &&source_);
+
+ static const std::int32_t ID = 285756898;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputPassportElementErrorSource: public Object {
+ public:
+};
+
+class inputPassportElementErrorSourceUnspecified final : public InputPassportElementErrorSource {
+ public:
+ bytes element_hash_;
+
+ inputPassportElementErrorSourceUnspecified();
+
+ explicit inputPassportElementErrorSourceUnspecified(bytes const &element_hash_);
+
+ static const std::int32_t ID = 267230319;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementErrorSourceDataField final : public InputPassportElementErrorSource {
+ public:
+ string field_name_;
+ bytes data_hash_;
+
+ inputPassportElementErrorSourceDataField();
+
+ inputPassportElementErrorSourceDataField(string const &field_name_, bytes const &data_hash_);
+
+ static const std::int32_t ID = -426795002;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementErrorSourceFrontSide final : public InputPassportElementErrorSource {
+ public:
+ bytes file_hash_;
+
+ inputPassportElementErrorSourceFrontSide();
+
+ explicit inputPassportElementErrorSourceFrontSide(bytes const &file_hash_);
+
+ static const std::int32_t ID = 588023741;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementErrorSourceReverseSide final : public InputPassportElementErrorSource {
+ public:
+ bytes file_hash_;
+
+ inputPassportElementErrorSourceReverseSide();
+
+ explicit inputPassportElementErrorSourceReverseSide(bytes const &file_hash_);
+
+ static const std::int32_t ID = 413072891;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementErrorSourceSelfie final : public InputPassportElementErrorSource {
+ public:
+ bytes file_hash_;
+
+ inputPassportElementErrorSourceSelfie();
+
+ explicit inputPassportElementErrorSourceSelfie(bytes const &file_hash_);
+
+ static const std::int32_t ID = -773575528;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementErrorSourceTranslationFile final : public InputPassportElementErrorSource {
+ public:
+ bytes file_hash_;
+
+ inputPassportElementErrorSourceTranslationFile();
+
+ explicit inputPassportElementErrorSourceTranslationFile(bytes const &file_hash_);
+
+ static const std::int32_t ID = 505842299;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementErrorSourceTranslationFiles final : public InputPassportElementErrorSource {
+ public:
+ array<bytes> file_hashes_;
+
+ inputPassportElementErrorSourceTranslationFiles();
+
+ explicit inputPassportElementErrorSourceTranslationFiles(array<bytes> &&file_hashes_);
+
+ static const std::int32_t ID = -527254048;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementErrorSourceFile final : public InputPassportElementErrorSource {
+ public:
+ bytes file_hash_;
+
+ inputPassportElementErrorSourceFile();
+
+ explicit inputPassportElementErrorSourceFile(bytes const &file_hash_);
+
+ static const std::int32_t ID = -298492469;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPassportElementErrorSourceFiles final : public InputPassportElementErrorSource {
+ public:
+ array<bytes> file_hashes_;
+
+ inputPassportElementErrorSourceFiles();
+
+ explicit inputPassportElementErrorSourceFiles(array<bytes> &&file_hashes_);
+
+ static const std::int32_t ID = -2008541640;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPersonalDocument final : public Object {
+ public:
+ array<object_ptr<InputFile>> files_;
+ array<object_ptr<InputFile>> translation_;
+
+ inputPersonalDocument();
+
+ inputPersonalDocument(array<object_ptr<InputFile>> &&files_, array<object_ptr<InputFile>> &&translation_);
+
+ static const std::int32_t ID = 1676966826;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputSticker final : public Object {
+ public:
+ object_ptr<InputFile> sticker_;
+ string emojis_;
+ object_ptr<StickerFormat> format_;
+ object_ptr<maskPosition> mask_position_;
+
+ inputSticker();
+
+ inputSticker(object_ptr<InputFile> &&sticker_, string const &emojis_, object_ptr<StickerFormat> &&format_, object_ptr<maskPosition> &&mask_position_);
+
+ static const std::int32_t ID = -1692915280;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputThumbnail final : public Object {
+ public:
+ object_ptr<InputFile> thumbnail_;
+ int32 width_;
+ int32 height_;
+
+ inputThumbnail();
+
+ inputThumbnail(object_ptr<InputFile> &&thumbnail_, int32 width_, int32 height_);
+
+ static const std::int32_t ID = 1582387236;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InternalLinkType: public Object {
+ public:
+};
+
+class internalLinkTypeActiveSessions final : public InternalLinkType {
+ public:
+
+ internalLinkTypeActiveSessions();
+
+ static const std::int32_t ID = 1886108589;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeAttachmentMenuBot final : public InternalLinkType {
+ public:
+ object_ptr<TargetChat> target_chat_;
+ string bot_username_;
+ string url_;
+
+ internalLinkTypeAttachmentMenuBot();
+
+ internalLinkTypeAttachmentMenuBot(object_ptr<TargetChat> &&target_chat_, string const &bot_username_, string const &url_);
+
+ static const std::int32_t ID = 1682719269;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeAuthenticationCode final : public InternalLinkType {
+ public:
+ string code_;
+
+ internalLinkTypeAuthenticationCode();
+
+ explicit internalLinkTypeAuthenticationCode(string const &code_);
+
+ static const std::int32_t ID = -209235982;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeBackground final : public InternalLinkType {
+ public:
+ string background_name_;
+
+ internalLinkTypeBackground();
+
+ explicit internalLinkTypeBackground(string const &background_name_);
+
+ static const std::int32_t ID = 185411848;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeBotStart final : public InternalLinkType {
+ public:
+ string bot_username_;
+ string start_parameter_;
+ bool autostart_;
+
+ internalLinkTypeBotStart();
+
+ internalLinkTypeBotStart(string const &bot_username_, string const &start_parameter_, bool autostart_);
+
+ static const std::int32_t ID = 1066950637;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeBotStartInGroup final : public InternalLinkType {
+ public:
+ string bot_username_;
+ string start_parameter_;
+ object_ptr<chatAdministratorRights> administrator_rights_;
+
+ internalLinkTypeBotStartInGroup();
+
+ internalLinkTypeBotStartInGroup(string const &bot_username_, string const &start_parameter_, object_ptr<chatAdministratorRights> &&administrator_rights_);
+
+ static const std::int32_t ID = -905081650;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeBotAddToChannel final : public InternalLinkType {
+ public:
+ string bot_username_;
+ object_ptr<chatAdministratorRights> administrator_rights_;
+
+ internalLinkTypeBotAddToChannel();
+
+ internalLinkTypeBotAddToChannel(string const &bot_username_, object_ptr<chatAdministratorRights> &&administrator_rights_);
+
+ static const std::int32_t ID = 1401602752;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeChangePhoneNumber final : public InternalLinkType {
+ public:
+
+ internalLinkTypeChangePhoneNumber();
+
+ static const std::int32_t ID = -265856255;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeChatInvite final : public InternalLinkType {
+ public:
+ string invite_link_;
+
+ internalLinkTypeChatInvite();
+
+ explicit internalLinkTypeChatInvite(string const &invite_link_);
+
+ static const std::int32_t ID = 428621017;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeFilterSettings final : public InternalLinkType {
+ public:
+
+ internalLinkTypeFilterSettings();
+
+ static const std::int32_t ID = 1501632411;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeGame final : public InternalLinkType {
+ public:
+ string bot_username_;
+ string game_short_name_;
+
+ internalLinkTypeGame();
+
+ internalLinkTypeGame(string const &bot_username_, string const &game_short_name_);
+
+ static const std::int32_t ID = -260788787;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeInstantView final : public InternalLinkType {
+ public:
+ string url_;
+ string fallback_url_;
+
+ internalLinkTypeInstantView();
+
+ internalLinkTypeInstantView(string const &url_, string const &fallback_url_);
+
+ static const std::int32_t ID = 1776607039;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeInvoice final : public InternalLinkType {
+ public:
+ string invoice_name_;
+
+ internalLinkTypeInvoice();
+
+ explicit internalLinkTypeInvoice(string const &invoice_name_);
+
+ static const std::int32_t ID = -213094996;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeLanguagePack final : public InternalLinkType {
+ public:
+ string language_pack_id_;
+
+ internalLinkTypeLanguagePack();
+
+ explicit internalLinkTypeLanguagePack(string const &language_pack_id_);
+
+ static const std::int32_t ID = -1450766996;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeLanguageSettings final : public InternalLinkType {
+ public:
+
+ internalLinkTypeLanguageSettings();
+
+ static const std::int32_t ID = -1340479770;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeMessage final : public InternalLinkType {
+ public:
+ string url_;
+
+ internalLinkTypeMessage();
+
+ explicit internalLinkTypeMessage(string const &url_);
+
+ static const std::int32_t ID = 978541650;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeMessageDraft final : public InternalLinkType {
+ public:
+ object_ptr<formattedText> text_;
+ bool contains_link_;
+
+ internalLinkTypeMessageDraft();
+
+ internalLinkTypeMessageDraft(object_ptr<formattedText> &&text_, bool contains_link_);
+
+ static const std::int32_t ID = 661633749;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypePassportDataRequest final : public InternalLinkType {
+ public:
+ int53 bot_user_id_;
+ string scope_;
+ string public_key_;
+ string nonce_;
+ string callback_url_;
+
+ internalLinkTypePassportDataRequest();
+
+ internalLinkTypePassportDataRequest(int53 bot_user_id_, string const &scope_, string const &public_key_, string const &nonce_, string const &callback_url_);
+
+ static const std::int32_t ID = -988819839;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypePhoneNumberConfirmation final : public InternalLinkType {
+ public:
+ string hash_;
+ string phone_number_;
+
+ internalLinkTypePhoneNumberConfirmation();
+
+ internalLinkTypePhoneNumberConfirmation(string const &hash_, string const &phone_number_);
+
+ static const std::int32_t ID = 1757375254;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypePremiumFeatures final : public InternalLinkType {
+ public:
+ string referrer_;
+
+ internalLinkTypePremiumFeatures();
+
+ explicit internalLinkTypePremiumFeatures(string const &referrer_);
+
+ static const std::int32_t ID = 1216892745;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypePrivacyAndSecuritySettings final : public InternalLinkType {
+ public:
+
+ internalLinkTypePrivacyAndSecuritySettings();
+
+ static const std::int32_t ID = -1386255665;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeProxy final : public InternalLinkType {
+ public:
+ string server_;
+ int32 port_;
+ object_ptr<ProxyType> type_;
+
+ internalLinkTypeProxy();
+
+ internalLinkTypeProxy(string const &server_, int32 port_, object_ptr<ProxyType> &&type_);
+
+ static const std::int32_t ID = -1313788694;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypePublicChat final : public InternalLinkType {
+ public:
+ string chat_username_;
+
+ internalLinkTypePublicChat();
+
+ explicit internalLinkTypePublicChat(string const &chat_username_);
+
+ static const std::int32_t ID = -1485547717;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeQrCodeAuthentication final : public InternalLinkType {
+ public:
+
+ internalLinkTypeQrCodeAuthentication();
+
+ static const std::int32_t ID = -1089332956;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeRestorePurchases final : public InternalLinkType {
+ public:
+
+ internalLinkTypeRestorePurchases();
+
+ static const std::int32_t ID = 606090371;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeSettings final : public InternalLinkType {
+ public:
+
+ internalLinkTypeSettings();
+
+ static const std::int32_t ID = 393561524;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeStickerSet final : public InternalLinkType {
+ public:
+ string sticker_set_name_;
+
+ internalLinkTypeStickerSet();
+
+ explicit internalLinkTypeStickerSet(string const &sticker_set_name_);
+
+ static const std::int32_t ID = -529639751;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeTheme final : public InternalLinkType {
+ public:
+ string theme_name_;
+
+ internalLinkTypeTheme();
+
+ explicit internalLinkTypeTheme(string const &theme_name_);
+
+ static const std::int32_t ID = -200935417;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeThemeSettings final : public InternalLinkType {
+ public:
+
+ internalLinkTypeThemeSettings();
+
+ static const std::int32_t ID = -1051903722;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeUnknownDeepLink final : public InternalLinkType {
+ public:
+ string link_;
+
+ internalLinkTypeUnknownDeepLink();
+
+ explicit internalLinkTypeUnknownDeepLink(string const &link_);
+
+ static const std::int32_t ID = 625596379;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeUnsupportedProxy final : public InternalLinkType {
+ public:
+
+ internalLinkTypeUnsupportedProxy();
+
+ static const std::int32_t ID = -566649079;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeUserPhoneNumber final : public InternalLinkType {
+ public:
+ string phone_number_;
+
+ internalLinkTypeUserPhoneNumber();
+
+ explicit internalLinkTypeUserPhoneNumber(string const &phone_number_);
+
+ static const std::int32_t ID = -1955751319;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class internalLinkTypeVideoChat final : public InternalLinkType {
+ public:
+ string chat_username_;
+ string invite_hash_;
+ bool is_live_stream_;
+
+ internalLinkTypeVideoChat();
+
+ internalLinkTypeVideoChat(string const &chat_username_, string const &invite_hash_, bool is_live_stream_);
+
+ static const std::int32_t ID = -2020149068;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class invoice final : public Object {
+ public:
+ string currency_;
+ array<object_ptr<labeledPricePart>> price_parts_;
+ int53 max_tip_amount_;
+ array<int53> suggested_tip_amounts_;
+ string recurring_payment_terms_of_service_url_;
+ bool is_test_;
+ bool need_name_;
+ bool need_phone_number_;
+ bool need_email_address_;
+ bool need_shipping_address_;
+ bool send_phone_number_to_provider_;
+ bool send_email_address_to_provider_;
+ bool is_flexible_;
+
+ invoice();
+
+ invoice(string const &currency_, array<object_ptr<labeledPricePart>> &&price_parts_, int53 max_tip_amount_, array<int53> &&suggested_tip_amounts_, string const &recurring_payment_terms_of_service_url_, bool is_test_, bool need_name_, bool need_phone_number_, bool need_email_address_, bool need_shipping_address_, bool send_phone_number_to_provider_, bool send_email_address_to_provider_, bool is_flexible_);
+
+ static const std::int32_t ID = 1977205639;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonObjectMember final : public Object {
+ public:
+ string key_;
+ object_ptr<JsonValue> value_;
+
+ jsonObjectMember();
+
+ jsonObjectMember(string const &key_, object_ptr<JsonValue> &&value_);
+
+ static const std::int32_t ID = -1803309418;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class JsonValue: public Object {
+ public:
+};
+
+class jsonValueNull final : public JsonValue {
+ public:
+
+ jsonValueNull();
+
+ static const std::int32_t ID = -92872499;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonValueBoolean final : public JsonValue {
+ public:
+ bool value_;
+
+ jsonValueBoolean();
+
+ explicit jsonValueBoolean(bool value_);
+
+ static const std::int32_t ID = -2142186576;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonValueNumber final : public JsonValue {
+ public:
+ double value_;
+
+ jsonValueNumber();
+
+ explicit jsonValueNumber(double value_);
+
+ static const std::int32_t ID = -1010822033;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonValueString final : public JsonValue {
+ public:
+ string value_;
+
+ jsonValueString();
+
+ explicit jsonValueString(string const &value_);
+
+ static const std::int32_t ID = 1597947313;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonValueArray final : public JsonValue {
+ public:
+ array<object_ptr<JsonValue>> values_;
+
+ jsonValueArray();
+
+ explicit jsonValueArray(array<object_ptr<JsonValue>> &&values_);
+
+ static const std::int32_t ID = -183913546;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonValueObject final : public JsonValue {
+ public:
+ array<object_ptr<jsonObjectMember>> members_;
+
+ jsonValueObject();
+
+ explicit jsonValueObject(array<object_ptr<jsonObjectMember>> &&members_);
+
+ static const std::int32_t ID = 520252026;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButton final : public Object {
+ public:
+ string text_;
+ object_ptr<KeyboardButtonType> type_;
+
+ keyboardButton();
+
+ keyboardButton(string const &text_, object_ptr<KeyboardButtonType> &&type_);
+
+ static const std::int32_t ID = -2069836172;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class KeyboardButtonType: public Object {
+ public:
+};
+
+class keyboardButtonTypeText final : public KeyboardButtonType {
+ public:
+
+ keyboardButtonTypeText();
+
+ static const std::int32_t ID = -1773037256;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonTypeRequestPhoneNumber final : public KeyboardButtonType {
+ public:
+
+ keyboardButtonTypeRequestPhoneNumber();
+
+ static const std::int32_t ID = -1529235527;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonTypeRequestLocation final : public KeyboardButtonType {
+ public:
+
+ keyboardButtonTypeRequestLocation();
+
+ static const std::int32_t ID = -125661955;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonTypeRequestPoll final : public KeyboardButtonType {
+ public:
+ bool force_regular_;
+ bool force_quiz_;
+
+ keyboardButtonTypeRequestPoll();
+
+ keyboardButtonTypeRequestPoll(bool force_regular_, bool force_quiz_);
+
+ static const std::int32_t ID = 1902435512;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonTypeWebApp final : public KeyboardButtonType {
+ public:
+ string url_;
+
+ keyboardButtonTypeWebApp();
+
+ explicit keyboardButtonTypeWebApp(string const &url_);
+
+ static const std::int32_t ID = 1892220770;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class labeledPricePart final : public Object {
+ public:
+ string label_;
+ int53 amount_;
+
+ labeledPricePart();
+
+ labeledPricePart(string const &label_, int53 amount_);
+
+ static const std::int32_t ID = 552789798;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class languagePackInfo final : public Object {
+ public:
+ string id_;
+ string base_language_pack_id_;
+ string name_;
+ string native_name_;
+ string plural_code_;
+ bool is_official_;
+ bool is_rtl_;
+ bool is_beta_;
+ bool is_installed_;
+ int32 total_string_count_;
+ int32 translated_string_count_;
+ int32 local_string_count_;
+ string translation_url_;
+
+ languagePackInfo();
+
+ languagePackInfo(string const &id_, string const &base_language_pack_id_, string const &name_, string const &native_name_, string const &plural_code_, bool is_official_, bool is_rtl_, bool is_beta_, bool is_installed_, int32 total_string_count_, int32 translated_string_count_, int32 local_string_count_, string const &translation_url_);
+
+ static const std::int32_t ID = 542199642;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class languagePackString final : public Object {
+ public:
+ string key_;
+ object_ptr<LanguagePackStringValue> value_;
+
+ languagePackString();
+
+ languagePackString(string const &key_, object_ptr<LanguagePackStringValue> &&value_);
+
+ static const std::int32_t ID = 1307632736;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class LanguagePackStringValue: public Object {
+ public:
+};
+
+class languagePackStringValueOrdinary final : public LanguagePackStringValue {
+ public:
+ string value_;
+
+ languagePackStringValueOrdinary();
+
+ explicit languagePackStringValueOrdinary(string const &value_);
+
+ static const std::int32_t ID = -249256352;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class languagePackStringValuePluralized final : public LanguagePackStringValue {
+ public:
+ string zero_value_;
+ string one_value_;
+ string two_value_;
+ string few_value_;
+ string many_value_;
+ string other_value_;
+
+ languagePackStringValuePluralized();
+
+ languagePackStringValuePluralized(string const &zero_value_, string const &one_value_, string const &two_value_, string const &few_value_, string const &many_value_, string const &other_value_);
+
+ static const std::int32_t ID = 1906840261;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class languagePackStringValueDeleted final : public LanguagePackStringValue {
+ public:
+
+ languagePackStringValueDeleted();
+
+ static const std::int32_t ID = 1834792698;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class languagePackStrings final : public Object {
+ public:
+ array<object_ptr<languagePackString>> strings_;
+
+ languagePackStrings();
+
+ explicit languagePackStrings(array<object_ptr<languagePackString>> &&strings_);
+
+ static const std::int32_t ID = 1172082922;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class localFile final : public Object {
+ public:
+ string path_;
+ bool can_be_downloaded_;
+ bool can_be_deleted_;
+ bool is_downloading_active_;
+ bool is_downloading_completed_;
+ int53 download_offset_;
+ int53 downloaded_prefix_size_;
+ int53 downloaded_size_;
+
+ localFile();
+
+ localFile(string const &path_, bool can_be_downloaded_, bool can_be_deleted_, bool is_downloading_active_, bool is_downloading_completed_, int53 download_offset_, int53 downloaded_prefix_size_, int53 downloaded_size_);
+
+ static const std::int32_t ID = -1562732153;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class localizationTargetInfo final : public Object {
+ public:
+ array<object_ptr<languagePackInfo>> language_packs_;
+
+ localizationTargetInfo();
+
+ explicit localizationTargetInfo(array<object_ptr<languagePackInfo>> &&language_packs_);
+
+ static const std::int32_t ID = -2048670809;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class location final : public Object {
+ public:
+ double latitude_;
+ double longitude_;
+ double horizontal_accuracy_;
+
+ location();
+
+ location(double latitude_, double longitude_, double horizontal_accuracy_);
+
+ static const std::int32_t ID = -443392141;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class LogStream: public Object {
+ public:
+};
+
+class logStreamDefault final : public LogStream {
+ public:
+
+ logStreamDefault();
+
+ static const std::int32_t ID = 1390581436;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class logStreamFile final : public LogStream {
+ public:
+ string path_;
+ int53 max_file_size_;
+ bool redirect_stderr_;
+
+ logStreamFile();
+
+ logStreamFile(string const &path_, int53 max_file_size_, bool redirect_stderr_);
+
+ static const std::int32_t ID = 1532136933;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class logStreamEmpty final : public LogStream {
+ public:
+
+ logStreamEmpty();
+
+ static const std::int32_t ID = -499912244;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class logTags final : public Object {
+ public:
+ array<string> tags_;
+
+ logTags();
+
+ explicit logTags(array<string> &&tags_);
+
+ static const std::int32_t ID = -1604930601;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class logVerbosityLevel final : public Object {
+ public:
+ int32 verbosity_level_;
+
+ logVerbosityLevel();
+
+ explicit logVerbosityLevel(int32 verbosity_level_);
+
+ static const std::int32_t ID = 1734624234;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class LoginUrlInfo: public Object {
+ public:
+};
+
+class loginUrlInfoOpen final : public LoginUrlInfo {
+ public:
+ string url_;
+ bool skip_confirm_;
+
+ loginUrlInfoOpen();
+
+ loginUrlInfoOpen(string const &url_, bool skip_confirm_);
+
+ static const std::int32_t ID = -1079045420;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class loginUrlInfoRequestConfirmation final : public LoginUrlInfo {
+ public:
+ string url_;
+ string domain_;
+ int53 bot_user_id_;
+ bool request_write_access_;
+
+ loginUrlInfoRequestConfirmation();
+
+ loginUrlInfoRequestConfirmation(string const &url_, string const &domain_, int53 bot_user_id_, bool request_write_access_);
+
+ static const std::int32_t ID = 2128290863;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MaskPoint: public Object {
+ public:
+};
+
+class maskPointForehead final : public MaskPoint {
+ public:
+
+ maskPointForehead();
+
+ static const std::int32_t ID = 1027512005;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class maskPointEyes final : public MaskPoint {
+ public:
+
+ maskPointEyes();
+
+ static const std::int32_t ID = 1748310861;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class maskPointMouth final : public MaskPoint {
+ public:
+
+ maskPointMouth();
+
+ static const std::int32_t ID = 411773406;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class maskPointChin final : public MaskPoint {
+ public:
+
+ maskPointChin();
+
+ static const std::int32_t ID = 534995335;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class maskPosition final : public Object {
+ public:
+ object_ptr<MaskPoint> point_;
+ double x_shift_;
+ double y_shift_;
+ double scale_;
+
+ maskPosition();
+
+ maskPosition(object_ptr<MaskPoint> &&point_, double x_shift_, double y_shift_, double scale_);
+
+ static const std::int32_t ID = -2097433026;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class message final : public Object {
+ public:
+ int53 id_;
+ object_ptr<MessageSender> sender_id_;
+ int53 chat_id_;
+ object_ptr<MessageSendingState> sending_state_;
+ object_ptr<MessageSchedulingState> scheduling_state_;
+ bool is_outgoing_;
+ bool is_pinned_;
+ bool can_be_edited_;
+ bool can_be_forwarded_;
+ bool can_be_saved_;
+ bool can_be_deleted_only_for_self_;
+ bool can_be_deleted_for_all_users_;
+ bool can_get_added_reactions_;
+ bool can_get_statistics_;
+ bool can_get_message_thread_;
+ bool can_get_viewers_;
+ bool can_get_media_timestamp_links_;
+ bool can_report_reactions_;
+ bool has_timestamped_media_;
+ bool is_channel_post_;
+ bool is_topic_message_;
+ bool contains_unread_mention_;
+ int32 date_;
+ int32 edit_date_;
+ object_ptr<messageForwardInfo> forward_info_;
+ object_ptr<messageInteractionInfo> interaction_info_;
+ array<object_ptr<unreadReaction>> unread_reactions_;
+ int53 reply_in_chat_id_;
+ int53 reply_to_message_id_;
+ int53 message_thread_id_;
+ int32 ttl_;
+ double ttl_expires_in_;
+ int53 via_bot_user_id_;
+ string author_signature_;
+ int64 media_album_id_;
+ string restriction_reason_;
+ object_ptr<MessageContent> content_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ message();
+
+ message(int53 id_, object_ptr<MessageSender> &&sender_id_, int53 chat_id_, object_ptr<MessageSendingState> &&sending_state_, object_ptr<MessageSchedulingState> &&scheduling_state_, bool is_outgoing_, bool is_pinned_, bool can_be_edited_, bool can_be_forwarded_, bool can_be_saved_, bool can_be_deleted_only_for_self_, bool can_be_deleted_for_all_users_, bool can_get_added_reactions_, bool can_get_statistics_, bool can_get_message_thread_, bool can_get_viewers_, bool can_get_media_timestamp_links_, bool can_report_reactions_, bool has_timestamped_media_, bool is_channel_post_, bool is_topic_message_, bool contains_unread_mention_, int32 date_, int32 edit_date_, object_ptr<messageForwardInfo> &&forward_info_, object_ptr<messageInteractionInfo> &&interaction_info_, array<object_ptr<unreadReaction>> &&unread_reactions_, int53 reply_in_chat_id_, int53 reply_to_message_id_, int53 message_thread_id_, int32 ttl_, double ttl_expires_in_, int53 via_bot_user_id_, string const &author_signature_, int64 media_album_id_, string const &restriction_reason_, object_ptr<MessageContent> &&content_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = -2008710896;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageCalendar final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<messageCalendarDay>> days_;
+
+ messageCalendar();
+
+ messageCalendar(int32 total_count_, array<object_ptr<messageCalendarDay>> &&days_);
+
+ static const std::int32_t ID = -1682890519;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageCalendarDay final : public Object {
+ public:
+ int32 total_count_;
+ object_ptr<message> message_;
+
+ messageCalendarDay();
+
+ messageCalendarDay(int32 total_count_, object_ptr<message> &&message_);
+
+ static const std::int32_t ID = -376467614;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageContent: public Object {
+ public:
+};
+
+class messageText final : public MessageContent {
+ public:
+ object_ptr<formattedText> text_;
+ object_ptr<webPage> web_page_;
+
+ messageText();
+
+ messageText(object_ptr<formattedText> &&text_, object_ptr<webPage> &&web_page_);
+
+ static const std::int32_t ID = 1989037971;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageAnimation final : public MessageContent {
+ public:
+ object_ptr<animation> animation_;
+ object_ptr<formattedText> caption_;
+ bool is_secret_;
+
+ messageAnimation();
+
+ messageAnimation(object_ptr<animation> &&animation_, object_ptr<formattedText> &&caption_, bool is_secret_);
+
+ static const std::int32_t ID = 1306939396;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageAudio final : public MessageContent {
+ public:
+ object_ptr<audio> audio_;
+ object_ptr<formattedText> caption_;
+
+ messageAudio();
+
+ messageAudio(object_ptr<audio> &&audio_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = 276722716;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageDocument final : public MessageContent {
+ public:
+ object_ptr<document> document_;
+ object_ptr<formattedText> caption_;
+
+ messageDocument();
+
+ messageDocument(object_ptr<document> &&document_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = 596945783;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messagePhoto final : public MessageContent {
+ public:
+ object_ptr<photo> photo_;
+ object_ptr<formattedText> caption_;
+ bool is_secret_;
+
+ messagePhoto();
+
+ messagePhoto(object_ptr<photo> &&photo_, object_ptr<formattedText> &&caption_, bool is_secret_);
+
+ static const std::int32_t ID = -1851395174;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageExpiredPhoto final : public MessageContent {
+ public:
+
+ messageExpiredPhoto();
+
+ static const std::int32_t ID = -1404641801;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageSticker final : public MessageContent {
+ public:
+ object_ptr<sticker> sticker_;
+ bool is_premium_;
+
+ messageSticker();
+
+ messageSticker(object_ptr<sticker> &&sticker_, bool is_premium_);
+
+ static const std::int32_t ID = -437199670;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageVideo final : public MessageContent {
+ public:
+ object_ptr<video> video_;
+ object_ptr<formattedText> caption_;
+ bool is_secret_;
+
+ messageVideo();
+
+ messageVideo(object_ptr<video> &&video_, object_ptr<formattedText> &&caption_, bool is_secret_);
+
+ static const std::int32_t ID = 2021281344;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageExpiredVideo final : public MessageContent {
+ public:
+
+ messageExpiredVideo();
+
+ static const std::int32_t ID = -1212209981;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageVideoNote final : public MessageContent {
+ public:
+ object_ptr<videoNote> video_note_;
+ bool is_viewed_;
+ bool is_secret_;
+
+ messageVideoNote();
+
+ messageVideoNote(object_ptr<videoNote> &&video_note_, bool is_viewed_, bool is_secret_);
+
+ static const std::int32_t ID = 963323014;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageVoiceNote final : public MessageContent {
+ public:
+ object_ptr<voiceNote> voice_note_;
+ object_ptr<formattedText> caption_;
+ bool is_listened_;
+
+ messageVoiceNote();
+
+ messageVoiceNote(object_ptr<voiceNote> &&voice_note_, object_ptr<formattedText> &&caption_, bool is_listened_);
+
+ static const std::int32_t ID = 527777781;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageLocation final : public MessageContent {
+ public:
+ object_ptr<location> location_;
+ int32 live_period_;
+ int32 expires_in_;
+ int32 heading_;
+ int32 proximity_alert_radius_;
+
+ messageLocation();
+
+ messageLocation(object_ptr<location> &&location_, int32 live_period_, int32 expires_in_, int32 heading_, int32 proximity_alert_radius_);
+
+ static const std::int32_t ID = 303973492;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageVenue final : public MessageContent {
+ public:
+ object_ptr<venue> venue_;
+
+ messageVenue();
+
+ explicit messageVenue(object_ptr<venue> &&venue_);
+
+ static const std::int32_t ID = -2146492043;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageContact final : public MessageContent {
+ public:
+ object_ptr<contact> contact_;
+
+ messageContact();
+
+ explicit messageContact(object_ptr<contact> &&contact_);
+
+ static const std::int32_t ID = -512684966;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageAnimatedEmoji final : public MessageContent {
+ public:
+ object_ptr<animatedEmoji> animated_emoji_;
+ string emoji_;
+
+ messageAnimatedEmoji();
+
+ messageAnimatedEmoji(object_ptr<animatedEmoji> &&animated_emoji_, string const &emoji_);
+
+ static const std::int32_t ID = 908195298;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageDice final : public MessageContent {
+ public:
+ object_ptr<DiceStickers> initial_state_;
+ object_ptr<DiceStickers> final_state_;
+ string emoji_;
+ int32 value_;
+ int32 success_animation_frame_number_;
+
+ messageDice();
+
+ messageDice(object_ptr<DiceStickers> &&initial_state_, object_ptr<DiceStickers> &&final_state_, string const &emoji_, int32 value_, int32 success_animation_frame_number_);
+
+ static const std::int32_t ID = 1115779641;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageGame final : public MessageContent {
+ public:
+ object_ptr<game> game_;
+
+ messageGame();
+
+ explicit messageGame(object_ptr<game> &&game_);
+
+ static const std::int32_t ID = -69441162;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messagePoll final : public MessageContent {
+ public:
+ object_ptr<poll> poll_;
+
+ messagePoll();
+
+ explicit messagePoll(object_ptr<poll> &&poll_);
+
+ static const std::int32_t ID = -662130099;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageInvoice final : public MessageContent {
+ public:
+ string title_;
+ object_ptr<formattedText> description_;
+ object_ptr<photo> photo_;
+ string currency_;
+ int53 total_amount_;
+ string start_parameter_;
+ bool is_test_;
+ bool need_shipping_address_;
+ int53 receipt_message_id_;
+ object_ptr<MessageExtendedMedia> extended_media_;
+
+ messageInvoice();
+
+ messageInvoice(string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, string const &currency_, int53 total_amount_, string const &start_parameter_, bool is_test_, bool need_shipping_address_, int53 receipt_message_id_, object_ptr<MessageExtendedMedia> &&extended_media_);
+
+ static const std::int32_t ID = 818077142;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageCall final : public MessageContent {
+ public:
+ bool is_video_;
+ object_ptr<CallDiscardReason> discard_reason_;
+ int32 duration_;
+
+ messageCall();
+
+ messageCall(bool is_video_, object_ptr<CallDiscardReason> &&discard_reason_, int32 duration_);
+
+ static const std::int32_t ID = 538893824;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageVideoChatScheduled final : public MessageContent {
+ public:
+ int32 group_call_id_;
+ int32 start_date_;
+
+ messageVideoChatScheduled();
+
+ messageVideoChatScheduled(int32 group_call_id_, int32 start_date_);
+
+ static const std::int32_t ID = -1855185481;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageVideoChatStarted final : public MessageContent {
+ public:
+ int32 group_call_id_;
+
+ messageVideoChatStarted();
+
+ explicit messageVideoChatStarted(int32 group_call_id_);
+
+ static const std::int32_t ID = 521225561;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageVideoChatEnded final : public MessageContent {
+ public:
+ int32 duration_;
+
+ messageVideoChatEnded();
+
+ explicit messageVideoChatEnded(int32 duration_);
+
+ static const std::int32_t ID = 2032544855;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageInviteVideoChatParticipants final : public MessageContent {
+ public:
+ int32 group_call_id_;
+ array<int53> user_ids_;
+
+ messageInviteVideoChatParticipants();
+
+ messageInviteVideoChatParticipants(int32 group_call_id_, array<int53> &&user_ids_);
+
+ static const std::int32_t ID = -1459065585;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageBasicGroupChatCreate final : public MessageContent {
+ public:
+ string title_;
+ array<int53> member_user_ids_;
+
+ messageBasicGroupChatCreate();
+
+ messageBasicGroupChatCreate(string const &title_, array<int53> &&member_user_ids_);
+
+ static const std::int32_t ID = 795404060;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageSupergroupChatCreate final : public MessageContent {
+ public:
+ string title_;
+
+ messageSupergroupChatCreate();
+
+ explicit messageSupergroupChatCreate(string const &title_);
+
+ static const std::int32_t ID = -434325733;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatChangeTitle final : public MessageContent {
+ public:
+ string title_;
+
+ messageChatChangeTitle();
+
+ explicit messageChatChangeTitle(string const &title_);
+
+ static const std::int32_t ID = 748272449;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatChangePhoto final : public MessageContent {
+ public:
+ object_ptr<chatPhoto> photo_;
+
+ messageChatChangePhoto();
+
+ explicit messageChatChangePhoto(object_ptr<chatPhoto> &&photo_);
+
+ static const std::int32_t ID = -813415093;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatDeletePhoto final : public MessageContent {
+ public:
+
+ messageChatDeletePhoto();
+
+ static const std::int32_t ID = -184374809;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatAddMembers final : public MessageContent {
+ public:
+ array<int53> member_user_ids_;
+
+ messageChatAddMembers();
+
+ explicit messageChatAddMembers(array<int53> &&member_user_ids_);
+
+ static const std::int32_t ID = 1701117908;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatJoinByLink final : public MessageContent {
+ public:
+
+ messageChatJoinByLink();
+
+ static const std::int32_t ID = 1846493311;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatJoinByRequest final : public MessageContent {
+ public:
+
+ messageChatJoinByRequest();
+
+ static const std::int32_t ID = 1195428732;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatDeleteMember final : public MessageContent {
+ public:
+ int53 user_id_;
+
+ messageChatDeleteMember();
+
+ explicit messageChatDeleteMember(int53 user_id_);
+
+ static const std::int32_t ID = 938029481;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatUpgradeTo final : public MessageContent {
+ public:
+ int53 supergroup_id_;
+
+ messageChatUpgradeTo();
+
+ explicit messageChatUpgradeTo(int53 supergroup_id_);
+
+ static const std::int32_t ID = 104813723;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatUpgradeFrom final : public MessageContent {
+ public:
+ string title_;
+ int53 basic_group_id_;
+
+ messageChatUpgradeFrom();
+
+ messageChatUpgradeFrom(string const &title_, int53 basic_group_id_);
+
+ static const std::int32_t ID = 325954268;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messagePinMessage final : public MessageContent {
+ public:
+ int53 message_id_;
+
+ messagePinMessage();
+
+ explicit messagePinMessage(int53 message_id_);
+
+ static const std::int32_t ID = 953503801;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageScreenshotTaken final : public MessageContent {
+ public:
+
+ messageScreenshotTaken();
+
+ static const std::int32_t ID = -1564971605;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatSetTheme final : public MessageContent {
+ public:
+ string theme_name_;
+
+ messageChatSetTheme();
+
+ explicit messageChatSetTheme(string const &theme_name_);
+
+ static const std::int32_t ID = -1716612088;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageChatSetTtl final : public MessageContent {
+ public:
+ int32 ttl_;
+
+ messageChatSetTtl();
+
+ explicit messageChatSetTtl(int32 ttl_);
+
+ static const std::int32_t ID = 1810060209;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageForumTopicCreated final : public MessageContent {
+ public:
+ string name_;
+ object_ptr<forumTopicIcon> icon_;
+
+ messageForumTopicCreated();
+
+ messageForumTopicCreated(string const &name_, object_ptr<forumTopicIcon> &&icon_);
+
+ static const std::int32_t ID = -1194440751;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageForumTopicEdited final : public MessageContent {
+ public:
+ string name_;
+ bool edit_icon_custom_emoji_id_;
+ int64 icon_custom_emoji_id_;
+
+ messageForumTopicEdited();
+
+ messageForumTopicEdited(string const &name_, bool edit_icon_custom_emoji_id_, int64 icon_custom_emoji_id_);
+
+ static const std::int32_t ID = 12629888;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageForumTopicIsClosedToggled final : public MessageContent {
+ public:
+ bool is_closed_;
+
+ messageForumTopicIsClosedToggled();
+
+ explicit messageForumTopicIsClosedToggled(bool is_closed_);
+
+ static const std::int32_t ID = 1264029664;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageCustomServiceAction final : public MessageContent {
+ public:
+ string text_;
+
+ messageCustomServiceAction();
+
+ explicit messageCustomServiceAction(string const &text_);
+
+ static const std::int32_t ID = 1435879282;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageGameScore final : public MessageContent {
+ public:
+ int53 game_message_id_;
+ int64 game_id_;
+ int32 score_;
+
+ messageGameScore();
+
+ messageGameScore(int53 game_message_id_, int64 game_id_, int32 score_);
+
+ static const std::int32_t ID = 1344904575;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messagePaymentSuccessful final : public MessageContent {
+ public:
+ int53 invoice_chat_id_;
+ int53 invoice_message_id_;
+ string currency_;
+ int53 total_amount_;
+ bool is_recurring_;
+ bool is_first_recurring_;
+ string invoice_name_;
+
+ messagePaymentSuccessful();
+
+ messagePaymentSuccessful(int53 invoice_chat_id_, int53 invoice_message_id_, string const &currency_, int53 total_amount_, bool is_recurring_, bool is_first_recurring_, string const &invoice_name_);
+
+ static const std::int32_t ID = 1406745820;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messagePaymentSuccessfulBot final : public MessageContent {
+ public:
+ string currency_;
+ int53 total_amount_;
+ bool is_recurring_;
+ bool is_first_recurring_;
+ bytes invoice_payload_;
+ string shipping_option_id_;
+ object_ptr<orderInfo> order_info_;
+ string telegram_payment_charge_id_;
+ string provider_payment_charge_id_;
+
+ messagePaymentSuccessfulBot();
+
+ messagePaymentSuccessfulBot(string const &currency_, int53 total_amount_, bool is_recurring_, bool is_first_recurring_, bytes const &invoice_payload_, string const &shipping_option_id_, object_ptr<orderInfo> &&order_info_, string const &telegram_payment_charge_id_, string const &provider_payment_charge_id_);
+
+ static const std::int32_t ID = 1759592121;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageGiftedPremium final : public MessageContent {
+ public:
+ string currency_;
+ int53 amount_;
+ int32 month_count_;
+ object_ptr<sticker> sticker_;
+
+ messageGiftedPremium();
+
+ messageGiftedPremium(string const &currency_, int53 amount_, int32 month_count_, object_ptr<sticker> &&sticker_);
+
+ static const std::int32_t ID = 1580804249;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageContactRegistered final : public MessageContent {
+ public:
+
+ messageContactRegistered();
+
+ static const std::int32_t ID = -1502020353;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageWebsiteConnected final : public MessageContent {
+ public:
+ string domain_name_;
+
+ messageWebsiteConnected();
+
+ explicit messageWebsiteConnected(string const &domain_name_);
+
+ static const std::int32_t ID = -1074551800;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageWebAppDataSent final : public MessageContent {
+ public:
+ string button_text_;
+
+ messageWebAppDataSent();
+
+ explicit messageWebAppDataSent(string const &button_text_);
+
+ static const std::int32_t ID = -83674862;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageWebAppDataReceived final : public MessageContent {
+ public:
+ string button_text_;
+ string data_;
+
+ messageWebAppDataReceived();
+
+ messageWebAppDataReceived(string const &button_text_, string const &data_);
+
+ static const std::int32_t ID = -8578539;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messagePassportDataSent final : public MessageContent {
+ public:
+ array<object_ptr<PassportElementType>> types_;
+
+ messagePassportDataSent();
+
+ explicit messagePassportDataSent(array<object_ptr<PassportElementType>> &&types_);
+
+ static const std::int32_t ID = 1017405171;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messagePassportDataReceived final : public MessageContent {
+ public:
+ array<object_ptr<encryptedPassportElement>> elements_;
+ object_ptr<encryptedCredentials> credentials_;
+
+ messagePassportDataReceived();
+
+ messagePassportDataReceived(array<object_ptr<encryptedPassportElement>> &&elements_, object_ptr<encryptedCredentials> &&credentials_);
+
+ static const std::int32_t ID = -1367863624;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageProximityAlertTriggered final : public MessageContent {
+ public:
+ object_ptr<MessageSender> traveler_id_;
+ object_ptr<MessageSender> watcher_id_;
+ int32 distance_;
+
+ messageProximityAlertTriggered();
+
+ messageProximityAlertTriggered(object_ptr<MessageSender> &&traveler_id_, object_ptr<MessageSender> &&watcher_id_, int32 distance_);
+
+ static const std::int32_t ID = 67761875;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageUnsupported final : public MessageContent {
+ public:
+
+ messageUnsupported();
+
+ static const std::int32_t ID = -1816726139;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageCopyOptions final : public Object {
+ public:
+ bool send_copy_;
+ bool replace_caption_;
+ object_ptr<formattedText> new_caption_;
+
+ messageCopyOptions();
+
+ messageCopyOptions(bool send_copy_, bool replace_caption_, object_ptr<formattedText> &&new_caption_);
+
+ static const std::int32_t ID = 1208442937;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageExtendedMedia: public Object {
+ public:
+};
+
+class messageExtendedMediaPreview final : public MessageExtendedMedia {
+ public:
+ int32 width_;
+ int32 height_;
+ int32 duration_;
+ object_ptr<minithumbnail> minithumbnail_;
+ object_ptr<formattedText> caption_;
+
+ messageExtendedMediaPreview();
+
+ messageExtendedMediaPreview(int32 width_, int32 height_, int32 duration_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = 1996727111;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageExtendedMediaPhoto final : public MessageExtendedMedia {
+ public:
+ object_ptr<photo> photo_;
+ object_ptr<formattedText> caption_;
+
+ messageExtendedMediaPhoto();
+
+ messageExtendedMediaPhoto(object_ptr<photo> &&photo_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = -963951312;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageExtendedMediaVideo final : public MessageExtendedMedia {
+ public:
+ object_ptr<video> video_;
+ object_ptr<formattedText> caption_;
+
+ messageExtendedMediaVideo();
+
+ messageExtendedMediaVideo(object_ptr<video> &&video_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = 296533819;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageExtendedMediaUnsupported final : public MessageExtendedMedia {
+ public:
+ object_ptr<formattedText> caption_;
+
+ messageExtendedMediaUnsupported();
+
+ explicit messageExtendedMediaUnsupported(object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = 337596448;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageFileType: public Object {
+ public:
+};
+
+class messageFileTypePrivate final : public MessageFileType {
+ public:
+ string name_;
+
+ messageFileTypePrivate();
+
+ explicit messageFileTypePrivate(string const &name_);
+
+ static const std::int32_t ID = -521908524;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageFileTypeGroup final : public MessageFileType {
+ public:
+ string title_;
+
+ messageFileTypeGroup();
+
+ explicit messageFileTypeGroup(string const &title_);
+
+ static const std::int32_t ID = -219836568;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageFileTypeUnknown final : public MessageFileType {
+ public:
+
+ messageFileTypeUnknown();
+
+ static const std::int32_t ID = 1176353458;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageForwardInfo final : public Object {
+ public:
+ object_ptr<MessageForwardOrigin> origin_;
+ int32 date_;
+ string public_service_announcement_type_;
+ int53 from_chat_id_;
+ int53 from_message_id_;
+
+ messageForwardInfo();
+
+ messageForwardInfo(object_ptr<MessageForwardOrigin> &&origin_, int32 date_, string const &public_service_announcement_type_, int53 from_chat_id_, int53 from_message_id_);
+
+ static const std::int32_t ID = -327300408;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageForwardOrigin: public Object {
+ public:
+};
+
+class messageForwardOriginUser final : public MessageForwardOrigin {
+ public:
+ int53 sender_user_id_;
+
+ messageForwardOriginUser();
+
+ explicit messageForwardOriginUser(int53 sender_user_id_);
+
+ static const std::int32_t ID = -355174191;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageForwardOriginChat final : public MessageForwardOrigin {
+ public:
+ int53 sender_chat_id_;
+ string author_signature_;
+
+ messageForwardOriginChat();
+
+ messageForwardOriginChat(int53 sender_chat_id_, string const &author_signature_);
+
+ static const std::int32_t ID = 1526010724;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageForwardOriginHiddenUser final : public MessageForwardOrigin {
+ public:
+ string sender_name_;
+
+ messageForwardOriginHiddenUser();
+
+ explicit messageForwardOriginHiddenUser(string const &sender_name_);
+
+ static const std::int32_t ID = -271257885;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageForwardOriginChannel final : public MessageForwardOrigin {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ string author_signature_;
+
+ messageForwardOriginChannel();
+
+ messageForwardOriginChannel(int53 chat_id_, int53 message_id_, string const &author_signature_);
+
+ static const std::int32_t ID = 1490730723;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageForwardOriginMessageImport final : public MessageForwardOrigin {
+ public:
+ string sender_name_;
+
+ messageForwardOriginMessageImport();
+
+ explicit messageForwardOriginMessageImport(string const &sender_name_);
+
+ static const std::int32_t ID = -739561951;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageInteractionInfo final : public Object {
+ public:
+ int32 view_count_;
+ int32 forward_count_;
+ object_ptr<messageReplyInfo> reply_info_;
+ array<object_ptr<messageReaction>> reactions_;
+
+ messageInteractionInfo();
+
+ messageInteractionInfo(int32 view_count_, int32 forward_count_, object_ptr<messageReplyInfo> &&reply_info_, array<object_ptr<messageReaction>> &&reactions_);
+
+ static const std::int32_t ID = -574858485;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageLink final : public Object {
+ public:
+ string link_;
+ bool is_public_;
+
+ messageLink();
+
+ messageLink(string const &link_, bool is_public_);
+
+ static const std::int32_t ID = -1354089818;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageLinkInfo final : public Object {
+ public:
+ bool is_public_;
+ int53 chat_id_;
+ int53 message_thread_id_;
+ object_ptr<message> message_;
+ int32 media_timestamp_;
+ bool for_album_;
+
+ messageLinkInfo();
+
+ messageLinkInfo(bool is_public_, int53 chat_id_, int53 message_thread_id_, object_ptr<message> &&message_, int32 media_timestamp_, bool for_album_);
+
+ static const std::int32_t ID = 731315024;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messagePosition final : public Object {
+ public:
+ int32 position_;
+ int53 message_id_;
+ int32 date_;
+
+ messagePosition();
+
+ messagePosition(int32 position_, int53 message_id_, int32 date_);
+
+ static const std::int32_t ID = 1292189935;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messagePositions final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<messagePosition>> positions_;
+
+ messagePositions();
+
+ messagePositions(int32 total_count_, array<object_ptr<messagePosition>> &&positions_);
+
+ static const std::int32_t ID = -1930466649;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageReaction final : public Object {
+ public:
+ object_ptr<ReactionType> type_;
+ int32 total_count_;
+ bool is_chosen_;
+ array<object_ptr<MessageSender>> recent_sender_ids_;
+
+ messageReaction();
+
+ messageReaction(object_ptr<ReactionType> &&type_, int32 total_count_, bool is_chosen_, array<object_ptr<MessageSender>> &&recent_sender_ids_);
+
+ static const std::int32_t ID = 583566666;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageReplyInfo final : public Object {
+ public:
+ int32 reply_count_;
+ array<object_ptr<MessageSender>> recent_replier_ids_;
+ int53 last_read_inbox_message_id_;
+ int53 last_read_outbox_message_id_;
+ int53 last_message_id_;
+
+ messageReplyInfo();
+
+ messageReplyInfo(int32 reply_count_, array<object_ptr<MessageSender>> &&recent_replier_ids_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int53 last_message_id_);
+
+ static const std::int32_t ID = -2093702263;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageSchedulingState: public Object {
+ public:
+};
+
+class messageSchedulingStateSendAtDate final : public MessageSchedulingState {
+ public:
+ int32 send_date_;
+
+ messageSchedulingStateSendAtDate();
+
+ explicit messageSchedulingStateSendAtDate(int32 send_date_);
+
+ static const std::int32_t ID = -1485570073;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageSchedulingStateSendWhenOnline final : public MessageSchedulingState {
+ public:
+
+ messageSchedulingStateSendWhenOnline();
+
+ static const std::int32_t ID = 2092947464;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageSendOptions final : public Object {
+ public:
+ bool disable_notification_;
+ bool from_background_;
+ bool protect_content_;
+ bool update_order_of_installed_sticker_sets_;
+ object_ptr<MessageSchedulingState> scheduling_state_;
+
+ messageSendOptions();
+
+ messageSendOptions(bool disable_notification_, bool from_background_, bool protect_content_, bool update_order_of_installed_sticker_sets_, object_ptr<MessageSchedulingState> &&scheduling_state_);
+
+ static const std::int32_t ID = -783267022;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageSender: public Object {
+ public:
+};
+
+class messageSenderUser final : public MessageSender {
+ public:
+ int53 user_id_;
+
+ messageSenderUser();
+
+ explicit messageSenderUser(int53 user_id_);
+
+ static const std::int32_t ID = -336109341;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageSenderChat final : public MessageSender {
+ public:
+ int53 chat_id_;
+
+ messageSenderChat();
+
+ explicit messageSenderChat(int53 chat_id_);
+
+ static const std::int32_t ID = -239660751;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageSenders final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<MessageSender>> senders_;
+
+ messageSenders();
+
+ messageSenders(int32 total_count_, array<object_ptr<MessageSender>> &&senders_);
+
+ static const std::int32_t ID = -690158467;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageSendingState: public Object {
+ public:
+};
+
+class messageSendingStatePending final : public MessageSendingState {
+ public:
+
+ messageSendingStatePending();
+
+ static const std::int32_t ID = -1381803582;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageSendingStateFailed final : public MessageSendingState {
+ public:
+ int32 error_code_;
+ string error_message_;
+ bool can_retry_;
+ bool need_another_sender_;
+ double retry_after_;
+
+ messageSendingStateFailed();
+
+ messageSendingStateFailed(int32 error_code_, string const &error_message_, bool can_retry_, bool need_another_sender_, double retry_after_);
+
+ static const std::int32_t ID = -1741887228;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageStatistics final : public Object {
+ public:
+ object_ptr<StatisticalGraph> message_interaction_graph_;
+
+ messageStatistics();
+
+ explicit messageStatistics(object_ptr<StatisticalGraph> &&message_interaction_graph_);
+
+ static const std::int32_t ID = -1011383888;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageThreadInfo final : public Object {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ object_ptr<messageReplyInfo> reply_info_;
+ int32 unread_message_count_;
+ array<object_ptr<message>> messages_;
+ object_ptr<draftMessage> draft_message_;
+
+ messageThreadInfo();
+
+ messageThreadInfo(int53 chat_id_, int53 message_thread_id_, object_ptr<messageReplyInfo> &&reply_info_, int32 unread_message_count_, array<object_ptr<message>> &&messages_, object_ptr<draftMessage> &&draft_message_);
+
+ static const std::int32_t ID = -248536056;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<message>> messages_;
+
+ messages();
+
+ messages(int32 total_count_, array<object_ptr<message>> &&messages_);
+
+ static const std::int32_t ID = -16498159;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class minithumbnail final : public Object {
+ public:
+ int32 width_;
+ int32 height_;
+ bytes data_;
+
+ minithumbnail();
+
+ minithumbnail(int32 width_, int32 height_, bytes const &data_);
+
+ static const std::int32_t ID = -328540758;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class networkStatistics final : public Object {
+ public:
+ int32 since_date_;
+ array<object_ptr<NetworkStatisticsEntry>> entries_;
+
+ networkStatistics();
+
+ networkStatistics(int32 since_date_, array<object_ptr<NetworkStatisticsEntry>> &&entries_);
+
+ static const std::int32_t ID = 1615554212;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class NetworkStatisticsEntry: public Object {
+ public:
+};
+
+class networkStatisticsEntryFile final : public NetworkStatisticsEntry {
+ public:
+ object_ptr<FileType> file_type_;
+ object_ptr<NetworkType> network_type_;
+ int53 sent_bytes_;
+ int53 received_bytes_;
+
+ networkStatisticsEntryFile();
+
+ networkStatisticsEntryFile(object_ptr<FileType> &&file_type_, object_ptr<NetworkType> &&network_type_, int53 sent_bytes_, int53 received_bytes_);
+
+ static const std::int32_t ID = 188452706;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class networkStatisticsEntryCall final : public NetworkStatisticsEntry {
+ public:
+ object_ptr<NetworkType> network_type_;
+ int53 sent_bytes_;
+ int53 received_bytes_;
+ double duration_;
+
+ networkStatisticsEntryCall();
+
+ networkStatisticsEntryCall(object_ptr<NetworkType> &&network_type_, int53 sent_bytes_, int53 received_bytes_, double duration_);
+
+ static const std::int32_t ID = 737000365;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class NetworkType: public Object {
+ public:
+};
+
+class networkTypeNone final : public NetworkType {
+ public:
+
+ networkTypeNone();
+
+ static const std::int32_t ID = -1971691759;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class networkTypeMobile final : public NetworkType {
+ public:
+
+ networkTypeMobile();
+
+ static const std::int32_t ID = 819228239;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class networkTypeMobileRoaming final : public NetworkType {
+ public:
+
+ networkTypeMobileRoaming();
+
+ static const std::int32_t ID = -1435199760;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class networkTypeWiFi final : public NetworkType {
+ public:
+
+ networkTypeWiFi();
+
+ static const std::int32_t ID = -633872070;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class networkTypeOther final : public NetworkType {
+ public:
+
+ networkTypeOther();
+
+ static const std::int32_t ID = 1942128539;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notification final : public Object {
+ public:
+ int32 id_;
+ int32 date_;
+ bool is_silent_;
+ object_ptr<NotificationType> type_;
+
+ notification();
+
+ notification(int32 id_, int32 date_, bool is_silent_, object_ptr<NotificationType> &&type_);
+
+ static const std::int32_t ID = 788743120;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationGroup final : public Object {
+ public:
+ int32 id_;
+ object_ptr<NotificationGroupType> type_;
+ int53 chat_id_;
+ int32 total_count_;
+ array<object_ptr<notification>> notifications_;
+
+ notificationGroup();
+
+ notificationGroup(int32 id_, object_ptr<NotificationGroupType> &&type_, int53 chat_id_, int32 total_count_, array<object_ptr<notification>> &&notifications_);
+
+ static const std::int32_t ID = 780691541;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class NotificationGroupType: public Object {
+ public:
+};
+
+class notificationGroupTypeMessages final : public NotificationGroupType {
+ public:
+
+ notificationGroupTypeMessages();
+
+ static const std::int32_t ID = -1702481123;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationGroupTypeMentions final : public NotificationGroupType {
+ public:
+
+ notificationGroupTypeMentions();
+
+ static const std::int32_t ID = -2050324051;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationGroupTypeSecretChat final : public NotificationGroupType {
+ public:
+
+ notificationGroupTypeSecretChat();
+
+ static const std::int32_t ID = 1390759476;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationGroupTypeCalls final : public NotificationGroupType {
+ public:
+
+ notificationGroupTypeCalls();
+
+ static const std::int32_t ID = 1379123538;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class NotificationSettingsScope: public Object {
+ public:
+};
+
+class notificationSettingsScopePrivateChats final : public NotificationSettingsScope {
+ public:
+
+ notificationSettingsScopePrivateChats();
+
+ static const std::int32_t ID = 937446759;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationSettingsScopeGroupChats final : public NotificationSettingsScope {
+ public:
+
+ notificationSettingsScopeGroupChats();
+
+ static const std::int32_t ID = 1212142067;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationSettingsScopeChannelChats final : public NotificationSettingsScope {
+ public:
+
+ notificationSettingsScopeChannelChats();
+
+ static const std::int32_t ID = 548013448;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationSound final : public Object {
+ public:
+ int64 id_;
+ int32 duration_;
+ int32 date_;
+ string title_;
+ string data_;
+ object_ptr<file> sound_;
+
+ notificationSound();
+
+ notificationSound(int64 id_, int32 duration_, int32 date_, string const &title_, string const &data_, object_ptr<file> &&sound_);
+
+ static const std::int32_t ID = -185638601;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationSounds final : public Object {
+ public:
+ array<object_ptr<notificationSound>> notification_sounds_;
+
+ notificationSounds();
+
+ explicit notificationSounds(array<object_ptr<notificationSound>> &&notification_sounds_);
+
+ static const std::int32_t ID = -630813169;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class NotificationType: public Object {
+ public:
+};
+
+class notificationTypeNewMessage final : public NotificationType {
+ public:
+ object_ptr<message> message_;
+ bool show_preview_;
+
+ notificationTypeNewMessage();
+
+ notificationTypeNewMessage(object_ptr<message> &&message_, bool show_preview_);
+
+ static const std::int32_t ID = -254745614;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationTypeNewSecretChat final : public NotificationType {
+ public:
+
+ notificationTypeNewSecretChat();
+
+ static const std::int32_t ID = 1198638768;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationTypeNewCall final : public NotificationType {
+ public:
+ int32 call_id_;
+
+ notificationTypeNewCall();
+
+ explicit notificationTypeNewCall(int32 call_id_);
+
+ static const std::int32_t ID = 1712734585;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationTypeNewPushMessage final : public NotificationType {
+ public:
+ int53 message_id_;
+ object_ptr<MessageSender> sender_id_;
+ string sender_name_;
+ bool is_outgoing_;
+ object_ptr<PushMessageContent> content_;
+
+ notificationTypeNewPushMessage();
+
+ notificationTypeNewPushMessage(int53 message_id_, object_ptr<MessageSender> &&sender_id_, string const &sender_name_, bool is_outgoing_, object_ptr<PushMessageContent> &&content_);
+
+ static const std::int32_t ID = -711680462;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ok final : public Object {
+ public:
+
+ ok();
+
+ static const std::int32_t ID = -722616727;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class OptionValue: public Object {
+ public:
+};
+
+class optionValueBoolean final : public OptionValue {
+ public:
+ bool value_;
+
+ optionValueBoolean();
+
+ explicit optionValueBoolean(bool value_);
+
+ static const std::int32_t ID = 63135518;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class optionValueEmpty final : public OptionValue {
+ public:
+
+ optionValueEmpty();
+
+ static const std::int32_t ID = 918955155;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class optionValueInteger final : public OptionValue {
+ public:
+ int64 value_;
+
+ optionValueInteger();
+
+ explicit optionValueInteger(int64 value_);
+
+ static const std::int32_t ID = -186858780;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class optionValueString final : public OptionValue {
+ public:
+ string value_;
+
+ optionValueString();
+
+ explicit optionValueString(string const &value_);
+
+ static const std::int32_t ID = 756248212;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class orderInfo final : public Object {
+ public:
+ string name_;
+ string phone_number_;
+ string email_address_;
+ object_ptr<address> shipping_address_;
+
+ orderInfo();
+
+ orderInfo(string const &name_, string const &phone_number_, string const &email_address_, object_ptr<address> &&shipping_address_);
+
+ static const std::int32_t ID = 783997294;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PageBlock: public Object {
+ public:
+};
+
+class pageBlockTitle final : public PageBlock {
+ public:
+ object_ptr<RichText> title_;
+
+ pageBlockTitle();
+
+ explicit pageBlockTitle(object_ptr<RichText> &&title_);
+
+ static const std::int32_t ID = 1629664784;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockSubtitle final : public PageBlock {
+ public:
+ object_ptr<RichText> subtitle_;
+
+ pageBlockSubtitle();
+
+ explicit pageBlockSubtitle(object_ptr<RichText> &&subtitle_);
+
+ static const std::int32_t ID = 264524263;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockAuthorDate final : public PageBlock {
+ public:
+ object_ptr<RichText> author_;
+ int32 publish_date_;
+
+ pageBlockAuthorDate();
+
+ pageBlockAuthorDate(object_ptr<RichText> &&author_, int32 publish_date_);
+
+ static const std::int32_t ID = 1300231184;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockHeader final : public PageBlock {
+ public:
+ object_ptr<RichText> header_;
+
+ pageBlockHeader();
+
+ explicit pageBlockHeader(object_ptr<RichText> &&header_);
+
+ static const std::int32_t ID = 1402854811;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockSubheader final : public PageBlock {
+ public:
+ object_ptr<RichText> subheader_;
+
+ pageBlockSubheader();
+
+ explicit pageBlockSubheader(object_ptr<RichText> &&subheader_);
+
+ static const std::int32_t ID = 1263956774;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockKicker final : public PageBlock {
+ public:
+ object_ptr<RichText> kicker_;
+
+ pageBlockKicker();
+
+ explicit pageBlockKicker(object_ptr<RichText> &&kicker_);
+
+ static const std::int32_t ID = 1361282635;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockParagraph final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+
+ pageBlockParagraph();
+
+ explicit pageBlockParagraph(object_ptr<RichText> &&text_);
+
+ static const std::int32_t ID = 1182402406;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockPreformatted final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+ string language_;
+
+ pageBlockPreformatted();
+
+ pageBlockPreformatted(object_ptr<RichText> &&text_, string const &language_);
+
+ static const std::int32_t ID = -1066346178;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockFooter final : public PageBlock {
+ public:
+ object_ptr<RichText> footer_;
+
+ pageBlockFooter();
+
+ explicit pageBlockFooter(object_ptr<RichText> &&footer_);
+
+ static const std::int32_t ID = 886429480;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockDivider final : public PageBlock {
+ public:
+
+ pageBlockDivider();
+
+ static const std::int32_t ID = -618614392;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockAnchor final : public PageBlock {
+ public:
+ string name_;
+
+ pageBlockAnchor();
+
+ explicit pageBlockAnchor(string const &name_);
+
+ static const std::int32_t ID = -837994576;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockList final : public PageBlock {
+ public:
+ array<object_ptr<pageBlockListItem>> items_;
+
+ pageBlockList();
+
+ explicit pageBlockList(array<object_ptr<pageBlockListItem>> &&items_);
+
+ static const std::int32_t ID = -1037074852;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockBlockQuote final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+ object_ptr<RichText> credit_;
+
+ pageBlockBlockQuote();
+
+ pageBlockBlockQuote(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_);
+
+ static const std::int32_t ID = 1657834142;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockPullQuote final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+ object_ptr<RichText> credit_;
+
+ pageBlockPullQuote();
+
+ pageBlockPullQuote(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_);
+
+ static const std::int32_t ID = 490242317;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockAnimation final : public PageBlock {
+ public:
+ object_ptr<animation> animation_;
+ object_ptr<pageBlockCaption> caption_;
+ bool need_autoplay_;
+
+ pageBlockAnimation();
+
+ pageBlockAnimation(object_ptr<animation> &&animation_, object_ptr<pageBlockCaption> &&caption_, bool need_autoplay_);
+
+ static const std::int32_t ID = 1355669513;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockAudio final : public PageBlock {
+ public:
+ object_ptr<audio> audio_;
+ object_ptr<pageBlockCaption> caption_;
+
+ pageBlockAudio();
+
+ pageBlockAudio(object_ptr<audio> &&audio_, object_ptr<pageBlockCaption> &&caption_);
+
+ static const std::int32_t ID = -63371245;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockPhoto final : public PageBlock {
+ public:
+ object_ptr<photo> photo_;
+ object_ptr<pageBlockCaption> caption_;
+ string url_;
+
+ pageBlockPhoto();
+
+ pageBlockPhoto(object_ptr<photo> &&photo_, object_ptr<pageBlockCaption> &&caption_, string const &url_);
+
+ static const std::int32_t ID = 417601156;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockVideo final : public PageBlock {
+ public:
+ object_ptr<video> video_;
+ object_ptr<pageBlockCaption> caption_;
+ bool need_autoplay_;
+ bool is_looped_;
+
+ pageBlockVideo();
+
+ pageBlockVideo(object_ptr<video> &&video_, object_ptr<pageBlockCaption> &&caption_, bool need_autoplay_, bool is_looped_);
+
+ static const std::int32_t ID = 510041394;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockVoiceNote final : public PageBlock {
+ public:
+ object_ptr<voiceNote> voice_note_;
+ object_ptr<pageBlockCaption> caption_;
+
+ pageBlockVoiceNote();
+
+ pageBlockVoiceNote(object_ptr<voiceNote> &&voice_note_, object_ptr<pageBlockCaption> &&caption_);
+
+ static const std::int32_t ID = 1823310463;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockCover final : public PageBlock {
+ public:
+ object_ptr<PageBlock> cover_;
+
+ pageBlockCover();
+
+ explicit pageBlockCover(object_ptr<PageBlock> &&cover_);
+
+ static const std::int32_t ID = 972174080;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockEmbedded final : public PageBlock {
+ public:
+ string url_;
+ string html_;
+ object_ptr<photo> poster_photo_;
+ int32 width_;
+ int32 height_;
+ object_ptr<pageBlockCaption> caption_;
+ bool is_full_width_;
+ bool allow_scrolling_;
+
+ pageBlockEmbedded();
+
+ pageBlockEmbedded(string const &url_, string const &html_, object_ptr<photo> &&poster_photo_, int32 width_, int32 height_, object_ptr<pageBlockCaption> &&caption_, bool is_full_width_, bool allow_scrolling_);
+
+ static const std::int32_t ID = -1942577763;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockEmbeddedPost final : public PageBlock {
+ public:
+ string url_;
+ string author_;
+ object_ptr<photo> author_photo_;
+ int32 date_;
+ array<object_ptr<PageBlock>> page_blocks_;
+ object_ptr<pageBlockCaption> caption_;
+
+ pageBlockEmbeddedPost();
+
+ pageBlockEmbeddedPost(string const &url_, string const &author_, object_ptr<photo> &&author_photo_, int32 date_, array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_);
+
+ static const std::int32_t ID = 397600949;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockCollage final : public PageBlock {
+ public:
+ array<object_ptr<PageBlock>> page_blocks_;
+ object_ptr<pageBlockCaption> caption_;
+
+ pageBlockCollage();
+
+ pageBlockCollage(array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_);
+
+ static const std::int32_t ID = 1163760110;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockSlideshow final : public PageBlock {
+ public:
+ array<object_ptr<PageBlock>> page_blocks_;
+ object_ptr<pageBlockCaption> caption_;
+
+ pageBlockSlideshow();
+
+ pageBlockSlideshow(array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_);
+
+ static const std::int32_t ID = 539217375;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockChatLink final : public PageBlock {
+ public:
+ string title_;
+ object_ptr<chatPhotoInfo> photo_;
+ string username_;
+
+ pageBlockChatLink();
+
+ pageBlockChatLink(string const &title_, object_ptr<chatPhotoInfo> &&photo_, string const &username_);
+
+ static const std::int32_t ID = -202091253;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockTable final : public PageBlock {
+ public:
+ object_ptr<RichText> caption_;
+ array<array<object_ptr<pageBlockTableCell>>> cells_;
+ bool is_bordered_;
+ bool is_striped_;
+
+ pageBlockTable();
+
+ pageBlockTable(object_ptr<RichText> &&caption_, array<array<object_ptr<pageBlockTableCell>>> &&cells_, bool is_bordered_, bool is_striped_);
+
+ static const std::int32_t ID = -942649288;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockDetails final : public PageBlock {
+ public:
+ object_ptr<RichText> header_;
+ array<object_ptr<PageBlock>> page_blocks_;
+ bool is_open_;
+
+ pageBlockDetails();
+
+ pageBlockDetails(object_ptr<RichText> &&header_, array<object_ptr<PageBlock>> &&page_blocks_, bool is_open_);
+
+ static const std::int32_t ID = -1599869809;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockRelatedArticles final : public PageBlock {
+ public:
+ object_ptr<RichText> header_;
+ array<object_ptr<pageBlockRelatedArticle>> articles_;
+
+ pageBlockRelatedArticles();
+
+ pageBlockRelatedArticles(object_ptr<RichText> &&header_, array<object_ptr<pageBlockRelatedArticle>> &&articles_);
+
+ static const std::int32_t ID = -1807324374;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockMap final : public PageBlock {
+ public:
+ object_ptr<location> location_;
+ int32 zoom_;
+ int32 width_;
+ int32 height_;
+ object_ptr<pageBlockCaption> caption_;
+
+ pageBlockMap();
+
+ pageBlockMap(object_ptr<location> &&location_, int32 zoom_, int32 width_, int32 height_, object_ptr<pageBlockCaption> &&caption_);
+
+ static const std::int32_t ID = 1510961171;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockCaption final : public Object {
+ public:
+ object_ptr<RichText> text_;
+ object_ptr<RichText> credit_;
+
+ pageBlockCaption();
+
+ pageBlockCaption(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_);
+
+ static const std::int32_t ID = -1180064650;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PageBlockHorizontalAlignment: public Object {
+ public:
+};
+
+class pageBlockHorizontalAlignmentLeft final : public PageBlockHorizontalAlignment {
+ public:
+
+ pageBlockHorizontalAlignmentLeft();
+
+ static const std::int32_t ID = 848701417;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockHorizontalAlignmentCenter final : public PageBlockHorizontalAlignment {
+ public:
+
+ pageBlockHorizontalAlignmentCenter();
+
+ static const std::int32_t ID = -1009203990;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockHorizontalAlignmentRight final : public PageBlockHorizontalAlignment {
+ public:
+
+ pageBlockHorizontalAlignmentRight();
+
+ static const std::int32_t ID = 1371369214;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockListItem final : public Object {
+ public:
+ string label_;
+ array<object_ptr<PageBlock>> page_blocks_;
+
+ pageBlockListItem();
+
+ pageBlockListItem(string const &label_, array<object_ptr<PageBlock>> &&page_blocks_);
+
+ static const std::int32_t ID = 323186259;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockRelatedArticle final : public Object {
+ public:
+ string url_;
+ string title_;
+ string description_;
+ object_ptr<photo> photo_;
+ string author_;
+ int32 publish_date_;
+
+ pageBlockRelatedArticle();
+
+ pageBlockRelatedArticle(string const &url_, string const &title_, string const &description_, object_ptr<photo> &&photo_, string const &author_, int32 publish_date_);
+
+ static const std::int32_t ID = 481199251;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockTableCell final : public Object {
+ public:
+ object_ptr<RichText> text_;
+ bool is_header_;
+ int32 colspan_;
+ int32 rowspan_;
+ object_ptr<PageBlockHorizontalAlignment> align_;
+ object_ptr<PageBlockVerticalAlignment> valign_;
+
+ pageBlockTableCell();
+
+ pageBlockTableCell(object_ptr<RichText> &&text_, bool is_header_, int32 colspan_, int32 rowspan_, object_ptr<PageBlockHorizontalAlignment> &&align_, object_ptr<PageBlockVerticalAlignment> &&valign_);
+
+ static const std::int32_t ID = 1417658214;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PageBlockVerticalAlignment: public Object {
+ public:
+};
+
+class pageBlockVerticalAlignmentTop final : public PageBlockVerticalAlignment {
+ public:
+
+ pageBlockVerticalAlignmentTop();
+
+ static const std::int32_t ID = 195500454;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockVerticalAlignmentMiddle final : public PageBlockVerticalAlignment {
+ public:
+
+ pageBlockVerticalAlignmentMiddle();
+
+ static const std::int32_t ID = -2123096587;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockVerticalAlignmentBottom final : public PageBlockVerticalAlignment {
+ public:
+
+ pageBlockVerticalAlignmentBottom();
+
+ static const std::int32_t ID = 2092531158;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportAuthorizationForm final : public Object {
+ public:
+ int32 id_;
+ array<object_ptr<passportRequiredElement>> required_elements_;
+ string privacy_policy_url_;
+
+ passportAuthorizationForm();
+
+ passportAuthorizationForm(int32 id_, array<object_ptr<passportRequiredElement>> &&required_elements_, string const &privacy_policy_url_);
+
+ static const std::int32_t ID = -1070673218;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PassportElement: public Object {
+ public:
+};
+
+class passportElementPersonalDetails final : public PassportElement {
+ public:
+ object_ptr<personalDetails> personal_details_;
+
+ passportElementPersonalDetails();
+
+ explicit passportElementPersonalDetails(object_ptr<personalDetails> &&personal_details_);
+
+ static const std::int32_t ID = 1217724035;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementPassport final : public PassportElement {
+ public:
+ object_ptr<identityDocument> passport_;
+
+ passportElementPassport();
+
+ explicit passportElementPassport(object_ptr<identityDocument> &&passport_);
+
+ static const std::int32_t ID = -263985373;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementDriverLicense final : public PassportElement {
+ public:
+ object_ptr<identityDocument> driver_license_;
+
+ passportElementDriverLicense();
+
+ explicit passportElementDriverLicense(object_ptr<identityDocument> &&driver_license_);
+
+ static const std::int32_t ID = 1643580589;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementIdentityCard final : public PassportElement {
+ public:
+ object_ptr<identityDocument> identity_card_;
+
+ passportElementIdentityCard();
+
+ explicit passportElementIdentityCard(object_ptr<identityDocument> &&identity_card_);
+
+ static const std::int32_t ID = 2083775797;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementInternalPassport final : public PassportElement {
+ public:
+ object_ptr<identityDocument> internal_passport_;
+
+ passportElementInternalPassport();
+
+ explicit passportElementInternalPassport(object_ptr<identityDocument> &&internal_passport_);
+
+ static const std::int32_t ID = 36220295;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementAddress final : public PassportElement {
+ public:
+ object_ptr<address> address_;
+
+ passportElementAddress();
+
+ explicit passportElementAddress(object_ptr<address> &&address_);
+
+ static const std::int32_t ID = -782625232;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementUtilityBill final : public PassportElement {
+ public:
+ object_ptr<personalDocument> utility_bill_;
+
+ passportElementUtilityBill();
+
+ explicit passportElementUtilityBill(object_ptr<personalDocument> &&utility_bill_);
+
+ static const std::int32_t ID = -234611246;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementBankStatement final : public PassportElement {
+ public:
+ object_ptr<personalDocument> bank_statement_;
+
+ passportElementBankStatement();
+
+ explicit passportElementBankStatement(object_ptr<personalDocument> &&bank_statement_);
+
+ static const std::int32_t ID = -366464408;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementRentalAgreement final : public PassportElement {
+ public:
+ object_ptr<personalDocument> rental_agreement_;
+
+ passportElementRentalAgreement();
+
+ explicit passportElementRentalAgreement(object_ptr<personalDocument> &&rental_agreement_);
+
+ static const std::int32_t ID = -290141400;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementPassportRegistration final : public PassportElement {
+ public:
+ object_ptr<personalDocument> passport_registration_;
+
+ passportElementPassportRegistration();
+
+ explicit passportElementPassportRegistration(object_ptr<personalDocument> &&passport_registration_);
+
+ static const std::int32_t ID = 618323071;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTemporaryRegistration final : public PassportElement {
+ public:
+ object_ptr<personalDocument> temporary_registration_;
+
+ passportElementTemporaryRegistration();
+
+ explicit passportElementTemporaryRegistration(object_ptr<personalDocument> &&temporary_registration_);
+
+ static const std::int32_t ID = 1237626864;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementPhoneNumber final : public PassportElement {
+ public:
+ string phone_number_;
+
+ passportElementPhoneNumber();
+
+ explicit passportElementPhoneNumber(string const &phone_number_);
+
+ static const std::int32_t ID = -1320118375;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementEmailAddress final : public PassportElement {
+ public:
+ string email_address_;
+
+ passportElementEmailAddress();
+
+ explicit passportElementEmailAddress(string const &email_address_);
+
+ static const std::int32_t ID = -1528129531;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementError final : public Object {
+ public:
+ object_ptr<PassportElementType> type_;
+ string message_;
+ object_ptr<PassportElementErrorSource> source_;
+
+ passportElementError();
+
+ passportElementError(object_ptr<PassportElementType> &&type_, string const &message_, object_ptr<PassportElementErrorSource> &&source_);
+
+ static const std::int32_t ID = -1861902395;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PassportElementErrorSource: public Object {
+ public:
+};
+
+class passportElementErrorSourceUnspecified final : public PassportElementErrorSource {
+ public:
+
+ passportElementErrorSourceUnspecified();
+
+ static const std::int32_t ID = -378320830;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementErrorSourceDataField final : public PassportElementErrorSource {
+ public:
+ string field_name_;
+
+ passportElementErrorSourceDataField();
+
+ explicit passportElementErrorSourceDataField(string const &field_name_);
+
+ static const std::int32_t ID = -308650776;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementErrorSourceFrontSide final : public PassportElementErrorSource {
+ public:
+
+ passportElementErrorSourceFrontSide();
+
+ static const std::int32_t ID = 1895658292;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementErrorSourceReverseSide final : public PassportElementErrorSource {
+ public:
+
+ passportElementErrorSourceReverseSide();
+
+ static const std::int32_t ID = 1918630391;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementErrorSourceSelfie final : public PassportElementErrorSource {
+ public:
+
+ passportElementErrorSourceSelfie();
+
+ static const std::int32_t ID = -797043672;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementErrorSourceTranslationFile final : public PassportElementErrorSource {
+ public:
+ int32 file_index_;
+
+ passportElementErrorSourceTranslationFile();
+
+ explicit passportElementErrorSourceTranslationFile(int32 file_index_);
+
+ static const std::int32_t ID = -689621228;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementErrorSourceTranslationFiles final : public PassportElementErrorSource {
+ public:
+
+ passportElementErrorSourceTranslationFiles();
+
+ static const std::int32_t ID = 581280796;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementErrorSourceFile final : public PassportElementErrorSource {
+ public:
+ int32 file_index_;
+
+ passportElementErrorSourceFile();
+
+ explicit passportElementErrorSourceFile(int32 file_index_);
+
+ static const std::int32_t ID = 2020358960;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementErrorSourceFiles final : public PassportElementErrorSource {
+ public:
+
+ passportElementErrorSourceFiles();
+
+ static const std::int32_t ID = 1894164178;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PassportElementType: public Object {
+ public:
+};
+
+class passportElementTypePersonalDetails final : public PassportElementType {
+ public:
+
+ passportElementTypePersonalDetails();
+
+ static const std::int32_t ID = -1032136365;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypePassport final : public PassportElementType {
+ public:
+
+ passportElementTypePassport();
+
+ static const std::int32_t ID = -436360376;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypeDriverLicense final : public PassportElementType {
+ public:
+
+ passportElementTypeDriverLicense();
+
+ static const std::int32_t ID = 1827298379;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypeIdentityCard final : public PassportElementType {
+ public:
+
+ passportElementTypeIdentityCard();
+
+ static const std::int32_t ID = -502356132;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypeInternalPassport final : public PassportElementType {
+ public:
+
+ passportElementTypeInternalPassport();
+
+ static const std::int32_t ID = -793781959;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypeAddress final : public PassportElementType {
+ public:
+
+ passportElementTypeAddress();
+
+ static const std::int32_t ID = 496327874;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypeUtilityBill final : public PassportElementType {
+ public:
+
+ passportElementTypeUtilityBill();
+
+ static const std::int32_t ID = 627084906;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypeBankStatement final : public PassportElementType {
+ public:
+
+ passportElementTypeBankStatement();
+
+ static const std::int32_t ID = 574095667;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypeRentalAgreement final : public PassportElementType {
+ public:
+
+ passportElementTypeRentalAgreement();
+
+ static const std::int32_t ID = -2060583280;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypePassportRegistration final : public PassportElementType {
+ public:
+
+ passportElementTypePassportRegistration();
+
+ static const std::int32_t ID = -159478209;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypeTemporaryRegistration final : public PassportElementType {
+ public:
+
+ passportElementTypeTemporaryRegistration();
+
+ static const std::int32_t ID = 1092498527;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypePhoneNumber final : public PassportElementType {
+ public:
+
+ passportElementTypePhoneNumber();
+
+ static const std::int32_t ID = -995361172;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementTypeEmailAddress final : public PassportElementType {
+ public:
+
+ passportElementTypeEmailAddress();
+
+ static const std::int32_t ID = -79321405;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElements final : public Object {
+ public:
+ array<object_ptr<PassportElement>> elements_;
+
+ passportElements();
+
+ explicit passportElements(array<object_ptr<PassportElement>> &&elements_);
+
+ static const std::int32_t ID = 1264617556;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportElementsWithErrors final : public Object {
+ public:
+ array<object_ptr<PassportElement>> elements_;
+ array<object_ptr<passportElementError>> errors_;
+
+ passportElementsWithErrors();
+
+ passportElementsWithErrors(array<object_ptr<PassportElement>> &&elements_, array<object_ptr<passportElementError>> &&errors_);
+
+ static const std::int32_t ID = 1308923044;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportRequiredElement final : public Object {
+ public:
+ array<object_ptr<passportSuitableElement>> suitable_elements_;
+
+ passportRequiredElement();
+
+ explicit passportRequiredElement(array<object_ptr<passportSuitableElement>> &&suitable_elements_);
+
+ static const std::int32_t ID = -1983641651;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passportSuitableElement final : public Object {
+ public:
+ object_ptr<PassportElementType> type_;
+ bool is_selfie_required_;
+ bool is_translation_required_;
+ bool is_native_name_required_;
+
+ passportSuitableElement();
+
+ passportSuitableElement(object_ptr<PassportElementType> &&type_, bool is_selfie_required_, bool is_translation_required_, bool is_native_name_required_);
+
+ static const std::int32_t ID = -789019876;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passwordState final : public Object {
+ public:
+ bool has_password_;
+ string password_hint_;
+ bool has_recovery_email_address_;
+ bool has_passport_data_;
+ object_ptr<emailAddressAuthenticationCodeInfo> recovery_email_address_code_info_;
+ string login_email_address_pattern_;
+ int32 pending_reset_date_;
+
+ passwordState();
+
+ passwordState(bool has_password_, string const &password_hint_, bool has_recovery_email_address_, bool has_passport_data_, object_ptr<emailAddressAuthenticationCodeInfo> &&recovery_email_address_code_info_, string const &login_email_address_pattern_, int32 pending_reset_date_);
+
+ static const std::int32_t ID = 483801128;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class paymentForm final : public Object {
+ public:
+ int64 id_;
+ object_ptr<invoice> invoice_;
+ int53 seller_bot_user_id_;
+ int53 payment_provider_user_id_;
+ object_ptr<PaymentProvider> payment_provider_;
+ array<object_ptr<paymentOption>> additional_payment_options_;
+ object_ptr<orderInfo> saved_order_info_;
+ array<object_ptr<savedCredentials>> saved_credentials_;
+ bool can_save_credentials_;
+ bool need_password_;
+ string product_title_;
+ object_ptr<formattedText> product_description_;
+ object_ptr<photo> product_photo_;
+
+ paymentForm();
+
+ paymentForm(int64 id_, object_ptr<invoice> &&invoice_, int53 seller_bot_user_id_, int53 payment_provider_user_id_, object_ptr<PaymentProvider> &&payment_provider_, array<object_ptr<paymentOption>> &&additional_payment_options_, object_ptr<orderInfo> &&saved_order_info_, array<object_ptr<savedCredentials>> &&saved_credentials_, bool can_save_credentials_, bool need_password_, string const &product_title_, object_ptr<formattedText> &&product_description_, object_ptr<photo> &&product_photo_);
+
+ static const std::int32_t ID = -1468471378;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class paymentOption final : public Object {
+ public:
+ string title_;
+ string url_;
+
+ paymentOption();
+
+ paymentOption(string const &title_, string const &url_);
+
+ static const std::int32_t ID = -294020965;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PaymentProvider: public Object {
+ public:
+};
+
+class paymentProviderSmartGlocal final : public PaymentProvider {
+ public:
+ string public_token_;
+
+ paymentProviderSmartGlocal();
+
+ explicit paymentProviderSmartGlocal(string const &public_token_);
+
+ static const std::int32_t ID = 1800479470;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class paymentProviderStripe final : public PaymentProvider {
+ public:
+ string publishable_key_;
+ bool need_country_;
+ bool need_postal_code_;
+ bool need_cardholder_name_;
+
+ paymentProviderStripe();
+
+ paymentProviderStripe(string const &publishable_key_, bool need_country_, bool need_postal_code_, bool need_cardholder_name_);
+
+ static const std::int32_t ID = 370467227;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class paymentProviderOther final : public PaymentProvider {
+ public:
+ string url_;
+
+ paymentProviderOther();
+
+ explicit paymentProviderOther(string const &url_);
+
+ static const std::int32_t ID = -1336876828;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class paymentReceipt final : public Object {
+ public:
+ string title_;
+ object_ptr<formattedText> description_;
+ object_ptr<photo> photo_;
+ int32 date_;
+ int53 seller_bot_user_id_;
+ int53 payment_provider_user_id_;
+ object_ptr<invoice> invoice_;
+ object_ptr<orderInfo> order_info_;
+ object_ptr<shippingOption> shipping_option_;
+ string credentials_title_;
+ int53 tip_amount_;
+
+ paymentReceipt();
+
+ paymentReceipt(string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, int32 date_, int53 seller_bot_user_id_, int53 payment_provider_user_id_, object_ptr<invoice> &&invoice_, object_ptr<orderInfo> &&order_info_, object_ptr<shippingOption> &&shipping_option_, string const &credentials_title_, int53 tip_amount_);
+
+ static const std::int32_t ID = -400955711;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class paymentResult final : public Object {
+ public:
+ bool success_;
+ string verification_url_;
+
+ paymentResult();
+
+ paymentResult(bool success_, string const &verification_url_);
+
+ static const std::int32_t ID = -804263843;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class personalDetails final : public Object {
+ public:
+ string first_name_;
+ string middle_name_;
+ string last_name_;
+ string native_first_name_;
+ string native_middle_name_;
+ string native_last_name_;
+ object_ptr<date> birthdate_;
+ string gender_;
+ string country_code_;
+ string residence_country_code_;
+
+ personalDetails();
+
+ personalDetails(string const &first_name_, string const &middle_name_, string const &last_name_, string const &native_first_name_, string const &native_middle_name_, string const &native_last_name_, object_ptr<date> &&birthdate_, string const &gender_, string const &country_code_, string const &residence_country_code_);
+
+ static const std::int32_t ID = -1061656137;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class personalDocument final : public Object {
+ public:
+ array<object_ptr<datedFile>> files_;
+ array<object_ptr<datedFile>> translation_;
+
+ personalDocument();
+
+ personalDocument(array<object_ptr<datedFile>> &&files_, array<object_ptr<datedFile>> &&translation_);
+
+ static const std::int32_t ID = -1011634661;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneNumberAuthenticationSettings final : public Object {
+ public:
+ bool allow_flash_call_;
+ bool allow_missed_call_;
+ bool is_current_phone_number_;
+ bool allow_sms_retriever_api_;
+ array<string> authentication_tokens_;
+
+ phoneNumberAuthenticationSettings();
+
+ phoneNumberAuthenticationSettings(bool allow_flash_call_, bool allow_missed_call_, bool is_current_phone_number_, bool allow_sms_retriever_api_, array<string> &&authentication_tokens_);
+
+ static const std::int32_t ID = -421219756;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneNumberInfo final : public Object {
+ public:
+ object_ptr<countryInfo> country_;
+ string country_calling_code_;
+ string formatted_phone_number_;
+
+ phoneNumberInfo();
+
+ phoneNumberInfo(object_ptr<countryInfo> &&country_, string const &country_calling_code_, string const &formatted_phone_number_);
+
+ static const std::int32_t ID = 560180961;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photo final : public Object {
+ public:
+ bool has_stickers_;
+ object_ptr<minithumbnail> minithumbnail_;
+ array<object_ptr<photoSize>> sizes_;
+
+ photo();
+
+ photo(bool has_stickers_, object_ptr<minithumbnail> &&minithumbnail_, array<object_ptr<photoSize>> &&sizes_);
+
+ static const std::int32_t ID = -2022871583;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photoSize final : public Object {
+ public:
+ string type_;
+ object_ptr<file> photo_;
+ int32 width_;
+ int32 height_;
+ array<int32> progressive_sizes_;
+
+ photoSize();
+
+ photoSize(string const &type_, object_ptr<file> &&photo_, int32 width_, int32 height_, array<int32> &&progressive_sizes_);
+
+ static const std::int32_t ID = 1609182352;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class point final : public Object {
+ public:
+ double x_;
+ double y_;
+
+ point();
+
+ point(double x_, double y_);
+
+ static const std::int32_t ID = 437515705;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class poll final : public Object {
+ public:
+ int64 id_;
+ string question_;
+ array<object_ptr<pollOption>> options_;
+ int32 total_voter_count_;
+ array<int53> recent_voter_user_ids_;
+ bool is_anonymous_;
+ object_ptr<PollType> type_;
+ int32 open_period_;
+ int32 close_date_;
+ bool is_closed_;
+
+ poll();
+
+ poll(int64 id_, string const &question_, array<object_ptr<pollOption>> &&options_, int32 total_voter_count_, array<int53> &&recent_voter_user_ids_, bool is_anonymous_, object_ptr<PollType> &&type_, int32 open_period_, int32 close_date_, bool is_closed_);
+
+ static const std::int32_t ID = 116940085;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pollOption final : public Object {
+ public:
+ string text_;
+ int32 voter_count_;
+ int32 vote_percentage_;
+ bool is_chosen_;
+ bool is_being_chosen_;
+
+ pollOption();
+
+ pollOption(string const &text_, int32 voter_count_, int32 vote_percentage_, bool is_chosen_, bool is_being_chosen_);
+
+ static const std::int32_t ID = 1473893797;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PollType: public Object {
+ public:
+};
+
+class pollTypeRegular final : public PollType {
+ public:
+ bool allow_multiple_answers_;
+
+ pollTypeRegular();
+
+ explicit pollTypeRegular(bool allow_multiple_answers_);
+
+ static const std::int32_t ID = 641265698;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pollTypeQuiz final : public PollType {
+ public:
+ int32 correct_option_id_;
+ object_ptr<formattedText> explanation_;
+
+ pollTypeQuiz();
+
+ pollTypeQuiz(int32 correct_option_id_, object_ptr<formattedText> &&explanation_);
+
+ static const std::int32_t ID = 657013913;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PremiumFeature: public Object {
+ public:
+};
+
+class premiumFeatureIncreasedLimits final : public PremiumFeature {
+ public:
+
+ premiumFeatureIncreasedLimits();
+
+ static const std::int32_t ID = 1785455031;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureIncreasedUploadFileSize final : public PremiumFeature {
+ public:
+
+ premiumFeatureIncreasedUploadFileSize();
+
+ static const std::int32_t ID = 1825367155;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureImprovedDownloadSpeed final : public PremiumFeature {
+ public:
+
+ premiumFeatureImprovedDownloadSpeed();
+
+ static const std::int32_t ID = -267695554;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureVoiceRecognition final : public PremiumFeature {
+ public:
+
+ premiumFeatureVoiceRecognition();
+
+ static const std::int32_t ID = 1288216542;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureDisabledAds final : public PremiumFeature {
+ public:
+
+ premiumFeatureDisabledAds();
+
+ static const std::int32_t ID = -2008587702;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureUniqueReactions final : public PremiumFeature {
+ public:
+
+ premiumFeatureUniqueReactions();
+
+ static const std::int32_t ID = 766750743;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureUniqueStickers final : public PremiumFeature {
+ public:
+
+ premiumFeatureUniqueStickers();
+
+ static const std::int32_t ID = -2101773312;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureCustomEmoji final : public PremiumFeature {
+ public:
+
+ premiumFeatureCustomEmoji();
+
+ static const std::int32_t ID = 1332599628;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureAdvancedChatManagement final : public PremiumFeature {
+ public:
+
+ premiumFeatureAdvancedChatManagement();
+
+ static const std::int32_t ID = 796347674;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureProfileBadge final : public PremiumFeature {
+ public:
+
+ premiumFeatureProfileBadge();
+
+ static const std::int32_t ID = 233648322;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureEmojiStatus final : public PremiumFeature {
+ public:
+
+ premiumFeatureEmojiStatus();
+
+ static const std::int32_t ID = -36516639;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureAnimatedProfilePhoto final : public PremiumFeature {
+ public:
+
+ premiumFeatureAnimatedProfilePhoto();
+
+ static const std::int32_t ID = -100741914;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureForumTopicIcon final : public PremiumFeature {
+ public:
+
+ premiumFeatureForumTopicIcon();
+
+ static const std::int32_t ID = -823172286;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatureAppIcons final : public PremiumFeature {
+ public:
+
+ premiumFeatureAppIcons();
+
+ static const std::int32_t ID = 1585050761;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeaturePromotionAnimation final : public Object {
+ public:
+ object_ptr<PremiumFeature> feature_;
+ object_ptr<animation> animation_;
+
+ premiumFeaturePromotionAnimation();
+
+ premiumFeaturePromotionAnimation(object_ptr<PremiumFeature> &&feature_, object_ptr<animation> &&animation_);
+
+ static const std::int32_t ID = -1986155748;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumFeatures final : public Object {
+ public:
+ array<object_ptr<PremiumFeature>> features_;
+ array<object_ptr<premiumLimit>> limits_;
+ object_ptr<InternalLinkType> payment_link_;
+
+ premiumFeatures();
+
+ premiumFeatures(array<object_ptr<PremiumFeature>> &&features_, array<object_ptr<premiumLimit>> &&limits_, object_ptr<InternalLinkType> &&payment_link_);
+
+ static const std::int32_t ID = 1875162172;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumLimit final : public Object {
+ public:
+ object_ptr<PremiumLimitType> type_;
+ int32 default_value_;
+ int32 premium_value_;
+
+ premiumLimit();
+
+ premiumLimit(object_ptr<PremiumLimitType> &&type_, int32 default_value_, int32 premium_value_);
+
+ static const std::int32_t ID = 2127786726;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PremiumLimitType: public Object {
+ public:
+};
+
+class premiumLimitTypeSupergroupCount final : public PremiumLimitType {
+ public:
+
+ premiumLimitTypeSupergroupCount();
+
+ static const std::int32_t ID = -247467131;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumLimitTypePinnedChatCount final : public PremiumLimitType {
+ public:
+
+ premiumLimitTypePinnedChatCount();
+
+ static const std::int32_t ID = -998947871;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumLimitTypeCreatedPublicChatCount final : public PremiumLimitType {
+ public:
+
+ premiumLimitTypeCreatedPublicChatCount();
+
+ static const std::int32_t ID = 446086841;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumLimitTypeSavedAnimationCount final : public PremiumLimitType {
+ public:
+
+ premiumLimitTypeSavedAnimationCount();
+
+ static const std::int32_t ID = -19759735;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumLimitTypeFavoriteStickerCount final : public PremiumLimitType {
+ public:
+
+ premiumLimitTypeFavoriteStickerCount();
+
+ static const std::int32_t ID = 639754787;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumLimitTypeChatFilterCount final : public PremiumLimitType {
+ public:
+
+ premiumLimitTypeChatFilterCount();
+
+ static const std::int32_t ID = -644517214;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumLimitTypeChatFilterChosenChatCount final : public PremiumLimitType {
+ public:
+
+ premiumLimitTypeChatFilterChosenChatCount();
+
+ static const std::int32_t ID = 2057969759;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumLimitTypePinnedArchivedChatCount final : public PremiumLimitType {
+ public:
+
+ premiumLimitTypePinnedArchivedChatCount();
+
+ static const std::int32_t ID = 1485515276;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumLimitTypeCaptionLength final : public PremiumLimitType {
+ public:
+
+ premiumLimitTypeCaptionLength();
+
+ static const std::int32_t ID = 293984314;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumLimitTypeBioLength final : public PremiumLimitType {
+ public:
+
+ premiumLimitTypeBioLength();
+
+ static const std::int32_t ID = -1146976765;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumPaymentOption final : public Object {
+ public:
+ string currency_;
+ int53 amount_;
+ int32 discount_percentage_;
+ int32 month_count_;
+ string store_product_id_;
+ object_ptr<InternalLinkType> payment_link_;
+
+ premiumPaymentOption();
+
+ premiumPaymentOption(string const &currency_, int53 amount_, int32 discount_percentage_, int32 month_count_, string const &store_product_id_, object_ptr<InternalLinkType> &&payment_link_);
+
+ static const std::int32_t ID = -1945346126;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PremiumSource: public Object {
+ public:
+};
+
+class premiumSourceLimitExceeded final : public PremiumSource {
+ public:
+ object_ptr<PremiumLimitType> limit_type_;
+
+ premiumSourceLimitExceeded();
+
+ explicit premiumSourceLimitExceeded(object_ptr<PremiumLimitType> &&limit_type_);
+
+ static const std::int32_t ID = -2052159742;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumSourceFeature final : public PremiumSource {
+ public:
+ object_ptr<PremiumFeature> feature_;
+
+ premiumSourceFeature();
+
+ explicit premiumSourceFeature(object_ptr<PremiumFeature> &&feature_);
+
+ static const std::int32_t ID = 445813541;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumSourceLink final : public PremiumSource {
+ public:
+ string referrer_;
+
+ premiumSourceLink();
+
+ explicit premiumSourceLink(string const &referrer_);
+
+ static const std::int32_t ID = 2135071132;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumSourceSettings final : public PremiumSource {
+ public:
+
+ premiumSourceSettings();
+
+ static const std::int32_t ID = -285702859;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumState final : public Object {
+ public:
+ object_ptr<formattedText> state_;
+ array<object_ptr<premiumPaymentOption>> payment_options_;
+ array<object_ptr<premiumFeaturePromotionAnimation>> animations_;
+
+ premiumState();
+
+ premiumState(object_ptr<formattedText> &&state_, array<object_ptr<premiumPaymentOption>> &&payment_options_, array<object_ptr<premiumFeaturePromotionAnimation>> &&animations_);
+
+ static const std::int32_t ID = -1502199392;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class profilePhoto final : public Object {
+ public:
+ int64 id_;
+ object_ptr<file> small_;
+ object_ptr<file> big_;
+ object_ptr<minithumbnail> minithumbnail_;
+ bool has_animation_;
+
+ profilePhoto();
+
+ profilePhoto(int64 id_, object_ptr<file> &&small_, object_ptr<file> &&big_, object_ptr<minithumbnail> &&minithumbnail_, bool has_animation_);
+
+ static const std::int32_t ID = -131097523;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class proxies final : public Object {
+ public:
+ array<object_ptr<proxy>> proxies_;
+
+ proxies();
+
+ explicit proxies(array<object_ptr<proxy>> &&proxies_);
+
+ static const std::int32_t ID = 1200447205;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class proxy final : public Object {
+ public:
+ int32 id_;
+ string server_;
+ int32 port_;
+ int32 last_used_date_;
+ bool is_enabled_;
+ object_ptr<ProxyType> type_;
+
+ proxy();
+
+ proxy(int32 id_, string const &server_, int32 port_, int32 last_used_date_, bool is_enabled_, object_ptr<ProxyType> &&type_);
+
+ static const std::int32_t ID = 196049779;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ProxyType: public Object {
+ public:
+};
+
+class proxyTypeSocks5 final : public ProxyType {
+ public:
+ string username_;
+ string password_;
+
+ proxyTypeSocks5();
+
+ proxyTypeSocks5(string const &username_, string const &password_);
+
+ static const std::int32_t ID = -890027341;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class proxyTypeHttp final : public ProxyType {
+ public:
+ string username_;
+ string password_;
+ bool http_only_;
+
+ proxyTypeHttp();
+
+ proxyTypeHttp(string const &username_, string const &password_, bool http_only_);
+
+ static const std::int32_t ID = -1547188361;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class proxyTypeMtproto final : public ProxyType {
+ public:
+ string secret_;
+
+ proxyTypeMtproto();
+
+ explicit proxyTypeMtproto(string const &secret_);
+
+ static const std::int32_t ID = -1964826627;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PublicChatType: public Object {
+ public:
+};
+
+class publicChatTypeHasUsername final : public PublicChatType {
+ public:
+
+ publicChatTypeHasUsername();
+
+ static const std::int32_t ID = 350789758;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class publicChatTypeIsLocationBased final : public PublicChatType {
+ public:
+
+ publicChatTypeIsLocationBased();
+
+ static const std::int32_t ID = 1183735952;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PushMessageContent: public Object {
+ public:
+};
+
+class pushMessageContentHidden final : public PushMessageContent {
+ public:
+ bool is_pinned_;
+
+ pushMessageContentHidden();
+
+ explicit pushMessageContentHidden(bool is_pinned_);
+
+ static const std::int32_t ID = -316950436;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentAnimation final : public PushMessageContent {
+ public:
+ object_ptr<animation> animation_;
+ string caption_;
+ bool is_pinned_;
+
+ pushMessageContentAnimation();
+
+ pushMessageContentAnimation(object_ptr<animation> &&animation_, string const &caption_, bool is_pinned_);
+
+ static const std::int32_t ID = 1034215396;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentAudio final : public PushMessageContent {
+ public:
+ object_ptr<audio> audio_;
+ bool is_pinned_;
+
+ pushMessageContentAudio();
+
+ pushMessageContentAudio(object_ptr<audio> &&audio_, bool is_pinned_);
+
+ static const std::int32_t ID = 381581426;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentContact final : public PushMessageContent {
+ public:
+ string name_;
+ bool is_pinned_;
+
+ pushMessageContentContact();
+
+ pushMessageContentContact(string const &name_, bool is_pinned_);
+
+ static const std::int32_t ID = -12219820;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentContactRegistered final : public PushMessageContent {
+ public:
+
+ pushMessageContentContactRegistered();
+
+ static const std::int32_t ID = -303962720;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentDocument final : public PushMessageContent {
+ public:
+ object_ptr<document> document_;
+ bool is_pinned_;
+
+ pushMessageContentDocument();
+
+ pushMessageContentDocument(object_ptr<document> &&document_, bool is_pinned_);
+
+ static const std::int32_t ID = -458379775;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentGame final : public PushMessageContent {
+ public:
+ string title_;
+ bool is_pinned_;
+
+ pushMessageContentGame();
+
+ pushMessageContentGame(string const &title_, bool is_pinned_);
+
+ static const std::int32_t ID = -515131109;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentGameScore final : public PushMessageContent {
+ public:
+ string title_;
+ int32 score_;
+ bool is_pinned_;
+
+ pushMessageContentGameScore();
+
+ pushMessageContentGameScore(string const &title_, int32 score_, bool is_pinned_);
+
+ static const std::int32_t ID = 901303688;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentInvoice final : public PushMessageContent {
+ public:
+ string price_;
+ bool is_pinned_;
+
+ pushMessageContentInvoice();
+
+ pushMessageContentInvoice(string const &price_, bool is_pinned_);
+
+ static const std::int32_t ID = -1731687492;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentLocation final : public PushMessageContent {
+ public:
+ bool is_live_;
+ bool is_pinned_;
+
+ pushMessageContentLocation();
+
+ pushMessageContentLocation(bool is_live_, bool is_pinned_);
+
+ static const std::int32_t ID = -1288005709;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentPhoto final : public PushMessageContent {
+ public:
+ object_ptr<photo> photo_;
+ string caption_;
+ bool is_secret_;
+ bool is_pinned_;
+
+ pushMessageContentPhoto();
+
+ pushMessageContentPhoto(object_ptr<photo> &&photo_, string const &caption_, bool is_secret_, bool is_pinned_);
+
+ static const std::int32_t ID = 140631122;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentPoll final : public PushMessageContent {
+ public:
+ string question_;
+ bool is_regular_;
+ bool is_pinned_;
+
+ pushMessageContentPoll();
+
+ pushMessageContentPoll(string const &question_, bool is_regular_, bool is_pinned_);
+
+ static const std::int32_t ID = -44403654;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentScreenshotTaken final : public PushMessageContent {
+ public:
+
+ pushMessageContentScreenshotTaken();
+
+ static const std::int32_t ID = 214245369;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentSticker final : public PushMessageContent {
+ public:
+ object_ptr<sticker> sticker_;
+ string emoji_;
+ bool is_pinned_;
+
+ pushMessageContentSticker();
+
+ pushMessageContentSticker(object_ptr<sticker> &&sticker_, string const &emoji_, bool is_pinned_);
+
+ static const std::int32_t ID = 1553513939;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentText final : public PushMessageContent {
+ public:
+ string text_;
+ bool is_pinned_;
+
+ pushMessageContentText();
+
+ pushMessageContentText(string const &text_, bool is_pinned_);
+
+ static const std::int32_t ID = 274587305;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentVideo final : public PushMessageContent {
+ public:
+ object_ptr<video> video_;
+ string caption_;
+ bool is_secret_;
+ bool is_pinned_;
+
+ pushMessageContentVideo();
+
+ pushMessageContentVideo(object_ptr<video> &&video_, string const &caption_, bool is_secret_, bool is_pinned_);
+
+ static const std::int32_t ID = 310038831;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentVideoNote final : public PushMessageContent {
+ public:
+ object_ptr<videoNote> video_note_;
+ bool is_pinned_;
+
+ pushMessageContentVideoNote();
+
+ pushMessageContentVideoNote(object_ptr<videoNote> &&video_note_, bool is_pinned_);
+
+ static const std::int32_t ID = -1122764417;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentVoiceNote final : public PushMessageContent {
+ public:
+ object_ptr<voiceNote> voice_note_;
+ bool is_pinned_;
+
+ pushMessageContentVoiceNote();
+
+ pushMessageContentVoiceNote(object_ptr<voiceNote> &&voice_note_, bool is_pinned_);
+
+ static const std::int32_t ID = 88910987;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentBasicGroupChatCreate final : public PushMessageContent {
+ public:
+
+ pushMessageContentBasicGroupChatCreate();
+
+ static const std::int32_t ID = -2114855172;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentChatAddMembers final : public PushMessageContent {
+ public:
+ string member_name_;
+ bool is_current_user_;
+ bool is_returned_;
+
+ pushMessageContentChatAddMembers();
+
+ pushMessageContentChatAddMembers(string const &member_name_, bool is_current_user_, bool is_returned_);
+
+ static const std::int32_t ID = -1087145158;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentChatChangePhoto final : public PushMessageContent {
+ public:
+
+ pushMessageContentChatChangePhoto();
+
+ static const std::int32_t ID = -1114222051;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentChatChangeTitle final : public PushMessageContent {
+ public:
+ string title_;
+
+ pushMessageContentChatChangeTitle();
+
+ explicit pushMessageContentChatChangeTitle(string const &title_);
+
+ static const std::int32_t ID = -1964902749;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentChatSetTheme final : public PushMessageContent {
+ public:
+ string theme_name_;
+
+ pushMessageContentChatSetTheme();
+
+ explicit pushMessageContentChatSetTheme(string const &theme_name_);
+
+ static const std::int32_t ID = 173882216;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentChatDeleteMember final : public PushMessageContent {
+ public:
+ string member_name_;
+ bool is_current_user_;
+ bool is_left_;
+
+ pushMessageContentChatDeleteMember();
+
+ pushMessageContentChatDeleteMember(string const &member_name_, bool is_current_user_, bool is_left_);
+
+ static const std::int32_t ID = 598714783;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentChatJoinByLink final : public PushMessageContent {
+ public:
+
+ pushMessageContentChatJoinByLink();
+
+ static const std::int32_t ID = 1553719113;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentChatJoinByRequest final : public PushMessageContent {
+ public:
+
+ pushMessageContentChatJoinByRequest();
+
+ static const std::int32_t ID = -205823627;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentRecurringPayment final : public PushMessageContent {
+ public:
+ string amount_;
+
+ pushMessageContentRecurringPayment();
+
+ explicit pushMessageContentRecurringPayment(string const &amount_);
+
+ static const std::int32_t ID = 1619211802;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentMessageForwards final : public PushMessageContent {
+ public:
+ int32 total_count_;
+
+ pushMessageContentMessageForwards();
+
+ explicit pushMessageContentMessageForwards(int32 total_count_);
+
+ static const std::int32_t ID = -1913083876;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushMessageContentMediaAlbum final : public PushMessageContent {
+ public:
+ int32 total_count_;
+ bool has_photos_;
+ bool has_videos_;
+ bool has_audios_;
+ bool has_documents_;
+
+ pushMessageContentMediaAlbum();
+
+ pushMessageContentMediaAlbum(int32 total_count_, bool has_photos_, bool has_videos_, bool has_audios_, bool has_documents_);
+
+ static const std::int32_t ID = -748426897;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pushReceiverId final : public Object {
+ public:
+ int64 id_;
+
+ pushReceiverId();
+
+ explicit pushReceiverId(int64 id_);
+
+ static const std::int32_t ID = 371056428;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ReactionType: public Object {
+ public:
+};
+
+class reactionTypeEmoji final : public ReactionType {
+ public:
+ string emoji_;
+
+ reactionTypeEmoji();
+
+ explicit reactionTypeEmoji(string const &emoji_);
+
+ static const std::int32_t ID = -1942084920;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reactionTypeCustomEmoji final : public ReactionType {
+ public:
+ int64 custom_emoji_id_;
+
+ reactionTypeCustomEmoji();
+
+ explicit reactionTypeCustomEmoji(int64 custom_emoji_id_);
+
+ static const std::int32_t ID = -989117709;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class recommendedChatFilter final : public Object {
+ public:
+ object_ptr<chatFilter> filter_;
+ string description_;
+
+ recommendedChatFilter();
+
+ recommendedChatFilter(object_ptr<chatFilter> &&filter_, string const &description_);
+
+ static const std::int32_t ID = 36048610;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class recommendedChatFilters final : public Object {
+ public:
+ array<object_ptr<recommendedChatFilter>> chat_filters_;
+
+ recommendedChatFilters();
+
+ explicit recommendedChatFilters(array<object_ptr<recommendedChatFilter>> &&chat_filters_);
+
+ static const std::int32_t ID = -263416880;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class recoveryEmailAddress final : public Object {
+ public:
+ string recovery_email_address_;
+
+ recoveryEmailAddress();
+
+ explicit recoveryEmailAddress(string const &recovery_email_address_);
+
+ static const std::int32_t ID = 1290526187;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class remoteFile final : public Object {
+ public:
+ string id_;
+ string unique_id_;
+ bool is_uploading_active_;
+ bool is_uploading_completed_;
+ int53 uploaded_size_;
+
+ remoteFile();
+
+ remoteFile(string const &id_, string const &unique_id_, bool is_uploading_active_, bool is_uploading_completed_, int53 uploaded_size_);
+
+ static const std::int32_t ID = 747731030;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ReplyMarkup: public Object {
+ public:
+};
+
+class replyMarkupRemoveKeyboard final : public ReplyMarkup {
+ public:
+ bool is_personal_;
+
+ replyMarkupRemoveKeyboard();
+
+ explicit replyMarkupRemoveKeyboard(bool is_personal_);
+
+ static const std::int32_t ID = -691252879;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class replyMarkupForceReply final : public ReplyMarkup {
+ public:
+ bool is_personal_;
+ string input_field_placeholder_;
+
+ replyMarkupForceReply();
+
+ replyMarkupForceReply(bool is_personal_, string const &input_field_placeholder_);
+
+ static const std::int32_t ID = 1101461919;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class replyMarkupShowKeyboard final : public ReplyMarkup {
+ public:
+ array<array<object_ptr<keyboardButton>>> rows_;
+ bool resize_keyboard_;
+ bool one_time_;
+ bool is_personal_;
+ string input_field_placeholder_;
+
+ replyMarkupShowKeyboard();
+
+ replyMarkupShowKeyboard(array<array<object_ptr<keyboardButton>>> &&rows_, bool resize_keyboard_, bool one_time_, bool is_personal_, string const &input_field_placeholder_);
+
+ static const std::int32_t ID = -64985802;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class replyMarkupInlineKeyboard final : public ReplyMarkup {
+ public:
+ array<array<object_ptr<inlineKeyboardButton>>> rows_;
+
+ replyMarkupInlineKeyboard();
+
+ explicit replyMarkupInlineKeyboard(array<array<object_ptr<inlineKeyboardButton>>> &&rows_);
+
+ static const std::int32_t ID = -619317658;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ResetPasswordResult: public Object {
+ public:
+};
+
+class resetPasswordResultOk final : public ResetPasswordResult {
+ public:
+
+ resetPasswordResultOk();
+
+ static const std::int32_t ID = -1397267463;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resetPasswordResultPending final : public ResetPasswordResult {
+ public:
+ int32 pending_reset_date_;
+
+ resetPasswordResultPending();
+
+ explicit resetPasswordResultPending(int32 pending_reset_date_);
+
+ static const std::int32_t ID = 1193925721;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resetPasswordResultDeclined final : public ResetPasswordResult {
+ public:
+ int32 retry_date_;
+
+ resetPasswordResultDeclined();
+
+ explicit resetPasswordResultDeclined(int32 retry_date_);
+
+ static const std::int32_t ID = -1202200373;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class RichText: public Object {
+ public:
+};
+
+class richTextPlain final : public RichText {
+ public:
+ string text_;
+
+ richTextPlain();
+
+ explicit richTextPlain(string const &text_);
+
+ static const std::int32_t ID = 482617702;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextBold final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ richTextBold();
+
+ explicit richTextBold(object_ptr<RichText> &&text_);
+
+ static const std::int32_t ID = 1670844268;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextItalic final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ richTextItalic();
+
+ explicit richTextItalic(object_ptr<RichText> &&text_);
+
+ static const std::int32_t ID = 1853354047;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextUnderline final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ richTextUnderline();
+
+ explicit richTextUnderline(object_ptr<RichText> &&text_);
+
+ static const std::int32_t ID = -536019572;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextStrikethrough final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ richTextStrikethrough();
+
+ explicit richTextStrikethrough(object_ptr<RichText> &&text_);
+
+ static const std::int32_t ID = 723413585;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextFixed final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ richTextFixed();
+
+ explicit richTextFixed(object_ptr<RichText> &&text_);
+
+ static const std::int32_t ID = -1271496249;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextUrl final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+ string url_;
+ bool is_cached_;
+
+ richTextUrl();
+
+ richTextUrl(object_ptr<RichText> &&text_, string const &url_, bool is_cached_);
+
+ static const std::int32_t ID = 83939092;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextEmailAddress final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+ string email_address_;
+
+ richTextEmailAddress();
+
+ richTextEmailAddress(object_ptr<RichText> &&text_, string const &email_address_);
+
+ static const std::int32_t ID = 40018679;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextSubscript final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ richTextSubscript();
+
+ explicit richTextSubscript(object_ptr<RichText> &&text_);
+
+ static const std::int32_t ID = -868197812;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextSuperscript final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ richTextSuperscript();
+
+ explicit richTextSuperscript(object_ptr<RichText> &&text_);
+
+ static const std::int32_t ID = -382241437;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextMarked final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ richTextMarked();
+
+ explicit richTextMarked(object_ptr<RichText> &&text_);
+
+ static const std::int32_t ID = -1271999614;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextPhoneNumber final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+ string phone_number_;
+
+ richTextPhoneNumber();
+
+ richTextPhoneNumber(object_ptr<RichText> &&text_, string const &phone_number_);
+
+ static const std::int32_t ID = 128521539;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextIcon final : public RichText {
+ public:
+ object_ptr<document> document_;
+ int32 width_;
+ int32 height_;
+
+ richTextIcon();
+
+ richTextIcon(object_ptr<document> &&document_, int32 width_, int32 height_);
+
+ static const std::int32_t ID = -1480316158;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextReference final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+ string anchor_name_;
+ string url_;
+
+ richTextReference();
+
+ richTextReference(object_ptr<RichText> &&text_, string const &anchor_name_, string const &url_);
+
+ static const std::int32_t ID = -1147530634;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextAnchor final : public RichText {
+ public:
+ string name_;
+
+ richTextAnchor();
+
+ explicit richTextAnchor(string const &name_);
+
+ static const std::int32_t ID = 1316950068;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTextAnchorLink final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+ string anchor_name_;
+ string url_;
+
+ richTextAnchorLink();
+
+ richTextAnchorLink(object_ptr<RichText> &&text_, string const &anchor_name_, string const &url_);
+
+ static const std::int32_t ID = -1541418282;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class richTexts final : public RichText {
+ public:
+ array<object_ptr<RichText>> texts_;
+
+ richTexts();
+
+ explicit richTexts(array<object_ptr<RichText>> &&texts_);
+
+ static const std::int32_t ID = 1647457821;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class rtmpUrl final : public Object {
+ public:
+ string url_;
+ string stream_key_;
+
+ rtmpUrl();
+
+ rtmpUrl(string const &url_, string const &stream_key_);
+
+ static const std::int32_t ID = 1009302613;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class savedCredentials final : public Object {
+ public:
+ string id_;
+ string title_;
+
+ savedCredentials();
+
+ savedCredentials(string const &id_, string const &title_);
+
+ static const std::int32_t ID = -370273060;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class scopeNotificationSettings final : public Object {
+ public:
+ int32 mute_for_;
+ int64 sound_id_;
+ bool show_preview_;
+ bool disable_pinned_message_notifications_;
+ bool disable_mention_notifications_;
+
+ scopeNotificationSettings();
+
+ scopeNotificationSettings(int32 mute_for_, int64 sound_id_, bool show_preview_, bool disable_pinned_message_notifications_, bool disable_mention_notifications_);
+
+ static const std::int32_t ID = -1383458661;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SearchMessagesFilter: public Object {
+ public:
+};
+
+class searchMessagesFilterEmpty final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterEmpty();
+
+ static const std::int32_t ID = -869395657;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterAnimation final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterAnimation();
+
+ static const std::int32_t ID = -155713339;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterAudio final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterAudio();
+
+ static const std::int32_t ID = 867505275;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterDocument final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterDocument();
+
+ static const std::int32_t ID = 1526331215;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterPhoto final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterPhoto();
+
+ static const std::int32_t ID = 925932293;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterVideo final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterVideo();
+
+ static const std::int32_t ID = 115538222;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterVoiceNote final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterVoiceNote();
+
+ static const std::int32_t ID = 1841439357;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterPhotoAndVideo final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterPhotoAndVideo();
+
+ static const std::int32_t ID = 1352130963;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterUrl final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterUrl();
+
+ static const std::int32_t ID = -1828724341;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterChatPhoto final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterChatPhoto();
+
+ static const std::int32_t ID = -1247751329;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterVideoNote final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterVideoNote();
+
+ static const std::int32_t ID = 564323321;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterVoiceAndVideoNote final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterVoiceAndVideoNote();
+
+ static const std::int32_t ID = 664174819;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterMention final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterMention();
+
+ static const std::int32_t ID = 2001258652;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterUnreadMention final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterUnreadMention();
+
+ static const std::int32_t ID = -95769149;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterUnreadReaction final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterUnreadReaction();
+
+ static const std::int32_t ID = -1379651328;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterFailedToSend final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterFailedToSend();
+
+ static const std::int32_t ID = -596322564;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessagesFilterPinned final : public SearchMessagesFilter {
+ public:
+
+ searchMessagesFilterPinned();
+
+ static const std::int32_t ID = 371805512;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class seconds final : public Object {
+ public:
+ double seconds_;
+
+ seconds();
+
+ explicit seconds(double seconds_);
+
+ static const std::int32_t ID = 959899022;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secretChat final : public Object {
+ public:
+ int32 id_;
+ int53 user_id_;
+ object_ptr<SecretChatState> state_;
+ bool is_outbound_;
+ bytes key_hash_;
+ int32 layer_;
+
+ secretChat();
+
+ secretChat(int32 id_, int53 user_id_, object_ptr<SecretChatState> &&state_, bool is_outbound_, bytes const &key_hash_, int32 layer_);
+
+ static const std::int32_t ID = -676918325;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SecretChatState: public Object {
+ public:
+};
+
+class secretChatStatePending final : public SecretChatState {
+ public:
+
+ secretChatStatePending();
+
+ static const std::int32_t ID = -1637050756;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secretChatStateReady final : public SecretChatState {
+ public:
+
+ secretChatStateReady();
+
+ static const std::int32_t ID = -1611352087;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secretChatStateClosed final : public SecretChatState {
+ public:
+
+ secretChatStateClosed();
+
+ static const std::int32_t ID = -1945106707;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sentWebAppMessage final : public Object {
+ public:
+ string inline_message_id_;
+
+ sentWebAppMessage();
+
+ explicit sentWebAppMessage(string const &inline_message_id_);
+
+ static const std::int32_t ID = 1243934400;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class session final : public Object {
+ public:
+ int64 id_;
+ bool is_current_;
+ bool is_password_pending_;
+ bool can_accept_secret_chats_;
+ bool can_accept_calls_;
+ object_ptr<SessionType> type_;
+ int32 api_id_;
+ string application_name_;
+ string application_version_;
+ bool is_official_application_;
+ string device_model_;
+ string platform_;
+ string system_version_;
+ int32 log_in_date_;
+ int32 last_active_date_;
+ string ip_;
+ string country_;
+ string region_;
+
+ session();
+
+ session(int64 id_, bool is_current_, bool is_password_pending_, bool can_accept_secret_chats_, bool can_accept_calls_, object_ptr<SessionType> &&type_, int32 api_id_, string const &application_name_, string const &application_version_, bool is_official_application_, string const &device_model_, string const &platform_, string const &system_version_, int32 log_in_date_, int32 last_active_date_, string const &ip_, string const &country_, string const &region_);
+
+ static const std::int32_t ID = -1961323642;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SessionType: public Object {
+ public:
+};
+
+class sessionTypeAndroid final : public SessionType {
+ public:
+
+ sessionTypeAndroid();
+
+ static const std::int32_t ID = -2071764840;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeApple final : public SessionType {
+ public:
+
+ sessionTypeApple();
+
+ static const std::int32_t ID = -1818635701;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeBrave final : public SessionType {
+ public:
+
+ sessionTypeBrave();
+
+ static const std::int32_t ID = -1216812563;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeChrome final : public SessionType {
+ public:
+
+ sessionTypeChrome();
+
+ static const std::int32_t ID = 1573464425;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeEdge final : public SessionType {
+ public:
+
+ sessionTypeEdge();
+
+ static const std::int32_t ID = -538916005;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeFirefox final : public SessionType {
+ public:
+
+ sessionTypeFirefox();
+
+ static const std::int32_t ID = 2122579364;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeIpad final : public SessionType {
+ public:
+
+ sessionTypeIpad();
+
+ static const std::int32_t ID = 1294647023;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeIphone final : public SessionType {
+ public:
+
+ sessionTypeIphone();
+
+ static const std::int32_t ID = 97616573;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeLinux final : public SessionType {
+ public:
+
+ sessionTypeLinux();
+
+ static const std::int32_t ID = -1487422871;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeMac final : public SessionType {
+ public:
+
+ sessionTypeMac();
+
+ static const std::int32_t ID = -612250975;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeOpera final : public SessionType {
+ public:
+
+ sessionTypeOpera();
+
+ static const std::int32_t ID = -1463673734;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeSafari final : public SessionType {
+ public:
+
+ sessionTypeSafari();
+
+ static const std::int32_t ID = 710646873;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeUbuntu final : public SessionType {
+ public:
+
+ sessionTypeUbuntu();
+
+ static const std::int32_t ID = 1569680069;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeUnknown final : public SessionType {
+ public:
+
+ sessionTypeUnknown();
+
+ static const std::int32_t ID = 233926704;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeVivaldi final : public SessionType {
+ public:
+
+ sessionTypeVivaldi();
+
+ static const std::int32_t ID = 1120503279;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeWindows final : public SessionType {
+ public:
+
+ sessionTypeWindows();
+
+ static const std::int32_t ID = -1676512600;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessionTypeXbox final : public SessionType {
+ public:
+
+ sessionTypeXbox();
+
+ static const std::int32_t ID = 1856216492;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sessions final : public Object {
+ public:
+ array<object_ptr<session>> sessions_;
+ int32 inactive_session_ttl_days_;
+
+ sessions();
+
+ sessions(array<object_ptr<session>> &&sessions_, int32 inactive_session_ttl_days_);
+
+ static const std::int32_t ID = 842912274;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class shippingOption final : public Object {
+ public:
+ string id_;
+ string title_;
+ array<object_ptr<labeledPricePart>> price_parts_;
+
+ shippingOption();
+
+ shippingOption(string const &id_, string const &title_, array<object_ptr<labeledPricePart>> &&price_parts_);
+
+ static const std::int32_t ID = 1425690001;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SpeechRecognitionResult: public Object {
+ public:
+};
+
+class speechRecognitionResultPending final : public SpeechRecognitionResult {
+ public:
+ string partial_text_;
+
+ speechRecognitionResultPending();
+
+ explicit speechRecognitionResultPending(string const &partial_text_);
+
+ static const std::int32_t ID = -1631810048;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class speechRecognitionResultText final : public SpeechRecognitionResult {
+ public:
+ string text_;
+
+ speechRecognitionResultText();
+
+ explicit speechRecognitionResultText(string const &text_);
+
+ static const std::int32_t ID = -2132377123;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class speechRecognitionResultError final : public SpeechRecognitionResult {
+ public:
+ object_ptr<error> error_;
+
+ speechRecognitionResultError();
+
+ explicit speechRecognitionResultError(object_ptr<error> &&error_);
+
+ static const std::int32_t ID = 164774908;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sponsoredMessage final : public Object {
+ public:
+ int53 message_id_;
+ bool is_recommended_;
+ int53 sponsor_chat_id_;
+ object_ptr<chatInviteLinkInfo> sponsor_chat_info_;
+ bool show_chat_photo_;
+ object_ptr<InternalLinkType> link_;
+ object_ptr<MessageContent> content_;
+
+ sponsoredMessage();
+
+ sponsoredMessage(int53 message_id_, bool is_recommended_, int53 sponsor_chat_id_, object_ptr<chatInviteLinkInfo> &&sponsor_chat_info_, bool show_chat_photo_, object_ptr<InternalLinkType> &&link_, object_ptr<MessageContent> &&content_);
+
+ static const std::int32_t ID = -613319051;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sponsoredMessages final : public Object {
+ public:
+ array<object_ptr<sponsoredMessage>> messages_;
+ int32 messages_between_;
+
+ sponsoredMessages();
+
+ sponsoredMessages(array<object_ptr<sponsoredMessage>> &&messages_, int32 messages_between_);
+
+ static const std::int32_t ID = -537674389;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class StatisticalGraph: public Object {
+ public:
+};
+
+class statisticalGraphData final : public StatisticalGraph {
+ public:
+ string json_data_;
+ string zoom_token_;
+
+ statisticalGraphData();
+
+ statisticalGraphData(string const &json_data_, string const &zoom_token_);
+
+ static const std::int32_t ID = -1988940244;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statisticalGraphAsync final : public StatisticalGraph {
+ public:
+ string token_;
+
+ statisticalGraphAsync();
+
+ explicit statisticalGraphAsync(string const &token_);
+
+ static const std::int32_t ID = 435891103;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statisticalGraphError final : public StatisticalGraph {
+ public:
+ string error_message_;
+
+ statisticalGraphError();
+
+ explicit statisticalGraphError(string const &error_message_);
+
+ static const std::int32_t ID = -1006788526;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statisticalValue final : public Object {
+ public:
+ double value_;
+ double previous_value_;
+ double growth_rate_percentage_;
+
+ statisticalValue();
+
+ statisticalValue(double value_, double previous_value_, double growth_rate_percentage_);
+
+ static const std::int32_t ID = 1651337846;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sticker final : public Object {
+ public:
+ int64 set_id_;
+ int32 width_;
+ int32 height_;
+ string emoji_;
+ object_ptr<StickerFormat> format_;
+ object_ptr<StickerType> type_;
+ object_ptr<maskPosition> mask_position_;
+ int64 custom_emoji_id_;
+ array<object_ptr<closedVectorPath>> outline_;
+ object_ptr<thumbnail> thumbnail_;
+ bool is_premium_;
+ object_ptr<file> premium_animation_;
+ object_ptr<file> sticker_;
+
+ sticker();
+
+ sticker(int64 set_id_, int32 width_, int32 height_, string const &emoji_, object_ptr<StickerFormat> &&format_, object_ptr<StickerType> &&type_, object_ptr<maskPosition> &&mask_position_, int64 custom_emoji_id_, array<object_ptr<closedVectorPath>> &&outline_, object_ptr<thumbnail> &&thumbnail_, bool is_premium_, object_ptr<file> &&premium_animation_, object_ptr<file> &&sticker_);
+
+ static const std::int32_t ID = -1108220879;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class StickerFormat: public Object {
+ public:
+};
+
+class stickerFormatWebp final : public StickerFormat {
+ public:
+
+ stickerFormatWebp();
+
+ static const std::int32_t ID = -2123043040;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerFormatTgs final : public StickerFormat {
+ public:
+
+ stickerFormatTgs();
+
+ static const std::int32_t ID = 1614588662;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerFormatWebm final : public StickerFormat {
+ public:
+
+ stickerFormatWebm();
+
+ static const std::int32_t ID = -2070162097;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerSet final : public Object {
+ public:
+ int64 id_;
+ string title_;
+ string name_;
+ object_ptr<thumbnail> thumbnail_;
+ array<object_ptr<closedVectorPath>> thumbnail_outline_;
+ bool is_installed_;
+ bool is_archived_;
+ bool is_official_;
+ object_ptr<StickerFormat> sticker_format_;
+ object_ptr<StickerType> sticker_type_;
+ bool is_viewed_;
+ array<object_ptr<sticker>> stickers_;
+ array<object_ptr<emojis>> emojis_;
+
+ stickerSet();
+
+ stickerSet(int64 id_, string const &title_, string const &name_, object_ptr<thumbnail> &&thumbnail_, array<object_ptr<closedVectorPath>> &&thumbnail_outline_, bool is_installed_, bool is_archived_, bool is_official_, object_ptr<StickerFormat> &&sticker_format_, object_ptr<StickerType> &&sticker_type_, bool is_viewed_, array<object_ptr<sticker>> &&stickers_, array<object_ptr<emojis>> &&emojis_);
+
+ static const std::int32_t ID = 1899632064;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerSetInfo final : public Object {
+ public:
+ int64 id_;
+ string title_;
+ string name_;
+ object_ptr<thumbnail> thumbnail_;
+ array<object_ptr<closedVectorPath>> thumbnail_outline_;
+ bool is_installed_;
+ bool is_archived_;
+ bool is_official_;
+ object_ptr<StickerFormat> sticker_format_;
+ object_ptr<StickerType> sticker_type_;
+ bool is_viewed_;
+ int32 size_;
+ array<object_ptr<sticker>> covers_;
+
+ stickerSetInfo();
+
+ stickerSetInfo(int64 id_, string const &title_, string const &name_, object_ptr<thumbnail> &&thumbnail_, array<object_ptr<closedVectorPath>> &&thumbnail_outline_, bool is_installed_, bool is_archived_, bool is_official_, object_ptr<StickerFormat> &&sticker_format_, object_ptr<StickerType> &&sticker_type_, bool is_viewed_, int32 size_, array<object_ptr<sticker>> &&covers_);
+
+ static const std::int32_t ID = 745543121;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerSets final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<stickerSetInfo>> sets_;
+
+ stickerSets();
+
+ stickerSets(int32 total_count_, array<object_ptr<stickerSetInfo>> &&sets_);
+
+ static const std::int32_t ID = -1883828812;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class StickerType: public Object {
+ public:
+};
+
+class stickerTypeRegular final : public StickerType {
+ public:
+
+ stickerTypeRegular();
+
+ static const std::int32_t ID = 56345973;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerTypeMask final : public StickerType {
+ public:
+
+ stickerTypeMask();
+
+ static const std::int32_t ID = -1765394796;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerTypeCustomEmoji final : public StickerType {
+ public:
+
+ stickerTypeCustomEmoji();
+
+ static const std::int32_t ID = -120752249;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickers final : public Object {
+ public:
+ array<object_ptr<sticker>> stickers_;
+
+ stickers();
+
+ explicit stickers(array<object_ptr<sticker>> &&stickers_);
+
+ static const std::int32_t ID = 1974859260;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storageStatistics final : public Object {
+ public:
+ int53 size_;
+ int32 count_;
+ array<object_ptr<storageStatisticsByChat>> by_chat_;
+
+ storageStatistics();
+
+ storageStatistics(int53 size_, int32 count_, array<object_ptr<storageStatisticsByChat>> &&by_chat_);
+
+ static const std::int32_t ID = 217237013;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storageStatisticsByChat final : public Object {
+ public:
+ int53 chat_id_;
+ int53 size_;
+ int32 count_;
+ array<object_ptr<storageStatisticsByFileType>> by_file_type_;
+
+ storageStatisticsByChat();
+
+ storageStatisticsByChat(int53 chat_id_, int53 size_, int32 count_, array<object_ptr<storageStatisticsByFileType>> &&by_file_type_);
+
+ static const std::int32_t ID = 635434531;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storageStatisticsByFileType final : public Object {
+ public:
+ object_ptr<FileType> file_type_;
+ int53 size_;
+ int32 count_;
+
+ storageStatisticsByFileType();
+
+ storageStatisticsByFileType(object_ptr<FileType> &&file_type_, int53 size_, int32 count_);
+
+ static const std::int32_t ID = 714012840;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storageStatisticsFast final : public Object {
+ public:
+ int53 files_size_;
+ int32 file_count_;
+ int53 database_size_;
+ int53 language_pack_database_size_;
+ int53 log_size_;
+
+ storageStatisticsFast();
+
+ storageStatisticsFast(int53 files_size_, int32 file_count_, int53 database_size_, int53 language_pack_database_size_, int53 log_size_);
+
+ static const std::int32_t ID = -884922271;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class StorePaymentPurpose: public Object {
+ public:
+};
+
+class storePaymentPurposePremiumSubscription final : public StorePaymentPurpose {
+ public:
+ bool is_restore_;
+
+ storePaymentPurposePremiumSubscription();
+
+ explicit storePaymentPurposePremiumSubscription(bool is_restore_);
+
+ static const std::int32_t ID = -1497906096;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storePaymentPurposeGiftedPremium final : public StorePaymentPurpose {
+ public:
+ int53 user_id_;
+ string currency_;
+ int53 amount_;
+
+ storePaymentPurposeGiftedPremium();
+
+ storePaymentPurposeGiftedPremium(int53 user_id_, string const &currency_, int53 amount_);
+
+ static const std::int32_t ID = 1916846289;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SuggestedAction: public Object {
+ public:
+};
+
+class suggestedActionEnableArchiveAndMuteNewChats final : public SuggestedAction {
+ public:
+
+ suggestedActionEnableArchiveAndMuteNewChats();
+
+ static const std::int32_t ID = 2017586255;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class suggestedActionCheckPassword final : public SuggestedAction {
+ public:
+
+ suggestedActionCheckPassword();
+
+ static const std::int32_t ID = 1910534839;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class suggestedActionCheckPhoneNumber final : public SuggestedAction {
+ public:
+
+ suggestedActionCheckPhoneNumber();
+
+ static const std::int32_t ID = 648771563;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class suggestedActionViewChecksHint final : public SuggestedAction {
+ public:
+
+ suggestedActionViewChecksHint();
+
+ static const std::int32_t ID = 891303239;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class suggestedActionConvertToBroadcastGroup final : public SuggestedAction {
+ public:
+ int53 supergroup_id_;
+
+ suggestedActionConvertToBroadcastGroup();
+
+ explicit suggestedActionConvertToBroadcastGroup(int53 supergroup_id_);
+
+ static const std::int32_t ID = -965071304;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class suggestedActionSetPassword final : public SuggestedAction {
+ public:
+ int32 authorization_delay_;
+
+ suggestedActionSetPassword();
+
+ explicit suggestedActionSetPassword(int32 authorization_delay_);
+
+ static const std::int32_t ID = 1863613848;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class supergroup final : public Object {
+ public:
+ int53 id_;
+ object_ptr<usernames> usernames_;
+ int32 date_;
+ object_ptr<ChatMemberStatus> status_;
+ int32 member_count_;
+ bool has_linked_chat_;
+ bool has_location_;
+ bool sign_messages_;
+ bool join_to_send_messages_;
+ bool join_by_request_;
+ bool is_slow_mode_enabled_;
+ bool is_channel_;
+ bool is_broadcast_group_;
+ bool is_forum_;
+ bool is_verified_;
+ string restriction_reason_;
+ bool is_scam_;
+ bool is_fake_;
+
+ supergroup();
+
+ supergroup(int53 id_, object_ptr<usernames> &&usernames_, int32 date_, object_ptr<ChatMemberStatus> &&status_, int32 member_count_, bool has_linked_chat_, bool has_location_, bool sign_messages_, bool join_to_send_messages_, bool join_by_request_, bool is_slow_mode_enabled_, bool is_channel_, bool is_broadcast_group_, bool is_forum_, bool is_verified_, string const &restriction_reason_, bool is_scam_, bool is_fake_);
+
+ static const std::int32_t ID = -2002240425;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class supergroupFullInfo final : public Object {
+ public:
+ object_ptr<chatPhoto> photo_;
+ string description_;
+ int32 member_count_;
+ int32 administrator_count_;
+ int32 restricted_count_;
+ int32 banned_count_;
+ int53 linked_chat_id_;
+ int32 slow_mode_delay_;
+ double slow_mode_delay_expires_in_;
+ bool can_get_members_;
+ bool can_set_username_;
+ bool can_set_sticker_set_;
+ bool can_set_location_;
+ bool can_get_statistics_;
+ bool is_all_history_available_;
+ int64 sticker_set_id_;
+ object_ptr<chatLocation> location_;
+ object_ptr<chatInviteLink> invite_link_;
+ array<object_ptr<botCommands>> bot_commands_;
+ int53 upgraded_from_basic_group_id_;
+ int53 upgraded_from_max_message_id_;
+
+ supergroupFullInfo();
+
+ supergroupFullInfo(object_ptr<chatPhoto> &&photo_, string const &description_, int32 member_count_, int32 administrator_count_, int32 restricted_count_, int32 banned_count_, int53 linked_chat_id_, int32 slow_mode_delay_, double slow_mode_delay_expires_in_, bool can_get_members_, bool can_set_username_, bool can_set_sticker_set_, bool can_set_location_, bool can_get_statistics_, bool is_all_history_available_, int64 sticker_set_id_, object_ptr<chatLocation> &&location_, object_ptr<chatInviteLink> &&invite_link_, array<object_ptr<botCommands>> &&bot_commands_, int53 upgraded_from_basic_group_id_, int53 upgraded_from_max_message_id_);
+
+ static const std::int32_t ID = -1035719349;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SupergroupMembersFilter: public Object {
+ public:
+};
+
+class supergroupMembersFilterRecent final : public SupergroupMembersFilter {
+ public:
+
+ supergroupMembersFilterRecent();
+
+ static const std::int32_t ID = 1178199509;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class supergroupMembersFilterContacts final : public SupergroupMembersFilter {
+ public:
+ string query_;
+
+ supergroupMembersFilterContacts();
+
+ explicit supergroupMembersFilterContacts(string const &query_);
+
+ static const std::int32_t ID = -1282910856;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class supergroupMembersFilterAdministrators final : public SupergroupMembersFilter {
+ public:
+
+ supergroupMembersFilterAdministrators();
+
+ static const std::int32_t ID = -2097380265;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class supergroupMembersFilterSearch final : public SupergroupMembersFilter {
+ public:
+ string query_;
+
+ supergroupMembersFilterSearch();
+
+ explicit supergroupMembersFilterSearch(string const &query_);
+
+ static const std::int32_t ID = -1696358469;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class supergroupMembersFilterRestricted final : public SupergroupMembersFilter {
+ public:
+ string query_;
+
+ supergroupMembersFilterRestricted();
+
+ explicit supergroupMembersFilterRestricted(string const &query_);
+
+ static const std::int32_t ID = -1107800034;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class supergroupMembersFilterBanned final : public SupergroupMembersFilter {
+ public:
+ string query_;
+
+ supergroupMembersFilterBanned();
+
+ explicit supergroupMembersFilterBanned(string const &query_);
+
+ static const std::int32_t ID = -1210621683;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class supergroupMembersFilterMention final : public SupergroupMembersFilter {
+ public:
+ string query_;
+ int53 message_thread_id_;
+
+ supergroupMembersFilterMention();
+
+ supergroupMembersFilterMention(string const &query_, int53 message_thread_id_);
+
+ static const std::int32_t ID = 947915036;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class supergroupMembersFilterBots final : public SupergroupMembersFilter {
+ public:
+
+ supergroupMembersFilterBots();
+
+ static const std::int32_t ID = 492138918;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class tMeUrl final : public Object {
+ public:
+ string url_;
+ object_ptr<TMeUrlType> type_;
+
+ tMeUrl();
+
+ tMeUrl(string const &url_, object_ptr<TMeUrlType> &&type_);
+
+ static const std::int32_t ID = -1140786622;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class TMeUrlType: public Object {
+ public:
+};
+
+class tMeUrlTypeUser final : public TMeUrlType {
+ public:
+ int53 user_id_;
+
+ tMeUrlTypeUser();
+
+ explicit tMeUrlTypeUser(int53 user_id_);
+
+ static const std::int32_t ID = 125336602;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class tMeUrlTypeSupergroup final : public TMeUrlType {
+ public:
+ int53 supergroup_id_;
+
+ tMeUrlTypeSupergroup();
+
+ explicit tMeUrlTypeSupergroup(int53 supergroup_id_);
+
+ static const std::int32_t ID = -1353369944;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class tMeUrlTypeChatInvite final : public TMeUrlType {
+ public:
+ object_ptr<chatInviteLinkInfo> info_;
+
+ tMeUrlTypeChatInvite();
+
+ explicit tMeUrlTypeChatInvite(object_ptr<chatInviteLinkInfo> &&info_);
+
+ static const std::int32_t ID = 313907785;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class tMeUrlTypeStickerSet final : public TMeUrlType {
+ public:
+ int64 sticker_set_id_;
+
+ tMeUrlTypeStickerSet();
+
+ explicit tMeUrlTypeStickerSet(int64 sticker_set_id_);
+
+ static const std::int32_t ID = 1602473196;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class tMeUrls final : public Object {
+ public:
+ array<object_ptr<tMeUrl>> urls_;
+
+ tMeUrls();
+
+ explicit tMeUrls(array<object_ptr<tMeUrl>> &&urls_);
+
+ static const std::int32_t ID = -1130595098;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class TargetChat: public Object {
+ public:
+};
+
+class targetChatCurrent final : public TargetChat {
+ public:
+
+ targetChatCurrent();
+
+ static const std::int32_t ID = -416689904;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class targetChatChosen final : public TargetChat {
+ public:
+ bool allow_user_chats_;
+ bool allow_bot_chats_;
+ bool allow_group_chats_;
+ bool allow_channel_chats_;
+
+ targetChatChosen();
+
+ targetChatChosen(bool allow_user_chats_, bool allow_bot_chats_, bool allow_group_chats_, bool allow_channel_chats_);
+
+ static const std::int32_t ID = -307442990;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class targetChatInternalLink final : public TargetChat {
+ public:
+ object_ptr<InternalLinkType> link_;
+
+ targetChatInternalLink();
+
+ explicit targetChatInternalLink(object_ptr<InternalLinkType> &&link_);
+
+ static const std::int32_t ID = -579301408;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class temporaryPasswordState final : public Object {
+ public:
+ bool has_password_;
+ int32 valid_for_;
+
+ temporaryPasswordState();
+
+ temporaryPasswordState(bool has_password_, int32 valid_for_);
+
+ static const std::int32_t ID = 939837410;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class termsOfService final : public Object {
+ public:
+ object_ptr<formattedText> text_;
+ int32 min_user_age_;
+ bool show_popup_;
+
+ termsOfService();
+
+ termsOfService(object_ptr<formattedText> &&text_, int32 min_user_age_, bool show_popup_);
+
+ static const std::int32_t ID = 739422597;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testBytes final : public Object {
+ public:
+ bytes value_;
+
+ testBytes();
+
+ explicit testBytes(bytes const &value_);
+
+ static const std::int32_t ID = -1541225250;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testInt final : public Object {
+ public:
+ int32 value_;
+
+ testInt();
+
+ explicit testInt(int32 value_);
+
+ static const std::int32_t ID = -574804983;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testString final : public Object {
+ public:
+ string value_;
+
+ testString();
+
+ explicit testString(string const &value_);
+
+ static const std::int32_t ID = -27891572;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testVectorInt final : public Object {
+ public:
+ array<int32> value_;
+
+ testVectorInt();
+
+ explicit testVectorInt(array<int32> &&value_);
+
+ static const std::int32_t ID = 593682027;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testVectorIntObject final : public Object {
+ public:
+ array<object_ptr<testInt>> value_;
+
+ testVectorIntObject();
+
+ explicit testVectorIntObject(array<object_ptr<testInt>> &&value_);
+
+ static const std::int32_t ID = 125891546;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testVectorString final : public Object {
+ public:
+ array<string> value_;
+
+ testVectorString();
+
+ explicit testVectorString(array<string> &&value_);
+
+ static const std::int32_t ID = 79339995;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testVectorStringObject final : public Object {
+ public:
+ array<object_ptr<testString>> value_;
+
+ testVectorStringObject();
+
+ explicit testVectorStringObject(array<object_ptr<testString>> &&value_);
+
+ static const std::int32_t ID = 80780537;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class text final : public Object {
+ public:
+ string text_;
+
+ text();
+
+ explicit text(string const &text_);
+
+ static const std::int32_t ID = 578181272;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntities final : public Object {
+ public:
+ array<object_ptr<textEntity>> entities_;
+
+ textEntities();
+
+ explicit textEntities(array<object_ptr<textEntity>> &&entities_);
+
+ static const std::int32_t ID = -933199172;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntity final : public Object {
+ public:
+ int32 offset_;
+ int32 length_;
+ object_ptr<TextEntityType> type_;
+
+ textEntity();
+
+ textEntity(int32 offset_, int32 length_, object_ptr<TextEntityType> &&type_);
+
+ static const std::int32_t ID = -1951688280;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class TextEntityType: public Object {
+ public:
+};
+
+class textEntityTypeMention final : public TextEntityType {
+ public:
+
+ textEntityTypeMention();
+
+ static const std::int32_t ID = 934535013;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeHashtag final : public TextEntityType {
+ public:
+
+ textEntityTypeHashtag();
+
+ static const std::int32_t ID = -1023958307;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeCashtag final : public TextEntityType {
+ public:
+
+ textEntityTypeCashtag();
+
+ static const std::int32_t ID = 1222915915;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeBotCommand final : public TextEntityType {
+ public:
+
+ textEntityTypeBotCommand();
+
+ static const std::int32_t ID = -1150997581;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeUrl final : public TextEntityType {
+ public:
+
+ textEntityTypeUrl();
+
+ static const std::int32_t ID = -1312762756;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeEmailAddress final : public TextEntityType {
+ public:
+
+ textEntityTypeEmailAddress();
+
+ static const std::int32_t ID = 1425545249;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypePhoneNumber final : public TextEntityType {
+ public:
+
+ textEntityTypePhoneNumber();
+
+ static const std::int32_t ID = -1160140246;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeBankCardNumber final : public TextEntityType {
+ public:
+
+ textEntityTypeBankCardNumber();
+
+ static const std::int32_t ID = 105986320;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeBold final : public TextEntityType {
+ public:
+
+ textEntityTypeBold();
+
+ static const std::int32_t ID = -1128210000;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeItalic final : public TextEntityType {
+ public:
+
+ textEntityTypeItalic();
+
+ static const std::int32_t ID = -118253987;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeUnderline final : public TextEntityType {
+ public:
+
+ textEntityTypeUnderline();
+
+ static const std::int32_t ID = 792317842;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeStrikethrough final : public TextEntityType {
+ public:
+
+ textEntityTypeStrikethrough();
+
+ static const std::int32_t ID = 961529082;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeSpoiler final : public TextEntityType {
+ public:
+
+ textEntityTypeSpoiler();
+
+ static const std::int32_t ID = 544019899;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeCode final : public TextEntityType {
+ public:
+
+ textEntityTypeCode();
+
+ static const std::int32_t ID = -974534326;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypePre final : public TextEntityType {
+ public:
+
+ textEntityTypePre();
+
+ static const std::int32_t ID = 1648958606;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypePreCode final : public TextEntityType {
+ public:
+ string language_;
+
+ textEntityTypePreCode();
+
+ explicit textEntityTypePreCode(string const &language_);
+
+ static const std::int32_t ID = -945325397;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeTextUrl final : public TextEntityType {
+ public:
+ string url_;
+
+ textEntityTypeTextUrl();
+
+ explicit textEntityTypeTextUrl(string const &url_);
+
+ static const std::int32_t ID = 445719651;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeMentionName final : public TextEntityType {
+ public:
+ int53 user_id_;
+
+ textEntityTypeMentionName();
+
+ explicit textEntityTypeMentionName(int53 user_id_);
+
+ static const std::int32_t ID = -1570974289;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeCustomEmoji final : public TextEntityType {
+ public:
+ int64 custom_emoji_id_;
+
+ textEntityTypeCustomEmoji();
+
+ explicit textEntityTypeCustomEmoji(int64 custom_emoji_id_);
+
+ static const std::int32_t ID = 1724820677;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEntityTypeMediaTimestamp final : public TextEntityType {
+ public:
+ int32 media_timestamp_;
+
+ textEntityTypeMediaTimestamp();
+
+ explicit textEntityTypeMediaTimestamp(int32 media_timestamp_);
+
+ static const std::int32_t ID = -1841898992;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class TextParseMode: public Object {
+ public:
+};
+
+class textParseModeMarkdown final : public TextParseMode {
+ public:
+ int32 version_;
+
+ textParseModeMarkdown();
+
+ explicit textParseModeMarkdown(int32 version_);
+
+ static const std::int32_t ID = 360073407;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textParseModeHTML final : public TextParseMode {
+ public:
+
+ textParseModeHTML();
+
+ static const std::int32_t ID = 1660208627;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class themeParameters final : public Object {
+ public:
+ int32 background_color_;
+ int32 secondary_background_color_;
+ int32 text_color_;
+ int32 hint_color_;
+ int32 link_color_;
+ int32 button_color_;
+ int32 button_text_color_;
+
+ themeParameters();
+
+ themeParameters(int32 background_color_, int32 secondary_background_color_, int32 text_color_, int32 hint_color_, int32 link_color_, int32 button_color_, int32 button_text_color_);
+
+ static const std::int32_t ID = -644809106;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class themeSettings final : public Object {
+ public:
+ int32 accent_color_;
+ object_ptr<background> background_;
+ object_ptr<BackgroundFill> outgoing_message_fill_;
+ bool animate_outgoing_message_fill_;
+ int32 outgoing_message_accent_color_;
+
+ themeSettings();
+
+ themeSettings(int32 accent_color_, object_ptr<background> &&background_, object_ptr<BackgroundFill> &&outgoing_message_fill_, bool animate_outgoing_message_fill_, int32 outgoing_message_accent_color_);
+
+ static const std::int32_t ID = -62120942;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class thumbnail final : public Object {
+ public:
+ object_ptr<ThumbnailFormat> format_;
+ int32 width_;
+ int32 height_;
+ object_ptr<file> file_;
+
+ thumbnail();
+
+ thumbnail(object_ptr<ThumbnailFormat> &&format_, int32 width_, int32 height_, object_ptr<file> &&file_);
+
+ static const std::int32_t ID = 1243275371;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ThumbnailFormat: public Object {
+ public:
+};
+
+class thumbnailFormatJpeg final : public ThumbnailFormat {
+ public:
+
+ thumbnailFormatJpeg();
+
+ static const std::int32_t ID = -653503352;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class thumbnailFormatGif final : public ThumbnailFormat {
+ public:
+
+ thumbnailFormatGif();
+
+ static const std::int32_t ID = 1252205962;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class thumbnailFormatMpeg4 final : public ThumbnailFormat {
+ public:
+
+ thumbnailFormatMpeg4();
+
+ static const std::int32_t ID = 278616062;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class thumbnailFormatPng final : public ThumbnailFormat {
+ public:
+
+ thumbnailFormatPng();
+
+ static const std::int32_t ID = 1577490421;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class thumbnailFormatTgs final : public ThumbnailFormat {
+ public:
+
+ thumbnailFormatTgs();
+
+ static const std::int32_t ID = 1315522642;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class thumbnailFormatWebm final : public ThumbnailFormat {
+ public:
+
+ thumbnailFormatWebm();
+
+ static const std::int32_t ID = -660084953;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class thumbnailFormatWebp final : public ThumbnailFormat {
+ public:
+
+ thumbnailFormatWebp();
+
+ static const std::int32_t ID = -53588974;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class TopChatCategory: public Object {
+ public:
+};
+
+class topChatCategoryUsers final : public TopChatCategory {
+ public:
+
+ topChatCategoryUsers();
+
+ static const std::int32_t ID = 1026706816;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topChatCategoryBots final : public TopChatCategory {
+ public:
+
+ topChatCategoryBots();
+
+ static const std::int32_t ID = -1577129195;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topChatCategoryGroups final : public TopChatCategory {
+ public:
+
+ topChatCategoryGroups();
+
+ static const std::int32_t ID = 1530056846;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topChatCategoryChannels final : public TopChatCategory {
+ public:
+
+ topChatCategoryChannels();
+
+ static const std::int32_t ID = -500825885;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topChatCategoryInlineBots final : public TopChatCategory {
+ public:
+
+ topChatCategoryInlineBots();
+
+ static const std::int32_t ID = 377023356;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topChatCategoryCalls final : public TopChatCategory {
+ public:
+
+ topChatCategoryCalls();
+
+ static const std::int32_t ID = 356208861;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topChatCategoryForwardChats final : public TopChatCategory {
+ public:
+
+ topChatCategoryForwardChats();
+
+ static const std::int32_t ID = 1695922133;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class trendingStickerSets final : public Object {
+ public:
+ int32 total_count_;
+ array<object_ptr<stickerSetInfo>> sets_;
+ bool is_premium_;
+
+ trendingStickerSets();
+
+ trendingStickerSets(int32 total_count_, array<object_ptr<stickerSetInfo>> &&sets_, bool is_premium_);
+
+ static const std::int32_t ID = 41028940;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class unreadReaction final : public Object {
+ public:
+ object_ptr<ReactionType> type_;
+ object_ptr<MessageSender> sender_id_;
+ bool is_big_;
+
+ unreadReaction();
+
+ unreadReaction(object_ptr<ReactionType> &&type_, object_ptr<MessageSender> &&sender_id_, bool is_big_);
+
+ static const std::int32_t ID = -1940178046;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Update: public Object {
+ public:
+};
+
+class updateAuthorizationState final : public Update {
+ public:
+ object_ptr<AuthorizationState> authorization_state_;
+
+ updateAuthorizationState();
+
+ explicit updateAuthorizationState(object_ptr<AuthorizationState> &&authorization_state_);
+
+ static const std::int32_t ID = 1622347490;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewMessage final : public Update {
+ public:
+ object_ptr<message> message_;
+
+ updateNewMessage();
+
+ explicit updateNewMessage(object_ptr<message> &&message_);
+
+ static const std::int32_t ID = -563105266;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageSendAcknowledged final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ updateMessageSendAcknowledged();
+
+ updateMessageSendAcknowledged(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = 1302843961;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageSendSucceeded final : public Update {
+ public:
+ object_ptr<message> message_;
+ int53 old_message_id_;
+
+ updateMessageSendSucceeded();
+
+ updateMessageSendSucceeded(object_ptr<message> &&message_, int53 old_message_id_);
+
+ static const std::int32_t ID = 1815715197;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageSendFailed final : public Update {
+ public:
+ object_ptr<message> message_;
+ int53 old_message_id_;
+ int32 error_code_;
+ string error_message_;
+
+ updateMessageSendFailed();
+
+ updateMessageSendFailed(object_ptr<message> &&message_, int53 old_message_id_, int32 error_code_, string const &error_message_);
+
+ static const std::int32_t ID = -1032335779;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageContent final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<MessageContent> new_content_;
+
+ updateMessageContent();
+
+ updateMessageContent(int53 chat_id_, int53 message_id_, object_ptr<MessageContent> &&new_content_);
+
+ static const std::int32_t ID = 506903332;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageEdited final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ int32 edit_date_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ updateMessageEdited();
+
+ updateMessageEdited(int53 chat_id_, int53 message_id_, int32 edit_date_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = -559545626;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageIsPinned final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ bool is_pinned_;
+
+ updateMessageIsPinned();
+
+ updateMessageIsPinned(int53 chat_id_, int53 message_id_, bool is_pinned_);
+
+ static const std::int32_t ID = 1102848829;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageInteractionInfo final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<messageInteractionInfo> interaction_info_;
+
+ updateMessageInteractionInfo();
+
+ updateMessageInteractionInfo(int53 chat_id_, int53 message_id_, object_ptr<messageInteractionInfo> &&interaction_info_);
+
+ static const std::int32_t ID = -1417659394;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageContentOpened final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ updateMessageContentOpened();
+
+ updateMessageContentOpened(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = -1520523131;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageMentionRead final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ int32 unread_mention_count_;
+
+ updateMessageMentionRead();
+
+ updateMessageMentionRead(int53 chat_id_, int53 message_id_, int32 unread_mention_count_);
+
+ static const std::int32_t ID = -252228282;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageUnreadReactions final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ array<object_ptr<unreadReaction>> unread_reactions_;
+ int32 unread_reaction_count_;
+
+ updateMessageUnreadReactions();
+
+ updateMessageUnreadReactions(int53 chat_id_, int53 message_id_, array<object_ptr<unreadReaction>> &&unread_reactions_, int32 unread_reaction_count_);
+
+ static const std::int32_t ID = 942840008;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageLiveLocationViewed final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ updateMessageLiveLocationViewed();
+
+ updateMessageLiveLocationViewed(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = -1308260971;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewChat final : public Update {
+ public:
+ object_ptr<chat> chat_;
+
+ updateNewChat();
+
+ explicit updateNewChat(object_ptr<chat> &&chat_);
+
+ static const std::int32_t ID = 2075757773;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatTitle final : public Update {
+ public:
+ int53 chat_id_;
+ string title_;
+
+ updateChatTitle();
+
+ updateChatTitle(int53 chat_id_, string const &title_);
+
+ static const std::int32_t ID = -175405660;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatPhoto final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<chatPhotoInfo> photo_;
+
+ updateChatPhoto();
+
+ updateChatPhoto(int53 chat_id_, object_ptr<chatPhotoInfo> &&photo_);
+
+ static const std::int32_t ID = -324713921;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatPermissions final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<chatPermissions> permissions_;
+
+ updateChatPermissions();
+
+ updateChatPermissions(int53 chat_id_, object_ptr<chatPermissions> &&permissions_);
+
+ static const std::int32_t ID = -1622010003;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatLastMessage final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<message> last_message_;
+ array<object_ptr<chatPosition>> positions_;
+
+ updateChatLastMessage();
+
+ updateChatLastMessage(int53 chat_id_, object_ptr<message> &&last_message_, array<object_ptr<chatPosition>> &&positions_);
+
+ static const std::int32_t ID = -923244537;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatPosition final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<chatPosition> position_;
+
+ updateChatPosition();
+
+ updateChatPosition(int53 chat_id_, object_ptr<chatPosition> &&position_);
+
+ static const std::int32_t ID = -8979849;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatReadInbox final : public Update {
+ public:
+ int53 chat_id_;
+ int53 last_read_inbox_message_id_;
+ int32 unread_count_;
+
+ updateChatReadInbox();
+
+ updateChatReadInbox(int53 chat_id_, int53 last_read_inbox_message_id_, int32 unread_count_);
+
+ static const std::int32_t ID = -797952281;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatReadOutbox final : public Update {
+ public:
+ int53 chat_id_;
+ int53 last_read_outbox_message_id_;
+
+ updateChatReadOutbox();
+
+ updateChatReadOutbox(int53 chat_id_, int53 last_read_outbox_message_id_);
+
+ static const std::int32_t ID = 708334213;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatActionBar final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<ChatActionBar> action_bar_;
+
+ updateChatActionBar();
+
+ updateChatActionBar(int53 chat_id_, object_ptr<ChatActionBar> &&action_bar_);
+
+ static const std::int32_t ID = -643671870;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatAvailableReactions final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<ChatAvailableReactions> available_reactions_;
+
+ updateChatAvailableReactions();
+
+ updateChatAvailableReactions(int53 chat_id_, object_ptr<ChatAvailableReactions> &&available_reactions_);
+
+ static const std::int32_t ID = -1967909895;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatDraftMessage final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<draftMessage> draft_message_;
+ array<object_ptr<chatPosition>> positions_;
+
+ updateChatDraftMessage();
+
+ updateChatDraftMessage(int53 chat_id_, object_ptr<draftMessage> &&draft_message_, array<object_ptr<chatPosition>> &&positions_);
+
+ static const std::int32_t ID = 1455190380;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatMessageSender final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<MessageSender> message_sender_id_;
+
+ updateChatMessageSender();
+
+ updateChatMessageSender(int53 chat_id_, object_ptr<MessageSender> &&message_sender_id_);
+
+ static const std::int32_t ID = 2003849793;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatMessageTtl final : public Update {
+ public:
+ int53 chat_id_;
+ int32 message_ttl_;
+
+ updateChatMessageTtl();
+
+ updateChatMessageTtl(int53 chat_id_, int32 message_ttl_);
+
+ static const std::int32_t ID = -572479112;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatNotificationSettings final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<chatNotificationSettings> notification_settings_;
+
+ updateChatNotificationSettings();
+
+ updateChatNotificationSettings(int53 chat_id_, object_ptr<chatNotificationSettings> &&notification_settings_);
+
+ static const std::int32_t ID = -803163050;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatPendingJoinRequests final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<chatJoinRequestsInfo> pending_join_requests_;
+
+ updateChatPendingJoinRequests();
+
+ updateChatPendingJoinRequests(int53 chat_id_, object_ptr<chatJoinRequestsInfo> &&pending_join_requests_);
+
+ static const std::int32_t ID = 348578785;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatReplyMarkup final : public Update {
+ public:
+ int53 chat_id_;
+ int53 reply_markup_message_id_;
+
+ updateChatReplyMarkup();
+
+ updateChatReplyMarkup(int53 chat_id_, int53 reply_markup_message_id_);
+
+ static const std::int32_t ID = 1309386144;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatTheme final : public Update {
+ public:
+ int53 chat_id_;
+ string theme_name_;
+
+ updateChatTheme();
+
+ updateChatTheme(int53 chat_id_, string const &theme_name_);
+
+ static const std::int32_t ID = 838063205;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatUnreadMentionCount final : public Update {
+ public:
+ int53 chat_id_;
+ int32 unread_mention_count_;
+
+ updateChatUnreadMentionCount();
+
+ updateChatUnreadMentionCount(int53 chat_id_, int32 unread_mention_count_);
+
+ static const std::int32_t ID = -2131461348;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatUnreadReactionCount final : public Update {
+ public:
+ int53 chat_id_;
+ int32 unread_reaction_count_;
+
+ updateChatUnreadReactionCount();
+
+ updateChatUnreadReactionCount(int53 chat_id_, int32 unread_reaction_count_);
+
+ static const std::int32_t ID = -2124399395;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatVideoChat final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<videoChat> video_chat_;
+
+ updateChatVideoChat();
+
+ updateChatVideoChat(int53 chat_id_, object_ptr<videoChat> &&video_chat_);
+
+ static const std::int32_t ID = 637226150;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatDefaultDisableNotification final : public Update {
+ public:
+ int53 chat_id_;
+ bool default_disable_notification_;
+
+ updateChatDefaultDisableNotification();
+
+ updateChatDefaultDisableNotification(int53 chat_id_, bool default_disable_notification_);
+
+ static const std::int32_t ID = 464087707;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatHasProtectedContent final : public Update {
+ public:
+ int53 chat_id_;
+ bool has_protected_content_;
+
+ updateChatHasProtectedContent();
+
+ updateChatHasProtectedContent(int53 chat_id_, bool has_protected_content_);
+
+ static const std::int32_t ID = 1800406811;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatHasScheduledMessages final : public Update {
+ public:
+ int53 chat_id_;
+ bool has_scheduled_messages_;
+
+ updateChatHasScheduledMessages();
+
+ updateChatHasScheduledMessages(int53 chat_id_, bool has_scheduled_messages_);
+
+ static const std::int32_t ID = 2064958167;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatIsBlocked final : public Update {
+ public:
+ int53 chat_id_;
+ bool is_blocked_;
+
+ updateChatIsBlocked();
+
+ updateChatIsBlocked(int53 chat_id_, bool is_blocked_);
+
+ static const std::int32_t ID = -1998946752;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatIsMarkedAsUnread final : public Update {
+ public:
+ int53 chat_id_;
+ bool is_marked_as_unread_;
+
+ updateChatIsMarkedAsUnread();
+
+ updateChatIsMarkedAsUnread(int53 chat_id_, bool is_marked_as_unread_);
+
+ static const std::int32_t ID = 1468347188;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatFilters final : public Update {
+ public:
+ array<object_ptr<chatFilterInfo>> chat_filters_;
+ int32 main_chat_list_position_;
+
+ updateChatFilters();
+
+ updateChatFilters(array<object_ptr<chatFilterInfo>> &&chat_filters_, int32 main_chat_list_position_);
+
+ static const std::int32_t ID = 81316953;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatOnlineMemberCount final : public Update {
+ public:
+ int53 chat_id_;
+ int32 online_member_count_;
+
+ updateChatOnlineMemberCount();
+
+ updateChatOnlineMemberCount(int53 chat_id_, int32 online_member_count_);
+
+ static const std::int32_t ID = 487369373;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateForumTopicInfo final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<forumTopicInfo> info_;
+
+ updateForumTopicInfo();
+
+ updateForumTopicInfo(int53 chat_id_, object_ptr<forumTopicInfo> &&info_);
+
+ static const std::int32_t ID = 1802448073;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateScopeNotificationSettings final : public Update {
+ public:
+ object_ptr<NotificationSettingsScope> scope_;
+ object_ptr<scopeNotificationSettings> notification_settings_;
+
+ updateScopeNotificationSettings();
+
+ updateScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_, object_ptr<scopeNotificationSettings> &&notification_settings_);
+
+ static const std::int32_t ID = -1203975309;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNotification final : public Update {
+ public:
+ int32 notification_group_id_;
+ object_ptr<notification> notification_;
+
+ updateNotification();
+
+ updateNotification(int32 notification_group_id_, object_ptr<notification> &&notification_);
+
+ static const std::int32_t ID = -1897496876;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNotificationGroup final : public Update {
+ public:
+ int32 notification_group_id_;
+ object_ptr<NotificationGroupType> type_;
+ int53 chat_id_;
+ int53 notification_settings_chat_id_;
+ int64 notification_sound_id_;
+ int32 total_count_;
+ array<object_ptr<notification>> added_notifications_;
+ array<int32> removed_notification_ids_;
+
+ updateNotificationGroup();
+
+ updateNotificationGroup(int32 notification_group_id_, object_ptr<NotificationGroupType> &&type_, int53 chat_id_, int53 notification_settings_chat_id_, int64 notification_sound_id_, int32 total_count_, array<object_ptr<notification>> &&added_notifications_, array<int32> &&removed_notification_ids_);
+
+ static const std::int32_t ID = 1381081378;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateActiveNotifications final : public Update {
+ public:
+ array<object_ptr<notificationGroup>> groups_;
+
+ updateActiveNotifications();
+
+ explicit updateActiveNotifications(array<object_ptr<notificationGroup>> &&groups_);
+
+ static const std::int32_t ID = -1306672221;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateHavePendingNotifications final : public Update {
+ public:
+ bool have_delayed_notifications_;
+ bool have_unreceived_notifications_;
+
+ updateHavePendingNotifications();
+
+ updateHavePendingNotifications(bool have_delayed_notifications_, bool have_unreceived_notifications_);
+
+ static const std::int32_t ID = 179233243;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDeleteMessages final : public Update {
+ public:
+ int53 chat_id_;
+ array<int53> message_ids_;
+ bool is_permanent_;
+ bool from_cache_;
+
+ updateDeleteMessages();
+
+ updateDeleteMessages(int53 chat_id_, array<int53> &&message_ids_, bool is_permanent_, bool from_cache_);
+
+ static const std::int32_t ID = 1669252686;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatAction final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ object_ptr<MessageSender> sender_id_;
+ object_ptr<ChatAction> action_;
+
+ updateChatAction();
+
+ updateChatAction(int53 chat_id_, int53 message_thread_id_, object_ptr<MessageSender> &&sender_id_, object_ptr<ChatAction> &&action_);
+
+ static const std::int32_t ID = -1698703832;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUserStatus final : public Update {
+ public:
+ int53 user_id_;
+ object_ptr<UserStatus> status_;
+
+ updateUserStatus();
+
+ updateUserStatus(int53 user_id_, object_ptr<UserStatus> &&status_);
+
+ static const std::int32_t ID = 958468625;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUser final : public Update {
+ public:
+ object_ptr<user> user_;
+
+ updateUser();
+
+ explicit updateUser(object_ptr<user> &&user_);
+
+ static const std::int32_t ID = 1183394041;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBasicGroup final : public Update {
+ public:
+ object_ptr<basicGroup> basic_group_;
+
+ updateBasicGroup();
+
+ explicit updateBasicGroup(object_ptr<basicGroup> &&basic_group_);
+
+ static const std::int32_t ID = -1003239581;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateSupergroup final : public Update {
+ public:
+ object_ptr<supergroup> supergroup_;
+
+ updateSupergroup();
+
+ explicit updateSupergroup(object_ptr<supergroup> &&supergroup_);
+
+ static const std::int32_t ID = -76782300;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateSecretChat final : public Update {
+ public:
+ object_ptr<secretChat> secret_chat_;
+
+ updateSecretChat();
+
+ explicit updateSecretChat(object_ptr<secretChat> &&secret_chat_);
+
+ static const std::int32_t ID = -1666903253;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUserFullInfo final : public Update {
+ public:
+ int53 user_id_;
+ object_ptr<userFullInfo> user_full_info_;
+
+ updateUserFullInfo();
+
+ updateUserFullInfo(int53 user_id_, object_ptr<userFullInfo> &&user_full_info_);
+
+ static const std::int32_t ID = -51197161;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBasicGroupFullInfo final : public Update {
+ public:
+ int53 basic_group_id_;
+ object_ptr<basicGroupFullInfo> basic_group_full_info_;
+
+ updateBasicGroupFullInfo();
+
+ updateBasicGroupFullInfo(int53 basic_group_id_, object_ptr<basicGroupFullInfo> &&basic_group_full_info_);
+
+ static const std::int32_t ID = 1391881151;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateSupergroupFullInfo final : public Update {
+ public:
+ int53 supergroup_id_;
+ object_ptr<supergroupFullInfo> supergroup_full_info_;
+
+ updateSupergroupFullInfo();
+
+ updateSupergroupFullInfo(int53 supergroup_id_, object_ptr<supergroupFullInfo> &&supergroup_full_info_);
+
+ static const std::int32_t ID = 435539214;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateServiceNotification final : public Update {
+ public:
+ string type_;
+ object_ptr<MessageContent> content_;
+
+ updateServiceNotification();
+
+ updateServiceNotification(string const &type_, object_ptr<MessageContent> &&content_);
+
+ static const std::int32_t ID = 1318622637;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateFile final : public Update {
+ public:
+ object_ptr<file> file_;
+
+ updateFile();
+
+ explicit updateFile(object_ptr<file> &&file_);
+
+ static const std::int32_t ID = 114132831;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateFileGenerationStart final : public Update {
+ public:
+ int64 generation_id_;
+ string original_path_;
+ string destination_path_;
+ string conversion_;
+
+ updateFileGenerationStart();
+
+ updateFileGenerationStart(int64 generation_id_, string const &original_path_, string const &destination_path_, string const &conversion_);
+
+ static const std::int32_t ID = 216817388;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateFileGenerationStop final : public Update {
+ public:
+ int64 generation_id_;
+
+ updateFileGenerationStop();
+
+ explicit updateFileGenerationStop(int64 generation_id_);
+
+ static const std::int32_t ID = -1894449685;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateFileDownloads final : public Update {
+ public:
+ int53 total_size_;
+ int32 total_count_;
+ int53 downloaded_size_;
+
+ updateFileDownloads();
+
+ updateFileDownloads(int53 total_size_, int32 total_count_, int53 downloaded_size_);
+
+ static const std::int32_t ID = -389213497;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateFileAddedToDownloads final : public Update {
+ public:
+ object_ptr<fileDownload> file_download_;
+ object_ptr<downloadedFileCounts> counts_;
+
+ updateFileAddedToDownloads();
+
+ updateFileAddedToDownloads(object_ptr<fileDownload> &&file_download_, object_ptr<downloadedFileCounts> &&counts_);
+
+ static const std::int32_t ID = 1609929242;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateFileDownload final : public Update {
+ public:
+ int32 file_id_;
+ int32 complete_date_;
+ bool is_paused_;
+ object_ptr<downloadedFileCounts> counts_;
+
+ updateFileDownload();
+
+ updateFileDownload(int32 file_id_, int32 complete_date_, bool is_paused_, object_ptr<downloadedFileCounts> &&counts_);
+
+ static const std::int32_t ID = 875529162;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateFileRemovedFromDownloads final : public Update {
+ public:
+ int32 file_id_;
+ object_ptr<downloadedFileCounts> counts_;
+
+ updateFileRemovedFromDownloads();
+
+ updateFileRemovedFromDownloads(int32 file_id_, object_ptr<downloadedFileCounts> &&counts_);
+
+ static const std::int32_t ID = 1853625576;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateCall final : public Update {
+ public:
+ object_ptr<call> call_;
+
+ updateCall();
+
+ explicit updateCall(object_ptr<call> &&call_);
+
+ static const std::int32_t ID = 1337184477;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateGroupCall final : public Update {
+ public:
+ object_ptr<groupCall> group_call_;
+
+ updateGroupCall();
+
+ explicit updateGroupCall(object_ptr<groupCall> &&group_call_);
+
+ static const std::int32_t ID = 808603136;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateGroupCallParticipant final : public Update {
+ public:
+ int32 group_call_id_;
+ object_ptr<groupCallParticipant> participant_;
+
+ updateGroupCallParticipant();
+
+ updateGroupCallParticipant(int32 group_call_id_, object_ptr<groupCallParticipant> &&participant_);
+
+ static const std::int32_t ID = -803128071;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewCallSignalingData final : public Update {
+ public:
+ int32 call_id_;
+ bytes data_;
+
+ updateNewCallSignalingData();
+
+ updateNewCallSignalingData(int32 call_id_, bytes const &data_);
+
+ static const std::int32_t ID = 583634317;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUserPrivacySettingRules final : public Update {
+ public:
+ object_ptr<UserPrivacySetting> setting_;
+ object_ptr<userPrivacySettingRules> rules_;
+
+ updateUserPrivacySettingRules();
+
+ updateUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_, object_ptr<userPrivacySettingRules> &&rules_);
+
+ static const std::int32_t ID = -912960778;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUnreadMessageCount final : public Update {
+ public:
+ object_ptr<ChatList> chat_list_;
+ int32 unread_count_;
+ int32 unread_unmuted_count_;
+
+ updateUnreadMessageCount();
+
+ updateUnreadMessageCount(object_ptr<ChatList> &&chat_list_, int32 unread_count_, int32 unread_unmuted_count_);
+
+ static const std::int32_t ID = 78987721;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUnreadChatCount final : public Update {
+ public:
+ object_ptr<ChatList> chat_list_;
+ int32 total_count_;
+ int32 unread_count_;
+ int32 unread_unmuted_count_;
+ int32 marked_as_unread_count_;
+ int32 marked_as_unread_unmuted_count_;
+
+ updateUnreadChatCount();
+
+ updateUnreadChatCount(object_ptr<ChatList> &&chat_list_, int32 total_count_, int32 unread_count_, int32 unread_unmuted_count_, int32 marked_as_unread_count_, int32 marked_as_unread_unmuted_count_);
+
+ static const std::int32_t ID = 1994494530;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateOption final : public Update {
+ public:
+ string name_;
+ object_ptr<OptionValue> value_;
+
+ updateOption();
+
+ updateOption(string const &name_, object_ptr<OptionValue> &&value_);
+
+ static const std::int32_t ID = 900822020;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateStickerSet final : public Update {
+ public:
+ object_ptr<stickerSet> sticker_set_;
+
+ updateStickerSet();
+
+ explicit updateStickerSet(object_ptr<stickerSet> &&sticker_set_);
+
+ static const std::int32_t ID = 1879268812;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateInstalledStickerSets final : public Update {
+ public:
+ object_ptr<StickerType> sticker_type_;
+ array<int64> sticker_set_ids_;
+
+ updateInstalledStickerSets();
+
+ updateInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, array<int64> &&sticker_set_ids_);
+
+ static const std::int32_t ID = -1735084182;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateTrendingStickerSets final : public Update {
+ public:
+ object_ptr<StickerType> sticker_type_;
+ object_ptr<trendingStickerSets> sticker_sets_;
+
+ updateTrendingStickerSets();
+
+ updateTrendingStickerSets(object_ptr<StickerType> &&sticker_type_, object_ptr<trendingStickerSets> &&sticker_sets_);
+
+ static const std::int32_t ID = 1266307239;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateRecentStickers final : public Update {
+ public:
+ bool is_attached_;
+ array<int32> sticker_ids_;
+
+ updateRecentStickers();
+
+ updateRecentStickers(bool is_attached_, array<int32> &&sticker_ids_);
+
+ static const std::int32_t ID = 1906403540;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateFavoriteStickers final : public Update {
+ public:
+ array<int32> sticker_ids_;
+
+ updateFavoriteStickers();
+
+ explicit updateFavoriteStickers(array<int32> &&sticker_ids_);
+
+ static const std::int32_t ID = 1662240999;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateSavedAnimations final : public Update {
+ public:
+ array<int32> animation_ids_;
+
+ updateSavedAnimations();
+
+ explicit updateSavedAnimations(array<int32> &&animation_ids_);
+
+ static const std::int32_t ID = 65563814;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateSavedNotificationSounds final : public Update {
+ public:
+ array<int64> notification_sound_ids_;
+
+ updateSavedNotificationSounds();
+
+ explicit updateSavedNotificationSounds(array<int64> &&notification_sound_ids_);
+
+ static const std::int32_t ID = 1052725698;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateSelectedBackground final : public Update {
+ public:
+ bool for_dark_theme_;
+ object_ptr<background> background_;
+
+ updateSelectedBackground();
+
+ updateSelectedBackground(bool for_dark_theme_, object_ptr<background> &&background_);
+
+ static const std::int32_t ID = -1715658659;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatThemes final : public Update {
+ public:
+ array<object_ptr<chatTheme>> chat_themes_;
+
+ updateChatThemes();
+
+ explicit updateChatThemes(array<object_ptr<chatTheme>> &&chat_themes_);
+
+ static const std::int32_t ID = -1588098376;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateLanguagePackStrings final : public Update {
+ public:
+ string localization_target_;
+ string language_pack_id_;
+ array<object_ptr<languagePackString>> strings_;
+
+ updateLanguagePackStrings();
+
+ updateLanguagePackStrings(string const &localization_target_, string const &language_pack_id_, array<object_ptr<languagePackString>> &&strings_);
+
+ static const std::int32_t ID = -1056319886;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateConnectionState final : public Update {
+ public:
+ object_ptr<ConnectionState> state_;
+
+ updateConnectionState();
+
+ explicit updateConnectionState(object_ptr<ConnectionState> &&state_);
+
+ static const std::int32_t ID = 1469292078;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateTermsOfService final : public Update {
+ public:
+ string terms_of_service_id_;
+ object_ptr<termsOfService> terms_of_service_;
+
+ updateTermsOfService();
+
+ updateTermsOfService(string const &terms_of_service_id_, object_ptr<termsOfService> &&terms_of_service_);
+
+ static const std::int32_t ID = -1304640162;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUsersNearby final : public Update {
+ public:
+ array<object_ptr<chatNearby>> users_nearby_;
+
+ updateUsersNearby();
+
+ explicit updateUsersNearby(array<object_ptr<chatNearby>> &&users_nearby_);
+
+ static const std::int32_t ID = -1517109163;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateAttachmentMenuBots final : public Update {
+ public:
+ array<object_ptr<attachmentMenuBot>> bots_;
+
+ updateAttachmentMenuBots();
+
+ explicit updateAttachmentMenuBots(array<object_ptr<attachmentMenuBot>> &&bots_);
+
+ static const std::int32_t ID = 291369922;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateWebAppMessageSent final : public Update {
+ public:
+ int64 web_app_launch_id_;
+
+ updateWebAppMessageSent();
+
+ explicit updateWebAppMessageSent(int64 web_app_launch_id_);
+
+ static const std::int32_t ID = 1480790569;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateActiveEmojiReactions final : public Update {
+ public:
+ array<string> emojis_;
+
+ updateActiveEmojiReactions();
+
+ explicit updateActiveEmojiReactions(array<string> &&emojis_);
+
+ static const std::int32_t ID = 77556818;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDefaultReactionType final : public Update {
+ public:
+ object_ptr<ReactionType> reaction_type_;
+
+ updateDefaultReactionType();
+
+ explicit updateDefaultReactionType(object_ptr<ReactionType> &&reaction_type_);
+
+ static const std::int32_t ID = 1264668933;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDiceEmojis final : public Update {
+ public:
+ array<string> emojis_;
+
+ updateDiceEmojis();
+
+ explicit updateDiceEmojis(array<string> &&emojis_);
+
+ static const std::int32_t ID = -1069066940;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateAnimatedEmojiMessageClicked final : public Update {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<sticker> sticker_;
+
+ updateAnimatedEmojiMessageClicked();
+
+ updateAnimatedEmojiMessageClicked(int53 chat_id_, int53 message_id_, object_ptr<sticker> &&sticker_);
+
+ static const std::int32_t ID = -1558809595;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateAnimationSearchParameters final : public Update {
+ public:
+ string provider_;
+ array<string> emojis_;
+
+ updateAnimationSearchParameters();
+
+ updateAnimationSearchParameters(string const &provider_, array<string> &&emojis_);
+
+ static const std::int32_t ID = -1144983202;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateSuggestedActions final : public Update {
+ public:
+ array<object_ptr<SuggestedAction>> added_actions_;
+ array<object_ptr<SuggestedAction>> removed_actions_;
+
+ updateSuggestedActions();
+
+ updateSuggestedActions(array<object_ptr<SuggestedAction>> &&added_actions_, array<object_ptr<SuggestedAction>> &&removed_actions_);
+
+ static const std::int32_t ID = 1459452346;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewInlineQuery final : public Update {
+ public:
+ int64 id_;
+ int53 sender_user_id_;
+ object_ptr<location> user_location_;
+ object_ptr<ChatType> chat_type_;
+ string query_;
+ string offset_;
+
+ updateNewInlineQuery();
+
+ updateNewInlineQuery(int64 id_, int53 sender_user_id_, object_ptr<location> &&user_location_, object_ptr<ChatType> &&chat_type_, string const &query_, string const &offset_);
+
+ static const std::int32_t ID = 1903279924;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewChosenInlineResult final : public Update {
+ public:
+ int53 sender_user_id_;
+ object_ptr<location> user_location_;
+ string query_;
+ string result_id_;
+ string inline_message_id_;
+
+ updateNewChosenInlineResult();
+
+ updateNewChosenInlineResult(int53 sender_user_id_, object_ptr<location> &&user_location_, string const &query_, string const &result_id_, string const &inline_message_id_);
+
+ static const std::int32_t ID = -884191395;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewCallbackQuery final : public Update {
+ public:
+ int64 id_;
+ int53 sender_user_id_;
+ int53 chat_id_;
+ int53 message_id_;
+ int64 chat_instance_;
+ object_ptr<CallbackQueryPayload> payload_;
+
+ updateNewCallbackQuery();
+
+ updateNewCallbackQuery(int64 id_, int53 sender_user_id_, int53 chat_id_, int53 message_id_, int64 chat_instance_, object_ptr<CallbackQueryPayload> &&payload_);
+
+ static const std::int32_t ID = -1989881762;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewInlineCallbackQuery final : public Update {
+ public:
+ int64 id_;
+ int53 sender_user_id_;
+ string inline_message_id_;
+ int64 chat_instance_;
+ object_ptr<CallbackQueryPayload> payload_;
+
+ updateNewInlineCallbackQuery();
+
+ updateNewInlineCallbackQuery(int64 id_, int53 sender_user_id_, string const &inline_message_id_, int64 chat_instance_, object_ptr<CallbackQueryPayload> &&payload_);
+
+ static const std::int32_t ID = -319212358;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewShippingQuery final : public Update {
+ public:
+ int64 id_;
+ int53 sender_user_id_;
+ string invoice_payload_;
+ object_ptr<address> shipping_address_;
+
+ updateNewShippingQuery();
+
+ updateNewShippingQuery(int64 id_, int53 sender_user_id_, string const &invoice_payload_, object_ptr<address> &&shipping_address_);
+
+ static const std::int32_t ID = 693651058;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewPreCheckoutQuery final : public Update {
+ public:
+ int64 id_;
+ int53 sender_user_id_;
+ string currency_;
+ int53 total_amount_;
+ bytes invoice_payload_;
+ string shipping_option_id_;
+ object_ptr<orderInfo> order_info_;
+
+ updateNewPreCheckoutQuery();
+
+ updateNewPreCheckoutQuery(int64 id_, int53 sender_user_id_, string const &currency_, int53 total_amount_, bytes const &invoice_payload_, string const &shipping_option_id_, object_ptr<orderInfo> &&order_info_);
+
+ static const std::int32_t ID = 708342217;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewCustomEvent final : public Update {
+ public:
+ string event_;
+
+ updateNewCustomEvent();
+
+ explicit updateNewCustomEvent(string const &event_);
+
+ static const std::int32_t ID = 1994222092;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewCustomQuery final : public Update {
+ public:
+ int64 id_;
+ string data_;
+ int32 timeout_;
+
+ updateNewCustomQuery();
+
+ updateNewCustomQuery(int64 id_, string const &data_, int32 timeout_);
+
+ static const std::int32_t ID = -687670874;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePoll final : public Update {
+ public:
+ object_ptr<poll> poll_;
+
+ updatePoll();
+
+ explicit updatePoll(object_ptr<poll> &&poll_);
+
+ static const std::int32_t ID = -1771342902;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePollAnswer final : public Update {
+ public:
+ int64 poll_id_;
+ int53 user_id_;
+ array<int32> option_ids_;
+
+ updatePollAnswer();
+
+ updatePollAnswer(int64 poll_id_, int53 user_id_, array<int32> &&option_ids_);
+
+ static const std::int32_t ID = -1209100651;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatMember final : public Update {
+ public:
+ int53 chat_id_;
+ int53 actor_user_id_;
+ int32 date_;
+ object_ptr<chatInviteLink> invite_link_;
+ object_ptr<chatMember> old_chat_member_;
+ object_ptr<chatMember> new_chat_member_;
+
+ updateChatMember();
+
+ updateChatMember(int53 chat_id_, int53 actor_user_id_, int32 date_, object_ptr<chatInviteLink> &&invite_link_, object_ptr<chatMember> &&old_chat_member_, object_ptr<chatMember> &&new_chat_member_);
+
+ static const std::int32_t ID = -2027989165;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewChatJoinRequest final : public Update {
+ public:
+ int53 chat_id_;
+ object_ptr<chatJoinRequest> request_;
+ object_ptr<chatInviteLink> invite_link_;
+
+ updateNewChatJoinRequest();
+
+ updateNewChatJoinRequest(int53 chat_id_, object_ptr<chatJoinRequest> &&request_, object_ptr<chatInviteLink> &&invite_link_);
+
+ static const std::int32_t ID = 175285905;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updates final : public Object {
+ public:
+ array<object_ptr<Update>> updates_;
+
+ updates();
+
+ explicit updates(array<object_ptr<Update>> &&updates_);
+
+ static const std::int32_t ID = 475842347;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class user final : public Object {
+ public:
+ int53 id_;
+ string first_name_;
+ string last_name_;
+ object_ptr<usernames> usernames_;
+ string phone_number_;
+ object_ptr<UserStatus> status_;
+ object_ptr<profilePhoto> profile_photo_;
+ object_ptr<emojiStatus> emoji_status_;
+ bool is_contact_;
+ bool is_mutual_contact_;
+ bool is_verified_;
+ bool is_premium_;
+ bool is_support_;
+ string restriction_reason_;
+ bool is_scam_;
+ bool is_fake_;
+ bool have_access_;
+ object_ptr<UserType> type_;
+ string language_code_;
+ bool added_to_attachment_menu_;
+
+ user();
+
+ user(int53 id_, string const &first_name_, string const &last_name_, object_ptr<usernames> &&usernames_, string const &phone_number_, object_ptr<UserStatus> &&status_, object_ptr<profilePhoto> &&profile_photo_, object_ptr<emojiStatus> &&emoji_status_, bool is_contact_, bool is_mutual_contact_, bool is_verified_, bool is_premium_, bool is_support_, string const &restriction_reason_, bool is_scam_, bool is_fake_, bool have_access_, object_ptr<UserType> &&type_, string const &language_code_, bool added_to_attachment_menu_);
+
+ static const std::int32_t ID = -651883724;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userFullInfo final : public Object {
+ public:
+ object_ptr<chatPhoto> photo_;
+ bool is_blocked_;
+ bool can_be_called_;
+ bool supports_video_calls_;
+ bool has_private_calls_;
+ bool has_private_forwards_;
+ bool has_restricted_voice_and_video_note_messages_;
+ bool need_phone_number_privacy_exception_;
+ object_ptr<formattedText> bio_;
+ array<object_ptr<premiumPaymentOption>> premium_gift_options_;
+ int32 group_in_common_count_;
+ object_ptr<botInfo> bot_info_;
+
+ userFullInfo();
+
+ userFullInfo(object_ptr<chatPhoto> &&photo_, bool is_blocked_, bool can_be_called_, bool supports_video_calls_, bool has_private_calls_, bool has_private_forwards_, bool has_restricted_voice_and_video_note_messages_, bool need_phone_number_privacy_exception_, object_ptr<formattedText> &&bio_, array<object_ptr<premiumPaymentOption>> &&premium_gift_options_, int32 group_in_common_count_, object_ptr<botInfo> &&bot_info_);
+
+ static const std::int32_t ID = -272527755;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class UserPrivacySetting: public Object {
+ public:
+};
+
+class userPrivacySettingShowStatus final : public UserPrivacySetting {
+ public:
+
+ userPrivacySettingShowStatus();
+
+ static const std::int32_t ID = 1862829310;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingShowProfilePhoto final : public UserPrivacySetting {
+ public:
+
+ userPrivacySettingShowProfilePhoto();
+
+ static const std::int32_t ID = 1408485877;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingShowLinkInForwardedMessages final : public UserPrivacySetting {
+ public:
+
+ userPrivacySettingShowLinkInForwardedMessages();
+
+ static const std::int32_t ID = 592688870;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingShowPhoneNumber final : public UserPrivacySetting {
+ public:
+
+ userPrivacySettingShowPhoneNumber();
+
+ static const std::int32_t ID = -791567831;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingAllowChatInvites final : public UserPrivacySetting {
+ public:
+
+ userPrivacySettingAllowChatInvites();
+
+ static const std::int32_t ID = 1271668007;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingAllowCalls final : public UserPrivacySetting {
+ public:
+
+ userPrivacySettingAllowCalls();
+
+ static const std::int32_t ID = -906967291;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingAllowPeerToPeerCalls final : public UserPrivacySetting {
+ public:
+
+ userPrivacySettingAllowPeerToPeerCalls();
+
+ static const std::int32_t ID = 352500032;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingAllowFindingByPhoneNumber final : public UserPrivacySetting {
+ public:
+
+ userPrivacySettingAllowFindingByPhoneNumber();
+
+ static const std::int32_t ID = -1846645423;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages final : public UserPrivacySetting {
+ public:
+
+ userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages();
+
+ static const std::int32_t ID = 338112060;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class UserPrivacySettingRule: public Object {
+ public:
+};
+
+class userPrivacySettingRuleAllowAll final : public UserPrivacySettingRule {
+ public:
+
+ userPrivacySettingRuleAllowAll();
+
+ static const std::int32_t ID = -1967186881;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingRuleAllowContacts final : public UserPrivacySettingRule {
+ public:
+
+ userPrivacySettingRuleAllowContacts();
+
+ static const std::int32_t ID = -1892733680;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingRuleAllowUsers final : public UserPrivacySettingRule {
+ public:
+ array<int53> user_ids_;
+
+ userPrivacySettingRuleAllowUsers();
+
+ explicit userPrivacySettingRuleAllowUsers(array<int53> &&user_ids_);
+
+ static const std::int32_t ID = 1110988334;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingRuleAllowChatMembers final : public UserPrivacySettingRule {
+ public:
+ array<int53> chat_ids_;
+
+ userPrivacySettingRuleAllowChatMembers();
+
+ explicit userPrivacySettingRuleAllowChatMembers(array<int53> &&chat_ids_);
+
+ static const std::int32_t ID = -2048749863;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingRuleRestrictAll final : public UserPrivacySettingRule {
+ public:
+
+ userPrivacySettingRuleRestrictAll();
+
+ static const std::int32_t ID = -1406495408;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingRuleRestrictContacts final : public UserPrivacySettingRule {
+ public:
+
+ userPrivacySettingRuleRestrictContacts();
+
+ static const std::int32_t ID = 1008389378;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingRuleRestrictUsers final : public UserPrivacySettingRule {
+ public:
+ array<int53> user_ids_;
+
+ userPrivacySettingRuleRestrictUsers();
+
+ explicit userPrivacySettingRuleRestrictUsers(array<int53> &&user_ids_);
+
+ static const std::int32_t ID = 622796522;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingRuleRestrictChatMembers final : public UserPrivacySettingRule {
+ public:
+ array<int53> chat_ids_;
+
+ userPrivacySettingRuleRestrictChatMembers();
+
+ explicit userPrivacySettingRuleRestrictChatMembers(array<int53> &&chat_ids_);
+
+ static const std::int32_t ID = 392530897;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userPrivacySettingRules final : public Object {
+ public:
+ array<object_ptr<UserPrivacySettingRule>> rules_;
+
+ userPrivacySettingRules();
+
+ explicit userPrivacySettingRules(array<object_ptr<UserPrivacySettingRule>> &&rules_);
+
+ static const std::int32_t ID = 322477541;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class UserStatus: public Object {
+ public:
+};
+
+class userStatusEmpty final : public UserStatus {
+ public:
+
+ userStatusEmpty();
+
+ static const std::int32_t ID = 164646985;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userStatusOnline final : public UserStatus {
+ public:
+ int32 expires_;
+
+ userStatusOnline();
+
+ explicit userStatusOnline(int32 expires_);
+
+ static const std::int32_t ID = -1529460876;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userStatusOffline final : public UserStatus {
+ public:
+ int32 was_online_;
+
+ userStatusOffline();
+
+ explicit userStatusOffline(int32 was_online_);
+
+ static const std::int32_t ID = -759984891;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userStatusRecently final : public UserStatus {
+ public:
+
+ userStatusRecently();
+
+ static const std::int32_t ID = -496024847;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userStatusLastWeek final : public UserStatus {
+ public:
+
+ userStatusLastWeek();
+
+ static const std::int32_t ID = 129960444;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userStatusLastMonth final : public UserStatus {
+ public:
+
+ userStatusLastMonth();
+
+ static const std::int32_t ID = 2011940674;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userSupportInfo final : public Object {
+ public:
+ object_ptr<formattedText> message_;
+ string author_;
+ int32 date_;
+
+ userSupportInfo();
+
+ userSupportInfo(object_ptr<formattedText> &&message_, string const &author_, int32 date_);
+
+ static const std::int32_t ID = -1257366487;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class UserType: public Object {
+ public:
+};
+
+class userTypeRegular final : public UserType {
+ public:
+
+ userTypeRegular();
+
+ static const std::int32_t ID = -598644325;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userTypeDeleted final : public UserType {
+ public:
+
+ userTypeDeleted();
+
+ static const std::int32_t ID = -1807729372;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userTypeBot final : public UserType {
+ public:
+ bool can_join_groups_;
+ bool can_read_all_group_messages_;
+ bool is_inline_;
+ string inline_query_placeholder_;
+ bool need_location_;
+ bool can_be_added_to_attachment_menu_;
+
+ userTypeBot();
+
+ userTypeBot(bool can_join_groups_, bool can_read_all_group_messages_, bool is_inline_, string const &inline_query_placeholder_, bool need_location_, bool can_be_added_to_attachment_menu_);
+
+ static const std::int32_t ID = -970625144;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userTypeUnknown final : public UserType {
+ public:
+
+ userTypeUnknown();
+
+ static const std::int32_t ID = -724541123;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class usernames final : public Object {
+ public:
+ array<string> active_usernames_;
+ array<string> disabled_usernames_;
+ string editable_username_;
+
+ usernames();
+
+ usernames(array<string> &&active_usernames_, array<string> &&disabled_usernames_, string const &editable_username_);
+
+ static const std::int32_t ID = 799608565;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class users final : public Object {
+ public:
+ int32 total_count_;
+ array<int53> user_ids_;
+
+ users();
+
+ users(int32 total_count_, array<int53> &&user_ids_);
+
+ static const std::int32_t ID = 171203420;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class validatedOrderInfo final : public Object {
+ public:
+ string order_info_id_;
+ array<object_ptr<shippingOption>> shipping_options_;
+
+ validatedOrderInfo();
+
+ validatedOrderInfo(string const &order_info_id_, array<object_ptr<shippingOption>> &&shipping_options_);
+
+ static const std::int32_t ID = 1511451484;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class VectorPathCommand: public Object {
+ public:
+};
+
+class vectorPathCommandLine final : public VectorPathCommand {
+ public:
+ object_ptr<point> end_point_;
+
+ vectorPathCommandLine();
+
+ explicit vectorPathCommandLine(object_ptr<point> &&end_point_);
+
+ static const std::int32_t ID = -614056822;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class vectorPathCommandCubicBezierCurve final : public VectorPathCommand {
+ public:
+ object_ptr<point> start_control_point_;
+ object_ptr<point> end_control_point_;
+ object_ptr<point> end_point_;
+
+ vectorPathCommandCubicBezierCurve();
+
+ vectorPathCommandCubicBezierCurve(object_ptr<point> &&start_control_point_, object_ptr<point> &&end_control_point_, object_ptr<point> &&end_point_);
+
+ static const std::int32_t ID = 1229733434;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class venue final : public Object {
+ public:
+ object_ptr<location> location_;
+ string title_;
+ string address_;
+ string provider_;
+ string id_;
+ string type_;
+
+ venue();
+
+ venue(object_ptr<location> &&location_, string const &title_, string const &address_, string const &provider_, string const &id_, string const &type_);
+
+ static const std::int32_t ID = 1070406393;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class video final : public Object {
+ public:
+ int32 duration_;
+ int32 width_;
+ int32 height_;
+ string file_name_;
+ string mime_type_;
+ bool has_stickers_;
+ bool supports_streaming_;
+ object_ptr<minithumbnail> minithumbnail_;
+ object_ptr<thumbnail> thumbnail_;
+ object_ptr<file> video_;
+
+ video();
+
+ video(int32 duration_, int32 width_, int32 height_, string const &file_name_, string const &mime_type_, bool has_stickers_, bool supports_streaming_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&video_);
+
+ static const std::int32_t ID = 832856268;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class videoChat final : public Object {
+ public:
+ int32 group_call_id_;
+ bool has_participants_;
+ object_ptr<MessageSender> default_participant_id_;
+
+ videoChat();
+
+ videoChat(int32 group_call_id_, bool has_participants_, object_ptr<MessageSender> &&default_participant_id_);
+
+ static const std::int32_t ID = -1374319320;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class videoNote final : public Object {
+ public:
+ int32 duration_;
+ bytes waveform_;
+ int32 length_;
+ object_ptr<minithumbnail> minithumbnail_;
+ object_ptr<thumbnail> thumbnail_;
+ object_ptr<SpeechRecognitionResult> speech_recognition_result_;
+ object_ptr<file> video_;
+
+ videoNote();
+
+ videoNote(int32 duration_, bytes const &waveform_, int32 length_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<SpeechRecognitionResult> &&speech_recognition_result_, object_ptr<file> &&video_);
+
+ static const std::int32_t ID = 2062096581;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class voiceNote final : public Object {
+ public:
+ int32 duration_;
+ bytes waveform_;
+ string mime_type_;
+ object_ptr<SpeechRecognitionResult> speech_recognition_result_;
+ object_ptr<file> voice_;
+
+ voiceNote();
+
+ voiceNote(int32 duration_, bytes const &waveform_, string const &mime_type_, object_ptr<SpeechRecognitionResult> &&speech_recognition_result_, object_ptr<file> &&voice_);
+
+ static const std::int32_t ID = -1175302923;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webAppInfo final : public Object {
+ public:
+ int64 launch_id_;
+ string url_;
+
+ webAppInfo();
+
+ webAppInfo(int64 launch_id_, string const &url_);
+
+ static const std::int32_t ID = 788378344;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webPage final : public Object {
+ public:
+ string url_;
+ string display_url_;
+ string type_;
+ string site_name_;
+ string title_;
+ object_ptr<formattedText> description_;
+ object_ptr<photo> photo_;
+ string embed_url_;
+ string embed_type_;
+ int32 embed_width_;
+ int32 embed_height_;
+ int32 duration_;
+ string author_;
+ object_ptr<animation> animation_;
+ object_ptr<audio> audio_;
+ object_ptr<document> document_;
+ object_ptr<sticker> sticker_;
+ object_ptr<video> video_;
+ object_ptr<videoNote> video_note_;
+ object_ptr<voiceNote> voice_note_;
+ int32 instant_view_version_;
+
+ webPage();
+
+ webPage(string const &url_, string const &display_url_, string const &type_, string const &site_name_, string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, string const &embed_url_, string const &embed_type_, int32 embed_width_, int32 embed_height_, int32 duration_, string const &author_, object_ptr<animation> &&animation_, object_ptr<audio> &&audio_, object_ptr<document> &&document_, object_ptr<sticker> &&sticker_, object_ptr<video> &&video_, object_ptr<videoNote> &&video_note_, object_ptr<voiceNote> &&voice_note_, int32 instant_view_version_);
+
+ static const std::int32_t ID = -577333714;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webPageInstantView final : public Object {
+ public:
+ array<object_ptr<PageBlock>> page_blocks_;
+ int32 view_count_;
+ int32 version_;
+ bool is_rtl_;
+ bool is_full_;
+ object_ptr<InternalLinkType> feedback_link_;
+
+ webPageInstantView();
+
+ webPageInstantView(array<object_ptr<PageBlock>> &&page_blocks_, int32 view_count_, int32 version_, bool is_rtl_, bool is_full_, object_ptr<InternalLinkType> &&feedback_link_);
+
+ static const std::int32_t ID = 778202453;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class acceptCall final : public Function {
+ public:
+ int32 call_id_;
+ object_ptr<callProtocol> protocol_;
+
+ acceptCall();
+
+ acceptCall(int32 call_id_, object_ptr<callProtocol> &&protocol_);
+
+ static const std::int32_t ID = -646618416;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class acceptTermsOfService final : public Function {
+ public:
+ string terms_of_service_id_;
+
+ acceptTermsOfService();
+
+ explicit acceptTermsOfService(string const &terms_of_service_id_);
+
+ static const std::int32_t ID = 2130576356;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addChatMember final : public Function {
+ public:
+ int53 chat_id_;
+ int53 user_id_;
+ int32 forward_limit_;
+
+ addChatMember();
+
+ addChatMember(int53 chat_id_, int53 user_id_, int32 forward_limit_);
+
+ static const std::int32_t ID = 499426810;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addChatMembers final : public Function {
+ public:
+ int53 chat_id_;
+ array<int53> user_ids_;
+
+ addChatMembers();
+
+ addChatMembers(int53 chat_id_, array<int53> &&user_ids_);
+
+ static const std::int32_t ID = -519951226;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addChatToList final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<ChatList> chat_list_;
+
+ addChatToList();
+
+ addChatToList(int53 chat_id_, object_ptr<ChatList> &&chat_list_);
+
+ static const std::int32_t ID = -80523595;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addContact final : public Function {
+ public:
+ object_ptr<contact> contact_;
+ bool share_phone_number_;
+
+ addContact();
+
+ addContact(object_ptr<contact> &&contact_, bool share_phone_number_);
+
+ static const std::int32_t ID = 1869640000;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addCustomServerLanguagePack final : public Function {
+ public:
+ string language_pack_id_;
+
+ addCustomServerLanguagePack();
+
+ explicit addCustomServerLanguagePack(string const &language_pack_id_);
+
+ static const std::int32_t ID = 4492771;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addFavoriteSticker final : public Function {
+ public:
+ object_ptr<InputFile> sticker_;
+
+ addFavoriteSticker();
+
+ explicit addFavoriteSticker(object_ptr<InputFile> &&sticker_);
+
+ static const std::int32_t ID = 324504799;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addFileToDownloads final : public Function {
+ public:
+ int32 file_id_;
+ int53 chat_id_;
+ int53 message_id_;
+ int32 priority_;
+
+ addFileToDownloads();
+
+ addFileToDownloads(int32 file_id_, int53 chat_id_, int53 message_id_, int32 priority_);
+
+ static const std::int32_t ID = 867533751;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<file>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addLocalMessage final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<MessageSender> sender_id_;
+ int53 reply_to_message_id_;
+ bool disable_notification_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ addLocalMessage();
+
+ addLocalMessage(int53 chat_id_, object_ptr<MessageSender> &&sender_id_, int53 reply_to_message_id_, bool disable_notification_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = -1998878725;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addLogMessage final : public Function {
+ public:
+ int32 verbosity_level_;
+ string text_;
+
+ addLogMessage();
+
+ addLogMessage(int32 verbosity_level_, string const &text_);
+
+ static const std::int32_t ID = 1597427692;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addMessageReaction final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<ReactionType> reaction_type_;
+ bool is_big_;
+ bool update_recent_reactions_;
+
+ addMessageReaction();
+
+ addMessageReaction(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_, bool is_big_, bool update_recent_reactions_);
+
+ static const std::int32_t ID = 1419269613;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addNetworkStatistics final : public Function {
+ public:
+ object_ptr<NetworkStatisticsEntry> entry_;
+
+ addNetworkStatistics();
+
+ explicit addNetworkStatistics(object_ptr<NetworkStatisticsEntry> &&entry_);
+
+ static const std::int32_t ID = 1264825305;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addProxy final : public Function {
+ public:
+ string server_;
+ int32 port_;
+ bool enable_;
+ object_ptr<ProxyType> type_;
+
+ addProxy();
+
+ addProxy(string const &server_, int32 port_, bool enable_, object_ptr<ProxyType> &&type_);
+
+ static const std::int32_t ID = 331529432;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<proxy>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addRecentSticker final : public Function {
+ public:
+ bool is_attached_;
+ object_ptr<InputFile> sticker_;
+
+ addRecentSticker();
+
+ addRecentSticker(bool is_attached_, object_ptr<InputFile> &&sticker_);
+
+ static const std::int32_t ID = -1478109026;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addRecentlyFoundChat final : public Function {
+ public:
+ int53 chat_id_;
+
+ addRecentlyFoundChat();
+
+ explicit addRecentlyFoundChat(int53 chat_id_);
+
+ static const std::int32_t ID = -1746396787;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addSavedAnimation final : public Function {
+ public:
+ object_ptr<InputFile> animation_;
+
+ addSavedAnimation();
+
+ explicit addSavedAnimation(object_ptr<InputFile> &&animation_);
+
+ static const std::int32_t ID = -1538525088;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addSavedNotificationSound final : public Function {
+ public:
+ object_ptr<InputFile> sound_;
+
+ addSavedNotificationSound();
+
+ explicit addSavedNotificationSound(object_ptr<InputFile> &&sound_);
+
+ static const std::int32_t ID = 1043956975;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<notificationSound>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class addStickerToSet final : public Function {
+ public:
+ int53 user_id_;
+ string name_;
+ object_ptr<inputSticker> sticker_;
+
+ addStickerToSet();
+
+ addStickerToSet(int53 user_id_, string const &name_, object_ptr<inputSticker> &&sticker_);
+
+ static const std::int32_t ID = -1340783267;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickerSet>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class answerCallbackQuery final : public Function {
+ public:
+ int64 callback_query_id_;
+ string text_;
+ bool show_alert_;
+ string url_;
+ int32 cache_time_;
+
+ answerCallbackQuery();
+
+ answerCallbackQuery(int64 callback_query_id_, string const &text_, bool show_alert_, string const &url_, int32 cache_time_);
+
+ static const std::int32_t ID = -1153028490;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class answerCustomQuery final : public Function {
+ public:
+ int64 custom_query_id_;
+ string data_;
+
+ answerCustomQuery();
+
+ answerCustomQuery(int64 custom_query_id_, string const &data_);
+
+ static const std::int32_t ID = -1293603521;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class answerInlineQuery final : public Function {
+ public:
+ int64 inline_query_id_;
+ bool is_personal_;
+ array<object_ptr<InputInlineQueryResult>> results_;
+ int32 cache_time_;
+ string next_offset_;
+ string switch_pm_text_;
+ string switch_pm_parameter_;
+
+ answerInlineQuery();
+
+ answerInlineQuery(int64 inline_query_id_, bool is_personal_, array<object_ptr<InputInlineQueryResult>> &&results_, int32 cache_time_, string const &next_offset_, string const &switch_pm_text_, string const &switch_pm_parameter_);
+
+ static const std::int32_t ID = 485879477;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class answerPreCheckoutQuery final : public Function {
+ public:
+ int64 pre_checkout_query_id_;
+ string error_message_;
+
+ answerPreCheckoutQuery();
+
+ answerPreCheckoutQuery(int64 pre_checkout_query_id_, string const &error_message_);
+
+ static const std::int32_t ID = -1486789653;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class answerShippingQuery final : public Function {
+ public:
+ int64 shipping_query_id_;
+ array<object_ptr<shippingOption>> shipping_options_;
+ string error_message_;
+
+ answerShippingQuery();
+
+ answerShippingQuery(int64 shipping_query_id_, array<object_ptr<shippingOption>> &&shipping_options_, string const &error_message_);
+
+ static const std::int32_t ID = -434601324;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class answerWebAppQuery final : public Function {
+ public:
+ string web_app_query_id_;
+ object_ptr<InputInlineQueryResult> result_;
+
+ answerWebAppQuery();
+
+ answerWebAppQuery(string const &web_app_query_id_, object_ptr<InputInlineQueryResult> &&result_);
+
+ static const std::int32_t ID = -1598776079;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<sentWebAppMessage>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class assignAppStoreTransaction final : public Function {
+ public:
+ bytes receipt_;
+ object_ptr<StorePaymentPurpose> purpose_;
+
+ assignAppStoreTransaction();
+
+ assignAppStoreTransaction(bytes const &receipt_, object_ptr<StorePaymentPurpose> &&purpose_);
+
+ static const std::int32_t ID = -2030892112;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class assignGooglePlayTransaction final : public Function {
+ public:
+ string package_name_;
+ string store_product_id_;
+ string purchase_token_;
+ object_ptr<StorePaymentPurpose> purpose_;
+
+ assignGooglePlayTransaction();
+
+ assignGooglePlayTransaction(string const &package_name_, string const &store_product_id_, string const &purchase_token_, object_ptr<StorePaymentPurpose> &&purpose_);
+
+ static const std::int32_t ID = -1992704860;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class banChatMember final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<MessageSender> member_id_;
+ int32 banned_until_date_;
+ bool revoke_messages_;
+
+ banChatMember();
+
+ banChatMember(int53 chat_id_, object_ptr<MessageSender> &&member_id_, int32 banned_until_date_, bool revoke_messages_);
+
+ static const std::int32_t ID = -888111748;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class blockMessageSenderFromReplies final : public Function {
+ public:
+ int53 message_id_;
+ bool delete_message_;
+ bool delete_all_messages_;
+ bool report_spam_;
+
+ blockMessageSenderFromReplies();
+
+ blockMessageSenderFromReplies(int53 message_id_, bool delete_message_, bool delete_all_messages_, bool report_spam_);
+
+ static const std::int32_t ID = -1214384757;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class canPurchasePremium final : public Function {
+ public:
+ object_ptr<StorePaymentPurpose> purpose_;
+
+ canPurchasePremium();
+
+ explicit canPurchasePremium(object_ptr<StorePaymentPurpose> &&purpose_);
+
+ static const std::int32_t ID = -371319616;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class canTransferOwnership final : public Function {
+ public:
+
+ canTransferOwnership();
+
+ static const std::int32_t ID = 634602508;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<CanTransferOwnershipResult>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class cancelDownloadFile final : public Function {
+ public:
+ int32 file_id_;
+ bool only_if_pending_;
+
+ cancelDownloadFile();
+
+ cancelDownloadFile(int32 file_id_, bool only_if_pending_);
+
+ static const std::int32_t ID = -1954524450;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class cancelPasswordReset final : public Function {
+ public:
+
+ cancelPasswordReset();
+
+ static const std::int32_t ID = 940733538;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class cancelPreliminaryUploadFile final : public Function {
+ public:
+ int32 file_id_;
+
+ cancelPreliminaryUploadFile();
+
+ explicit cancelPreliminaryUploadFile(int32 file_id_);
+
+ static const std::int32_t ID = 823412414;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class changeImportedContacts final : public Function {
+ public:
+ array<object_ptr<contact>> contacts_;
+
+ changeImportedContacts();
+
+ explicit changeImportedContacts(array<object_ptr<contact>> &&contacts_);
+
+ static const std::int32_t ID = 1968207955;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<importedContacts>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class changePhoneNumber final : public Function {
+ public:
+ string phone_number_;
+ object_ptr<phoneNumberAuthenticationSettings> settings_;
+
+ changePhoneNumber();
+
+ changePhoneNumber(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_);
+
+ static const std::int32_t ID = -124666973;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<authenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class changeStickerSet final : public Function {
+ public:
+ int64 set_id_;
+ bool is_installed_;
+ bool is_archived_;
+
+ changeStickerSet();
+
+ changeStickerSet(int64 set_id_, bool is_installed_, bool is_archived_);
+
+ static const std::int32_t ID = 449357293;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkAuthenticationBotToken final : public Function {
+ public:
+ string token_;
+
+ checkAuthenticationBotToken();
+
+ explicit checkAuthenticationBotToken(string const &token_);
+
+ static const std::int32_t ID = 639321206;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkAuthenticationCode final : public Function {
+ public:
+ string code_;
+
+ checkAuthenticationCode();
+
+ explicit checkAuthenticationCode(string const &code_);
+
+ static const std::int32_t ID = -302103382;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkAuthenticationEmailCode final : public Function {
+ public:
+ object_ptr<EmailAddressAuthentication> code_;
+
+ checkAuthenticationEmailCode();
+
+ explicit checkAuthenticationEmailCode(object_ptr<EmailAddressAuthentication> &&code_);
+
+ static const std::int32_t ID = -582827361;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkAuthenticationPassword final : public Function {
+ public:
+ string password_;
+
+ checkAuthenticationPassword();
+
+ explicit checkAuthenticationPassword(string const &password_);
+
+ static const std::int32_t ID = -2025698400;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkAuthenticationPasswordRecoveryCode final : public Function {
+ public:
+ string recovery_code_;
+
+ checkAuthenticationPasswordRecoveryCode();
+
+ explicit checkAuthenticationPasswordRecoveryCode(string const &recovery_code_);
+
+ static const std::int32_t ID = -603309083;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkChangePhoneNumberCode final : public Function {
+ public:
+ string code_;
+
+ checkChangePhoneNumberCode();
+
+ explicit checkChangePhoneNumberCode(string const &code_);
+
+ static const std::int32_t ID = -1720278429;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkChatInviteLink final : public Function {
+ public:
+ string invite_link_;
+
+ checkChatInviteLink();
+
+ explicit checkChatInviteLink(string const &invite_link_);
+
+ static const std::int32_t ID = -496940997;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatInviteLinkInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkChatUsername final : public Function {
+ public:
+ int53 chat_id_;
+ string username_;
+
+ checkChatUsername();
+
+ checkChatUsername(int53 chat_id_, string const &username_);
+
+ static const std::int32_t ID = -119119344;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<CheckChatUsernameResult>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkCreatedPublicChatsLimit final : public Function {
+ public:
+ object_ptr<PublicChatType> type_;
+
+ checkCreatedPublicChatsLimit();
+
+ explicit checkCreatedPublicChatsLimit(object_ptr<PublicChatType> &&type_);
+
+ static const std::int32_t ID = -445546591;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkEmailAddressVerificationCode final : public Function {
+ public:
+ string code_;
+
+ checkEmailAddressVerificationCode();
+
+ explicit checkEmailAddressVerificationCode(string const &code_);
+
+ static const std::int32_t ID = -426386685;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkLoginEmailAddressCode final : public Function {
+ public:
+ object_ptr<EmailAddressAuthentication> code_;
+
+ checkLoginEmailAddressCode();
+
+ explicit checkLoginEmailAddressCode(object_ptr<EmailAddressAuthentication> &&code_);
+
+ static const std::int32_t ID = -1454244766;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkPasswordRecoveryCode final : public Function {
+ public:
+ string recovery_code_;
+
+ checkPasswordRecoveryCode();
+
+ explicit checkPasswordRecoveryCode(string const &recovery_code_);
+
+ static const std::int32_t ID = -200794600;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkPhoneNumberConfirmationCode final : public Function {
+ public:
+ string code_;
+
+ checkPhoneNumberConfirmationCode();
+
+ explicit checkPhoneNumberConfirmationCode(string const &code_);
+
+ static const std::int32_t ID = -1348060966;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkPhoneNumberVerificationCode final : public Function {
+ public:
+ string code_;
+
+ checkPhoneNumberVerificationCode();
+
+ explicit checkPhoneNumberVerificationCode(string const &code_);
+
+ static const std::int32_t ID = 1497462718;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkRecoveryEmailAddressCode final : public Function {
+ public:
+ string code_;
+
+ checkRecoveryEmailAddressCode();
+
+ explicit checkRecoveryEmailAddressCode(string const &code_);
+
+ static const std::int32_t ID = -1997039589;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<passwordState>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class checkStickerSetName final : public Function {
+ public:
+ string name_;
+
+ checkStickerSetName();
+
+ explicit checkStickerSetName(string const &name_);
+
+ static const std::int32_t ID = -1789392642;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<CheckStickerSetNameResult>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class cleanFileName final : public Function {
+ public:
+ string file_name_;
+
+ cleanFileName();
+
+ explicit cleanFileName(string const &file_name_);
+
+ static const std::int32_t ID = 967964667;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class clearAllDraftMessages final : public Function {
+ public:
+ bool exclude_secret_chats_;
+
+ clearAllDraftMessages();
+
+ explicit clearAllDraftMessages(bool exclude_secret_chats_);
+
+ static const std::int32_t ID = -46369573;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class clearImportedContacts final : public Function {
+ public:
+
+ clearImportedContacts();
+
+ static const std::int32_t ID = 869503298;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class clearRecentEmojiStatuses final : public Function {
+ public:
+
+ clearRecentEmojiStatuses();
+
+ static const std::int32_t ID = -428749986;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class clearRecentReactions final : public Function {
+ public:
+
+ clearRecentReactions();
+
+ static const std::int32_t ID = 1298253650;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class clearRecentStickers final : public Function {
+ public:
+ bool is_attached_;
+
+ clearRecentStickers();
+
+ explicit clearRecentStickers(bool is_attached_);
+
+ static const std::int32_t ID = -321242684;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class clearRecentlyFoundChats final : public Function {
+ public:
+
+ clearRecentlyFoundChats();
+
+ static const std::int32_t ID = -285582542;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class clickAnimatedEmojiMessage final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ clickAnimatedEmojiMessage();
+
+ clickAnimatedEmojiMessage(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = 196179554;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<sticker>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class clickPremiumSubscriptionButton final : public Function {
+ public:
+
+ clickPremiumSubscriptionButton();
+
+ static const std::int32_t ID = -369319162;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class close final : public Function {
+ public:
+
+ close();
+
+ static const std::int32_t ID = -1187782273;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class closeChat final : public Function {
+ public:
+ int53 chat_id_;
+
+ closeChat();
+
+ explicit closeChat(int53 chat_id_);
+
+ static const std::int32_t ID = 39749353;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class closeSecretChat final : public Function {
+ public:
+ int32 secret_chat_id_;
+
+ closeSecretChat();
+
+ explicit closeSecretChat(int32 secret_chat_id_);
+
+ static const std::int32_t ID = -471006133;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class closeWebApp final : public Function {
+ public:
+ int64 web_app_launch_id_;
+
+ closeWebApp();
+
+ explicit closeWebApp(int64 web_app_launch_id_);
+
+ static const std::int32_t ID = 1755391174;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class confirmQrCodeAuthentication final : public Function {
+ public:
+ string link_;
+
+ confirmQrCodeAuthentication();
+
+ explicit confirmQrCodeAuthentication(string const &link_);
+
+ static const std::int32_t ID = -376199379;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<session>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createBasicGroupChat final : public Function {
+ public:
+ int53 basic_group_id_;
+ bool force_;
+
+ createBasicGroupChat();
+
+ createBasicGroupChat(int53 basic_group_id_, bool force_);
+
+ static const std::int32_t ID = 1972024548;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createCall final : public Function {
+ public:
+ int53 user_id_;
+ object_ptr<callProtocol> protocol_;
+ bool is_video_;
+
+ createCall();
+
+ createCall(int53 user_id_, object_ptr<callProtocol> &&protocol_, bool is_video_);
+
+ static const std::int32_t ID = -1104663024;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<callId>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createChatFilter final : public Function {
+ public:
+ object_ptr<chatFilter> filter_;
+
+ createChatFilter();
+
+ explicit createChatFilter(object_ptr<chatFilter> &&filter_);
+
+ static const std::int32_t ID = 49065126;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatFilterInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createChatInviteLink final : public Function {
+ public:
+ int53 chat_id_;
+ string name_;
+ int32 expiration_date_;
+ int32 member_limit_;
+ bool creates_join_request_;
+
+ createChatInviteLink();
+
+ createChatInviteLink(int53 chat_id_, string const &name_, int32 expiration_date_, int32 member_limit_, bool creates_join_request_);
+
+ static const std::int32_t ID = 287744833;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatInviteLink>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createForumTopic final : public Function {
+ public:
+ int53 chat_id_;
+ string name_;
+ object_ptr<forumTopicIcon> icon_;
+
+ createForumTopic();
+
+ createForumTopic(int53 chat_id_, string const &name_, object_ptr<forumTopicIcon> &&icon_);
+
+ static const std::int32_t ID = -1040570140;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<forumTopicInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createInvoiceLink final : public Function {
+ public:
+ object_ptr<InputMessageContent> invoice_;
+
+ createInvoiceLink();
+
+ explicit createInvoiceLink(object_ptr<InputMessageContent> &&invoice_);
+
+ static const std::int32_t ID = 216787233;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<httpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createNewBasicGroupChat final : public Function {
+ public:
+ array<int53> user_ids_;
+ string title_;
+
+ createNewBasicGroupChat();
+
+ createNewBasicGroupChat(array<int53> &&user_ids_, string const &title_);
+
+ static const std::int32_t ID = -2104438789;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createNewSecretChat final : public Function {
+ public:
+ int53 user_id_;
+
+ createNewSecretChat();
+
+ explicit createNewSecretChat(int53 user_id_);
+
+ static const std::int32_t ID = -620682651;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createNewStickerSet final : public Function {
+ public:
+ int53 user_id_;
+ string title_;
+ string name_;
+ object_ptr<StickerType> sticker_type_;
+ array<object_ptr<inputSticker>> stickers_;
+ string source_;
+
+ createNewStickerSet();
+
+ createNewStickerSet(int53 user_id_, string const &title_, string const &name_, object_ptr<StickerType> &&sticker_type_, array<object_ptr<inputSticker>> &&stickers_, string const &source_);
+
+ static const std::int32_t ID = 1424129402;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickerSet>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createNewSupergroupChat final : public Function {
+ public:
+ string title_;
+ bool is_channel_;
+ string description_;
+ object_ptr<chatLocation> location_;
+ bool for_import_;
+
+ createNewSupergroupChat();
+
+ createNewSupergroupChat(string const &title_, bool is_channel_, string const &description_, object_ptr<chatLocation> &&location_, bool for_import_);
+
+ static const std::int32_t ID = -830232895;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createPrivateChat final : public Function {
+ public:
+ int53 user_id_;
+ bool force_;
+
+ createPrivateChat();
+
+ createPrivateChat(int53 user_id_, bool force_);
+
+ static const std::int32_t ID = -947758327;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createSecretChat final : public Function {
+ public:
+ int32 secret_chat_id_;
+
+ createSecretChat();
+
+ explicit createSecretChat(int32 secret_chat_id_);
+
+ static const std::int32_t ID = 1930285615;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createSupergroupChat final : public Function {
+ public:
+ int53 supergroup_id_;
+ bool force_;
+
+ createSupergroupChat();
+
+ createSupergroupChat(int53 supergroup_id_, bool force_);
+
+ static const std::int32_t ID = 1187475691;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createTemporaryPassword final : public Function {
+ public:
+ string password_;
+ int32 valid_for_;
+
+ createTemporaryPassword();
+
+ createTemporaryPassword(string const &password_, int32 valid_for_);
+
+ static const std::int32_t ID = -1626509434;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<temporaryPasswordState>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class createVideoChat final : public Function {
+ public:
+ int53 chat_id_;
+ string title_;
+ int32 start_date_;
+ bool is_rtmp_stream_;
+
+ createVideoChat();
+
+ createVideoChat(int53 chat_id_, string const &title_, int32 start_date_, bool is_rtmp_stream_);
+
+ static const std::int32_t ID = 2124715405;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<groupCallId>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteAccount final : public Function {
+ public:
+ string reason_;
+ string password_;
+
+ deleteAccount();
+
+ deleteAccount(string const &reason_, string const &password_);
+
+ static const std::int32_t ID = 1395816134;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteAllCallMessages final : public Function {
+ public:
+ bool revoke_;
+
+ deleteAllCallMessages();
+
+ explicit deleteAllCallMessages(bool revoke_);
+
+ static const std::int32_t ID = -1466445325;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteAllRevokedChatInviteLinks final : public Function {
+ public:
+ int53 chat_id_;
+ int53 creator_user_id_;
+
+ deleteAllRevokedChatInviteLinks();
+
+ deleteAllRevokedChatInviteLinks(int53 chat_id_, int53 creator_user_id_);
+
+ static const std::int32_t ID = 1112020698;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteChat final : public Function {
+ public:
+ int53 chat_id_;
+
+ deleteChat();
+
+ explicit deleteChat(int53 chat_id_);
+
+ static const std::int32_t ID = -171253666;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteChatFilter final : public Function {
+ public:
+ int32 chat_filter_id_;
+
+ deleteChatFilter();
+
+ explicit deleteChatFilter(int32 chat_filter_id_);
+
+ static const std::int32_t ID = -523220877;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteChatHistory final : public Function {
+ public:
+ int53 chat_id_;
+ bool remove_from_chat_list_;
+ bool revoke_;
+
+ deleteChatHistory();
+
+ deleteChatHistory(int53 chat_id_, bool remove_from_chat_list_, bool revoke_);
+
+ static const std::int32_t ID = -1472081761;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteChatMessagesByDate final : public Function {
+ public:
+ int53 chat_id_;
+ int32 min_date_;
+ int32 max_date_;
+ bool revoke_;
+
+ deleteChatMessagesByDate();
+
+ deleteChatMessagesByDate(int53 chat_id_, int32 min_date_, int32 max_date_, bool revoke_);
+
+ static const std::int32_t ID = -1639653185;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteChatMessagesBySender final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<MessageSender> sender_id_;
+
+ deleteChatMessagesBySender();
+
+ deleteChatMessagesBySender(int53 chat_id_, object_ptr<MessageSender> &&sender_id_);
+
+ static const std::int32_t ID = -1164235161;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteChatReplyMarkup final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ deleteChatReplyMarkup();
+
+ deleteChatReplyMarkup(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = 100637531;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteCommands final : public Function {
+ public:
+ object_ptr<BotCommandScope> scope_;
+ string language_code_;
+
+ deleteCommands();
+
+ deleteCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_);
+
+ static const std::int32_t ID = 1002732586;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteFile final : public Function {
+ public:
+ int32 file_id_;
+
+ deleteFile();
+
+ explicit deleteFile(int32 file_id_);
+
+ static const std::int32_t ID = 1807653676;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteForumTopic final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+
+ deleteForumTopic();
+
+ deleteForumTopic(int53 chat_id_, int53 message_thread_id_);
+
+ static const std::int32_t ID = 1864916152;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteLanguagePack final : public Function {
+ public:
+ string language_pack_id_;
+
+ deleteLanguagePack();
+
+ explicit deleteLanguagePack(string const &language_pack_id_);
+
+ static const std::int32_t ID = -2108761026;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteMessages final : public Function {
+ public:
+ int53 chat_id_;
+ array<int53> message_ids_;
+ bool revoke_;
+
+ deleteMessages();
+
+ deleteMessages(int53 chat_id_, array<int53> &&message_ids_, bool revoke_);
+
+ static const std::int32_t ID = 1130090173;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deletePassportElement final : public Function {
+ public:
+ object_ptr<PassportElementType> type_;
+
+ deletePassportElement();
+
+ explicit deletePassportElement(object_ptr<PassportElementType> &&type_);
+
+ static const std::int32_t ID = -1719555468;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteProfilePhoto final : public Function {
+ public:
+ int64 profile_photo_id_;
+
+ deleteProfilePhoto();
+
+ explicit deleteProfilePhoto(int64 profile_photo_id_);
+
+ static const std::int32_t ID = 1319794625;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteRevokedChatInviteLink final : public Function {
+ public:
+ int53 chat_id_;
+ string invite_link_;
+
+ deleteRevokedChatInviteLink();
+
+ deleteRevokedChatInviteLink(int53 chat_id_, string const &invite_link_);
+
+ static const std::int32_t ID = -1859711873;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteSavedCredentials final : public Function {
+ public:
+
+ deleteSavedCredentials();
+
+ static const std::int32_t ID = 826300114;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class deleteSavedOrderInfo final : public Function {
+ public:
+
+ deleteSavedOrderInfo();
+
+ static const std::int32_t ID = 1629058164;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class destroy final : public Function {
+ public:
+
+ destroy();
+
+ static const std::int32_t ID = 685331274;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class disableAllSupergroupUsernames final : public Function {
+ public:
+ int53 supergroup_id_;
+
+ disableAllSupergroupUsernames();
+
+ explicit disableAllSupergroupUsernames(int53 supergroup_id_);
+
+ static const std::int32_t ID = 843511216;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class disableProxy final : public Function {
+ public:
+
+ disableProxy();
+
+ static const std::int32_t ID = -2100095102;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class discardCall final : public Function {
+ public:
+ int32 call_id_;
+ bool is_disconnected_;
+ int32 duration_;
+ bool is_video_;
+ int64 connection_id_;
+
+ discardCall();
+
+ discardCall(int32 call_id_, bool is_disconnected_, int32 duration_, bool is_video_, int64 connection_id_);
+
+ static const std::int32_t ID = -1784044162;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class disconnectAllWebsites final : public Function {
+ public:
+
+ disconnectAllWebsites();
+
+ static const std::int32_t ID = -1082985981;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class disconnectWebsite final : public Function {
+ public:
+ int64 website_id_;
+
+ disconnectWebsite();
+
+ explicit disconnectWebsite(int64 website_id_);
+
+ static const std::int32_t ID = -778767395;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class downloadFile final : public Function {
+ public:
+ int32 file_id_;
+ int32 priority_;
+ int53 offset_;
+ int53 limit_;
+ bool synchronous_;
+
+ downloadFile();
+
+ downloadFile(int32 file_id_, int32 priority_, int53 offset_, int53 limit_, bool synchronous_);
+
+ static const std::int32_t ID = 1059402292;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<file>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editChatFilter final : public Function {
+ public:
+ int32 chat_filter_id_;
+ object_ptr<chatFilter> filter_;
+
+ editChatFilter();
+
+ editChatFilter(int32 chat_filter_id_, object_ptr<chatFilter> &&filter_);
+
+ static const std::int32_t ID = -1674793086;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatFilterInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editChatInviteLink final : public Function {
+ public:
+ int53 chat_id_;
+ string invite_link_;
+ string name_;
+ int32 expiration_date_;
+ int32 member_limit_;
+ bool creates_join_request_;
+
+ editChatInviteLink();
+
+ editChatInviteLink(int53 chat_id_, string const &invite_link_, string const &name_, int32 expiration_date_, int32 member_limit_, bool creates_join_request_);
+
+ static const std::int32_t ID = 1320303996;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatInviteLink>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editCustomLanguagePackInfo final : public Function {
+ public:
+ object_ptr<languagePackInfo> info_;
+
+ editCustomLanguagePackInfo();
+
+ explicit editCustomLanguagePackInfo(object_ptr<languagePackInfo> &&info_);
+
+ static const std::int32_t ID = 1320751257;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editForumTopic final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ string name_;
+ int64 icon_custom_emoji_id_;
+
+ editForumTopic();
+
+ editForumTopic(int53 chat_id_, int53 message_thread_id_, string const &name_, int64 icon_custom_emoji_id_);
+
+ static const std::int32_t ID = -222142032;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editInlineMessageCaption final : public Function {
+ public:
+ string inline_message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<formattedText> caption_;
+
+ editInlineMessageCaption();
+
+ editInlineMessageCaption(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = -760985929;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editInlineMessageLiveLocation final : public Function {
+ public:
+ string inline_message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<location> location_;
+ int32 heading_;
+ int32 proximity_alert_radius_;
+
+ editInlineMessageLiveLocation();
+
+ editInlineMessageLiveLocation(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<location> &&location_, int32 heading_, int32 proximity_alert_radius_);
+
+ static const std::int32_t ID = -156902912;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editInlineMessageMedia final : public Function {
+ public:
+ string inline_message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ editInlineMessageMedia();
+
+ editInlineMessageMedia(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = 23553921;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editInlineMessageReplyMarkup final : public Function {
+ public:
+ string inline_message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ editInlineMessageReplyMarkup();
+
+ editInlineMessageReplyMarkup(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = -67565858;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editInlineMessageText final : public Function {
+ public:
+ string inline_message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ editInlineMessageText();
+
+ editInlineMessageText(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = -855457307;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editMessageCaption final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<formattedText> caption_;
+
+ editMessageCaption();
+
+ editMessageCaption(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<formattedText> &&caption_);
+
+ static const std::int32_t ID = 1154677038;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editMessageLiveLocation final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<location> location_;
+ int32 heading_;
+ int32 proximity_alert_radius_;
+
+ editMessageLiveLocation();
+
+ editMessageLiveLocation(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<location> &&location_, int32 heading_, int32 proximity_alert_radius_);
+
+ static const std::int32_t ID = -14047982;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editMessageMedia final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ editMessageMedia();
+
+ editMessageMedia(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = -1152678125;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editMessageReplyMarkup final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ editMessageReplyMarkup();
+
+ editMessageReplyMarkup(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = 332127881;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editMessageSchedulingState final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<MessageSchedulingState> scheduling_state_;
+
+ editMessageSchedulingState();
+
+ editMessageSchedulingState(int53 chat_id_, int53 message_id_, object_ptr<MessageSchedulingState> &&scheduling_state_);
+
+ static const std::int32_t ID = -1372976192;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editMessageText final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ editMessageText();
+
+ editMessageText(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = 196272567;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class editProxy final : public Function {
+ public:
+ int32 proxy_id_;
+ string server_;
+ int32 port_;
+ bool enable_;
+ object_ptr<ProxyType> type_;
+
+ editProxy();
+
+ editProxy(int32 proxy_id_, string const &server_, int32 port_, bool enable_, object_ptr<ProxyType> &&type_);
+
+ static const std::int32_t ID = -1605883821;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<proxy>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class enableProxy final : public Function {
+ public:
+ int32 proxy_id_;
+
+ enableProxy();
+
+ explicit enableProxy(int32 proxy_id_);
+
+ static const std::int32_t ID = 1494450838;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class endGroupCall final : public Function {
+ public:
+ int32 group_call_id_;
+
+ endGroupCall();
+
+ explicit endGroupCall(int32 group_call_id_);
+
+ static const std::int32_t ID = 573131959;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class endGroupCallRecording final : public Function {
+ public:
+ int32 group_call_id_;
+
+ endGroupCallRecording();
+
+ explicit endGroupCallRecording(int32 group_call_id_);
+
+ static const std::int32_t ID = -75799927;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class endGroupCallScreenSharing final : public Function {
+ public:
+ int32 group_call_id_;
+
+ endGroupCallScreenSharing();
+
+ explicit endGroupCallScreenSharing(int32 group_call_id_);
+
+ static const std::int32_t ID = -2047599540;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class finishFileGeneration final : public Function {
+ public:
+ int64 generation_id_;
+ object_ptr<error> error_;
+
+ finishFileGeneration();
+
+ finishFileGeneration(int64 generation_id_, object_ptr<error> &&error_);
+
+ static const std::int32_t ID = -1055060835;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class forwardMessages final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ int53 from_chat_id_;
+ array<int53> message_ids_;
+ object_ptr<messageSendOptions> options_;
+ bool send_copy_;
+ bool remove_caption_;
+ bool only_preview_;
+
+ forwardMessages();
+
+ forwardMessages(int53 chat_id_, int53 message_thread_id_, int53 from_chat_id_, array<int53> &&message_ids_, object_ptr<messageSendOptions> &&options_, bool send_copy_, bool remove_caption_, bool only_preview_);
+
+ static const std::int32_t ID = -1054441908;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getAccountTtl final : public Function {
+ public:
+
+ getAccountTtl();
+
+ static const std::int32_t ID = -443905161;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<accountTtl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getActiveLiveLocationMessages final : public Function {
+ public:
+
+ getActiveLiveLocationMessages();
+
+ static const std::int32_t ID = -1425459567;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getActiveSessions final : public Function {
+ public:
+
+ getActiveSessions();
+
+ static const std::int32_t ID = 1119710526;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<sessions>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getAllPassportElements final : public Function {
+ public:
+ string password_;
+
+ getAllPassportElements();
+
+ explicit getAllPassportElements(string const &password_);
+
+ static const std::int32_t ID = -2038945045;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<passportElements>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getAnimatedEmoji final : public Function {
+ public:
+ string emoji_;
+
+ getAnimatedEmoji();
+
+ explicit getAnimatedEmoji(string const &emoji_);
+
+ static const std::int32_t ID = 1065635702;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<animatedEmoji>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getApplicationConfig final : public Function {
+ public:
+
+ getApplicationConfig();
+
+ static const std::int32_t ID = -1823144318;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<JsonValue>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getApplicationDownloadLink final : public Function {
+ public:
+
+ getApplicationDownloadLink();
+
+ static const std::int32_t ID = 112013252;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<httpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getArchivedStickerSets final : public Function {
+ public:
+ object_ptr<StickerType> sticker_type_;
+ int64 offset_sticker_set_id_;
+ int32 limit_;
+
+ getArchivedStickerSets();
+
+ getArchivedStickerSets(object_ptr<StickerType> &&sticker_type_, int64 offset_sticker_set_id_, int32 limit_);
+
+ static const std::int32_t ID = 1001931341;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickerSets>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getAttachedStickerSets final : public Function {
+ public:
+ int32 file_id_;
+
+ getAttachedStickerSets();
+
+ explicit getAttachedStickerSets(int32 file_id_);
+
+ static const std::int32_t ID = 1302172429;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickerSets>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getAttachmentMenuBot final : public Function {
+ public:
+ int53 bot_user_id_;
+
+ getAttachmentMenuBot();
+
+ explicit getAttachmentMenuBot(int53 bot_user_id_);
+
+ static const std::int32_t ID = 1034248699;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<attachmentMenuBot>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getAuthorizationState final : public Function {
+ public:
+
+ getAuthorizationState();
+
+ static const std::int32_t ID = 1949154877;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<AuthorizationState>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getAutoDownloadSettingsPresets final : public Function {
+ public:
+
+ getAutoDownloadSettingsPresets();
+
+ static const std::int32_t ID = -1721088201;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<autoDownloadSettingsPresets>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getBackgroundUrl final : public Function {
+ public:
+ string name_;
+ object_ptr<BackgroundType> type_;
+
+ getBackgroundUrl();
+
+ getBackgroundUrl(string const &name_, object_ptr<BackgroundType> &&type_);
+
+ static const std::int32_t ID = 733769682;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<httpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getBackgrounds final : public Function {
+ public:
+ bool for_dark_theme_;
+
+ getBackgrounds();
+
+ explicit getBackgrounds(bool for_dark_theme_);
+
+ static const std::int32_t ID = 249072633;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<backgrounds>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getBankCardInfo final : public Function {
+ public:
+ string bank_card_number_;
+
+ getBankCardInfo();
+
+ explicit getBankCardInfo(string const &bank_card_number_);
+
+ static const std::int32_t ID = -1310515792;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<bankCardInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getBasicGroup final : public Function {
+ public:
+ int53 basic_group_id_;
+
+ getBasicGroup();
+
+ explicit getBasicGroup(int53 basic_group_id_);
+
+ static const std::int32_t ID = -1635174828;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<basicGroup>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getBasicGroupFullInfo final : public Function {
+ public:
+ int53 basic_group_id_;
+
+ getBasicGroupFullInfo();
+
+ explicit getBasicGroupFullInfo(int53 basic_group_id_);
+
+ static const std::int32_t ID = -1822039253;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<basicGroupFullInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getBlockedMessageSenders final : public Function {
+ public:
+ int32 offset_;
+ int32 limit_;
+
+ getBlockedMessageSenders();
+
+ getBlockedMessageSenders(int32 offset_, int32 limit_);
+
+ static const std::int32_t ID = 1947079776;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messageSenders>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getCallbackQueryAnswer final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<CallbackQueryPayload> payload_;
+
+ getCallbackQueryAnswer();
+
+ getCallbackQueryAnswer(int53 chat_id_, int53 message_id_, object_ptr<CallbackQueryPayload> &&payload_);
+
+ static const std::int32_t ID = 116357727;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<callbackQueryAnswer>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getCallbackQueryMessage final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ int64 callback_query_id_;
+
+ getCallbackQueryMessage();
+
+ getCallbackQueryMessage(int53 chat_id_, int53 message_id_, int64 callback_query_id_);
+
+ static const std::int32_t ID = -1121939086;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChat final : public Function {
+ public:
+ int53 chat_id_;
+
+ getChat();
+
+ explicit getChat(int53 chat_id_);
+
+ static const std::int32_t ID = 1866601536;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatAdministrators final : public Function {
+ public:
+ int53 chat_id_;
+
+ getChatAdministrators();
+
+ explicit getChatAdministrators(int53 chat_id_);
+
+ static const std::int32_t ID = 1544468155;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatAdministrators>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatAvailableMessageSenders final : public Function {
+ public:
+ int53 chat_id_;
+
+ getChatAvailableMessageSenders();
+
+ explicit getChatAvailableMessageSenders(int53 chat_id_);
+
+ static const std::int32_t ID = 1158670635;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatMessageSenders>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatEventLog final : public Function {
+ public:
+ int53 chat_id_;
+ string query_;
+ int64 from_event_id_;
+ int32 limit_;
+ object_ptr<chatEventLogFilters> filters_;
+ array<int53> user_ids_;
+
+ getChatEventLog();
+
+ getChatEventLog(int53 chat_id_, string const &query_, int64 from_event_id_, int32 limit_, object_ptr<chatEventLogFilters> &&filters_, array<int53> &&user_ids_);
+
+ static const std::int32_t ID = -1281344669;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatEvents>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatFilter final : public Function {
+ public:
+ int32 chat_filter_id_;
+
+ getChatFilter();
+
+ explicit getChatFilter(int32 chat_filter_id_);
+
+ static const std::int32_t ID = 1826317803;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatFilter>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatFilterDefaultIconName final : public Function {
+ public:
+ object_ptr<chatFilter> filter_;
+
+ getChatFilterDefaultIconName();
+
+ explicit getChatFilterDefaultIconName(object_ptr<chatFilter> &&filter_);
+
+ static const std::int32_t ID = -1339828680;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatHistory final : public Function {
+ public:
+ int53 chat_id_;
+ int53 from_message_id_;
+ int32 offset_;
+ int32 limit_;
+ bool only_local_;
+
+ getChatHistory();
+
+ getChatHistory(int53 chat_id_, int53 from_message_id_, int32 offset_, int32 limit_, bool only_local_);
+
+ static const std::int32_t ID = -799960451;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatInviteLink final : public Function {
+ public:
+ int53 chat_id_;
+ string invite_link_;
+
+ getChatInviteLink();
+
+ getChatInviteLink(int53 chat_id_, string const &invite_link_);
+
+ static const std::int32_t ID = -479575555;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatInviteLink>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatInviteLinkCounts final : public Function {
+ public:
+ int53 chat_id_;
+
+ getChatInviteLinkCounts();
+
+ explicit getChatInviteLinkCounts(int53 chat_id_);
+
+ static const std::int32_t ID = 890299025;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatInviteLinkCounts>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatInviteLinkMembers final : public Function {
+ public:
+ int53 chat_id_;
+ string invite_link_;
+ object_ptr<chatInviteLinkMember> offset_member_;
+ int32 limit_;
+
+ getChatInviteLinkMembers();
+
+ getChatInviteLinkMembers(int53 chat_id_, string const &invite_link_, object_ptr<chatInviteLinkMember> &&offset_member_, int32 limit_);
+
+ static const std::int32_t ID = -977921638;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatInviteLinkMembers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatInviteLinks final : public Function {
+ public:
+ int53 chat_id_;
+ int53 creator_user_id_;
+ bool is_revoked_;
+ int32 offset_date_;
+ string offset_invite_link_;
+ int32 limit_;
+
+ getChatInviteLinks();
+
+ getChatInviteLinks(int53 chat_id_, int53 creator_user_id_, bool is_revoked_, int32 offset_date_, string const &offset_invite_link_, int32 limit_);
+
+ static const std::int32_t ID = 883252396;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatInviteLinks>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatJoinRequests final : public Function {
+ public:
+ int53 chat_id_;
+ string invite_link_;
+ string query_;
+ object_ptr<chatJoinRequest> offset_request_;
+ int32 limit_;
+
+ getChatJoinRequests();
+
+ getChatJoinRequests(int53 chat_id_, string const &invite_link_, string const &query_, object_ptr<chatJoinRequest> &&offset_request_, int32 limit_);
+
+ static const std::int32_t ID = -388428126;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatJoinRequests>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatListsToAddChat final : public Function {
+ public:
+ int53 chat_id_;
+
+ getChatListsToAddChat();
+
+ explicit getChatListsToAddChat(int53 chat_id_);
+
+ static const std::int32_t ID = 654956193;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatLists>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatMember final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<MessageSender> member_id_;
+
+ getChatMember();
+
+ getChatMember(int53 chat_id_, object_ptr<MessageSender> &&member_id_);
+
+ static const std::int32_t ID = -792636814;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatMember>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatMessageByDate final : public Function {
+ public:
+ int53 chat_id_;
+ int32 date_;
+
+ getChatMessageByDate();
+
+ getChatMessageByDate(int53 chat_id_, int32 date_);
+
+ static const std::int32_t ID = 1062564150;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatMessageCalendar final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<SearchMessagesFilter> filter_;
+ int53 from_message_id_;
+
+ getChatMessageCalendar();
+
+ getChatMessageCalendar(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 from_message_id_);
+
+ static const std::int32_t ID = -326164204;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messageCalendar>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatMessageCount final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<SearchMessagesFilter> filter_;
+ bool return_local_;
+
+ getChatMessageCount();
+
+ getChatMessageCount(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, bool return_local_);
+
+ static const std::int32_t ID = 205435308;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<count>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatMessagePosition final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<SearchMessagesFilter> filter_;
+ int53 message_thread_id_;
+
+ getChatMessagePosition();
+
+ getChatMessagePosition(int53 chat_id_, int53 message_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 message_thread_id_);
+
+ static const std::int32_t ID = -559474920;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<count>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatNotificationSettingsExceptions final : public Function {
+ public:
+ object_ptr<NotificationSettingsScope> scope_;
+ bool compare_sound_;
+
+ getChatNotificationSettingsExceptions();
+
+ getChatNotificationSettingsExceptions(object_ptr<NotificationSettingsScope> &&scope_, bool compare_sound_);
+
+ static const std::int32_t ID = 201199121;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatPinnedMessage final : public Function {
+ public:
+ int53 chat_id_;
+
+ getChatPinnedMessage();
+
+ explicit getChatPinnedMessage(int53 chat_id_);
+
+ static const std::int32_t ID = 359865008;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatScheduledMessages final : public Function {
+ public:
+ int53 chat_id_;
+
+ getChatScheduledMessages();
+
+ explicit getChatScheduledMessages(int53 chat_id_);
+
+ static const std::int32_t ID = -549638149;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatSparseMessagePositions final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<SearchMessagesFilter> filter_;
+ int53 from_message_id_;
+ int32 limit_;
+
+ getChatSparseMessagePositions();
+
+ getChatSparseMessagePositions(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 from_message_id_, int32 limit_);
+
+ static const std::int32_t ID = -462227580;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messagePositions>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatSponsoredMessages final : public Function {
+ public:
+ int53 chat_id_;
+
+ getChatSponsoredMessages();
+
+ explicit getChatSponsoredMessages(int53 chat_id_);
+
+ static const std::int32_t ID = 1353203864;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<sponsoredMessages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChatStatistics final : public Function {
+ public:
+ int53 chat_id_;
+ bool is_dark_;
+
+ getChatStatistics();
+
+ getChatStatistics(int53 chat_id_, bool is_dark_);
+
+ static const std::int32_t ID = 327057816;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ChatStatistics>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getChats final : public Function {
+ public:
+ object_ptr<ChatList> chat_list_;
+ int32 limit_;
+
+ getChats();
+
+ getChats(object_ptr<ChatList> &&chat_list_, int32 limit_);
+
+ static const std::int32_t ID = -972768574;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getCommands final : public Function {
+ public:
+ object_ptr<BotCommandScope> scope_;
+ string language_code_;
+
+ getCommands();
+
+ getCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_);
+
+ static const std::int32_t ID = 1488621559;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<botCommands>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getConnectedWebsites final : public Function {
+ public:
+
+ getConnectedWebsites();
+
+ static const std::int32_t ID = -170536110;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<connectedWebsites>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getContacts final : public Function {
+ public:
+
+ getContacts();
+
+ static const std::int32_t ID = -1417722768;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<users>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getCountries final : public Function {
+ public:
+
+ getCountries();
+
+ static const std::int32_t ID = -51902050;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<countries>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getCountryCode final : public Function {
+ public:
+
+ getCountryCode();
+
+ static const std::int32_t ID = 1540593906;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getCreatedPublicChats final : public Function {
+ public:
+ object_ptr<PublicChatType> type_;
+
+ getCreatedPublicChats();
+
+ explicit getCreatedPublicChats(object_ptr<PublicChatType> &&type_);
+
+ static const std::int32_t ID = 710354415;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getCurrentState final : public Function {
+ public:
+
+ getCurrentState();
+
+ static const std::int32_t ID = -1191417719;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<updates>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getCustomEmojiReactionAnimations final : public Function {
+ public:
+
+ getCustomEmojiReactionAnimations();
+
+ static const std::int32_t ID = 1232375250;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getCustomEmojiStickers final : public Function {
+ public:
+ array<int64> custom_emoji_ids_;
+
+ getCustomEmojiStickers();
+
+ explicit getCustomEmojiStickers(array<int64> &&custom_emoji_ids_);
+
+ static const std::int32_t ID = -2127427955;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getDatabaseStatistics final : public Function {
+ public:
+
+ getDatabaseStatistics();
+
+ static const std::int32_t ID = -1942760263;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<databaseStatistics>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getDeepLinkInfo final : public Function {
+ public:
+ string link_;
+
+ getDeepLinkInfo();
+
+ explicit getDeepLinkInfo(string const &link_);
+
+ static const std::int32_t ID = 680673150;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<deepLinkInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getDefaultEmojiStatuses final : public Function {
+ public:
+
+ getDefaultEmojiStatuses();
+
+ static const std::int32_t ID = 618946243;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emojiStatuses>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getEmojiReaction final : public Function {
+ public:
+ string emoji_;
+
+ getEmojiReaction();
+
+ explicit getEmojiReaction(string const &emoji_);
+
+ static const std::int32_t ID = -449572388;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emojiReaction>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getEmojiSuggestionsUrl final : public Function {
+ public:
+ string language_code_;
+
+ getEmojiSuggestionsUrl();
+
+ explicit getEmojiSuggestionsUrl(string const &language_code_);
+
+ static const std::int32_t ID = -1404101841;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<httpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getExternalLink final : public Function {
+ public:
+ string link_;
+ bool allow_write_access_;
+
+ getExternalLink();
+
+ getExternalLink(string const &link_, bool allow_write_access_);
+
+ static const std::int32_t ID = 1586688235;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<httpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getExternalLinkInfo final : public Function {
+ public:
+ string link_;
+
+ getExternalLinkInfo();
+
+ explicit getExternalLinkInfo(string const &link_);
+
+ static const std::int32_t ID = 1175288383;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<LoginUrlInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getFavoriteStickers final : public Function {
+ public:
+
+ getFavoriteStickers();
+
+ static const std::int32_t ID = -338964672;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getFile final : public Function {
+ public:
+ int32 file_id_;
+
+ getFile();
+
+ explicit getFile(int32 file_id_);
+
+ static const std::int32_t ID = 1553923406;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<file>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getFileDownloadedPrefixSize final : public Function {
+ public:
+ int32 file_id_;
+ int53 offset_;
+
+ getFileDownloadedPrefixSize();
+
+ getFileDownloadedPrefixSize(int32 file_id_, int53 offset_);
+
+ static const std::int32_t ID = 855948589;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<fileDownloadedPrefixSize>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getFileExtension final : public Function {
+ public:
+ string mime_type_;
+
+ getFileExtension();
+
+ explicit getFileExtension(string const &mime_type_);
+
+ static const std::int32_t ID = -106055372;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getFileMimeType final : public Function {
+ public:
+ string file_name_;
+
+ getFileMimeType();
+
+ explicit getFileMimeType(string const &file_name_);
+
+ static const std::int32_t ID = -2073879671;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getForumTopicDefaultIcons final : public Function {
+ public:
+
+ getForumTopicDefaultIcons();
+
+ static const std::int32_t ID = 1479898332;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getGameHighScores final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ int53 user_id_;
+
+ getGameHighScores();
+
+ getGameHighScores(int53 chat_id_, int53 message_id_, int53 user_id_);
+
+ static const std::int32_t ID = 15746459;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<gameHighScores>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getGroupCall final : public Function {
+ public:
+ int32 group_call_id_;
+
+ getGroupCall();
+
+ explicit getGroupCall(int32 group_call_id_);
+
+ static const std::int32_t ID = 1468491406;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<groupCall>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getGroupCallInviteLink final : public Function {
+ public:
+ int32 group_call_id_;
+ bool can_self_unmute_;
+
+ getGroupCallInviteLink();
+
+ getGroupCallInviteLink(int32 group_call_id_, bool can_self_unmute_);
+
+ static const std::int32_t ID = 719407396;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<httpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getGroupCallStreamSegment final : public Function {
+ public:
+ int32 group_call_id_;
+ int53 time_offset_;
+ int32 scale_;
+ int32 channel_id_;
+ object_ptr<GroupCallVideoQuality> video_quality_;
+
+ getGroupCallStreamSegment();
+
+ getGroupCallStreamSegment(int32 group_call_id_, int53 time_offset_, int32 scale_, int32 channel_id_, object_ptr<GroupCallVideoQuality> &&video_quality_);
+
+ static const std::int32_t ID = -2077959515;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<filePart>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getGroupCallStreams final : public Function {
+ public:
+ int32 group_call_id_;
+
+ getGroupCallStreams();
+
+ explicit getGroupCallStreams(int32 group_call_id_);
+
+ static const std::int32_t ID = -1619226268;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<groupCallStreams>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getGroupsInCommon final : public Function {
+ public:
+ int53 user_id_;
+ int53 offset_chat_id_;
+ int32 limit_;
+
+ getGroupsInCommon();
+
+ getGroupsInCommon(int53 user_id_, int53 offset_chat_id_, int32 limit_);
+
+ static const std::int32_t ID = 381539178;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getImportedContactCount final : public Function {
+ public:
+
+ getImportedContactCount();
+
+ static const std::int32_t ID = -656336346;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<count>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getInactiveSupergroupChats final : public Function {
+ public:
+
+ getInactiveSupergroupChats();
+
+ static const std::int32_t ID = -657720907;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getInlineGameHighScores final : public Function {
+ public:
+ string inline_message_id_;
+ int53 user_id_;
+
+ getInlineGameHighScores();
+
+ getInlineGameHighScores(string const &inline_message_id_, int53 user_id_);
+
+ static const std::int32_t ID = -533107798;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<gameHighScores>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getInlineQueryResults final : public Function {
+ public:
+ int53 bot_user_id_;
+ int53 chat_id_;
+ object_ptr<location> user_location_;
+ string query_;
+ string offset_;
+
+ getInlineQueryResults();
+
+ getInlineQueryResults(int53 bot_user_id_, int53 chat_id_, object_ptr<location> &&user_location_, string const &query_, string const &offset_);
+
+ static const std::int32_t ID = 2044524652;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<inlineQueryResults>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getInstalledStickerSets final : public Function {
+ public:
+ object_ptr<StickerType> sticker_type_;
+
+ getInstalledStickerSets();
+
+ explicit getInstalledStickerSets(object_ptr<StickerType> &&sticker_type_);
+
+ static const std::int32_t ID = 1630467830;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickerSets>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getInternalLinkType final : public Function {
+ public:
+ string link_;
+
+ getInternalLinkType();
+
+ explicit getInternalLinkType(string const &link_);
+
+ static const std::int32_t ID = -1948428535;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<InternalLinkType>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getJsonString final : public Function {
+ public:
+ object_ptr<JsonValue> json_value_;
+
+ getJsonString();
+
+ explicit getJsonString(object_ptr<JsonValue> &&json_value_);
+
+ static const std::int32_t ID = 663458849;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getJsonValue final : public Function {
+ public:
+ string json_;
+
+ getJsonValue();
+
+ explicit getJsonValue(string const &json_);
+
+ static const std::int32_t ID = -1829086715;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<JsonValue>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getLanguagePackInfo final : public Function {
+ public:
+ string language_pack_id_;
+
+ getLanguagePackInfo();
+
+ explicit getLanguagePackInfo(string const &language_pack_id_);
+
+ static const std::int32_t ID = 2077809320;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<languagePackInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getLanguagePackString final : public Function {
+ public:
+ string language_pack_database_path_;
+ string localization_target_;
+ string language_pack_id_;
+ string key_;
+
+ getLanguagePackString();
+
+ getLanguagePackString(string const &language_pack_database_path_, string const &localization_target_, string const &language_pack_id_, string const &key_);
+
+ static const std::int32_t ID = 150789747;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<LanguagePackStringValue>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getLanguagePackStrings final : public Function {
+ public:
+ string language_pack_id_;
+ array<string> keys_;
+
+ getLanguagePackStrings();
+
+ getLanguagePackStrings(string const &language_pack_id_, array<string> &&keys_);
+
+ static const std::int32_t ID = 1246259088;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<languagePackStrings>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getLocalizationTargetInfo final : public Function {
+ public:
+ bool only_local_;
+
+ getLocalizationTargetInfo();
+
+ explicit getLocalizationTargetInfo(bool only_local_);
+
+ static const std::int32_t ID = 1849499526;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<localizationTargetInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getLogStream final : public Function {
+ public:
+
+ getLogStream();
+
+ static const std::int32_t ID = 1167608667;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<LogStream>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getLogTagVerbosityLevel final : public Function {
+ public:
+ string tag_;
+
+ getLogTagVerbosityLevel();
+
+ explicit getLogTagVerbosityLevel(string const &tag_);
+
+ static const std::int32_t ID = 951004547;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<logVerbosityLevel>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getLogTags final : public Function {
+ public:
+
+ getLogTags();
+
+ static const std::int32_t ID = -254449190;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<logTags>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getLogVerbosityLevel final : public Function {
+ public:
+
+ getLogVerbosityLevel();
+
+ static const std::int32_t ID = 594057956;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<logVerbosityLevel>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getLoginUrl final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ int53 button_id_;
+ bool allow_write_access_;
+
+ getLoginUrl();
+
+ getLoginUrl(int53 chat_id_, int53 message_id_, int53 button_id_, bool allow_write_access_);
+
+ static const std::int32_t ID = 791844305;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<httpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getLoginUrlInfo final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ int53 button_id_;
+
+ getLoginUrlInfo();
+
+ getLoginUrlInfo(int53 chat_id_, int53 message_id_, int53 button_id_);
+
+ static const std::int32_t ID = -859202125;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<LoginUrlInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMapThumbnailFile final : public Function {
+ public:
+ object_ptr<location> location_;
+ int32 zoom_;
+ int32 width_;
+ int32 height_;
+ int32 scale_;
+ int53 chat_id_;
+
+ getMapThumbnailFile();
+
+ getMapThumbnailFile(object_ptr<location> &&location_, int32 zoom_, int32 width_, int32 height_, int32 scale_, int53 chat_id_);
+
+ static const std::int32_t ID = -152660070;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<file>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMarkdownText final : public Function {
+ public:
+ object_ptr<formattedText> text_;
+
+ getMarkdownText();
+
+ explicit getMarkdownText(object_ptr<formattedText> &&text_);
+
+ static const std::int32_t ID = 164524584;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<formattedText>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMe final : public Function {
+ public:
+
+ getMe();
+
+ static const std::int32_t ID = -191516033;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<user>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMenuButton final : public Function {
+ public:
+ int53 user_id_;
+
+ getMenuButton();
+
+ explicit getMenuButton(int53 user_id_);
+
+ static const std::int32_t ID = -437324736;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<botMenuButton>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessage final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ getMessage();
+
+ getMessage(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = -1821196160;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageAddedReactions final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<ReactionType> reaction_type_;
+ string offset_;
+ int32 limit_;
+
+ getMessageAddedReactions();
+
+ getMessageAddedReactions(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_, string const &offset_, int32 limit_);
+
+ static const std::int32_t ID = 2110172754;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<addedReactions>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageAvailableReactions final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ int32 row_size_;
+
+ getMessageAvailableReactions();
+
+ getMessageAvailableReactions(int53 chat_id_, int53 message_id_, int32 row_size_);
+
+ static const std::int32_t ID = 1994098354;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<availableReactions>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageEmbeddingCode final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ bool for_album_;
+
+ getMessageEmbeddingCode();
+
+ getMessageEmbeddingCode(int53 chat_id_, int53 message_id_, bool for_album_);
+
+ static const std::int32_t ID = 1654967561;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageFileType final : public Function {
+ public:
+ string message_file_head_;
+
+ getMessageFileType();
+
+ explicit getMessageFileType(string const &message_file_head_);
+
+ static const std::int32_t ID = -490270764;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<MessageFileType>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageImportConfirmationText final : public Function {
+ public:
+ int53 chat_id_;
+
+ getMessageImportConfirmationText();
+
+ explicit getMessageImportConfirmationText(int53 chat_id_);
+
+ static const std::int32_t ID = 390627752;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageLink final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ int32 media_timestamp_;
+ bool for_album_;
+ bool in_message_thread_;
+
+ getMessageLink();
+
+ getMessageLink(int53 chat_id_, int53 message_id_, int32 media_timestamp_, bool for_album_, bool in_message_thread_);
+
+ static const std::int32_t ID = -984158342;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messageLink>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageLinkInfo final : public Function {
+ public:
+ string url_;
+
+ getMessageLinkInfo();
+
+ explicit getMessageLinkInfo(string const &url_);
+
+ static const std::int32_t ID = -700533672;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messageLinkInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageLocally final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ getMessageLocally();
+
+ getMessageLocally(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = -603575444;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessagePublicForwards final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ string offset_;
+ int32 limit_;
+
+ getMessagePublicForwards();
+
+ getMessagePublicForwards(int53 chat_id_, int53 message_id_, string const &offset_, int32 limit_);
+
+ static const std::int32_t ID = 1611049289;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<foundMessages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageStatistics final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ bool is_dark_;
+
+ getMessageStatistics();
+
+ getMessageStatistics(int53 chat_id_, int53 message_id_, bool is_dark_);
+
+ static const std::int32_t ID = 1270194648;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messageStatistics>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageThread final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ getMessageThread();
+
+ getMessageThread(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = 2062695998;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messageThreadInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageThreadHistory final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ int53 from_message_id_;
+ int32 offset_;
+ int32 limit_;
+
+ getMessageThreadHistory();
+
+ getMessageThreadHistory(int53 chat_id_, int53 message_id_, int53 from_message_id_, int32 offset_, int32 limit_);
+
+ static const std::int32_t ID = -1808411608;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessageViewers final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ getMessageViewers();
+
+ getMessageViewers(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = -1879496099;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<users>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getMessages final : public Function {
+ public:
+ int53 chat_id_;
+ array<int53> message_ids_;
+
+ getMessages();
+
+ getMessages(int53 chat_id_, array<int53> &&message_ids_);
+
+ static const std::int32_t ID = 425299338;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getNetworkStatistics final : public Function {
+ public:
+ bool only_current_;
+
+ getNetworkStatistics();
+
+ explicit getNetworkStatistics(bool only_current_);
+
+ static const std::int32_t ID = -986228706;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<networkStatistics>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getOption final : public Function {
+ public:
+ string name_;
+
+ getOption();
+
+ explicit getOption(string const &name_);
+
+ static const std::int32_t ID = -1572495746;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<OptionValue>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPassportAuthorizationForm final : public Function {
+ public:
+ int53 bot_user_id_;
+ string scope_;
+ string public_key_;
+ string nonce_;
+
+ getPassportAuthorizationForm();
+
+ getPassportAuthorizationForm(int53 bot_user_id_, string const &scope_, string const &public_key_, string const &nonce_);
+
+ static const std::int32_t ID = 1636107398;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<passportAuthorizationForm>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPassportAuthorizationFormAvailableElements final : public Function {
+ public:
+ int32 autorization_form_id_;
+ string password_;
+
+ getPassportAuthorizationFormAvailableElements();
+
+ getPassportAuthorizationFormAvailableElements(int32 autorization_form_id_, string const &password_);
+
+ static const std::int32_t ID = 1738134754;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<passportElementsWithErrors>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPassportElement final : public Function {
+ public:
+ object_ptr<PassportElementType> type_;
+ string password_;
+
+ getPassportElement();
+
+ getPassportElement(object_ptr<PassportElementType> &&type_, string const &password_);
+
+ static const std::int32_t ID = -1882398342;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<PassportElement>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPasswordState final : public Function {
+ public:
+
+ getPasswordState();
+
+ static const std::int32_t ID = -174752904;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<passwordState>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPaymentForm final : public Function {
+ public:
+ object_ptr<InputInvoice> input_invoice_;
+ object_ptr<themeParameters> theme_;
+
+ getPaymentForm();
+
+ getPaymentForm(object_ptr<InputInvoice> &&input_invoice_, object_ptr<themeParameters> &&theme_);
+
+ static const std::int32_t ID = -1924172076;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<paymentForm>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPaymentReceipt final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ getPaymentReceipt();
+
+ getPaymentReceipt(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = 1013758294;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<paymentReceipt>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPhoneNumberInfo final : public Function {
+ public:
+ string phone_number_prefix_;
+
+ getPhoneNumberInfo();
+
+ explicit getPhoneNumberInfo(string const &phone_number_prefix_);
+
+ static const std::int32_t ID = -1608344583;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phoneNumberInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPhoneNumberInfoSync final : public Function {
+ public:
+ string language_code_;
+ string phone_number_prefix_;
+
+ getPhoneNumberInfoSync();
+
+ getPhoneNumberInfoSync(string const &language_code_, string const &phone_number_prefix_);
+
+ static const std::int32_t ID = 547061048;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phoneNumberInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPollVoters final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ int32 option_id_;
+ int32 offset_;
+ int32 limit_;
+
+ getPollVoters();
+
+ getPollVoters(int53 chat_id_, int53 message_id_, int32 option_id_, int32 offset_, int32 limit_);
+
+ static const std::int32_t ID = 2075288734;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<users>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPreferredCountryLanguage final : public Function {
+ public:
+ string country_code_;
+
+ getPreferredCountryLanguage();
+
+ explicit getPreferredCountryLanguage(string const &country_code_);
+
+ static const std::int32_t ID = -933049386;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPremiumFeatures final : public Function {
+ public:
+ object_ptr<PremiumSource> source_;
+
+ getPremiumFeatures();
+
+ explicit getPremiumFeatures(object_ptr<PremiumSource> &&source_);
+
+ static const std::int32_t ID = -1260640695;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<premiumFeatures>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPremiumLimit final : public Function {
+ public:
+ object_ptr<PremiumLimitType> limit_type_;
+
+ getPremiumLimit();
+
+ explicit getPremiumLimit(object_ptr<PremiumLimitType> &&limit_type_);
+
+ static const std::int32_t ID = 1075313898;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<premiumLimit>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPremiumState final : public Function {
+ public:
+
+ getPremiumState();
+
+ static const std::int32_t ID = 663632610;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<premiumState>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPremiumStickerExamples final : public Function {
+ public:
+
+ getPremiumStickerExamples();
+
+ static const std::int32_t ID = 1399442328;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPremiumStickers final : public Function {
+ public:
+ int32 limit_;
+
+ getPremiumStickers();
+
+ explicit getPremiumStickers(int32 limit_);
+
+ static const std::int32_t ID = -280950192;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getProxies final : public Function {
+ public:
+
+ getProxies();
+
+ static const std::int32_t ID = -95026381;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<proxies>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getProxyLink final : public Function {
+ public:
+ int32 proxy_id_;
+
+ getProxyLink();
+
+ explicit getProxyLink(int32 proxy_id_);
+
+ static const std::int32_t ID = -1054495112;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<httpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getPushReceiverId final : public Function {
+ public:
+ string payload_;
+
+ getPushReceiverId();
+
+ explicit getPushReceiverId(string const &payload_);
+
+ static const std::int32_t ID = -286505294;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<pushReceiverId>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getRecentEmojiStatuses final : public Function {
+ public:
+
+ getRecentEmojiStatuses();
+
+ static const std::int32_t ID = -1371914967;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emojiStatuses>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getRecentInlineBots final : public Function {
+ public:
+
+ getRecentInlineBots();
+
+ static const std::int32_t ID = 1437823548;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<users>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getRecentStickers final : public Function {
+ public:
+ bool is_attached_;
+
+ getRecentStickers();
+
+ explicit getRecentStickers(bool is_attached_);
+
+ static const std::int32_t ID = -579622241;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getRecentlyOpenedChats final : public Function {
+ public:
+ int32 limit_;
+
+ getRecentlyOpenedChats();
+
+ explicit getRecentlyOpenedChats(int32 limit_);
+
+ static const std::int32_t ID = -1924156893;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getRecentlyVisitedTMeUrls final : public Function {
+ public:
+ string referrer_;
+
+ getRecentlyVisitedTMeUrls();
+
+ explicit getRecentlyVisitedTMeUrls(string const &referrer_);
+
+ static const std::int32_t ID = 806754961;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<tMeUrls>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getRecommendedChatFilters final : public Function {
+ public:
+
+ getRecommendedChatFilters();
+
+ static const std::int32_t ID = -779390746;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<recommendedChatFilters>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getRecoveryEmailAddress final : public Function {
+ public:
+ string password_;
+
+ getRecoveryEmailAddress();
+
+ explicit getRecoveryEmailAddress(string const &password_);
+
+ static const std::int32_t ID = -1594770947;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<recoveryEmailAddress>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getRemoteFile final : public Function {
+ public:
+ string remote_file_id_;
+ object_ptr<FileType> file_type_;
+
+ getRemoteFile();
+
+ getRemoteFile(string const &remote_file_id_, object_ptr<FileType> &&file_type_);
+
+ static const std::int32_t ID = 2137204530;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<file>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getRepliedMessage final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ getRepliedMessage();
+
+ getRepliedMessage(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = -641918531;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSavedAnimations final : public Function {
+ public:
+
+ getSavedAnimations();
+
+ static const std::int32_t ID = 7051032;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<animations>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSavedNotificationSound final : public Function {
+ public:
+ int64 notification_sound_id_;
+
+ getSavedNotificationSound();
+
+ explicit getSavedNotificationSound(int64 notification_sound_id_);
+
+ static const std::int32_t ID = 459569431;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<notificationSounds>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSavedNotificationSounds final : public Function {
+ public:
+
+ getSavedNotificationSounds();
+
+ static const std::int32_t ID = -1070305368;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<notificationSounds>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSavedOrderInfo final : public Function {
+ public:
+
+ getSavedOrderInfo();
+
+ static const std::int32_t ID = -1152016675;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<orderInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getScopeNotificationSettings final : public Function {
+ public:
+ object_ptr<NotificationSettingsScope> scope_;
+
+ getScopeNotificationSettings();
+
+ explicit getScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_);
+
+ static const std::int32_t ID = -995613361;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<scopeNotificationSettings>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSecretChat final : public Function {
+ public:
+ int32 secret_chat_id_;
+
+ getSecretChat();
+
+ explicit getSecretChat(int32 secret_chat_id_);
+
+ static const std::int32_t ID = 40599169;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<secretChat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getStatisticalGraph final : public Function {
+ public:
+ int53 chat_id_;
+ string token_;
+ int53 x_;
+
+ getStatisticalGraph();
+
+ getStatisticalGraph(int53 chat_id_, string const &token_, int53 x_);
+
+ static const std::int32_t ID = 1100975515;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<StatisticalGraph>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getStickerEmojis final : public Function {
+ public:
+ object_ptr<InputFile> sticker_;
+
+ getStickerEmojis();
+
+ explicit getStickerEmojis(object_ptr<InputFile> &&sticker_);
+
+ static const std::int32_t ID = -1895508665;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emojis>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getStickerSet final : public Function {
+ public:
+ int64 set_id_;
+
+ getStickerSet();
+
+ explicit getStickerSet(int64 set_id_);
+
+ static const std::int32_t ID = 1052318659;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickerSet>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getStickers final : public Function {
+ public:
+ object_ptr<StickerType> sticker_type_;
+ string query_;
+ int32 limit_;
+ int53 chat_id_;
+
+ getStickers();
+
+ getStickers(object_ptr<StickerType> &&sticker_type_, string const &query_, int32 limit_, int53 chat_id_);
+
+ static const std::int32_t ID = 1158058819;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getStorageStatistics final : public Function {
+ public:
+ int32 chat_limit_;
+
+ getStorageStatistics();
+
+ explicit getStorageStatistics(int32 chat_limit_);
+
+ static const std::int32_t ID = -853193929;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<storageStatistics>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getStorageStatisticsFast final : public Function {
+ public:
+
+ getStorageStatisticsFast();
+
+ static const std::int32_t ID = 61368066;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<storageStatisticsFast>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSuggestedFileName final : public Function {
+ public:
+ int32 file_id_;
+ string directory_;
+
+ getSuggestedFileName();
+
+ getSuggestedFileName(int32 file_id_, string const &directory_);
+
+ static const std::int32_t ID = -2049399674;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSuggestedStickerSetName final : public Function {
+ public:
+ string title_;
+
+ getSuggestedStickerSetName();
+
+ explicit getSuggestedStickerSetName(string const &title_);
+
+ static const std::int32_t ID = -1340995520;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSuitableDiscussionChats final : public Function {
+ public:
+
+ getSuitableDiscussionChats();
+
+ static const std::int32_t ID = 49044982;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSupergroup final : public Function {
+ public:
+ int53 supergroup_id_;
+
+ getSupergroup();
+
+ explicit getSupergroup(int53 supergroup_id_);
+
+ static const std::int32_t ID = 989663458;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<supergroup>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSupergroupFullInfo final : public Function {
+ public:
+ int53 supergroup_id_;
+
+ getSupergroupFullInfo();
+
+ explicit getSupergroupFullInfo(int53 supergroup_id_);
+
+ static const std::int32_t ID = 1099776056;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<supergroupFullInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSupergroupMembers final : public Function {
+ public:
+ int53 supergroup_id_;
+ object_ptr<SupergroupMembersFilter> filter_;
+ int32 offset_;
+ int32 limit_;
+
+ getSupergroupMembers();
+
+ getSupergroupMembers(int53 supergroup_id_, object_ptr<SupergroupMembersFilter> &&filter_, int32 offset_, int32 limit_);
+
+ static const std::int32_t ID = -570940984;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatMembers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getSupportUser final : public Function {
+ public:
+
+ getSupportUser();
+
+ static const std::int32_t ID = -1733497700;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<user>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getTemporaryPasswordState final : public Function {
+ public:
+
+ getTemporaryPasswordState();
+
+ static const std::int32_t ID = -12670830;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<temporaryPasswordState>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getTextEntities final : public Function {
+ public:
+ string text_;
+
+ getTextEntities();
+
+ explicit getTextEntities(string const &text_);
+
+ static const std::int32_t ID = -341490693;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<textEntities>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getThemeParametersJsonString final : public Function {
+ public:
+ object_ptr<themeParameters> theme_;
+
+ getThemeParametersJsonString();
+
+ explicit getThemeParametersJsonString(object_ptr<themeParameters> &&theme_);
+
+ static const std::int32_t ID = -1850145288;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getThemedEmojiStatuses final : public Function {
+ public:
+
+ getThemedEmojiStatuses();
+
+ static const std::int32_t ID = 1791346882;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emojiStatuses>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getTopChats final : public Function {
+ public:
+ object_ptr<TopChatCategory> category_;
+ int32 limit_;
+
+ getTopChats();
+
+ getTopChats(object_ptr<TopChatCategory> &&category_, int32 limit_);
+
+ static const std::int32_t ID = -388410847;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getTrendingStickerSets final : public Function {
+ public:
+ object_ptr<StickerType> sticker_type_;
+ int32 offset_;
+ int32 limit_;
+
+ getTrendingStickerSets();
+
+ getTrendingStickerSets(object_ptr<StickerType> &&sticker_type_, int32 offset_, int32 limit_);
+
+ static const std::int32_t ID = -531085986;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<trendingStickerSets>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getUser final : public Function {
+ public:
+ int53 user_id_;
+
+ getUser();
+
+ explicit getUser(int53 user_id_);
+
+ static const std::int32_t ID = 1117363211;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<user>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getUserFullInfo final : public Function {
+ public:
+ int53 user_id_;
+
+ getUserFullInfo();
+
+ explicit getUserFullInfo(int53 user_id_);
+
+ static const std::int32_t ID = -776823720;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<userFullInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getUserPrivacySettingRules final : public Function {
+ public:
+ object_ptr<UserPrivacySetting> setting_;
+
+ getUserPrivacySettingRules();
+
+ explicit getUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_);
+
+ static const std::int32_t ID = -2077223311;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<userPrivacySettingRules>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getUserProfilePhotos final : public Function {
+ public:
+ int53 user_id_;
+ int32 offset_;
+ int32 limit_;
+
+ getUserProfilePhotos();
+
+ getUserProfilePhotos(int53 user_id_, int32 offset_, int32 limit_);
+
+ static const std::int32_t ID = -908132798;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatPhotos>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getUserSupportInfo final : public Function {
+ public:
+ int53 user_id_;
+
+ getUserSupportInfo();
+
+ explicit getUserSupportInfo(int53 user_id_);
+
+ static const std::int32_t ID = 1957008133;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<userSupportInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getVideoChatAvailableParticipants final : public Function {
+ public:
+ int53 chat_id_;
+
+ getVideoChatAvailableParticipants();
+
+ explicit getVideoChatAvailableParticipants(int53 chat_id_);
+
+ static const std::int32_t ID = -1000496379;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messageSenders>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getVideoChatRtmpUrl final : public Function {
+ public:
+ int53 chat_id_;
+
+ getVideoChatRtmpUrl();
+
+ explicit getVideoChatRtmpUrl(int53 chat_id_);
+
+ static const std::int32_t ID = 1210784543;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<rtmpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getWebAppUrl final : public Function {
+ public:
+ int53 bot_user_id_;
+ string url_;
+ object_ptr<themeParameters> theme_;
+ string application_name_;
+
+ getWebAppUrl();
+
+ getWebAppUrl(int53 bot_user_id_, string const &url_, object_ptr<themeParameters> &&theme_, string const &application_name_);
+
+ static const std::int32_t ID = 1690578110;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<httpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getWebPageInstantView final : public Function {
+ public:
+ string url_;
+ bool force_full_;
+
+ getWebPageInstantView();
+
+ getWebPageInstantView(string const &url_, bool force_full_);
+
+ static const std::int32_t ID = -1962649975;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<webPageInstantView>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class getWebPagePreview final : public Function {
+ public:
+ object_ptr<formattedText> text_;
+
+ getWebPagePreview();
+
+ explicit getWebPagePreview(object_ptr<formattedText> &&text_);
+
+ static const std::int32_t ID = 573441580;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<webPage>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class hideSuggestedAction final : public Function {
+ public:
+ object_ptr<SuggestedAction> action_;
+
+ hideSuggestedAction();
+
+ explicit hideSuggestedAction(object_ptr<SuggestedAction> &&action_);
+
+ static const std::int32_t ID = -1561384065;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class importContacts final : public Function {
+ public:
+ array<object_ptr<contact>> contacts_;
+
+ importContacts();
+
+ explicit importContacts(array<object_ptr<contact>> &&contacts_);
+
+ static const std::int32_t ID = -215132767;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<importedContacts>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class importMessages final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<InputFile> message_file_;
+ array<object_ptr<InputFile>> attached_files_;
+
+ importMessages();
+
+ importMessages(int53 chat_id_, object_ptr<InputFile> &&message_file_, array<object_ptr<InputFile>> &&attached_files_);
+
+ static const std::int32_t ID = -1864116784;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inviteGroupCallParticipants final : public Function {
+ public:
+ int32 group_call_id_;
+ array<int53> user_ids_;
+
+ inviteGroupCallParticipants();
+
+ inviteGroupCallParticipants(int32 group_call_id_, array<int53> &&user_ids_);
+
+ static const std::int32_t ID = 1867097679;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class joinChat final : public Function {
+ public:
+ int53 chat_id_;
+
+ joinChat();
+
+ explicit joinChat(int53 chat_id_);
+
+ static const std::int32_t ID = 326769313;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class joinChatByInviteLink final : public Function {
+ public:
+ string invite_link_;
+
+ joinChatByInviteLink();
+
+ explicit joinChatByInviteLink(string const &invite_link_);
+
+ static const std::int32_t ID = -1049973882;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class joinGroupCall final : public Function {
+ public:
+ int32 group_call_id_;
+ object_ptr<MessageSender> participant_id_;
+ int32 audio_source_id_;
+ string payload_;
+ bool is_muted_;
+ bool is_my_video_enabled_;
+ string invite_hash_;
+
+ joinGroupCall();
+
+ joinGroupCall(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, int32 audio_source_id_, string const &payload_, bool is_muted_, bool is_my_video_enabled_, string const &invite_hash_);
+
+ static const std::int32_t ID = -1043773467;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class leaveChat final : public Function {
+ public:
+ int53 chat_id_;
+
+ leaveChat();
+
+ explicit leaveChat(int53 chat_id_);
+
+ static const std::int32_t ID = -1825080735;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class leaveGroupCall final : public Function {
+ public:
+ int32 group_call_id_;
+
+ leaveGroupCall();
+
+ explicit leaveGroupCall(int32 group_call_id_);
+
+ static const std::int32_t ID = 980152233;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class loadChats final : public Function {
+ public:
+ object_ptr<ChatList> chat_list_;
+ int32 limit_;
+
+ loadChats();
+
+ loadChats(object_ptr<ChatList> &&chat_list_, int32 limit_);
+
+ static const std::int32_t ID = -1885635205;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class loadGroupCallParticipants final : public Function {
+ public:
+ int32 group_call_id_;
+ int32 limit_;
+
+ loadGroupCallParticipants();
+
+ loadGroupCallParticipants(int32 group_call_id_, int32 limit_);
+
+ static const std::int32_t ID = 938720974;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class logOut final : public Function {
+ public:
+
+ logOut();
+
+ static const std::int32_t ID = -1581923301;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class openChat final : public Function {
+ public:
+ int53 chat_id_;
+
+ openChat();
+
+ explicit openChat(int53 chat_id_);
+
+ static const std::int32_t ID = -323371509;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class openMessageContent final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ openMessageContent();
+
+ openMessageContent(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = -739088005;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class openWebApp final : public Function {
+ public:
+ int53 chat_id_;
+ int53 bot_user_id_;
+ string url_;
+ object_ptr<themeParameters> theme_;
+ string application_name_;
+ int53 message_thread_id_;
+ int53 reply_to_message_id_;
+
+ openWebApp();
+
+ openWebApp(int53 chat_id_, int53 bot_user_id_, string const &url_, object_ptr<themeParameters> &&theme_, string const &application_name_, int53 message_thread_id_, int53 reply_to_message_id_);
+
+ static const std::int32_t ID = -763742925;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<webAppInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class optimizeStorage final : public Function {
+ public:
+ int53 size_;
+ int32 ttl_;
+ int32 count_;
+ int32 immunity_delay_;
+ array<object_ptr<FileType>> file_types_;
+ array<int53> chat_ids_;
+ array<int53> exclude_chat_ids_;
+ bool return_deleted_file_statistics_;
+ int32 chat_limit_;
+
+ optimizeStorage();
+
+ optimizeStorage(int53 size_, int32 ttl_, int32 count_, int32 immunity_delay_, array<object_ptr<FileType>> &&file_types_, array<int53> &&chat_ids_, array<int53> &&exclude_chat_ids_, bool return_deleted_file_statistics_, int32 chat_limit_);
+
+ static const std::int32_t ID = 853186759;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<storageStatistics>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class parseMarkdown final : public Function {
+ public:
+ object_ptr<formattedText> text_;
+
+ parseMarkdown();
+
+ explicit parseMarkdown(object_ptr<formattedText> &&text_);
+
+ static const std::int32_t ID = 756366063;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<formattedText>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class parseTextEntities final : public Function {
+ public:
+ string text_;
+ object_ptr<TextParseMode> parse_mode_;
+
+ parseTextEntities();
+
+ parseTextEntities(string const &text_, object_ptr<TextParseMode> &&parse_mode_);
+
+ static const std::int32_t ID = -1709194593;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<formattedText>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pinChatMessage final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ bool disable_notification_;
+ bool only_for_self_;
+
+ pinChatMessage();
+
+ pinChatMessage(int53 chat_id_, int53 message_id_, bool disable_notification_, bool only_for_self_);
+
+ static const std::int32_t ID = 2034719663;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pingProxy final : public Function {
+ public:
+ int32 proxy_id_;
+
+ pingProxy();
+
+ explicit pingProxy(int32 proxy_id_);
+
+ static const std::int32_t ID = -979681103;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<seconds>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class preliminaryUploadFile final : public Function {
+ public:
+ object_ptr<InputFile> file_;
+ object_ptr<FileType> file_type_;
+ int32 priority_;
+
+ preliminaryUploadFile();
+
+ preliminaryUploadFile(object_ptr<InputFile> &&file_, object_ptr<FileType> &&file_type_, int32 priority_);
+
+ static const std::int32_t ID = 1894239129;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<file>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class processChatJoinRequest final : public Function {
+ public:
+ int53 chat_id_;
+ int53 user_id_;
+ bool approve_;
+
+ processChatJoinRequest();
+
+ processChatJoinRequest(int53 chat_id_, int53 user_id_, bool approve_);
+
+ static const std::int32_t ID = 1004876963;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class processChatJoinRequests final : public Function {
+ public:
+ int53 chat_id_;
+ string invite_link_;
+ bool approve_;
+
+ processChatJoinRequests();
+
+ processChatJoinRequests(int53 chat_id_, string const &invite_link_, bool approve_);
+
+ static const std::int32_t ID = 1048722894;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class processPushNotification final : public Function {
+ public:
+ string payload_;
+
+ processPushNotification();
+
+ explicit processPushNotification(string const &payload_);
+
+ static const std::int32_t ID = 786679952;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class rateSpeechRecognition final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ bool is_good_;
+
+ rateSpeechRecognition();
+
+ rateSpeechRecognition(int53 chat_id_, int53 message_id_, bool is_good_);
+
+ static const std::int32_t ID = -287521867;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class readAllChatMentions final : public Function {
+ public:
+ int53 chat_id_;
+
+ readAllChatMentions();
+
+ explicit readAllChatMentions(int53 chat_id_);
+
+ static const std::int32_t ID = 1357558453;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class readAllChatReactions final : public Function {
+ public:
+ int53 chat_id_;
+
+ readAllChatReactions();
+
+ explicit readAllChatReactions(int53 chat_id_);
+
+ static const std::int32_t ID = 1421973357;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class readAllMessageThreadMentions final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+
+ readAllMessageThreadMentions();
+
+ readAllMessageThreadMentions(int53 chat_id_, int53 message_thread_id_);
+
+ static const std::int32_t ID = 1323136341;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class readAllMessageThreadReactions final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+
+ readAllMessageThreadReactions();
+
+ readAllMessageThreadReactions(int53 chat_id_, int53 message_thread_id_);
+
+ static const std::int32_t ID = -792975554;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class readFilePart final : public Function {
+ public:
+ int32 file_id_;
+ int53 offset_;
+ int53 count_;
+
+ readFilePart();
+
+ readFilePart(int32 file_id_, int53 offset_, int53 count_);
+
+ static const std::int32_t ID = 906798861;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<filePart>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class recognizeSpeech final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ recognizeSpeech();
+
+ recognizeSpeech(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = 1741947577;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class recoverAuthenticationPassword final : public Function {
+ public:
+ string recovery_code_;
+ string new_password_;
+ string new_hint_;
+
+ recoverAuthenticationPassword();
+
+ recoverAuthenticationPassword(string const &recovery_code_, string const &new_password_, string const &new_hint_);
+
+ static const std::int32_t ID = -131001053;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class recoverPassword final : public Function {
+ public:
+ string recovery_code_;
+ string new_password_;
+ string new_hint_;
+
+ recoverPassword();
+
+ recoverPassword(string const &recovery_code_, string const &new_password_, string const &new_hint_);
+
+ static const std::int32_t ID = -1524262541;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<passwordState>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class registerDevice final : public Function {
+ public:
+ object_ptr<DeviceToken> device_token_;
+ array<int53> other_user_ids_;
+
+ registerDevice();
+
+ registerDevice(object_ptr<DeviceToken> &&device_token_, array<int53> &&other_user_ids_);
+
+ static const std::int32_t ID = 366088823;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<pushReceiverId>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class registerUser final : public Function {
+ public:
+ string first_name_;
+ string last_name_;
+
+ registerUser();
+
+ registerUser(string const &first_name_, string const &last_name_);
+
+ static const std::int32_t ID = -109994467;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeAllFilesFromDownloads final : public Function {
+ public:
+ bool only_active_;
+ bool only_completed_;
+ bool delete_from_cache_;
+
+ removeAllFilesFromDownloads();
+
+ removeAllFilesFromDownloads(bool only_active_, bool only_completed_, bool delete_from_cache_);
+
+ static const std::int32_t ID = -1186433402;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeBackground final : public Function {
+ public:
+ int64 background_id_;
+
+ removeBackground();
+
+ explicit removeBackground(int64 background_id_);
+
+ static const std::int32_t ID = -1484545642;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeChatActionBar final : public Function {
+ public:
+ int53 chat_id_;
+
+ removeChatActionBar();
+
+ explicit removeChatActionBar(int53 chat_id_);
+
+ static const std::int32_t ID = -1650968070;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeContacts final : public Function {
+ public:
+ array<int53> user_ids_;
+
+ removeContacts();
+
+ explicit removeContacts(array<int53> &&user_ids_);
+
+ static const std::int32_t ID = 1943858054;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeFavoriteSticker final : public Function {
+ public:
+ object_ptr<InputFile> sticker_;
+
+ removeFavoriteSticker();
+
+ explicit removeFavoriteSticker(object_ptr<InputFile> &&sticker_);
+
+ static const std::int32_t ID = 1152945264;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeFileFromDownloads final : public Function {
+ public:
+ int32 file_id_;
+ bool delete_from_cache_;
+
+ removeFileFromDownloads();
+
+ removeFileFromDownloads(int32 file_id_, bool delete_from_cache_);
+
+ static const std::int32_t ID = 1460060142;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeMessageReaction final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<ReactionType> reaction_type_;
+
+ removeMessageReaction();
+
+ removeMessageReaction(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_);
+
+ static const std::int32_t ID = -1756934789;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeNotification final : public Function {
+ public:
+ int32 notification_group_id_;
+ int32 notification_id_;
+
+ removeNotification();
+
+ removeNotification(int32 notification_group_id_, int32 notification_id_);
+
+ static const std::int32_t ID = 862630734;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeNotificationGroup final : public Function {
+ public:
+ int32 notification_group_id_;
+ int32 max_notification_id_;
+
+ removeNotificationGroup();
+
+ removeNotificationGroup(int32 notification_group_id_, int32 max_notification_id_);
+
+ static const std::int32_t ID = 1713005454;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeProxy final : public Function {
+ public:
+ int32 proxy_id_;
+
+ removeProxy();
+
+ explicit removeProxy(int32 proxy_id_);
+
+ static const std::int32_t ID = 1369219847;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeRecentHashtag final : public Function {
+ public:
+ string hashtag_;
+
+ removeRecentHashtag();
+
+ explicit removeRecentHashtag(string const &hashtag_);
+
+ static const std::int32_t ID = -1013735260;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeRecentSticker final : public Function {
+ public:
+ bool is_attached_;
+ object_ptr<InputFile> sticker_;
+
+ removeRecentSticker();
+
+ removeRecentSticker(bool is_attached_, object_ptr<InputFile> &&sticker_);
+
+ static const std::int32_t ID = 1246577677;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeRecentlyFoundChat final : public Function {
+ public:
+ int53 chat_id_;
+
+ removeRecentlyFoundChat();
+
+ explicit removeRecentlyFoundChat(int53 chat_id_);
+
+ static const std::int32_t ID = 717340444;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeSavedAnimation final : public Function {
+ public:
+ object_ptr<InputFile> animation_;
+
+ removeSavedAnimation();
+
+ explicit removeSavedAnimation(object_ptr<InputFile> &&animation_);
+
+ static const std::int32_t ID = -495605479;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeSavedNotificationSound final : public Function {
+ public:
+ int64 notification_sound_id_;
+
+ removeSavedNotificationSound();
+
+ explicit removeSavedNotificationSound(int64 notification_sound_id_);
+
+ static const std::int32_t ID = -480032946;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeStickerFromSet final : public Function {
+ public:
+ object_ptr<InputFile> sticker_;
+
+ removeStickerFromSet();
+
+ explicit removeStickerFromSet(object_ptr<InputFile> &&sticker_);
+
+ static const std::int32_t ID = 1642196644;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class removeTopChat final : public Function {
+ public:
+ object_ptr<TopChatCategory> category_;
+ int53 chat_id_;
+
+ removeTopChat();
+
+ removeTopChat(object_ptr<TopChatCategory> &&category_, int53 chat_id_);
+
+ static const std::int32_t ID = -1907876267;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reorderActiveUsernames final : public Function {
+ public:
+ array<string> usernames_;
+
+ reorderActiveUsernames();
+
+ explicit reorderActiveUsernames(array<string> &&usernames_);
+
+ static const std::int32_t ID = -455399375;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reorderChatFilters final : public Function {
+ public:
+ array<int32> chat_filter_ids_;
+ int32 main_chat_list_position_;
+
+ reorderChatFilters();
+
+ reorderChatFilters(array<int32> &&chat_filter_ids_, int32 main_chat_list_position_);
+
+ static const std::int32_t ID = -1805801313;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reorderInstalledStickerSets final : public Function {
+ public:
+ object_ptr<StickerType> sticker_type_;
+ array<int64> sticker_set_ids_;
+
+ reorderInstalledStickerSets();
+
+ reorderInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, array<int64> &&sticker_set_ids_);
+
+ static const std::int32_t ID = 1074928158;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reorderSupergroupActiveUsernames final : public Function {
+ public:
+ int53 supergroup_id_;
+ array<string> usernames_;
+
+ reorderSupergroupActiveUsernames();
+
+ reorderSupergroupActiveUsernames(int53 supergroup_id_, array<string> &&usernames_);
+
+ static const std::int32_t ID = -1962466095;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class replacePrimaryChatInviteLink final : public Function {
+ public:
+ int53 chat_id_;
+
+ replacePrimaryChatInviteLink();
+
+ explicit replacePrimaryChatInviteLink(int53 chat_id_);
+
+ static const std::int32_t ID = 1067350941;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatInviteLink>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class replaceVideoChatRtmpUrl final : public Function {
+ public:
+ int53 chat_id_;
+
+ replaceVideoChatRtmpUrl();
+
+ explicit replaceVideoChatRtmpUrl(int53 chat_id_);
+
+ static const std::int32_t ID = 558862304;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<rtmpUrl>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reportChat final : public Function {
+ public:
+ int53 chat_id_;
+ array<int53> message_ids_;
+ object_ptr<ChatReportReason> reason_;
+ string text_;
+
+ reportChat();
+
+ reportChat(int53 chat_id_, array<int53> &&message_ids_, object_ptr<ChatReportReason> &&reason_, string const &text_);
+
+ static const std::int32_t ID = -964543587;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reportChatPhoto final : public Function {
+ public:
+ int53 chat_id_;
+ int32 file_id_;
+ object_ptr<ChatReportReason> reason_;
+ string text_;
+
+ reportChatPhoto();
+
+ reportChatPhoto(int53 chat_id_, int32 file_id_, object_ptr<ChatReportReason> &&reason_, string const &text_);
+
+ static const std::int32_t ID = 734652708;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reportMessageReactions final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<MessageSender> sender_id_;
+
+ reportMessageReactions();
+
+ reportMessageReactions(int53 chat_id_, int53 message_id_, object_ptr<MessageSender> &&sender_id_);
+
+ static const std::int32_t ID = 919111719;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reportSupergroupSpam final : public Function {
+ public:
+ int53 supergroup_id_;
+ array<int53> message_ids_;
+
+ reportSupergroupSpam();
+
+ reportSupergroupSpam(int53 supergroup_id_, array<int53> &&message_ids_);
+
+ static const std::int32_t ID = -94825000;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class requestAuthenticationPasswordRecovery final : public Function {
+ public:
+
+ requestAuthenticationPasswordRecovery();
+
+ static const std::int32_t ID = 1393896118;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class requestPasswordRecovery final : public Function {
+ public:
+
+ requestPasswordRecovery();
+
+ static const std::int32_t ID = -13777582;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emailAddressAuthenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class requestQrCodeAuthentication final : public Function {
+ public:
+ array<int53> other_user_ids_;
+
+ requestQrCodeAuthentication();
+
+ explicit requestQrCodeAuthentication(array<int53> &&other_user_ids_);
+
+ static const std::int32_t ID = 1363496527;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resendAuthenticationCode final : public Function {
+ public:
+
+ resendAuthenticationCode();
+
+ static const std::int32_t ID = -814377191;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resendChangePhoneNumberCode final : public Function {
+ public:
+
+ resendChangePhoneNumberCode();
+
+ static const std::int32_t ID = -786772060;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<authenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resendEmailAddressVerificationCode final : public Function {
+ public:
+
+ resendEmailAddressVerificationCode();
+
+ static const std::int32_t ID = -1872416732;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emailAddressAuthenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resendLoginEmailAddressCode final : public Function {
+ public:
+
+ resendLoginEmailAddressCode();
+
+ static const std::int32_t ID = 292966933;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emailAddressAuthenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resendMessages final : public Function {
+ public:
+ int53 chat_id_;
+ array<int53> message_ids_;
+
+ resendMessages();
+
+ resendMessages(int53 chat_id_, array<int53> &&message_ids_);
+
+ static const std::int32_t ID = -940655817;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resendPhoneNumberConfirmationCode final : public Function {
+ public:
+
+ resendPhoneNumberConfirmationCode();
+
+ static const std::int32_t ID = 2069068522;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<authenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resendPhoneNumberVerificationCode final : public Function {
+ public:
+
+ resendPhoneNumberVerificationCode();
+
+ static const std::int32_t ID = 1367629820;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<authenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resendRecoveryEmailAddressCode final : public Function {
+ public:
+
+ resendRecoveryEmailAddressCode();
+
+ static const std::int32_t ID = 433483548;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<passwordState>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resetAllNotificationSettings final : public Function {
+ public:
+
+ resetAllNotificationSettings();
+
+ static const std::int32_t ID = -174020359;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resetBackgrounds final : public Function {
+ public:
+
+ resetBackgrounds();
+
+ static const std::int32_t ID = 204852088;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resetNetworkStatistics final : public Function {
+ public:
+
+ resetNetworkStatistics();
+
+ static const std::int32_t ID = 1646452102;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class resetPassword final : public Function {
+ public:
+
+ resetPassword();
+
+ static const std::int32_t ID = -593589091;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ResetPasswordResult>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class revokeChatInviteLink final : public Function {
+ public:
+ int53 chat_id_;
+ string invite_link_;
+
+ revokeChatInviteLink();
+
+ revokeChatInviteLink(int53 chat_id_, string const &invite_link_);
+
+ static const std::int32_t ID = -776514135;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatInviteLinks>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class revokeGroupCallInviteLink final : public Function {
+ public:
+ int32 group_call_id_;
+
+ revokeGroupCallInviteLink();
+
+ explicit revokeGroupCallInviteLink(int32 group_call_id_);
+
+ static const std::int32_t ID = 501589140;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class saveApplicationLogEvent final : public Function {
+ public:
+ string type_;
+ int53 chat_id_;
+ object_ptr<JsonValue> data_;
+
+ saveApplicationLogEvent();
+
+ saveApplicationLogEvent(string const &type_, int53 chat_id_, object_ptr<JsonValue> &&data_);
+
+ static const std::int32_t ID = -811154930;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchBackground final : public Function {
+ public:
+ string name_;
+
+ searchBackground();
+
+ explicit searchBackground(string const &name_);
+
+ static const std::int32_t ID = -2130996959;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<background>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchCallMessages final : public Function {
+ public:
+ int53 from_message_id_;
+ int32 limit_;
+ bool only_missed_;
+
+ searchCallMessages();
+
+ searchCallMessages(int53 from_message_id_, int32 limit_, bool only_missed_);
+
+ static const std::int32_t ID = -1077230820;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchChatMembers final : public Function {
+ public:
+ int53 chat_id_;
+ string query_;
+ int32 limit_;
+ object_ptr<ChatMembersFilter> filter_;
+
+ searchChatMembers();
+
+ searchChatMembers(int53 chat_id_, string const &query_, int32 limit_, object_ptr<ChatMembersFilter> &&filter_);
+
+ static const std::int32_t ID = -445823291;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatMembers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchChatMessages final : public Function {
+ public:
+ int53 chat_id_;
+ string query_;
+ object_ptr<MessageSender> sender_id_;
+ int53 from_message_id_;
+ int32 offset_;
+ int32 limit_;
+ object_ptr<SearchMessagesFilter> filter_;
+ int53 message_thread_id_;
+
+ searchChatMessages();
+
+ searchChatMessages(int53 chat_id_, string const &query_, object_ptr<MessageSender> &&sender_id_, int53 from_message_id_, int32 offset_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_, int53 message_thread_id_);
+
+ static const std::int32_t ID = -162154976;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchChatRecentLocationMessages final : public Function {
+ public:
+ int53 chat_id_;
+ int32 limit_;
+
+ searchChatRecentLocationMessages();
+
+ searchChatRecentLocationMessages(int53 chat_id_, int32 limit_);
+
+ static const std::int32_t ID = 950238950;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchChats final : public Function {
+ public:
+ string query_;
+ int32 limit_;
+
+ searchChats();
+
+ searchChats(string const &query_, int32 limit_);
+
+ static const std::int32_t ID = -1879787060;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchChatsNearby final : public Function {
+ public:
+ object_ptr<location> location_;
+
+ searchChatsNearby();
+
+ explicit searchChatsNearby(object_ptr<location> &&location_);
+
+ static const std::int32_t ID = -196753377;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatsNearby>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchChatsOnServer final : public Function {
+ public:
+ string query_;
+ int32 limit_;
+
+ searchChatsOnServer();
+
+ searchChatsOnServer(string const &query_, int32 limit_);
+
+ static const std::int32_t ID = -1158402188;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchContacts final : public Function {
+ public:
+ string query_;
+ int32 limit_;
+
+ searchContacts();
+
+ searchContacts(string const &query_, int32 limit_);
+
+ static const std::int32_t ID = -1794690715;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<users>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchEmojis final : public Function {
+ public:
+ string text_;
+ bool exact_match_;
+ array<string> input_language_codes_;
+
+ searchEmojis();
+
+ searchEmojis(string const &text_, bool exact_match_, array<string> &&input_language_codes_);
+
+ static const std::int32_t ID = 398837927;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emojis>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchFileDownloads final : public Function {
+ public:
+ string query_;
+ bool only_active_;
+ bool only_completed_;
+ string offset_;
+ int32 limit_;
+
+ searchFileDownloads();
+
+ searchFileDownloads(string const &query_, bool only_active_, bool only_completed_, string const &offset_, int32 limit_);
+
+ static const std::int32_t ID = 706611286;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<foundFileDownloads>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchHashtags final : public Function {
+ public:
+ string prefix_;
+ int32 limit_;
+
+ searchHashtags();
+
+ searchHashtags(string const &prefix_, int32 limit_);
+
+ static const std::int32_t ID = 1043637617;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<hashtags>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchInstalledStickerSets final : public Function {
+ public:
+ object_ptr<StickerType> sticker_type_;
+ string query_;
+ int32 limit_;
+
+ searchInstalledStickerSets();
+
+ searchInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, string const &query_, int32 limit_);
+
+ static const std::int32_t ID = 2120122276;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickerSets>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchMessages final : public Function {
+ public:
+ object_ptr<ChatList> chat_list_;
+ string query_;
+ int32 offset_date_;
+ int53 offset_chat_id_;
+ int53 offset_message_id_;
+ int32 limit_;
+ object_ptr<SearchMessagesFilter> filter_;
+ int32 min_date_;
+ int32 max_date_;
+
+ searchMessages();
+
+ searchMessages(object_ptr<ChatList> &&chat_list_, string const &query_, int32 offset_date_, int53 offset_chat_id_, int53 offset_message_id_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_, int32 min_date_, int32 max_date_);
+
+ static const std::int32_t ID = -225214062;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchOutgoingDocumentMessages final : public Function {
+ public:
+ string query_;
+ int32 limit_;
+
+ searchOutgoingDocumentMessages();
+
+ searchOutgoingDocumentMessages(string const &query_, int32 limit_);
+
+ static const std::int32_t ID = -1071397762;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<foundMessages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchPublicChat final : public Function {
+ public:
+ string username_;
+
+ searchPublicChat();
+
+ explicit searchPublicChat(string const &username_);
+
+ static const std::int32_t ID = 857135533;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchPublicChats final : public Function {
+ public:
+ string query_;
+
+ searchPublicChats();
+
+ explicit searchPublicChats(string const &query_);
+
+ static const std::int32_t ID = 970385337;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chats>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchSecretMessages final : public Function {
+ public:
+ int53 chat_id_;
+ string query_;
+ string offset_;
+ int32 limit_;
+ object_ptr<SearchMessagesFilter> filter_;
+
+ searchSecretMessages();
+
+ searchSecretMessages(int53 chat_id_, string const &query_, string const &offset_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_);
+
+ static const std::int32_t ID = -852865892;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<foundMessages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchStickerSet final : public Function {
+ public:
+ string name_;
+
+ searchStickerSet();
+
+ explicit searchStickerSet(string const &name_);
+
+ static const std::int32_t ID = 1157930222;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickerSet>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchStickerSets final : public Function {
+ public:
+ string query_;
+
+ searchStickerSets();
+
+ explicit searchStickerSets(string const &query_);
+
+ static const std::int32_t ID = -1082314629;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickerSets>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchStickers final : public Function {
+ public:
+ string emoji_;
+ int32 limit_;
+
+ searchStickers();
+
+ searchStickers(string const &emoji_, int32 limit_);
+
+ static const std::int32_t ID = 1555771203;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchUserByPhoneNumber final : public Function {
+ public:
+ string phone_number_;
+
+ searchUserByPhoneNumber();
+
+ explicit searchUserByPhoneNumber(string const &phone_number_);
+
+ static const std::int32_t ID = -1562236142;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<user>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendBotStartMessage final : public Function {
+ public:
+ int53 bot_user_id_;
+ int53 chat_id_;
+ string parameter_;
+
+ sendBotStartMessage();
+
+ sendBotStartMessage(int53 bot_user_id_, int53 chat_id_, string const &parameter_);
+
+ static const std::int32_t ID = -1435877650;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendCallDebugInformation final : public Function {
+ public:
+ int32 call_id_;
+ string debug_information_;
+
+ sendCallDebugInformation();
+
+ sendCallDebugInformation(int32 call_id_, string const &debug_information_);
+
+ static const std::int32_t ID = 2019243839;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendCallLog final : public Function {
+ public:
+ int32 call_id_;
+ object_ptr<InputFile> log_file_;
+
+ sendCallLog();
+
+ sendCallLog(int32 call_id_, object_ptr<InputFile> &&log_file_);
+
+ static const std::int32_t ID = 1057638353;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendCallRating final : public Function {
+ public:
+ int32 call_id_;
+ int32 rating_;
+ string comment_;
+ array<object_ptr<CallProblem>> problems_;
+
+ sendCallRating();
+
+ sendCallRating(int32 call_id_, int32 rating_, string const &comment_, array<object_ptr<CallProblem>> &&problems_);
+
+ static const std::int32_t ID = -1402719502;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendCallSignalingData final : public Function {
+ public:
+ int32 call_id_;
+ bytes data_;
+
+ sendCallSignalingData();
+
+ sendCallSignalingData(int32 call_id_, bytes const &data_);
+
+ static const std::int32_t ID = 1412280732;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendChatAction final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ object_ptr<ChatAction> action_;
+
+ sendChatAction();
+
+ sendChatAction(int53 chat_id_, int53 message_thread_id_, object_ptr<ChatAction> &&action_);
+
+ static const std::int32_t ID = 2096947540;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendChatScreenshotTakenNotification final : public Function {
+ public:
+ int53 chat_id_;
+
+ sendChatScreenshotTakenNotification();
+
+ explicit sendChatScreenshotTakenNotification(int53 chat_id_);
+
+ static const std::int32_t ID = 448399457;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendCustomRequest final : public Function {
+ public:
+ string method_;
+ string parameters_;
+
+ sendCustomRequest();
+
+ sendCustomRequest(string const &method_, string const &parameters_);
+
+ static const std::int32_t ID = 285045153;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<customRequestResult>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendEmailAddressVerificationCode final : public Function {
+ public:
+ string email_address_;
+
+ sendEmailAddressVerificationCode();
+
+ explicit sendEmailAddressVerificationCode(string const &email_address_);
+
+ static const std::int32_t ID = -221621379;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emailAddressAuthenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendInlineQueryResultMessage final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ int53 reply_to_message_id_;
+ object_ptr<messageSendOptions> options_;
+ int64 query_id_;
+ string result_id_;
+ bool hide_via_bot_;
+
+ sendInlineQueryResultMessage();
+
+ sendInlineQueryResultMessage(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, int64 query_id_, string const &result_id_, bool hide_via_bot_);
+
+ static const std::int32_t ID = -948639588;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessage final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ int53 reply_to_message_id_;
+ object_ptr<messageSendOptions> options_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ object_ptr<InputMessageContent> input_message_content_;
+
+ sendMessage();
+
+ sendMessage(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_);
+
+ static const std::int32_t ID = 960453021;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageAlbum final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ int53 reply_to_message_id_;
+ object_ptr<messageSendOptions> options_;
+ array<object_ptr<InputMessageContent>> input_message_contents_;
+ bool only_preview_;
+
+ sendMessageAlbum();
+
+ sendMessageAlbum(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, array<object_ptr<InputMessageContent>> &&input_message_contents_, bool only_preview_);
+
+ static const std::int32_t ID = -1639797862;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendPassportAuthorizationForm final : public Function {
+ public:
+ int32 autorization_form_id_;
+ array<object_ptr<PassportElementType>> types_;
+
+ sendPassportAuthorizationForm();
+
+ sendPassportAuthorizationForm(int32 autorization_form_id_, array<object_ptr<PassportElementType>> &&types_);
+
+ static const std::int32_t ID = -602402218;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendPaymentForm final : public Function {
+ public:
+ object_ptr<InputInvoice> input_invoice_;
+ int64 payment_form_id_;
+ string order_info_id_;
+ string shipping_option_id_;
+ object_ptr<InputCredentials> credentials_;
+ int53 tip_amount_;
+
+ sendPaymentForm();
+
+ sendPaymentForm(object_ptr<InputInvoice> &&input_invoice_, int64 payment_form_id_, string const &order_info_id_, string const &shipping_option_id_, object_ptr<InputCredentials> &&credentials_, int53 tip_amount_);
+
+ static const std::int32_t ID = -965855094;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<paymentResult>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendPhoneNumberConfirmationCode final : public Function {
+ public:
+ string hash_;
+ string phone_number_;
+ object_ptr<phoneNumberAuthenticationSettings> settings_;
+
+ sendPhoneNumberConfirmationCode();
+
+ sendPhoneNumberConfirmationCode(string const &hash_, string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_);
+
+ static const std::int32_t ID = -1901171495;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<authenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendPhoneNumberVerificationCode final : public Function {
+ public:
+ string phone_number_;
+ object_ptr<phoneNumberAuthenticationSettings> settings_;
+
+ sendPhoneNumberVerificationCode();
+
+ sendPhoneNumberVerificationCode(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_);
+
+ static const std::int32_t ID = 2081689035;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<authenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendWebAppData final : public Function {
+ public:
+ int53 bot_user_id_;
+ string button_text_;
+ string data_;
+
+ sendWebAppData();
+
+ sendWebAppData(int53 bot_user_id_, string const &button_text_, string const &data_);
+
+ static const std::int32_t ID = -1423978996;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setAccountTtl final : public Function {
+ public:
+ object_ptr<accountTtl> ttl_;
+
+ setAccountTtl();
+
+ explicit setAccountTtl(object_ptr<accountTtl> &&ttl_);
+
+ static const std::int32_t ID = 701389032;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setAlarm final : public Function {
+ public:
+ double seconds_;
+
+ setAlarm();
+
+ explicit setAlarm(double seconds_);
+
+ static const std::int32_t ID = -873497067;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setAuthenticationEmailAddress final : public Function {
+ public:
+ string email_address_;
+
+ setAuthenticationEmailAddress();
+
+ explicit setAuthenticationEmailAddress(string const &email_address_);
+
+ static const std::int32_t ID = 1773323522;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setAuthenticationPhoneNumber final : public Function {
+ public:
+ string phone_number_;
+ object_ptr<phoneNumberAuthenticationSettings> settings_;
+
+ setAuthenticationPhoneNumber();
+
+ setAuthenticationPhoneNumber(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_);
+
+ static const std::int32_t ID = 868276259;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setAutoDownloadSettings final : public Function {
+ public:
+ object_ptr<autoDownloadSettings> settings_;
+ object_ptr<NetworkType> type_;
+
+ setAutoDownloadSettings();
+
+ setAutoDownloadSettings(object_ptr<autoDownloadSettings> &&settings_, object_ptr<NetworkType> &&type_);
+
+ static const std::int32_t ID = -353671948;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setBackground final : public Function {
+ public:
+ object_ptr<InputBackground> background_;
+ object_ptr<BackgroundType> type_;
+ bool for_dark_theme_;
+
+ setBackground();
+
+ setBackground(object_ptr<InputBackground> &&background_, object_ptr<BackgroundType> &&type_, bool for_dark_theme_);
+
+ static const std::int32_t ID = -1035439225;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<background>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setBio final : public Function {
+ public:
+ string bio_;
+
+ setBio();
+
+ explicit setBio(string const &bio_);
+
+ static const std::int32_t ID = -1619582124;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setBotUpdatesStatus final : public Function {
+ public:
+ int32 pending_update_count_;
+ string error_message_;
+
+ setBotUpdatesStatus();
+
+ setBotUpdatesStatus(int32 pending_update_count_, string const &error_message_);
+
+ static const std::int32_t ID = -1154926191;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatAvailableReactions final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<ChatAvailableReactions> available_reactions_;
+
+ setChatAvailableReactions();
+
+ setChatAvailableReactions(int53 chat_id_, object_ptr<ChatAvailableReactions> &&available_reactions_);
+
+ static const std::int32_t ID = 267075078;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatClientData final : public Function {
+ public:
+ int53 chat_id_;
+ string client_data_;
+
+ setChatClientData();
+
+ setChatClientData(int53 chat_id_, string const &client_data_);
+
+ static const std::int32_t ID = -827119811;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatDescription final : public Function {
+ public:
+ int53 chat_id_;
+ string description_;
+
+ setChatDescription();
+
+ setChatDescription(int53 chat_id_, string const &description_);
+
+ static const std::int32_t ID = 1957213277;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatDiscussionGroup final : public Function {
+ public:
+ int53 chat_id_;
+ int53 discussion_chat_id_;
+
+ setChatDiscussionGroup();
+
+ setChatDiscussionGroup(int53 chat_id_, int53 discussion_chat_id_);
+
+ static const std::int32_t ID = -918801736;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatDraftMessage final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ object_ptr<draftMessage> draft_message_;
+
+ setChatDraftMessage();
+
+ setChatDraftMessage(int53 chat_id_, int53 message_thread_id_, object_ptr<draftMessage> &&draft_message_);
+
+ static const std::int32_t ID = 1683889946;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatLocation final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<chatLocation> location_;
+
+ setChatLocation();
+
+ setChatLocation(int53 chat_id_, object_ptr<chatLocation> &&location_);
+
+ static const std::int32_t ID = -767091286;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatMemberStatus final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<MessageSender> member_id_;
+ object_ptr<ChatMemberStatus> status_;
+
+ setChatMemberStatus();
+
+ setChatMemberStatus(int53 chat_id_, object_ptr<MessageSender> &&member_id_, object_ptr<ChatMemberStatus> &&status_);
+
+ static const std::int32_t ID = 81794847;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatMessageSender final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<MessageSender> message_sender_id_;
+
+ setChatMessageSender();
+
+ setChatMessageSender(int53 chat_id_, object_ptr<MessageSender> &&message_sender_id_);
+
+ static const std::int32_t ID = -1421513858;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatMessageTtl final : public Function {
+ public:
+ int53 chat_id_;
+ int32 ttl_;
+
+ setChatMessageTtl();
+
+ setChatMessageTtl(int53 chat_id_, int32 ttl_);
+
+ static const std::int32_t ID = -1578406279;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatNotificationSettings final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<chatNotificationSettings> notification_settings_;
+
+ setChatNotificationSettings();
+
+ setChatNotificationSettings(int53 chat_id_, object_ptr<chatNotificationSettings> &&notification_settings_);
+
+ static const std::int32_t ID = 777199614;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatPermissions final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<chatPermissions> permissions_;
+
+ setChatPermissions();
+
+ setChatPermissions(int53 chat_id_, object_ptr<chatPermissions> &&permissions_);
+
+ static const std::int32_t ID = 2138507006;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatPhoto final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<InputChatPhoto> photo_;
+
+ setChatPhoto();
+
+ setChatPhoto(int53 chat_id_, object_ptr<InputChatPhoto> &&photo_);
+
+ static const std::int32_t ID = -377778941;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatSlowModeDelay final : public Function {
+ public:
+ int53 chat_id_;
+ int32 slow_mode_delay_;
+
+ setChatSlowModeDelay();
+
+ setChatSlowModeDelay(int53 chat_id_, int32 slow_mode_delay_);
+
+ static const std::int32_t ID = -540350914;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatTheme final : public Function {
+ public:
+ int53 chat_id_;
+ string theme_name_;
+
+ setChatTheme();
+
+ setChatTheme(int53 chat_id_, string const &theme_name_);
+
+ static const std::int32_t ID = -1895234925;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setChatTitle final : public Function {
+ public:
+ int53 chat_id_;
+ string title_;
+
+ setChatTitle();
+
+ setChatTitle(int53 chat_id_, string const &title_);
+
+ static const std::int32_t ID = 164282047;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setCommands final : public Function {
+ public:
+ object_ptr<BotCommandScope> scope_;
+ string language_code_;
+ array<object_ptr<botCommand>> commands_;
+
+ setCommands();
+
+ setCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_, array<object_ptr<botCommand>> &&commands_);
+
+ static const std::int32_t ID = -907165606;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setCustomLanguagePack final : public Function {
+ public:
+ object_ptr<languagePackInfo> info_;
+ array<object_ptr<languagePackString>> strings_;
+
+ setCustomLanguagePack();
+
+ setCustomLanguagePack(object_ptr<languagePackInfo> &&info_, array<object_ptr<languagePackString>> &&strings_);
+
+ static const std::int32_t ID = -296742819;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setCustomLanguagePackString final : public Function {
+ public:
+ string language_pack_id_;
+ object_ptr<languagePackString> new_string_;
+
+ setCustomLanguagePackString();
+
+ setCustomLanguagePackString(string const &language_pack_id_, object_ptr<languagePackString> &&new_string_);
+
+ static const std::int32_t ID = 1316365592;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setDatabaseEncryptionKey final : public Function {
+ public:
+ bytes new_encryption_key_;
+
+ setDatabaseEncryptionKey();
+
+ explicit setDatabaseEncryptionKey(bytes const &new_encryption_key_);
+
+ static const std::int32_t ID = -1204599371;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setDefaultChannelAdministratorRights final : public Function {
+ public:
+ object_ptr<chatAdministratorRights> default_channel_administrator_rights_;
+
+ setDefaultChannelAdministratorRights();
+
+ explicit setDefaultChannelAdministratorRights(object_ptr<chatAdministratorRights> &&default_channel_administrator_rights_);
+
+ static const std::int32_t ID = -234004967;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setDefaultGroupAdministratorRights final : public Function {
+ public:
+ object_ptr<chatAdministratorRights> default_group_administrator_rights_;
+
+ setDefaultGroupAdministratorRights();
+
+ explicit setDefaultGroupAdministratorRights(object_ptr<chatAdministratorRights> &&default_group_administrator_rights_);
+
+ static const std::int32_t ID = 1700231016;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setDefaultReactionType final : public Function {
+ public:
+ object_ptr<ReactionType> reaction_type_;
+
+ setDefaultReactionType();
+
+ explicit setDefaultReactionType(object_ptr<ReactionType> &&reaction_type_);
+
+ static const std::int32_t ID = 1694730813;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setEmojiStatus final : public Function {
+ public:
+ object_ptr<emojiStatus> emoji_status_;
+ int32 duration_;
+
+ setEmojiStatus();
+
+ setEmojiStatus(object_ptr<emojiStatus> &&emoji_status_, int32 duration_);
+
+ static const std::int32_t ID = -1310680569;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setFileGenerationProgress final : public Function {
+ public:
+ int64 generation_id_;
+ int53 expected_size_;
+ int53 local_prefix_size_;
+
+ setFileGenerationProgress();
+
+ setFileGenerationProgress(int64 generation_id_, int53 expected_size_, int53 local_prefix_size_);
+
+ static const std::int32_t ID = 1836403518;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setGameScore final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ bool edit_message_;
+ int53 user_id_;
+ int32 score_;
+ bool force_;
+
+ setGameScore();
+
+ setGameScore(int53 chat_id_, int53 message_id_, bool edit_message_, int53 user_id_, int32 score_, bool force_);
+
+ static const std::int32_t ID = 2127359430;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<message>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setGroupCallParticipantIsSpeaking final : public Function {
+ public:
+ int32 group_call_id_;
+ int32 audio_source_;
+ bool is_speaking_;
+
+ setGroupCallParticipantIsSpeaking();
+
+ setGroupCallParticipantIsSpeaking(int32 group_call_id_, int32 audio_source_, bool is_speaking_);
+
+ static const std::int32_t ID = 927506917;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setGroupCallParticipantVolumeLevel final : public Function {
+ public:
+ int32 group_call_id_;
+ object_ptr<MessageSender> participant_id_;
+ int32 volume_level_;
+
+ setGroupCallParticipantVolumeLevel();
+
+ setGroupCallParticipantVolumeLevel(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, int32 volume_level_);
+
+ static const std::int32_t ID = -1753769944;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setGroupCallTitle final : public Function {
+ public:
+ int32 group_call_id_;
+ string title_;
+
+ setGroupCallTitle();
+
+ setGroupCallTitle(int32 group_call_id_, string const &title_);
+
+ static const std::int32_t ID = -1228825139;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setInactiveSessionTtl final : public Function {
+ public:
+ int32 inactive_session_ttl_days_;
+
+ setInactiveSessionTtl();
+
+ explicit setInactiveSessionTtl(int32 inactive_session_ttl_days_);
+
+ static const std::int32_t ID = 1570548048;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setInlineGameScore final : public Function {
+ public:
+ string inline_message_id_;
+ bool edit_message_;
+ int53 user_id_;
+ int32 score_;
+ bool force_;
+
+ setInlineGameScore();
+
+ setInlineGameScore(string const &inline_message_id_, bool edit_message_, int53 user_id_, int32 score_, bool force_);
+
+ static const std::int32_t ID = -948871797;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setLocation final : public Function {
+ public:
+ object_ptr<location> location_;
+
+ setLocation();
+
+ explicit setLocation(object_ptr<location> &&location_);
+
+ static const std::int32_t ID = 93926257;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setLogStream final : public Function {
+ public:
+ object_ptr<LogStream> log_stream_;
+
+ setLogStream();
+
+ explicit setLogStream(object_ptr<LogStream> &&log_stream_);
+
+ static const std::int32_t ID = -1364199535;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setLogTagVerbosityLevel final : public Function {
+ public:
+ string tag_;
+ int32 new_verbosity_level_;
+
+ setLogTagVerbosityLevel();
+
+ setLogTagVerbosityLevel(string const &tag_, int32 new_verbosity_level_);
+
+ static const std::int32_t ID = -2095589738;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setLogVerbosityLevel final : public Function {
+ public:
+ int32 new_verbosity_level_;
+
+ setLogVerbosityLevel();
+
+ explicit setLogVerbosityLevel(int32 new_verbosity_level_);
+
+ static const std::int32_t ID = -303429678;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setLoginEmailAddress final : public Function {
+ public:
+ string new_login_email_address_;
+
+ setLoginEmailAddress();
+
+ explicit setLoginEmailAddress(string const &new_login_email_address_);
+
+ static const std::int32_t ID = 935019476;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emailAddressAuthenticationCodeInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setMenuButton final : public Function {
+ public:
+ int53 user_id_;
+ object_ptr<botMenuButton> menu_button_;
+
+ setMenuButton();
+
+ setMenuButton(int53 user_id_, object_ptr<botMenuButton> &&menu_button_);
+
+ static const std::int32_t ID = -1269841599;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setName final : public Function {
+ public:
+ string first_name_;
+ string last_name_;
+
+ setName();
+
+ setName(string const &first_name_, string const &last_name_);
+
+ static const std::int32_t ID = 1711693584;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setNetworkType final : public Function {
+ public:
+ object_ptr<NetworkType> type_;
+
+ setNetworkType();
+
+ explicit setNetworkType(object_ptr<NetworkType> &&type_);
+
+ static const std::int32_t ID = -701635234;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setOption final : public Function {
+ public:
+ string name_;
+ object_ptr<OptionValue> value_;
+
+ setOption();
+
+ setOption(string const &name_, object_ptr<OptionValue> &&value_);
+
+ static const std::int32_t ID = 2114670322;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setPassportElement final : public Function {
+ public:
+ object_ptr<InputPassportElement> element_;
+ string password_;
+
+ setPassportElement();
+
+ setPassportElement(object_ptr<InputPassportElement> &&element_, string const &password_);
+
+ static const std::int32_t ID = 2068173212;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<PassportElement>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setPassportElementErrors final : public Function {
+ public:
+ int53 user_id_;
+ array<object_ptr<inputPassportElementError>> errors_;
+
+ setPassportElementErrors();
+
+ setPassportElementErrors(int53 user_id_, array<object_ptr<inputPassportElementError>> &&errors_);
+
+ static const std::int32_t ID = -2056754881;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setPassword final : public Function {
+ public:
+ string old_password_;
+ string new_password_;
+ string new_hint_;
+ bool set_recovery_email_address_;
+ string new_recovery_email_address_;
+
+ setPassword();
+
+ setPassword(string const &old_password_, string const &new_password_, string const &new_hint_, bool set_recovery_email_address_, string const &new_recovery_email_address_);
+
+ static const std::int32_t ID = -1193589027;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<passwordState>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setPinnedChats final : public Function {
+ public:
+ object_ptr<ChatList> chat_list_;
+ array<int53> chat_ids_;
+
+ setPinnedChats();
+
+ setPinnedChats(object_ptr<ChatList> &&chat_list_, array<int53> &&chat_ids_);
+
+ static const std::int32_t ID = -695640000;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setPollAnswer final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ array<int32> option_ids_;
+
+ setPollAnswer();
+
+ setPollAnswer(int53 chat_id_, int53 message_id_, array<int32> &&option_ids_);
+
+ static const std::int32_t ID = -1399388792;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setProfilePhoto final : public Function {
+ public:
+ object_ptr<InputChatPhoto> photo_;
+
+ setProfilePhoto();
+
+ explicit setProfilePhoto(object_ptr<InputChatPhoto> &&photo_);
+
+ static const std::int32_t ID = -2069678882;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setRecoveryEmailAddress final : public Function {
+ public:
+ string password_;
+ string new_recovery_email_address_;
+
+ setRecoveryEmailAddress();
+
+ setRecoveryEmailAddress(string const &password_, string const &new_recovery_email_address_);
+
+ static const std::int32_t ID = -1981836385;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<passwordState>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setScopeNotificationSettings final : public Function {
+ public:
+ object_ptr<NotificationSettingsScope> scope_;
+ object_ptr<scopeNotificationSettings> notification_settings_;
+
+ setScopeNotificationSettings();
+
+ setScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_, object_ptr<scopeNotificationSettings> &&notification_settings_);
+
+ static const std::int32_t ID = -2049984966;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setStickerPositionInSet final : public Function {
+ public:
+ object_ptr<InputFile> sticker_;
+ int32 position_;
+
+ setStickerPositionInSet();
+
+ setStickerPositionInSet(object_ptr<InputFile> &&sticker_, int32 position_);
+
+ static const std::int32_t ID = 2075281185;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setStickerSetThumbnail final : public Function {
+ public:
+ int53 user_id_;
+ string name_;
+ object_ptr<InputFile> thumbnail_;
+
+ setStickerSetThumbnail();
+
+ setStickerSetThumbnail(int53 user_id_, string const &name_, object_ptr<InputFile> &&thumbnail_);
+
+ static const std::int32_t ID = 1230174856;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickerSet>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setSupergroupStickerSet final : public Function {
+ public:
+ int53 supergroup_id_;
+ int64 sticker_set_id_;
+
+ setSupergroupStickerSet();
+
+ setSupergroupStickerSet(int53 supergroup_id_, int64 sticker_set_id_);
+
+ static const std::int32_t ID = -2056344215;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setSupergroupUsername final : public Function {
+ public:
+ int53 supergroup_id_;
+ string username_;
+
+ setSupergroupUsername();
+
+ setSupergroupUsername(int53 supergroup_id_, string const &username_);
+
+ static const std::int32_t ID = 1346325252;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setTdlibParameters final : public Function {
+ public:
+ bool use_test_dc_;
+ string database_directory_;
+ string files_directory_;
+ bytes database_encryption_key_;
+ bool use_file_database_;
+ bool use_chat_info_database_;
+ bool use_message_database_;
+ bool use_secret_chats_;
+ int32 api_id_;
+ string api_hash_;
+ string system_language_code_;
+ string device_model_;
+ string system_version_;
+ string application_version_;
+ bool enable_storage_optimizer_;
+ bool ignore_file_names_;
+
+ setTdlibParameters();
+
+ setTdlibParameters(bool use_test_dc_, string const &database_directory_, string const &files_directory_, bytes const &database_encryption_key_, bool use_file_database_, bool use_chat_info_database_, bool use_message_database_, bool use_secret_chats_, int32 api_id_, string const &api_hash_, string const &system_language_code_, string const &device_model_, string const &system_version_, string const &application_version_, bool enable_storage_optimizer_, bool ignore_file_names_);
+
+ static const std::int32_t ID = 1384743481;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setUserPrivacySettingRules final : public Function {
+ public:
+ object_ptr<UserPrivacySetting> setting_;
+ object_ptr<userPrivacySettingRules> rules_;
+
+ setUserPrivacySettingRules();
+
+ setUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_, object_ptr<userPrivacySettingRules> &&rules_);
+
+ static const std::int32_t ID = -473812741;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setUserSupportInfo final : public Function {
+ public:
+ int53 user_id_;
+ object_ptr<formattedText> message_;
+
+ setUserSupportInfo();
+
+ setUserSupportInfo(int53 user_id_, object_ptr<formattedText> &&message_);
+
+ static const std::int32_t ID = -2088986621;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<userSupportInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setUsername final : public Function {
+ public:
+ string username_;
+
+ setUsername();
+
+ explicit setUsername(string const &username_);
+
+ static const std::int32_t ID = 439901214;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class setVideoChatDefaultParticipant final : public Function {
+ public:
+ int53 chat_id_;
+ object_ptr<MessageSender> default_participant_id_;
+
+ setVideoChatDefaultParticipant();
+
+ setVideoChatDefaultParticipant(int53 chat_id_, object_ptr<MessageSender> &&default_participant_id_);
+
+ static const std::int32_t ID = -240749901;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sharePhoneNumber final : public Function {
+ public:
+ int53 user_id_;
+
+ sharePhoneNumber();
+
+ explicit sharePhoneNumber(int53 user_id_);
+
+ static const std::int32_t ID = 1097130069;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class startGroupCallRecording final : public Function {
+ public:
+ int32 group_call_id_;
+ string title_;
+ bool record_video_;
+ bool use_portrait_orientation_;
+
+ startGroupCallRecording();
+
+ startGroupCallRecording(int32 group_call_id_, string const &title_, bool record_video_, bool use_portrait_orientation_);
+
+ static const std::int32_t ID = 1757774971;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class startGroupCallScreenSharing final : public Function {
+ public:
+ int32 group_call_id_;
+ int32 audio_source_id_;
+ string payload_;
+
+ startGroupCallScreenSharing();
+
+ startGroupCallScreenSharing(int32 group_call_id_, int32 audio_source_id_, string const &payload_);
+
+ static const std::int32_t ID = -884068051;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class startScheduledGroupCall final : public Function {
+ public:
+ int32 group_call_id_;
+
+ startScheduledGroupCall();
+
+ explicit startScheduledGroupCall(int32 group_call_id_);
+
+ static const std::int32_t ID = 1519938838;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stopPoll final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ stopPoll();
+
+ stopPoll(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = 1659374253;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class synchronizeLanguagePack final : public Function {
+ public:
+ string language_pack_id_;
+
+ synchronizeLanguagePack();
+
+ explicit synchronizeLanguagePack(string const &language_pack_id_);
+
+ static const std::int32_t ID = -2065307858;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class terminateAllOtherSessions final : public Function {
+ public:
+
+ terminateAllOtherSessions();
+
+ static const std::int32_t ID = 1874485523;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class terminateSession final : public Function {
+ public:
+ int64 session_id_;
+
+ terminateSession();
+
+ explicit terminateSession(int64 session_id_);
+
+ static const std::int32_t ID = -407385812;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testCallBytes final : public Function {
+ public:
+ bytes x_;
+
+ testCallBytes();
+
+ explicit testCallBytes(bytes const &x_);
+
+ static const std::int32_t ID = -736011607;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<testBytes>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testCallEmpty final : public Function {
+ public:
+
+ testCallEmpty();
+
+ static const std::int32_t ID = -627291626;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testCallString final : public Function {
+ public:
+ string x_;
+
+ testCallString();
+
+ explicit testCallString(string const &x_);
+
+ static const std::int32_t ID = -1732818385;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<testString>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testCallVectorInt final : public Function {
+ public:
+ array<int32> x_;
+
+ testCallVectorInt();
+
+ explicit testCallVectorInt(array<int32> &&x_);
+
+ static const std::int32_t ID = -2137277793;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<testVectorInt>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testCallVectorIntObject final : public Function {
+ public:
+ array<object_ptr<testInt>> x_;
+
+ testCallVectorIntObject();
+
+ explicit testCallVectorIntObject(array<object_ptr<testInt>> &&x_);
+
+ static const std::int32_t ID = 1825428218;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<testVectorIntObject>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testCallVectorString final : public Function {
+ public:
+ array<string> x_;
+
+ testCallVectorString();
+
+ explicit testCallVectorString(array<string> &&x_);
+
+ static const std::int32_t ID = -408600900;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<testVectorString>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testCallVectorStringObject final : public Function {
+ public:
+ array<object_ptr<testString>> x_;
+
+ testCallVectorStringObject();
+
+ explicit testCallVectorStringObject(array<object_ptr<testString>> &&x_);
+
+ static const std::int32_t ID = 1527666429;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<testVectorStringObject>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testGetDifference final : public Function {
+ public:
+
+ testGetDifference();
+
+ static const std::int32_t ID = 1747084069;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testNetwork final : public Function {
+ public:
+
+ testNetwork();
+
+ static const std::int32_t ID = -1343998901;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testProxy final : public Function {
+ public:
+ string server_;
+ int32 port_;
+ object_ptr<ProxyType> type_;
+ int32 dc_id_;
+ double timeout_;
+
+ testProxy();
+
+ testProxy(string const &server_, int32 port_, object_ptr<ProxyType> &&type_, int32 dc_id_, double timeout_);
+
+ static const std::int32_t ID = -1197366626;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testReturnError final : public Function {
+ public:
+ object_ptr<error> error_;
+
+ testReturnError();
+
+ explicit testReturnError(object_ptr<error> &&error_);
+
+ static const std::int32_t ID = 455179506;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<error>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testSquareInt final : public Function {
+ public:
+ int32 x_;
+
+ testSquareInt();
+
+ explicit testSquareInt(int32 x_);
+
+ static const std::int32_t ID = -60135024;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<testInt>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class testUseUpdate final : public Function {
+ public:
+
+ testUseUpdate();
+
+ static const std::int32_t ID = 717094686;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Update>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleAllDownloadsArePaused final : public Function {
+ public:
+ bool are_paused_;
+
+ toggleAllDownloadsArePaused();
+
+ explicit toggleAllDownloadsArePaused(bool are_paused_);
+
+ static const std::int32_t ID = 1251512322;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleBotIsAddedToAttachmentMenu final : public Function {
+ public:
+ int53 bot_user_id_;
+ bool is_added_;
+
+ toggleBotIsAddedToAttachmentMenu();
+
+ toggleBotIsAddedToAttachmentMenu(int53 bot_user_id_, bool is_added_);
+
+ static const std::int32_t ID = -1251515422;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleChatDefaultDisableNotification final : public Function {
+ public:
+ int53 chat_id_;
+ bool default_disable_notification_;
+
+ toggleChatDefaultDisableNotification();
+
+ toggleChatDefaultDisableNotification(int53 chat_id_, bool default_disable_notification_);
+
+ static const std::int32_t ID = 314794002;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleChatHasProtectedContent final : public Function {
+ public:
+ int53 chat_id_;
+ bool has_protected_content_;
+
+ toggleChatHasProtectedContent();
+
+ toggleChatHasProtectedContent(int53 chat_id_, bool has_protected_content_);
+
+ static const std::int32_t ID = 975231309;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleChatIsMarkedAsUnread final : public Function {
+ public:
+ int53 chat_id_;
+ bool is_marked_as_unread_;
+
+ toggleChatIsMarkedAsUnread();
+
+ toggleChatIsMarkedAsUnread(int53 chat_id_, bool is_marked_as_unread_);
+
+ static const std::int32_t ID = -986129697;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleChatIsPinned final : public Function {
+ public:
+ object_ptr<ChatList> chat_list_;
+ int53 chat_id_;
+ bool is_pinned_;
+
+ toggleChatIsPinned();
+
+ toggleChatIsPinned(object_ptr<ChatList> &&chat_list_, int53 chat_id_, bool is_pinned_);
+
+ static const std::int32_t ID = -1485429186;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleDownloadIsPaused final : public Function {
+ public:
+ int32 file_id_;
+ bool is_paused_;
+
+ toggleDownloadIsPaused();
+
+ toggleDownloadIsPaused(int32 file_id_, bool is_paused_);
+
+ static const std::int32_t ID = -947493099;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleForumTopicIsClosed final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ bool is_closed_;
+
+ toggleForumTopicIsClosed();
+
+ toggleForumTopicIsClosed(int53 chat_id_, int53 message_thread_id_, bool is_closed_);
+
+ static const std::int32_t ID = -949712141;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleGroupCallEnabledStartNotification final : public Function {
+ public:
+ int32 group_call_id_;
+ bool enabled_start_notification_;
+
+ toggleGroupCallEnabledStartNotification();
+
+ toggleGroupCallEnabledStartNotification(int32 group_call_id_, bool enabled_start_notification_);
+
+ static const std::int32_t ID = 707839826;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleGroupCallIsMyVideoEnabled final : public Function {
+ public:
+ int32 group_call_id_;
+ bool is_my_video_enabled_;
+
+ toggleGroupCallIsMyVideoEnabled();
+
+ toggleGroupCallIsMyVideoEnabled(int32 group_call_id_, bool is_my_video_enabled_);
+
+ static const std::int32_t ID = -1624289030;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleGroupCallIsMyVideoPaused final : public Function {
+ public:
+ int32 group_call_id_;
+ bool is_my_video_paused_;
+
+ toggleGroupCallIsMyVideoPaused();
+
+ toggleGroupCallIsMyVideoPaused(int32 group_call_id_, bool is_my_video_paused_);
+
+ static const std::int32_t ID = -478875239;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleGroupCallMuteNewParticipants final : public Function {
+ public:
+ int32 group_call_id_;
+ bool mute_new_participants_;
+
+ toggleGroupCallMuteNewParticipants();
+
+ toggleGroupCallMuteNewParticipants(int32 group_call_id_, bool mute_new_participants_);
+
+ static const std::int32_t ID = 284082626;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleGroupCallParticipantIsHandRaised final : public Function {
+ public:
+ int32 group_call_id_;
+ object_ptr<MessageSender> participant_id_;
+ bool is_hand_raised_;
+
+ toggleGroupCallParticipantIsHandRaised();
+
+ toggleGroupCallParticipantIsHandRaised(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, bool is_hand_raised_);
+
+ static const std::int32_t ID = -1896127519;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleGroupCallParticipantIsMuted final : public Function {
+ public:
+ int32 group_call_id_;
+ object_ptr<MessageSender> participant_id_;
+ bool is_muted_;
+
+ toggleGroupCallParticipantIsMuted();
+
+ toggleGroupCallParticipantIsMuted(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, bool is_muted_);
+
+ static const std::int32_t ID = -1308093433;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleGroupCallScreenSharingIsPaused final : public Function {
+ public:
+ int32 group_call_id_;
+ bool is_paused_;
+
+ toggleGroupCallScreenSharingIsPaused();
+
+ toggleGroupCallScreenSharingIsPaused(int32 group_call_id_, bool is_paused_);
+
+ static const std::int32_t ID = -1602530464;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleMessageSenderIsBlocked final : public Function {
+ public:
+ object_ptr<MessageSender> sender_id_;
+ bool is_blocked_;
+
+ toggleMessageSenderIsBlocked();
+
+ toggleMessageSenderIsBlocked(object_ptr<MessageSender> &&sender_id_, bool is_blocked_);
+
+ static const std::int32_t ID = -2008084779;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleSessionCanAcceptCalls final : public Function {
+ public:
+ int64 session_id_;
+ bool can_accept_calls_;
+
+ toggleSessionCanAcceptCalls();
+
+ toggleSessionCanAcceptCalls(int64 session_id_, bool can_accept_calls_);
+
+ static const std::int32_t ID = 1819027208;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleSessionCanAcceptSecretChats final : public Function {
+ public:
+ int64 session_id_;
+ bool can_accept_secret_chats_;
+
+ toggleSessionCanAcceptSecretChats();
+
+ toggleSessionCanAcceptSecretChats(int64 session_id_, bool can_accept_secret_chats_);
+
+ static const std::int32_t ID = 1000843390;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleSupergroupIsAllHistoryAvailable final : public Function {
+ public:
+ int53 supergroup_id_;
+ bool is_all_history_available_;
+
+ toggleSupergroupIsAllHistoryAvailable();
+
+ toggleSupergroupIsAllHistoryAvailable(int53 supergroup_id_, bool is_all_history_available_);
+
+ static const std::int32_t ID = 1155110478;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleSupergroupIsBroadcastGroup final : public Function {
+ public:
+ int53 supergroup_id_;
+
+ toggleSupergroupIsBroadcastGroup();
+
+ explicit toggleSupergroupIsBroadcastGroup(int53 supergroup_id_);
+
+ static const std::int32_t ID = 884089365;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleSupergroupIsForum final : public Function {
+ public:
+ int53 supergroup_id_;
+ bool is_forum_;
+
+ toggleSupergroupIsForum();
+
+ toggleSupergroupIsForum(int53 supergroup_id_, bool is_forum_);
+
+ static const std::int32_t ID = -1771071990;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleSupergroupJoinByRequest final : public Function {
+ public:
+ int53 supergroup_id_;
+ bool join_by_request_;
+
+ toggleSupergroupJoinByRequest();
+
+ toggleSupergroupJoinByRequest(int53 supergroup_id_, bool join_by_request_);
+
+ static const std::int32_t ID = 2111807454;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleSupergroupJoinToSendMessages final : public Function {
+ public:
+ int53 supergroup_id_;
+ bool join_to_send_messages_;
+
+ toggleSupergroupJoinToSendMessages();
+
+ toggleSupergroupJoinToSendMessages(int53 supergroup_id_, bool join_to_send_messages_);
+
+ static const std::int32_t ID = -182022642;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleSupergroupSignMessages final : public Function {
+ public:
+ int53 supergroup_id_;
+ bool sign_messages_;
+
+ toggleSupergroupSignMessages();
+
+ toggleSupergroupSignMessages(int53 supergroup_id_, bool sign_messages_);
+
+ static const std::int32_t ID = 1156568356;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleSupergroupUsernameIsActive final : public Function {
+ public:
+ int53 supergroup_id_;
+ string username_;
+ bool is_active_;
+
+ toggleSupergroupUsernameIsActive();
+
+ toggleSupergroupUsernameIsActive(int53 supergroup_id_, string const &username_, bool is_active_);
+
+ static const std::int32_t ID = -1500811777;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class toggleUsernameIsActive final : public Function {
+ public:
+ string username_;
+ bool is_active_;
+
+ toggleUsernameIsActive();
+
+ toggleUsernameIsActive(string const &username_, bool is_active_);
+
+ static const std::int32_t ID = 1244098019;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class transferChatOwnership final : public Function {
+ public:
+ int53 chat_id_;
+ int53 user_id_;
+ string password_;
+
+ transferChatOwnership();
+
+ transferChatOwnership(int53 chat_id_, int53 user_id_, string const &password_);
+
+ static const std::int32_t ID = 2006977043;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class translateText final : public Function {
+ public:
+ string text_;
+ string from_language_code_;
+ string to_language_code_;
+
+ translateText();
+
+ translateText(string const &text_, string const &from_language_code_, string const &to_language_code_);
+
+ static const std::int32_t ID = -1619686803;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<text>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class unpinAllChatMessages final : public Function {
+ public:
+ int53 chat_id_;
+
+ unpinAllChatMessages();
+
+ explicit unpinAllChatMessages(int53 chat_id_);
+
+ static const std::int32_t ID = -1437805385;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class unpinAllMessageThreadMessages final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+
+ unpinAllMessageThreadMessages();
+
+ unpinAllMessageThreadMessages(int53 chat_id_, int53 message_thread_id_);
+
+ static const std::int32_t ID = -1211719936;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class unpinChatMessage final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_id_;
+
+ unpinChatMessage();
+
+ unpinChatMessage(int53 chat_id_, int53 message_id_);
+
+ static const std::int32_t ID = 2065448670;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class upgradeBasicGroupChatToSupergroupChat final : public Function {
+ public:
+ int53 chat_id_;
+
+ upgradeBasicGroupChatToSupergroupChat();
+
+ explicit upgradeBasicGroupChatToSupergroupChat(int53 chat_id_);
+
+ static const std::int32_t ID = 300488122;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chat>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class uploadStickerFile final : public Function {
+ public:
+ int53 user_id_;
+ object_ptr<inputSticker> sticker_;
+
+ uploadStickerFile();
+
+ uploadStickerFile(int53 user_id_, object_ptr<inputSticker> &&sticker_);
+
+ static const std::int32_t ID = 86279066;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<file>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class validateOrderInfo final : public Function {
+ public:
+ object_ptr<InputInvoice> input_invoice_;
+ object_ptr<orderInfo> order_info_;
+ bool allow_save_;
+
+ validateOrderInfo();
+
+ validateOrderInfo(object_ptr<InputInvoice> &&input_invoice_, object_ptr<orderInfo> &&order_info_, bool allow_save_);
+
+ static const std::int32_t ID = -1248305201;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<validatedOrderInfo>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class viewMessages final : public Function {
+ public:
+ int53 chat_id_;
+ int53 message_thread_id_;
+ array<int53> message_ids_;
+ bool force_read_;
+
+ viewMessages();
+
+ viewMessages(int53 chat_id_, int53 message_thread_id_, array<int53> &&message_ids_, bool force_read_);
+
+ static const std::int32_t ID = -1155961496;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class viewPremiumFeature final : public Function {
+ public:
+ object_ptr<PremiumFeature> feature_;
+
+ viewPremiumFeature();
+
+ explicit viewPremiumFeature(object_ptr<PremiumFeature> &&feature_);
+
+ static const std::int32_t ID = 192950706;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class viewTrendingStickerSets final : public Function {
+ public:
+ array<int64> sticker_set_ids_;
+
+ viewTrendingStickerSets();
+
+ explicit viewTrendingStickerSets(array<int64> &&sticker_set_ids_);
+
+ static const std::int32_t ID = -952416520;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class writeGeneratedFilePart final : public Function {
+ public:
+ int64 generation_id_;
+ int53 offset_;
+ bytes data_;
+
+ writeGeneratedFilePart();
+
+ writeGeneratedFilePart(int64 generation_id_, int53 offset_, bytes const &data_);
+
+ static const std::int32_t ID = 214474389;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ok>;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+} // namespace td_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.hpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.hpp
new file mode 100644
index 0000000000..7d93e0fe6a
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.hpp
@@ -0,0 +1,8977 @@
+#pragma once
+
+/**
+ * \file
+ * Contains downcast_call methods for calling a function object on downcasted to
+ * the most derived class TDLib API object.
+ */
+#include "td_api.h"
+
+namespace td {
+namespace td_api {
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Object &obj, const T &func) {
+ switch (obj.get_id()) {
+ case accountTtl::ID:
+ func(static_cast<accountTtl &>(obj));
+ return true;
+ case addedReaction::ID:
+ func(static_cast<addedReaction &>(obj));
+ return true;
+ case addedReactions::ID:
+ func(static_cast<addedReactions &>(obj));
+ return true;
+ case address::ID:
+ func(static_cast<address &>(obj));
+ return true;
+ case animatedChatPhoto::ID:
+ func(static_cast<animatedChatPhoto &>(obj));
+ return true;
+ case animatedEmoji::ID:
+ func(static_cast<animatedEmoji &>(obj));
+ return true;
+ case animation::ID:
+ func(static_cast<animation &>(obj));
+ return true;
+ case animations::ID:
+ func(static_cast<animations &>(obj));
+ return true;
+ case attachmentMenuBot::ID:
+ func(static_cast<attachmentMenuBot &>(obj));
+ return true;
+ case attachmentMenuBotColor::ID:
+ func(static_cast<attachmentMenuBotColor &>(obj));
+ return true;
+ case audio::ID:
+ func(static_cast<audio &>(obj));
+ return true;
+ case authenticationCodeInfo::ID:
+ func(static_cast<authenticationCodeInfo &>(obj));
+ return true;
+ case authenticationCodeTypeTelegramMessage::ID:
+ func(static_cast<authenticationCodeTypeTelegramMessage &>(obj));
+ return true;
+ case authenticationCodeTypeSms::ID:
+ func(static_cast<authenticationCodeTypeSms &>(obj));
+ return true;
+ case authenticationCodeTypeCall::ID:
+ func(static_cast<authenticationCodeTypeCall &>(obj));
+ return true;
+ case authenticationCodeTypeFlashCall::ID:
+ func(static_cast<authenticationCodeTypeFlashCall &>(obj));
+ return true;
+ case authenticationCodeTypeMissedCall::ID:
+ func(static_cast<authenticationCodeTypeMissedCall &>(obj));
+ return true;
+ case authorizationStateWaitTdlibParameters::ID:
+ func(static_cast<authorizationStateWaitTdlibParameters &>(obj));
+ return true;
+ case authorizationStateWaitPhoneNumber::ID:
+ func(static_cast<authorizationStateWaitPhoneNumber &>(obj));
+ return true;
+ case authorizationStateWaitEmailAddress::ID:
+ func(static_cast<authorizationStateWaitEmailAddress &>(obj));
+ return true;
+ case authorizationStateWaitEmailCode::ID:
+ func(static_cast<authorizationStateWaitEmailCode &>(obj));
+ return true;
+ case authorizationStateWaitCode::ID:
+ func(static_cast<authorizationStateWaitCode &>(obj));
+ return true;
+ case authorizationStateWaitOtherDeviceConfirmation::ID:
+ func(static_cast<authorizationStateWaitOtherDeviceConfirmation &>(obj));
+ return true;
+ case authorizationStateWaitRegistration::ID:
+ func(static_cast<authorizationStateWaitRegistration &>(obj));
+ return true;
+ case authorizationStateWaitPassword::ID:
+ func(static_cast<authorizationStateWaitPassword &>(obj));
+ return true;
+ case authorizationStateReady::ID:
+ func(static_cast<authorizationStateReady &>(obj));
+ return true;
+ case authorizationStateLoggingOut::ID:
+ func(static_cast<authorizationStateLoggingOut &>(obj));
+ return true;
+ case authorizationStateClosing::ID:
+ func(static_cast<authorizationStateClosing &>(obj));
+ return true;
+ case authorizationStateClosed::ID:
+ func(static_cast<authorizationStateClosed &>(obj));
+ return true;
+ case autoDownloadSettings::ID:
+ func(static_cast<autoDownloadSettings &>(obj));
+ return true;
+ case autoDownloadSettingsPresets::ID:
+ func(static_cast<autoDownloadSettingsPresets &>(obj));
+ return true;
+ case availableReaction::ID:
+ func(static_cast<availableReaction &>(obj));
+ return true;
+ case availableReactions::ID:
+ func(static_cast<availableReactions &>(obj));
+ return true;
+ case background::ID:
+ func(static_cast<background &>(obj));
+ return true;
+ case backgroundFillSolid::ID:
+ func(static_cast<backgroundFillSolid &>(obj));
+ return true;
+ case backgroundFillGradient::ID:
+ func(static_cast<backgroundFillGradient &>(obj));
+ return true;
+ case backgroundFillFreeformGradient::ID:
+ func(static_cast<backgroundFillFreeformGradient &>(obj));
+ return true;
+ case backgroundTypeWallpaper::ID:
+ func(static_cast<backgroundTypeWallpaper &>(obj));
+ return true;
+ case backgroundTypePattern::ID:
+ func(static_cast<backgroundTypePattern &>(obj));
+ return true;
+ case backgroundTypeFill::ID:
+ func(static_cast<backgroundTypeFill &>(obj));
+ return true;
+ case backgrounds::ID:
+ func(static_cast<backgrounds &>(obj));
+ return true;
+ case bankCardActionOpenUrl::ID:
+ func(static_cast<bankCardActionOpenUrl &>(obj));
+ return true;
+ case bankCardInfo::ID:
+ func(static_cast<bankCardInfo &>(obj));
+ return true;
+ case basicGroup::ID:
+ func(static_cast<basicGroup &>(obj));
+ return true;
+ case basicGroupFullInfo::ID:
+ func(static_cast<basicGroupFullInfo &>(obj));
+ return true;
+ case botCommand::ID:
+ func(static_cast<botCommand &>(obj));
+ return true;
+ case botCommandScopeDefault::ID:
+ func(static_cast<botCommandScopeDefault &>(obj));
+ return true;
+ case botCommandScopeAllPrivateChats::ID:
+ func(static_cast<botCommandScopeAllPrivateChats &>(obj));
+ return true;
+ case botCommandScopeAllGroupChats::ID:
+ func(static_cast<botCommandScopeAllGroupChats &>(obj));
+ return true;
+ case botCommandScopeAllChatAdministrators::ID:
+ func(static_cast<botCommandScopeAllChatAdministrators &>(obj));
+ return true;
+ case botCommandScopeChat::ID:
+ func(static_cast<botCommandScopeChat &>(obj));
+ return true;
+ case botCommandScopeChatAdministrators::ID:
+ func(static_cast<botCommandScopeChatAdministrators &>(obj));
+ return true;
+ case botCommandScopeChatMember::ID:
+ func(static_cast<botCommandScopeChatMember &>(obj));
+ return true;
+ case botCommands::ID:
+ func(static_cast<botCommands &>(obj));
+ return true;
+ case botInfo::ID:
+ func(static_cast<botInfo &>(obj));
+ return true;
+ case botMenuButton::ID:
+ func(static_cast<botMenuButton &>(obj));
+ return true;
+ case call::ID:
+ func(static_cast<call &>(obj));
+ return true;
+ case callDiscardReasonEmpty::ID:
+ func(static_cast<callDiscardReasonEmpty &>(obj));
+ return true;
+ case callDiscardReasonMissed::ID:
+ func(static_cast<callDiscardReasonMissed &>(obj));
+ return true;
+ case callDiscardReasonDeclined::ID:
+ func(static_cast<callDiscardReasonDeclined &>(obj));
+ return true;
+ case callDiscardReasonDisconnected::ID:
+ func(static_cast<callDiscardReasonDisconnected &>(obj));
+ return true;
+ case callDiscardReasonHungUp::ID:
+ func(static_cast<callDiscardReasonHungUp &>(obj));
+ return true;
+ case callId::ID:
+ func(static_cast<callId &>(obj));
+ return true;
+ case callProblemEcho::ID:
+ func(static_cast<callProblemEcho &>(obj));
+ return true;
+ case callProblemNoise::ID:
+ func(static_cast<callProblemNoise &>(obj));
+ return true;
+ case callProblemInterruptions::ID:
+ func(static_cast<callProblemInterruptions &>(obj));
+ return true;
+ case callProblemDistortedSpeech::ID:
+ func(static_cast<callProblemDistortedSpeech &>(obj));
+ return true;
+ case callProblemSilentLocal::ID:
+ func(static_cast<callProblemSilentLocal &>(obj));
+ return true;
+ case callProblemSilentRemote::ID:
+ func(static_cast<callProblemSilentRemote &>(obj));
+ return true;
+ case callProblemDropped::ID:
+ func(static_cast<callProblemDropped &>(obj));
+ return true;
+ case callProblemDistortedVideo::ID:
+ func(static_cast<callProblemDistortedVideo &>(obj));
+ return true;
+ case callProblemPixelatedVideo::ID:
+ func(static_cast<callProblemPixelatedVideo &>(obj));
+ return true;
+ case callProtocol::ID:
+ func(static_cast<callProtocol &>(obj));
+ return true;
+ case callServer::ID:
+ func(static_cast<callServer &>(obj));
+ return true;
+ case callServerTypeTelegramReflector::ID:
+ func(static_cast<callServerTypeTelegramReflector &>(obj));
+ return true;
+ case callServerTypeWebrtc::ID:
+ func(static_cast<callServerTypeWebrtc &>(obj));
+ return true;
+ case callStatePending::ID:
+ func(static_cast<callStatePending &>(obj));
+ return true;
+ case callStateExchangingKeys::ID:
+ func(static_cast<callStateExchangingKeys &>(obj));
+ return true;
+ case callStateReady::ID:
+ func(static_cast<callStateReady &>(obj));
+ return true;
+ case callStateHangingUp::ID:
+ func(static_cast<callStateHangingUp &>(obj));
+ return true;
+ case callStateDiscarded::ID:
+ func(static_cast<callStateDiscarded &>(obj));
+ return true;
+ case callStateError::ID:
+ func(static_cast<callStateError &>(obj));
+ return true;
+ case callbackQueryAnswer::ID:
+ func(static_cast<callbackQueryAnswer &>(obj));
+ return true;
+ case callbackQueryPayloadData::ID:
+ func(static_cast<callbackQueryPayloadData &>(obj));
+ return true;
+ case callbackQueryPayloadDataWithPassword::ID:
+ func(static_cast<callbackQueryPayloadDataWithPassword &>(obj));
+ return true;
+ case callbackQueryPayloadGame::ID:
+ func(static_cast<callbackQueryPayloadGame &>(obj));
+ return true;
+ case canTransferOwnershipResultOk::ID:
+ func(static_cast<canTransferOwnershipResultOk &>(obj));
+ return true;
+ case canTransferOwnershipResultPasswordNeeded::ID:
+ func(static_cast<canTransferOwnershipResultPasswordNeeded &>(obj));
+ return true;
+ case canTransferOwnershipResultPasswordTooFresh::ID:
+ func(static_cast<canTransferOwnershipResultPasswordTooFresh &>(obj));
+ return true;
+ case canTransferOwnershipResultSessionTooFresh::ID:
+ func(static_cast<canTransferOwnershipResultSessionTooFresh &>(obj));
+ return true;
+ case chat::ID:
+ func(static_cast<chat &>(obj));
+ return true;
+ case chatActionTyping::ID:
+ func(static_cast<chatActionTyping &>(obj));
+ return true;
+ case chatActionRecordingVideo::ID:
+ func(static_cast<chatActionRecordingVideo &>(obj));
+ return true;
+ case chatActionUploadingVideo::ID:
+ func(static_cast<chatActionUploadingVideo &>(obj));
+ return true;
+ case chatActionRecordingVoiceNote::ID:
+ func(static_cast<chatActionRecordingVoiceNote &>(obj));
+ return true;
+ case chatActionUploadingVoiceNote::ID:
+ func(static_cast<chatActionUploadingVoiceNote &>(obj));
+ return true;
+ case chatActionUploadingPhoto::ID:
+ func(static_cast<chatActionUploadingPhoto &>(obj));
+ return true;
+ case chatActionUploadingDocument::ID:
+ func(static_cast<chatActionUploadingDocument &>(obj));
+ return true;
+ case chatActionChoosingSticker::ID:
+ func(static_cast<chatActionChoosingSticker &>(obj));
+ return true;
+ case chatActionChoosingLocation::ID:
+ func(static_cast<chatActionChoosingLocation &>(obj));
+ return true;
+ case chatActionChoosingContact::ID:
+ func(static_cast<chatActionChoosingContact &>(obj));
+ return true;
+ case chatActionStartPlayingGame::ID:
+ func(static_cast<chatActionStartPlayingGame &>(obj));
+ return true;
+ case chatActionRecordingVideoNote::ID:
+ func(static_cast<chatActionRecordingVideoNote &>(obj));
+ return true;
+ case chatActionUploadingVideoNote::ID:
+ func(static_cast<chatActionUploadingVideoNote &>(obj));
+ return true;
+ case chatActionWatchingAnimations::ID:
+ func(static_cast<chatActionWatchingAnimations &>(obj));
+ return true;
+ case chatActionCancel::ID:
+ func(static_cast<chatActionCancel &>(obj));
+ return true;
+ case chatActionBarReportSpam::ID:
+ func(static_cast<chatActionBarReportSpam &>(obj));
+ return true;
+ case chatActionBarReportUnrelatedLocation::ID:
+ func(static_cast<chatActionBarReportUnrelatedLocation &>(obj));
+ return true;
+ case chatActionBarInviteMembers::ID:
+ func(static_cast<chatActionBarInviteMembers &>(obj));
+ return true;
+ case chatActionBarReportAddBlock::ID:
+ func(static_cast<chatActionBarReportAddBlock &>(obj));
+ return true;
+ case chatActionBarAddContact::ID:
+ func(static_cast<chatActionBarAddContact &>(obj));
+ return true;
+ case chatActionBarSharePhoneNumber::ID:
+ func(static_cast<chatActionBarSharePhoneNumber &>(obj));
+ return true;
+ case chatActionBarJoinRequest::ID:
+ func(static_cast<chatActionBarJoinRequest &>(obj));
+ return true;
+ case chatAdministrator::ID:
+ func(static_cast<chatAdministrator &>(obj));
+ return true;
+ case chatAdministratorRights::ID:
+ func(static_cast<chatAdministratorRights &>(obj));
+ return true;
+ case chatAdministrators::ID:
+ func(static_cast<chatAdministrators &>(obj));
+ return true;
+ case chatAvailableReactionsAll::ID:
+ func(static_cast<chatAvailableReactionsAll &>(obj));
+ return true;
+ case chatAvailableReactionsSome::ID:
+ func(static_cast<chatAvailableReactionsSome &>(obj));
+ return true;
+ case chatEvent::ID:
+ func(static_cast<chatEvent &>(obj));
+ return true;
+ case chatEventMessageEdited::ID:
+ func(static_cast<chatEventMessageEdited &>(obj));
+ return true;
+ case chatEventMessageDeleted::ID:
+ func(static_cast<chatEventMessageDeleted &>(obj));
+ return true;
+ case chatEventMessagePinned::ID:
+ func(static_cast<chatEventMessagePinned &>(obj));
+ return true;
+ case chatEventMessageUnpinned::ID:
+ func(static_cast<chatEventMessageUnpinned &>(obj));
+ return true;
+ case chatEventPollStopped::ID:
+ func(static_cast<chatEventPollStopped &>(obj));
+ return true;
+ case chatEventMemberJoined::ID:
+ func(static_cast<chatEventMemberJoined &>(obj));
+ return true;
+ case chatEventMemberJoinedByInviteLink::ID:
+ func(static_cast<chatEventMemberJoinedByInviteLink &>(obj));
+ return true;
+ case chatEventMemberJoinedByRequest::ID:
+ func(static_cast<chatEventMemberJoinedByRequest &>(obj));
+ return true;
+ case chatEventMemberInvited::ID:
+ func(static_cast<chatEventMemberInvited &>(obj));
+ return true;
+ case chatEventMemberLeft::ID:
+ func(static_cast<chatEventMemberLeft &>(obj));
+ return true;
+ case chatEventMemberPromoted::ID:
+ func(static_cast<chatEventMemberPromoted &>(obj));
+ return true;
+ case chatEventMemberRestricted::ID:
+ func(static_cast<chatEventMemberRestricted &>(obj));
+ return true;
+ case chatEventAvailableReactionsChanged::ID:
+ func(static_cast<chatEventAvailableReactionsChanged &>(obj));
+ return true;
+ case chatEventDescriptionChanged::ID:
+ func(static_cast<chatEventDescriptionChanged &>(obj));
+ return true;
+ case chatEventLinkedChatChanged::ID:
+ func(static_cast<chatEventLinkedChatChanged &>(obj));
+ return true;
+ case chatEventLocationChanged::ID:
+ func(static_cast<chatEventLocationChanged &>(obj));
+ return true;
+ case chatEventMessageTtlChanged::ID:
+ func(static_cast<chatEventMessageTtlChanged &>(obj));
+ return true;
+ case chatEventPermissionsChanged::ID:
+ func(static_cast<chatEventPermissionsChanged &>(obj));
+ return true;
+ case chatEventPhotoChanged::ID:
+ func(static_cast<chatEventPhotoChanged &>(obj));
+ return true;
+ case chatEventSlowModeDelayChanged::ID:
+ func(static_cast<chatEventSlowModeDelayChanged &>(obj));
+ return true;
+ case chatEventStickerSetChanged::ID:
+ func(static_cast<chatEventStickerSetChanged &>(obj));
+ return true;
+ case chatEventTitleChanged::ID:
+ func(static_cast<chatEventTitleChanged &>(obj));
+ return true;
+ case chatEventUsernameChanged::ID:
+ func(static_cast<chatEventUsernameChanged &>(obj));
+ return true;
+ case chatEventActiveUsernamesChanged::ID:
+ func(static_cast<chatEventActiveUsernamesChanged &>(obj));
+ return true;
+ case chatEventHasProtectedContentToggled::ID:
+ func(static_cast<chatEventHasProtectedContentToggled &>(obj));
+ return true;
+ case chatEventInvitesToggled::ID:
+ func(static_cast<chatEventInvitesToggled &>(obj));
+ return true;
+ case chatEventIsAllHistoryAvailableToggled::ID:
+ func(static_cast<chatEventIsAllHistoryAvailableToggled &>(obj));
+ return true;
+ case chatEventSignMessagesToggled::ID:
+ func(static_cast<chatEventSignMessagesToggled &>(obj));
+ return true;
+ case chatEventInviteLinkEdited::ID:
+ func(static_cast<chatEventInviteLinkEdited &>(obj));
+ return true;
+ case chatEventInviteLinkRevoked::ID:
+ func(static_cast<chatEventInviteLinkRevoked &>(obj));
+ return true;
+ case chatEventInviteLinkDeleted::ID:
+ func(static_cast<chatEventInviteLinkDeleted &>(obj));
+ return true;
+ case chatEventVideoChatCreated::ID:
+ func(static_cast<chatEventVideoChatCreated &>(obj));
+ return true;
+ case chatEventVideoChatEnded::ID:
+ func(static_cast<chatEventVideoChatEnded &>(obj));
+ return true;
+ case chatEventVideoChatMuteNewParticipantsToggled::ID:
+ func(static_cast<chatEventVideoChatMuteNewParticipantsToggled &>(obj));
+ return true;
+ case chatEventVideoChatParticipantIsMutedToggled::ID:
+ func(static_cast<chatEventVideoChatParticipantIsMutedToggled &>(obj));
+ return true;
+ case chatEventVideoChatParticipantVolumeLevelChanged::ID:
+ func(static_cast<chatEventVideoChatParticipantVolumeLevelChanged &>(obj));
+ return true;
+ case chatEventIsForumToggled::ID:
+ func(static_cast<chatEventIsForumToggled &>(obj));
+ return true;
+ case chatEventForumTopicCreated::ID:
+ func(static_cast<chatEventForumTopicCreated &>(obj));
+ return true;
+ case chatEventForumTopicEdited::ID:
+ func(static_cast<chatEventForumTopicEdited &>(obj));
+ return true;
+ case chatEventForumTopicToggleIsClosed::ID:
+ func(static_cast<chatEventForumTopicToggleIsClosed &>(obj));
+ return true;
+ case chatEventForumTopicDeleted::ID:
+ func(static_cast<chatEventForumTopicDeleted &>(obj));
+ return true;
+ case chatEventForumTopicPinned::ID:
+ func(static_cast<chatEventForumTopicPinned &>(obj));
+ return true;
+ case chatEventLogFilters::ID:
+ func(static_cast<chatEventLogFilters &>(obj));
+ return true;
+ case chatEvents::ID:
+ func(static_cast<chatEvents &>(obj));
+ return true;
+ case chatFilter::ID:
+ func(static_cast<chatFilter &>(obj));
+ return true;
+ case chatFilterInfo::ID:
+ func(static_cast<chatFilterInfo &>(obj));
+ return true;
+ case chatInviteLink::ID:
+ func(static_cast<chatInviteLink &>(obj));
+ return true;
+ case chatInviteLinkCount::ID:
+ func(static_cast<chatInviteLinkCount &>(obj));
+ return true;
+ case chatInviteLinkCounts::ID:
+ func(static_cast<chatInviteLinkCounts &>(obj));
+ return true;
+ case chatInviteLinkInfo::ID:
+ func(static_cast<chatInviteLinkInfo &>(obj));
+ return true;
+ case chatInviteLinkMember::ID:
+ func(static_cast<chatInviteLinkMember &>(obj));
+ return true;
+ case chatInviteLinkMembers::ID:
+ func(static_cast<chatInviteLinkMembers &>(obj));
+ return true;
+ case chatInviteLinks::ID:
+ func(static_cast<chatInviteLinks &>(obj));
+ return true;
+ case chatJoinRequest::ID:
+ func(static_cast<chatJoinRequest &>(obj));
+ return true;
+ case chatJoinRequests::ID:
+ func(static_cast<chatJoinRequests &>(obj));
+ return true;
+ case chatJoinRequestsInfo::ID:
+ func(static_cast<chatJoinRequestsInfo &>(obj));
+ return true;
+ case chatListMain::ID:
+ func(static_cast<chatListMain &>(obj));
+ return true;
+ case chatListArchive::ID:
+ func(static_cast<chatListArchive &>(obj));
+ return true;
+ case chatListFilter::ID:
+ func(static_cast<chatListFilter &>(obj));
+ return true;
+ case chatLists::ID:
+ func(static_cast<chatLists &>(obj));
+ return true;
+ case chatLocation::ID:
+ func(static_cast<chatLocation &>(obj));
+ return true;
+ case chatMember::ID:
+ func(static_cast<chatMember &>(obj));
+ return true;
+ case chatMemberStatusCreator::ID:
+ func(static_cast<chatMemberStatusCreator &>(obj));
+ return true;
+ case chatMemberStatusAdministrator::ID:
+ func(static_cast<chatMemberStatusAdministrator &>(obj));
+ return true;
+ case chatMemberStatusMember::ID:
+ func(static_cast<chatMemberStatusMember &>(obj));
+ return true;
+ case chatMemberStatusRestricted::ID:
+ func(static_cast<chatMemberStatusRestricted &>(obj));
+ return true;
+ case chatMemberStatusLeft::ID:
+ func(static_cast<chatMemberStatusLeft &>(obj));
+ return true;
+ case chatMemberStatusBanned::ID:
+ func(static_cast<chatMemberStatusBanned &>(obj));
+ return true;
+ case chatMembers::ID:
+ func(static_cast<chatMembers &>(obj));
+ return true;
+ case chatMembersFilterContacts::ID:
+ func(static_cast<chatMembersFilterContacts &>(obj));
+ return true;
+ case chatMembersFilterAdministrators::ID:
+ func(static_cast<chatMembersFilterAdministrators &>(obj));
+ return true;
+ case chatMembersFilterMembers::ID:
+ func(static_cast<chatMembersFilterMembers &>(obj));
+ return true;
+ case chatMembersFilterMention::ID:
+ func(static_cast<chatMembersFilterMention &>(obj));
+ return true;
+ case chatMembersFilterRestricted::ID:
+ func(static_cast<chatMembersFilterRestricted &>(obj));
+ return true;
+ case chatMembersFilterBanned::ID:
+ func(static_cast<chatMembersFilterBanned &>(obj));
+ return true;
+ case chatMembersFilterBots::ID:
+ func(static_cast<chatMembersFilterBots &>(obj));
+ return true;
+ case chatMessageSender::ID:
+ func(static_cast<chatMessageSender &>(obj));
+ return true;
+ case chatMessageSenders::ID:
+ func(static_cast<chatMessageSenders &>(obj));
+ return true;
+ case chatNearby::ID:
+ func(static_cast<chatNearby &>(obj));
+ return true;
+ case chatNotificationSettings::ID:
+ func(static_cast<chatNotificationSettings &>(obj));
+ return true;
+ case chatPermissions::ID:
+ func(static_cast<chatPermissions &>(obj));
+ return true;
+ case chatPhoto::ID:
+ func(static_cast<chatPhoto &>(obj));
+ return true;
+ case chatPhotoInfo::ID:
+ func(static_cast<chatPhotoInfo &>(obj));
+ return true;
+ case chatPhotos::ID:
+ func(static_cast<chatPhotos &>(obj));
+ return true;
+ case chatPosition::ID:
+ func(static_cast<chatPosition &>(obj));
+ return true;
+ case chatReportReasonSpam::ID:
+ func(static_cast<chatReportReasonSpam &>(obj));
+ return true;
+ case chatReportReasonViolence::ID:
+ func(static_cast<chatReportReasonViolence &>(obj));
+ return true;
+ case chatReportReasonPornography::ID:
+ func(static_cast<chatReportReasonPornography &>(obj));
+ return true;
+ case chatReportReasonChildAbuse::ID:
+ func(static_cast<chatReportReasonChildAbuse &>(obj));
+ return true;
+ case chatReportReasonCopyright::ID:
+ func(static_cast<chatReportReasonCopyright &>(obj));
+ return true;
+ case chatReportReasonUnrelatedLocation::ID:
+ func(static_cast<chatReportReasonUnrelatedLocation &>(obj));
+ return true;
+ case chatReportReasonFake::ID:
+ func(static_cast<chatReportReasonFake &>(obj));
+ return true;
+ case chatReportReasonIllegalDrugs::ID:
+ func(static_cast<chatReportReasonIllegalDrugs &>(obj));
+ return true;
+ case chatReportReasonPersonalDetails::ID:
+ func(static_cast<chatReportReasonPersonalDetails &>(obj));
+ return true;
+ case chatReportReasonCustom::ID:
+ func(static_cast<chatReportReasonCustom &>(obj));
+ return true;
+ case chatSourceMtprotoProxy::ID:
+ func(static_cast<chatSourceMtprotoProxy &>(obj));
+ return true;
+ case chatSourcePublicServiceAnnouncement::ID:
+ func(static_cast<chatSourcePublicServiceAnnouncement &>(obj));
+ return true;
+ case chatStatisticsSupergroup::ID:
+ func(static_cast<chatStatisticsSupergroup &>(obj));
+ return true;
+ case chatStatisticsChannel::ID:
+ func(static_cast<chatStatisticsChannel &>(obj));
+ return true;
+ case chatStatisticsAdministratorActionsInfo::ID:
+ func(static_cast<chatStatisticsAdministratorActionsInfo &>(obj));
+ return true;
+ case chatStatisticsInviterInfo::ID:
+ func(static_cast<chatStatisticsInviterInfo &>(obj));
+ return true;
+ case chatStatisticsMessageInteractionInfo::ID:
+ func(static_cast<chatStatisticsMessageInteractionInfo &>(obj));
+ return true;
+ case chatStatisticsMessageSenderInfo::ID:
+ func(static_cast<chatStatisticsMessageSenderInfo &>(obj));
+ return true;
+ case chatTheme::ID:
+ func(static_cast<chatTheme &>(obj));
+ return true;
+ case chatTypePrivate::ID:
+ func(static_cast<chatTypePrivate &>(obj));
+ return true;
+ case chatTypeBasicGroup::ID:
+ func(static_cast<chatTypeBasicGroup &>(obj));
+ return true;
+ case chatTypeSupergroup::ID:
+ func(static_cast<chatTypeSupergroup &>(obj));
+ return true;
+ case chatTypeSecret::ID:
+ func(static_cast<chatTypeSecret &>(obj));
+ return true;
+ case chats::ID:
+ func(static_cast<chats &>(obj));
+ return true;
+ case chatsNearby::ID:
+ func(static_cast<chatsNearby &>(obj));
+ return true;
+ case checkChatUsernameResultOk::ID:
+ func(static_cast<checkChatUsernameResultOk &>(obj));
+ return true;
+ case checkChatUsernameResultUsernameInvalid::ID:
+ func(static_cast<checkChatUsernameResultUsernameInvalid &>(obj));
+ return true;
+ case checkChatUsernameResultUsernameOccupied::ID:
+ func(static_cast<checkChatUsernameResultUsernameOccupied &>(obj));
+ return true;
+ case checkChatUsernameResultPublicChatsTooMuch::ID:
+ func(static_cast<checkChatUsernameResultPublicChatsTooMuch &>(obj));
+ return true;
+ case checkChatUsernameResultPublicGroupsUnavailable::ID:
+ func(static_cast<checkChatUsernameResultPublicGroupsUnavailable &>(obj));
+ return true;
+ case checkStickerSetNameResultOk::ID:
+ func(static_cast<checkStickerSetNameResultOk &>(obj));
+ return true;
+ case checkStickerSetNameResultNameInvalid::ID:
+ func(static_cast<checkStickerSetNameResultNameInvalid &>(obj));
+ return true;
+ case checkStickerSetNameResultNameOccupied::ID:
+ func(static_cast<checkStickerSetNameResultNameOccupied &>(obj));
+ return true;
+ case closedVectorPath::ID:
+ func(static_cast<closedVectorPath &>(obj));
+ return true;
+ case connectedWebsite::ID:
+ func(static_cast<connectedWebsite &>(obj));
+ return true;
+ case connectedWebsites::ID:
+ func(static_cast<connectedWebsites &>(obj));
+ return true;
+ case connectionStateWaitingForNetwork::ID:
+ func(static_cast<connectionStateWaitingForNetwork &>(obj));
+ return true;
+ case connectionStateConnectingToProxy::ID:
+ func(static_cast<connectionStateConnectingToProxy &>(obj));
+ return true;
+ case connectionStateConnecting::ID:
+ func(static_cast<connectionStateConnecting &>(obj));
+ return true;
+ case connectionStateUpdating::ID:
+ func(static_cast<connectionStateUpdating &>(obj));
+ return true;
+ case connectionStateReady::ID:
+ func(static_cast<connectionStateReady &>(obj));
+ return true;
+ case contact::ID:
+ func(static_cast<contact &>(obj));
+ return true;
+ case count::ID:
+ func(static_cast<count &>(obj));
+ return true;
+ case countries::ID:
+ func(static_cast<countries &>(obj));
+ return true;
+ case countryInfo::ID:
+ func(static_cast<countryInfo &>(obj));
+ return true;
+ case customRequestResult::ID:
+ func(static_cast<customRequestResult &>(obj));
+ return true;
+ case databaseStatistics::ID:
+ func(static_cast<databaseStatistics &>(obj));
+ return true;
+ case date::ID:
+ func(static_cast<date &>(obj));
+ return true;
+ case dateRange::ID:
+ func(static_cast<dateRange &>(obj));
+ return true;
+ case datedFile::ID:
+ func(static_cast<datedFile &>(obj));
+ return true;
+ case deepLinkInfo::ID:
+ func(static_cast<deepLinkInfo &>(obj));
+ return true;
+ case deviceTokenFirebaseCloudMessaging::ID:
+ func(static_cast<deviceTokenFirebaseCloudMessaging &>(obj));
+ return true;
+ case deviceTokenApplePush::ID:
+ func(static_cast<deviceTokenApplePush &>(obj));
+ return true;
+ case deviceTokenApplePushVoIP::ID:
+ func(static_cast<deviceTokenApplePushVoIP &>(obj));
+ return true;
+ case deviceTokenWindowsPush::ID:
+ func(static_cast<deviceTokenWindowsPush &>(obj));
+ return true;
+ case deviceTokenMicrosoftPush::ID:
+ func(static_cast<deviceTokenMicrosoftPush &>(obj));
+ return true;
+ case deviceTokenMicrosoftPushVoIP::ID:
+ func(static_cast<deviceTokenMicrosoftPushVoIP &>(obj));
+ return true;
+ case deviceTokenWebPush::ID:
+ func(static_cast<deviceTokenWebPush &>(obj));
+ return true;
+ case deviceTokenSimplePush::ID:
+ func(static_cast<deviceTokenSimplePush &>(obj));
+ return true;
+ case deviceTokenUbuntuPush::ID:
+ func(static_cast<deviceTokenUbuntuPush &>(obj));
+ return true;
+ case deviceTokenBlackBerryPush::ID:
+ func(static_cast<deviceTokenBlackBerryPush &>(obj));
+ return true;
+ case deviceTokenTizenPush::ID:
+ func(static_cast<deviceTokenTizenPush &>(obj));
+ return true;
+ case diceStickersRegular::ID:
+ func(static_cast<diceStickersRegular &>(obj));
+ return true;
+ case diceStickersSlotMachine::ID:
+ func(static_cast<diceStickersSlotMachine &>(obj));
+ return true;
+ case document::ID:
+ func(static_cast<document &>(obj));
+ return true;
+ case downloadedFileCounts::ID:
+ func(static_cast<downloadedFileCounts &>(obj));
+ return true;
+ case draftMessage::ID:
+ func(static_cast<draftMessage &>(obj));
+ return true;
+ case emailAddressAuthenticationCode::ID:
+ func(static_cast<emailAddressAuthenticationCode &>(obj));
+ return true;
+ case emailAddressAuthenticationAppleId::ID:
+ func(static_cast<emailAddressAuthenticationAppleId &>(obj));
+ return true;
+ case emailAddressAuthenticationGoogleId::ID:
+ func(static_cast<emailAddressAuthenticationGoogleId &>(obj));
+ return true;
+ case emailAddressAuthenticationCodeInfo::ID:
+ func(static_cast<emailAddressAuthenticationCodeInfo &>(obj));
+ return true;
+ case emojiReaction::ID:
+ func(static_cast<emojiReaction &>(obj));
+ return true;
+ case emojiStatus::ID:
+ func(static_cast<emojiStatus &>(obj));
+ return true;
+ case emojiStatuses::ID:
+ func(static_cast<emojiStatuses &>(obj));
+ return true;
+ case emojis::ID:
+ func(static_cast<emojis &>(obj));
+ return true;
+ case encryptedCredentials::ID:
+ func(static_cast<encryptedCredentials &>(obj));
+ return true;
+ case encryptedPassportElement::ID:
+ func(static_cast<encryptedPassportElement &>(obj));
+ return true;
+ case error::ID:
+ func(static_cast<error &>(obj));
+ return true;
+ case file::ID:
+ func(static_cast<file &>(obj));
+ return true;
+ case fileDownload::ID:
+ func(static_cast<fileDownload &>(obj));
+ return true;
+ case fileDownloadedPrefixSize::ID:
+ func(static_cast<fileDownloadedPrefixSize &>(obj));
+ return true;
+ case filePart::ID:
+ func(static_cast<filePart &>(obj));
+ return true;
+ case fileTypeNone::ID:
+ func(static_cast<fileTypeNone &>(obj));
+ return true;
+ case fileTypeAnimation::ID:
+ func(static_cast<fileTypeAnimation &>(obj));
+ return true;
+ case fileTypeAudio::ID:
+ func(static_cast<fileTypeAudio &>(obj));
+ return true;
+ case fileTypeDocument::ID:
+ func(static_cast<fileTypeDocument &>(obj));
+ return true;
+ case fileTypeNotificationSound::ID:
+ func(static_cast<fileTypeNotificationSound &>(obj));
+ return true;
+ case fileTypePhoto::ID:
+ func(static_cast<fileTypePhoto &>(obj));
+ return true;
+ case fileTypeProfilePhoto::ID:
+ func(static_cast<fileTypeProfilePhoto &>(obj));
+ return true;
+ case fileTypeSecret::ID:
+ func(static_cast<fileTypeSecret &>(obj));
+ return true;
+ case fileTypeSecretThumbnail::ID:
+ func(static_cast<fileTypeSecretThumbnail &>(obj));
+ return true;
+ case fileTypeSecure::ID:
+ func(static_cast<fileTypeSecure &>(obj));
+ return true;
+ case fileTypeSticker::ID:
+ func(static_cast<fileTypeSticker &>(obj));
+ return true;
+ case fileTypeThumbnail::ID:
+ func(static_cast<fileTypeThumbnail &>(obj));
+ return true;
+ case fileTypeUnknown::ID:
+ func(static_cast<fileTypeUnknown &>(obj));
+ return true;
+ case fileTypeVideo::ID:
+ func(static_cast<fileTypeVideo &>(obj));
+ return true;
+ case fileTypeVideoNote::ID:
+ func(static_cast<fileTypeVideoNote &>(obj));
+ return true;
+ case fileTypeVoiceNote::ID:
+ func(static_cast<fileTypeVoiceNote &>(obj));
+ return true;
+ case fileTypeWallpaper::ID:
+ func(static_cast<fileTypeWallpaper &>(obj));
+ return true;
+ case formattedText::ID:
+ func(static_cast<formattedText &>(obj));
+ return true;
+ case forumTopic::ID:
+ func(static_cast<forumTopic &>(obj));
+ return true;
+ case forumTopicIcon::ID:
+ func(static_cast<forumTopicIcon &>(obj));
+ return true;
+ case forumTopicInfo::ID:
+ func(static_cast<forumTopicInfo &>(obj));
+ return true;
+ case foundFileDownloads::ID:
+ func(static_cast<foundFileDownloads &>(obj));
+ return true;
+ case foundMessages::ID:
+ func(static_cast<foundMessages &>(obj));
+ return true;
+ case game::ID:
+ func(static_cast<game &>(obj));
+ return true;
+ case gameHighScore::ID:
+ func(static_cast<gameHighScore &>(obj));
+ return true;
+ case gameHighScores::ID:
+ func(static_cast<gameHighScores &>(obj));
+ return true;
+ case groupCall::ID:
+ func(static_cast<groupCall &>(obj));
+ return true;
+ case groupCallId::ID:
+ func(static_cast<groupCallId &>(obj));
+ return true;
+ case groupCallParticipant::ID:
+ func(static_cast<groupCallParticipant &>(obj));
+ return true;
+ case groupCallParticipantVideoInfo::ID:
+ func(static_cast<groupCallParticipantVideoInfo &>(obj));
+ return true;
+ case groupCallRecentSpeaker::ID:
+ func(static_cast<groupCallRecentSpeaker &>(obj));
+ return true;
+ case groupCallStream::ID:
+ func(static_cast<groupCallStream &>(obj));
+ return true;
+ case groupCallStreams::ID:
+ func(static_cast<groupCallStreams &>(obj));
+ return true;
+ case groupCallVideoQualityThumbnail::ID:
+ func(static_cast<groupCallVideoQualityThumbnail &>(obj));
+ return true;
+ case groupCallVideoQualityMedium::ID:
+ func(static_cast<groupCallVideoQualityMedium &>(obj));
+ return true;
+ case groupCallVideoQualityFull::ID:
+ func(static_cast<groupCallVideoQualityFull &>(obj));
+ return true;
+ case groupCallVideoSourceGroup::ID:
+ func(static_cast<groupCallVideoSourceGroup &>(obj));
+ return true;
+ case hashtags::ID:
+ func(static_cast<hashtags &>(obj));
+ return true;
+ case httpUrl::ID:
+ func(static_cast<httpUrl &>(obj));
+ return true;
+ case identityDocument::ID:
+ func(static_cast<identityDocument &>(obj));
+ return true;
+ case importedContacts::ID:
+ func(static_cast<importedContacts &>(obj));
+ return true;
+ case inlineKeyboardButton::ID:
+ func(static_cast<inlineKeyboardButton &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeUrl::ID:
+ func(static_cast<inlineKeyboardButtonTypeUrl &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeLoginUrl::ID:
+ func(static_cast<inlineKeyboardButtonTypeLoginUrl &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeWebApp::ID:
+ func(static_cast<inlineKeyboardButtonTypeWebApp &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeCallback::ID:
+ func(static_cast<inlineKeyboardButtonTypeCallback &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeCallbackWithPassword::ID:
+ func(static_cast<inlineKeyboardButtonTypeCallbackWithPassword &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeCallbackGame::ID:
+ func(static_cast<inlineKeyboardButtonTypeCallbackGame &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeSwitchInline::ID:
+ func(static_cast<inlineKeyboardButtonTypeSwitchInline &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeBuy::ID:
+ func(static_cast<inlineKeyboardButtonTypeBuy &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeUser::ID:
+ func(static_cast<inlineKeyboardButtonTypeUser &>(obj));
+ return true;
+ case inlineQueryResultArticle::ID:
+ func(static_cast<inlineQueryResultArticle &>(obj));
+ return true;
+ case inlineQueryResultContact::ID:
+ func(static_cast<inlineQueryResultContact &>(obj));
+ return true;
+ case inlineQueryResultLocation::ID:
+ func(static_cast<inlineQueryResultLocation &>(obj));
+ return true;
+ case inlineQueryResultVenue::ID:
+ func(static_cast<inlineQueryResultVenue &>(obj));
+ return true;
+ case inlineQueryResultGame::ID:
+ func(static_cast<inlineQueryResultGame &>(obj));
+ return true;
+ case inlineQueryResultAnimation::ID:
+ func(static_cast<inlineQueryResultAnimation &>(obj));
+ return true;
+ case inlineQueryResultAudio::ID:
+ func(static_cast<inlineQueryResultAudio &>(obj));
+ return true;
+ case inlineQueryResultDocument::ID:
+ func(static_cast<inlineQueryResultDocument &>(obj));
+ return true;
+ case inlineQueryResultPhoto::ID:
+ func(static_cast<inlineQueryResultPhoto &>(obj));
+ return true;
+ case inlineQueryResultSticker::ID:
+ func(static_cast<inlineQueryResultSticker &>(obj));
+ return true;
+ case inlineQueryResultVideo::ID:
+ func(static_cast<inlineQueryResultVideo &>(obj));
+ return true;
+ case inlineQueryResultVoiceNote::ID:
+ func(static_cast<inlineQueryResultVoiceNote &>(obj));
+ return true;
+ case inlineQueryResults::ID:
+ func(static_cast<inlineQueryResults &>(obj));
+ return true;
+ case inputBackgroundLocal::ID:
+ func(static_cast<inputBackgroundLocal &>(obj));
+ return true;
+ case inputBackgroundRemote::ID:
+ func(static_cast<inputBackgroundRemote &>(obj));
+ return true;
+ case inputChatPhotoPrevious::ID:
+ func(static_cast<inputChatPhotoPrevious &>(obj));
+ return true;
+ case inputChatPhotoStatic::ID:
+ func(static_cast<inputChatPhotoStatic &>(obj));
+ return true;
+ case inputChatPhotoAnimation::ID:
+ func(static_cast<inputChatPhotoAnimation &>(obj));
+ return true;
+ case inputCredentialsSaved::ID:
+ func(static_cast<inputCredentialsSaved &>(obj));
+ return true;
+ case inputCredentialsNew::ID:
+ func(static_cast<inputCredentialsNew &>(obj));
+ return true;
+ case inputCredentialsApplePay::ID:
+ func(static_cast<inputCredentialsApplePay &>(obj));
+ return true;
+ case inputCredentialsGooglePay::ID:
+ func(static_cast<inputCredentialsGooglePay &>(obj));
+ return true;
+ case inputFileId::ID:
+ func(static_cast<inputFileId &>(obj));
+ return true;
+ case inputFileRemote::ID:
+ func(static_cast<inputFileRemote &>(obj));
+ return true;
+ case inputFileLocal::ID:
+ func(static_cast<inputFileLocal &>(obj));
+ return true;
+ case inputFileGenerated::ID:
+ func(static_cast<inputFileGenerated &>(obj));
+ return true;
+ case inputIdentityDocument::ID:
+ func(static_cast<inputIdentityDocument &>(obj));
+ return true;
+ case inputInlineQueryResultAnimation::ID:
+ func(static_cast<inputInlineQueryResultAnimation &>(obj));
+ return true;
+ case inputInlineQueryResultArticle::ID:
+ func(static_cast<inputInlineQueryResultArticle &>(obj));
+ return true;
+ case inputInlineQueryResultAudio::ID:
+ func(static_cast<inputInlineQueryResultAudio &>(obj));
+ return true;
+ case inputInlineQueryResultContact::ID:
+ func(static_cast<inputInlineQueryResultContact &>(obj));
+ return true;
+ case inputInlineQueryResultDocument::ID:
+ func(static_cast<inputInlineQueryResultDocument &>(obj));
+ return true;
+ case inputInlineQueryResultGame::ID:
+ func(static_cast<inputInlineQueryResultGame &>(obj));
+ return true;
+ case inputInlineQueryResultLocation::ID:
+ func(static_cast<inputInlineQueryResultLocation &>(obj));
+ return true;
+ case inputInlineQueryResultPhoto::ID:
+ func(static_cast<inputInlineQueryResultPhoto &>(obj));
+ return true;
+ case inputInlineQueryResultSticker::ID:
+ func(static_cast<inputInlineQueryResultSticker &>(obj));
+ return true;
+ case inputInlineQueryResultVenue::ID:
+ func(static_cast<inputInlineQueryResultVenue &>(obj));
+ return true;
+ case inputInlineQueryResultVideo::ID:
+ func(static_cast<inputInlineQueryResultVideo &>(obj));
+ return true;
+ case inputInlineQueryResultVoiceNote::ID:
+ func(static_cast<inputInlineQueryResultVoiceNote &>(obj));
+ return true;
+ case inputInvoiceMessage::ID:
+ func(static_cast<inputInvoiceMessage &>(obj));
+ return true;
+ case inputInvoiceName::ID:
+ func(static_cast<inputInvoiceName &>(obj));
+ return true;
+ case inputMessageText::ID:
+ func(static_cast<inputMessageText &>(obj));
+ return true;
+ case inputMessageAnimation::ID:
+ func(static_cast<inputMessageAnimation &>(obj));
+ return true;
+ case inputMessageAudio::ID:
+ func(static_cast<inputMessageAudio &>(obj));
+ return true;
+ case inputMessageDocument::ID:
+ func(static_cast<inputMessageDocument &>(obj));
+ return true;
+ case inputMessagePhoto::ID:
+ func(static_cast<inputMessagePhoto &>(obj));
+ return true;
+ case inputMessageSticker::ID:
+ func(static_cast<inputMessageSticker &>(obj));
+ return true;
+ case inputMessageVideo::ID:
+ func(static_cast<inputMessageVideo &>(obj));
+ return true;
+ case inputMessageVideoNote::ID:
+ func(static_cast<inputMessageVideoNote &>(obj));
+ return true;
+ case inputMessageVoiceNote::ID:
+ func(static_cast<inputMessageVoiceNote &>(obj));
+ return true;
+ case inputMessageLocation::ID:
+ func(static_cast<inputMessageLocation &>(obj));
+ return true;
+ case inputMessageVenue::ID:
+ func(static_cast<inputMessageVenue &>(obj));
+ return true;
+ case inputMessageContact::ID:
+ func(static_cast<inputMessageContact &>(obj));
+ return true;
+ case inputMessageDice::ID:
+ func(static_cast<inputMessageDice &>(obj));
+ return true;
+ case inputMessageGame::ID:
+ func(static_cast<inputMessageGame &>(obj));
+ return true;
+ case inputMessageInvoice::ID:
+ func(static_cast<inputMessageInvoice &>(obj));
+ return true;
+ case inputMessagePoll::ID:
+ func(static_cast<inputMessagePoll &>(obj));
+ return true;
+ case inputMessageForwarded::ID:
+ func(static_cast<inputMessageForwarded &>(obj));
+ return true;
+ case inputPassportElementPersonalDetails::ID:
+ func(static_cast<inputPassportElementPersonalDetails &>(obj));
+ return true;
+ case inputPassportElementPassport::ID:
+ func(static_cast<inputPassportElementPassport &>(obj));
+ return true;
+ case inputPassportElementDriverLicense::ID:
+ func(static_cast<inputPassportElementDriverLicense &>(obj));
+ return true;
+ case inputPassportElementIdentityCard::ID:
+ func(static_cast<inputPassportElementIdentityCard &>(obj));
+ return true;
+ case inputPassportElementInternalPassport::ID:
+ func(static_cast<inputPassportElementInternalPassport &>(obj));
+ return true;
+ case inputPassportElementAddress::ID:
+ func(static_cast<inputPassportElementAddress &>(obj));
+ return true;
+ case inputPassportElementUtilityBill::ID:
+ func(static_cast<inputPassportElementUtilityBill &>(obj));
+ return true;
+ case inputPassportElementBankStatement::ID:
+ func(static_cast<inputPassportElementBankStatement &>(obj));
+ return true;
+ case inputPassportElementRentalAgreement::ID:
+ func(static_cast<inputPassportElementRentalAgreement &>(obj));
+ return true;
+ case inputPassportElementPassportRegistration::ID:
+ func(static_cast<inputPassportElementPassportRegistration &>(obj));
+ return true;
+ case inputPassportElementTemporaryRegistration::ID:
+ func(static_cast<inputPassportElementTemporaryRegistration &>(obj));
+ return true;
+ case inputPassportElementPhoneNumber::ID:
+ func(static_cast<inputPassportElementPhoneNumber &>(obj));
+ return true;
+ case inputPassportElementEmailAddress::ID:
+ func(static_cast<inputPassportElementEmailAddress &>(obj));
+ return true;
+ case inputPassportElementError::ID:
+ func(static_cast<inputPassportElementError &>(obj));
+ return true;
+ case inputPassportElementErrorSourceUnspecified::ID:
+ func(static_cast<inputPassportElementErrorSourceUnspecified &>(obj));
+ return true;
+ case inputPassportElementErrorSourceDataField::ID:
+ func(static_cast<inputPassportElementErrorSourceDataField &>(obj));
+ return true;
+ case inputPassportElementErrorSourceFrontSide::ID:
+ func(static_cast<inputPassportElementErrorSourceFrontSide &>(obj));
+ return true;
+ case inputPassportElementErrorSourceReverseSide::ID:
+ func(static_cast<inputPassportElementErrorSourceReverseSide &>(obj));
+ return true;
+ case inputPassportElementErrorSourceSelfie::ID:
+ func(static_cast<inputPassportElementErrorSourceSelfie &>(obj));
+ return true;
+ case inputPassportElementErrorSourceTranslationFile::ID:
+ func(static_cast<inputPassportElementErrorSourceTranslationFile &>(obj));
+ return true;
+ case inputPassportElementErrorSourceTranslationFiles::ID:
+ func(static_cast<inputPassportElementErrorSourceTranslationFiles &>(obj));
+ return true;
+ case inputPassportElementErrorSourceFile::ID:
+ func(static_cast<inputPassportElementErrorSourceFile &>(obj));
+ return true;
+ case inputPassportElementErrorSourceFiles::ID:
+ func(static_cast<inputPassportElementErrorSourceFiles &>(obj));
+ return true;
+ case inputPersonalDocument::ID:
+ func(static_cast<inputPersonalDocument &>(obj));
+ return true;
+ case inputSticker::ID:
+ func(static_cast<inputSticker &>(obj));
+ return true;
+ case inputThumbnail::ID:
+ func(static_cast<inputThumbnail &>(obj));
+ return true;
+ case internalLinkTypeActiveSessions::ID:
+ func(static_cast<internalLinkTypeActiveSessions &>(obj));
+ return true;
+ case internalLinkTypeAttachmentMenuBot::ID:
+ func(static_cast<internalLinkTypeAttachmentMenuBot &>(obj));
+ return true;
+ case internalLinkTypeAuthenticationCode::ID:
+ func(static_cast<internalLinkTypeAuthenticationCode &>(obj));
+ return true;
+ case internalLinkTypeBackground::ID:
+ func(static_cast<internalLinkTypeBackground &>(obj));
+ return true;
+ case internalLinkTypeBotStart::ID:
+ func(static_cast<internalLinkTypeBotStart &>(obj));
+ return true;
+ case internalLinkTypeBotStartInGroup::ID:
+ func(static_cast<internalLinkTypeBotStartInGroup &>(obj));
+ return true;
+ case internalLinkTypeBotAddToChannel::ID:
+ func(static_cast<internalLinkTypeBotAddToChannel &>(obj));
+ return true;
+ case internalLinkTypeChangePhoneNumber::ID:
+ func(static_cast<internalLinkTypeChangePhoneNumber &>(obj));
+ return true;
+ case internalLinkTypeChatInvite::ID:
+ func(static_cast<internalLinkTypeChatInvite &>(obj));
+ return true;
+ case internalLinkTypeFilterSettings::ID:
+ func(static_cast<internalLinkTypeFilterSettings &>(obj));
+ return true;
+ case internalLinkTypeGame::ID:
+ func(static_cast<internalLinkTypeGame &>(obj));
+ return true;
+ case internalLinkTypeInstantView::ID:
+ func(static_cast<internalLinkTypeInstantView &>(obj));
+ return true;
+ case internalLinkTypeInvoice::ID:
+ func(static_cast<internalLinkTypeInvoice &>(obj));
+ return true;
+ case internalLinkTypeLanguagePack::ID:
+ func(static_cast<internalLinkTypeLanguagePack &>(obj));
+ return true;
+ case internalLinkTypeLanguageSettings::ID:
+ func(static_cast<internalLinkTypeLanguageSettings &>(obj));
+ return true;
+ case internalLinkTypeMessage::ID:
+ func(static_cast<internalLinkTypeMessage &>(obj));
+ return true;
+ case internalLinkTypeMessageDraft::ID:
+ func(static_cast<internalLinkTypeMessageDraft &>(obj));
+ return true;
+ case internalLinkTypePassportDataRequest::ID:
+ func(static_cast<internalLinkTypePassportDataRequest &>(obj));
+ return true;
+ case internalLinkTypePhoneNumberConfirmation::ID:
+ func(static_cast<internalLinkTypePhoneNumberConfirmation &>(obj));
+ return true;
+ case internalLinkTypePremiumFeatures::ID:
+ func(static_cast<internalLinkTypePremiumFeatures &>(obj));
+ return true;
+ case internalLinkTypePrivacyAndSecuritySettings::ID:
+ func(static_cast<internalLinkTypePrivacyAndSecuritySettings &>(obj));
+ return true;
+ case internalLinkTypeProxy::ID:
+ func(static_cast<internalLinkTypeProxy &>(obj));
+ return true;
+ case internalLinkTypePublicChat::ID:
+ func(static_cast<internalLinkTypePublicChat &>(obj));
+ return true;
+ case internalLinkTypeQrCodeAuthentication::ID:
+ func(static_cast<internalLinkTypeQrCodeAuthentication &>(obj));
+ return true;
+ case internalLinkTypeRestorePurchases::ID:
+ func(static_cast<internalLinkTypeRestorePurchases &>(obj));
+ return true;
+ case internalLinkTypeSettings::ID:
+ func(static_cast<internalLinkTypeSettings &>(obj));
+ return true;
+ case internalLinkTypeStickerSet::ID:
+ func(static_cast<internalLinkTypeStickerSet &>(obj));
+ return true;
+ case internalLinkTypeTheme::ID:
+ func(static_cast<internalLinkTypeTheme &>(obj));
+ return true;
+ case internalLinkTypeThemeSettings::ID:
+ func(static_cast<internalLinkTypeThemeSettings &>(obj));
+ return true;
+ case internalLinkTypeUnknownDeepLink::ID:
+ func(static_cast<internalLinkTypeUnknownDeepLink &>(obj));
+ return true;
+ case internalLinkTypeUnsupportedProxy::ID:
+ func(static_cast<internalLinkTypeUnsupportedProxy &>(obj));
+ return true;
+ case internalLinkTypeUserPhoneNumber::ID:
+ func(static_cast<internalLinkTypeUserPhoneNumber &>(obj));
+ return true;
+ case internalLinkTypeVideoChat::ID:
+ func(static_cast<internalLinkTypeVideoChat &>(obj));
+ return true;
+ case invoice::ID:
+ func(static_cast<invoice &>(obj));
+ return true;
+ case jsonObjectMember::ID:
+ func(static_cast<jsonObjectMember &>(obj));
+ return true;
+ case jsonValueNull::ID:
+ func(static_cast<jsonValueNull &>(obj));
+ return true;
+ case jsonValueBoolean::ID:
+ func(static_cast<jsonValueBoolean &>(obj));
+ return true;
+ case jsonValueNumber::ID:
+ func(static_cast<jsonValueNumber &>(obj));
+ return true;
+ case jsonValueString::ID:
+ func(static_cast<jsonValueString &>(obj));
+ return true;
+ case jsonValueArray::ID:
+ func(static_cast<jsonValueArray &>(obj));
+ return true;
+ case jsonValueObject::ID:
+ func(static_cast<jsonValueObject &>(obj));
+ return true;
+ case keyboardButton::ID:
+ func(static_cast<keyboardButton &>(obj));
+ return true;
+ case keyboardButtonTypeText::ID:
+ func(static_cast<keyboardButtonTypeText &>(obj));
+ return true;
+ case keyboardButtonTypeRequestPhoneNumber::ID:
+ func(static_cast<keyboardButtonTypeRequestPhoneNumber &>(obj));
+ return true;
+ case keyboardButtonTypeRequestLocation::ID:
+ func(static_cast<keyboardButtonTypeRequestLocation &>(obj));
+ return true;
+ case keyboardButtonTypeRequestPoll::ID:
+ func(static_cast<keyboardButtonTypeRequestPoll &>(obj));
+ return true;
+ case keyboardButtonTypeWebApp::ID:
+ func(static_cast<keyboardButtonTypeWebApp &>(obj));
+ return true;
+ case labeledPricePart::ID:
+ func(static_cast<labeledPricePart &>(obj));
+ return true;
+ case languagePackInfo::ID:
+ func(static_cast<languagePackInfo &>(obj));
+ return true;
+ case languagePackString::ID:
+ func(static_cast<languagePackString &>(obj));
+ return true;
+ case languagePackStringValueOrdinary::ID:
+ func(static_cast<languagePackStringValueOrdinary &>(obj));
+ return true;
+ case languagePackStringValuePluralized::ID:
+ func(static_cast<languagePackStringValuePluralized &>(obj));
+ return true;
+ case languagePackStringValueDeleted::ID:
+ func(static_cast<languagePackStringValueDeleted &>(obj));
+ return true;
+ case languagePackStrings::ID:
+ func(static_cast<languagePackStrings &>(obj));
+ return true;
+ case localFile::ID:
+ func(static_cast<localFile &>(obj));
+ return true;
+ case localizationTargetInfo::ID:
+ func(static_cast<localizationTargetInfo &>(obj));
+ return true;
+ case location::ID:
+ func(static_cast<location &>(obj));
+ return true;
+ case logStreamDefault::ID:
+ func(static_cast<logStreamDefault &>(obj));
+ return true;
+ case logStreamFile::ID:
+ func(static_cast<logStreamFile &>(obj));
+ return true;
+ case logStreamEmpty::ID:
+ func(static_cast<logStreamEmpty &>(obj));
+ return true;
+ case logTags::ID:
+ func(static_cast<logTags &>(obj));
+ return true;
+ case logVerbosityLevel::ID:
+ func(static_cast<logVerbosityLevel &>(obj));
+ return true;
+ case loginUrlInfoOpen::ID:
+ func(static_cast<loginUrlInfoOpen &>(obj));
+ return true;
+ case loginUrlInfoRequestConfirmation::ID:
+ func(static_cast<loginUrlInfoRequestConfirmation &>(obj));
+ return true;
+ case maskPointForehead::ID:
+ func(static_cast<maskPointForehead &>(obj));
+ return true;
+ case maskPointEyes::ID:
+ func(static_cast<maskPointEyes &>(obj));
+ return true;
+ case maskPointMouth::ID:
+ func(static_cast<maskPointMouth &>(obj));
+ return true;
+ case maskPointChin::ID:
+ func(static_cast<maskPointChin &>(obj));
+ return true;
+ case maskPosition::ID:
+ func(static_cast<maskPosition &>(obj));
+ return true;
+ case message::ID:
+ func(static_cast<message &>(obj));
+ return true;
+ case messageCalendar::ID:
+ func(static_cast<messageCalendar &>(obj));
+ return true;
+ case messageCalendarDay::ID:
+ func(static_cast<messageCalendarDay &>(obj));
+ return true;
+ case messageText::ID:
+ func(static_cast<messageText &>(obj));
+ return true;
+ case messageAnimation::ID:
+ func(static_cast<messageAnimation &>(obj));
+ return true;
+ case messageAudio::ID:
+ func(static_cast<messageAudio &>(obj));
+ return true;
+ case messageDocument::ID:
+ func(static_cast<messageDocument &>(obj));
+ return true;
+ case messagePhoto::ID:
+ func(static_cast<messagePhoto &>(obj));
+ return true;
+ case messageExpiredPhoto::ID:
+ func(static_cast<messageExpiredPhoto &>(obj));
+ return true;
+ case messageSticker::ID:
+ func(static_cast<messageSticker &>(obj));
+ return true;
+ case messageVideo::ID:
+ func(static_cast<messageVideo &>(obj));
+ return true;
+ case messageExpiredVideo::ID:
+ func(static_cast<messageExpiredVideo &>(obj));
+ return true;
+ case messageVideoNote::ID:
+ func(static_cast<messageVideoNote &>(obj));
+ return true;
+ case messageVoiceNote::ID:
+ func(static_cast<messageVoiceNote &>(obj));
+ return true;
+ case messageLocation::ID:
+ func(static_cast<messageLocation &>(obj));
+ return true;
+ case messageVenue::ID:
+ func(static_cast<messageVenue &>(obj));
+ return true;
+ case messageContact::ID:
+ func(static_cast<messageContact &>(obj));
+ return true;
+ case messageAnimatedEmoji::ID:
+ func(static_cast<messageAnimatedEmoji &>(obj));
+ return true;
+ case messageDice::ID:
+ func(static_cast<messageDice &>(obj));
+ return true;
+ case messageGame::ID:
+ func(static_cast<messageGame &>(obj));
+ return true;
+ case messagePoll::ID:
+ func(static_cast<messagePoll &>(obj));
+ return true;
+ case messageInvoice::ID:
+ func(static_cast<messageInvoice &>(obj));
+ return true;
+ case messageCall::ID:
+ func(static_cast<messageCall &>(obj));
+ return true;
+ case messageVideoChatScheduled::ID:
+ func(static_cast<messageVideoChatScheduled &>(obj));
+ return true;
+ case messageVideoChatStarted::ID:
+ func(static_cast<messageVideoChatStarted &>(obj));
+ return true;
+ case messageVideoChatEnded::ID:
+ func(static_cast<messageVideoChatEnded &>(obj));
+ return true;
+ case messageInviteVideoChatParticipants::ID:
+ func(static_cast<messageInviteVideoChatParticipants &>(obj));
+ return true;
+ case messageBasicGroupChatCreate::ID:
+ func(static_cast<messageBasicGroupChatCreate &>(obj));
+ return true;
+ case messageSupergroupChatCreate::ID:
+ func(static_cast<messageSupergroupChatCreate &>(obj));
+ return true;
+ case messageChatChangeTitle::ID:
+ func(static_cast<messageChatChangeTitle &>(obj));
+ return true;
+ case messageChatChangePhoto::ID:
+ func(static_cast<messageChatChangePhoto &>(obj));
+ return true;
+ case messageChatDeletePhoto::ID:
+ func(static_cast<messageChatDeletePhoto &>(obj));
+ return true;
+ case messageChatAddMembers::ID:
+ func(static_cast<messageChatAddMembers &>(obj));
+ return true;
+ case messageChatJoinByLink::ID:
+ func(static_cast<messageChatJoinByLink &>(obj));
+ return true;
+ case messageChatJoinByRequest::ID:
+ func(static_cast<messageChatJoinByRequest &>(obj));
+ return true;
+ case messageChatDeleteMember::ID:
+ func(static_cast<messageChatDeleteMember &>(obj));
+ return true;
+ case messageChatUpgradeTo::ID:
+ func(static_cast<messageChatUpgradeTo &>(obj));
+ return true;
+ case messageChatUpgradeFrom::ID:
+ func(static_cast<messageChatUpgradeFrom &>(obj));
+ return true;
+ case messagePinMessage::ID:
+ func(static_cast<messagePinMessage &>(obj));
+ return true;
+ case messageScreenshotTaken::ID:
+ func(static_cast<messageScreenshotTaken &>(obj));
+ return true;
+ case messageChatSetTheme::ID:
+ func(static_cast<messageChatSetTheme &>(obj));
+ return true;
+ case messageChatSetTtl::ID:
+ func(static_cast<messageChatSetTtl &>(obj));
+ return true;
+ case messageForumTopicCreated::ID:
+ func(static_cast<messageForumTopicCreated &>(obj));
+ return true;
+ case messageForumTopicEdited::ID:
+ func(static_cast<messageForumTopicEdited &>(obj));
+ return true;
+ case messageForumTopicIsClosedToggled::ID:
+ func(static_cast<messageForumTopicIsClosedToggled &>(obj));
+ return true;
+ case messageCustomServiceAction::ID:
+ func(static_cast<messageCustomServiceAction &>(obj));
+ return true;
+ case messageGameScore::ID:
+ func(static_cast<messageGameScore &>(obj));
+ return true;
+ case messagePaymentSuccessful::ID:
+ func(static_cast<messagePaymentSuccessful &>(obj));
+ return true;
+ case messagePaymentSuccessfulBot::ID:
+ func(static_cast<messagePaymentSuccessfulBot &>(obj));
+ return true;
+ case messageGiftedPremium::ID:
+ func(static_cast<messageGiftedPremium &>(obj));
+ return true;
+ case messageContactRegistered::ID:
+ func(static_cast<messageContactRegistered &>(obj));
+ return true;
+ case messageWebsiteConnected::ID:
+ func(static_cast<messageWebsiteConnected &>(obj));
+ return true;
+ case messageWebAppDataSent::ID:
+ func(static_cast<messageWebAppDataSent &>(obj));
+ return true;
+ case messageWebAppDataReceived::ID:
+ func(static_cast<messageWebAppDataReceived &>(obj));
+ return true;
+ case messagePassportDataSent::ID:
+ func(static_cast<messagePassportDataSent &>(obj));
+ return true;
+ case messagePassportDataReceived::ID:
+ func(static_cast<messagePassportDataReceived &>(obj));
+ return true;
+ case messageProximityAlertTriggered::ID:
+ func(static_cast<messageProximityAlertTriggered &>(obj));
+ return true;
+ case messageUnsupported::ID:
+ func(static_cast<messageUnsupported &>(obj));
+ return true;
+ case messageCopyOptions::ID:
+ func(static_cast<messageCopyOptions &>(obj));
+ return true;
+ case messageExtendedMediaPreview::ID:
+ func(static_cast<messageExtendedMediaPreview &>(obj));
+ return true;
+ case messageExtendedMediaPhoto::ID:
+ func(static_cast<messageExtendedMediaPhoto &>(obj));
+ return true;
+ case messageExtendedMediaVideo::ID:
+ func(static_cast<messageExtendedMediaVideo &>(obj));
+ return true;
+ case messageExtendedMediaUnsupported::ID:
+ func(static_cast<messageExtendedMediaUnsupported &>(obj));
+ return true;
+ case messageFileTypePrivate::ID:
+ func(static_cast<messageFileTypePrivate &>(obj));
+ return true;
+ case messageFileTypeGroup::ID:
+ func(static_cast<messageFileTypeGroup &>(obj));
+ return true;
+ case messageFileTypeUnknown::ID:
+ func(static_cast<messageFileTypeUnknown &>(obj));
+ return true;
+ case messageForwardInfo::ID:
+ func(static_cast<messageForwardInfo &>(obj));
+ return true;
+ case messageForwardOriginUser::ID:
+ func(static_cast<messageForwardOriginUser &>(obj));
+ return true;
+ case messageForwardOriginChat::ID:
+ func(static_cast<messageForwardOriginChat &>(obj));
+ return true;
+ case messageForwardOriginHiddenUser::ID:
+ func(static_cast<messageForwardOriginHiddenUser &>(obj));
+ return true;
+ case messageForwardOriginChannel::ID:
+ func(static_cast<messageForwardOriginChannel &>(obj));
+ return true;
+ case messageForwardOriginMessageImport::ID:
+ func(static_cast<messageForwardOriginMessageImport &>(obj));
+ return true;
+ case messageInteractionInfo::ID:
+ func(static_cast<messageInteractionInfo &>(obj));
+ return true;
+ case messageLink::ID:
+ func(static_cast<messageLink &>(obj));
+ return true;
+ case messageLinkInfo::ID:
+ func(static_cast<messageLinkInfo &>(obj));
+ return true;
+ case messagePosition::ID:
+ func(static_cast<messagePosition &>(obj));
+ return true;
+ case messagePositions::ID:
+ func(static_cast<messagePositions &>(obj));
+ return true;
+ case messageReaction::ID:
+ func(static_cast<messageReaction &>(obj));
+ return true;
+ case messageReplyInfo::ID:
+ func(static_cast<messageReplyInfo &>(obj));
+ return true;
+ case messageSchedulingStateSendAtDate::ID:
+ func(static_cast<messageSchedulingStateSendAtDate &>(obj));
+ return true;
+ case messageSchedulingStateSendWhenOnline::ID:
+ func(static_cast<messageSchedulingStateSendWhenOnline &>(obj));
+ return true;
+ case messageSendOptions::ID:
+ func(static_cast<messageSendOptions &>(obj));
+ return true;
+ case messageSenderUser::ID:
+ func(static_cast<messageSenderUser &>(obj));
+ return true;
+ case messageSenderChat::ID:
+ func(static_cast<messageSenderChat &>(obj));
+ return true;
+ case messageSenders::ID:
+ func(static_cast<messageSenders &>(obj));
+ return true;
+ case messageSendingStatePending::ID:
+ func(static_cast<messageSendingStatePending &>(obj));
+ return true;
+ case messageSendingStateFailed::ID:
+ func(static_cast<messageSendingStateFailed &>(obj));
+ return true;
+ case messageStatistics::ID:
+ func(static_cast<messageStatistics &>(obj));
+ return true;
+ case messageThreadInfo::ID:
+ func(static_cast<messageThreadInfo &>(obj));
+ return true;
+ case messages::ID:
+ func(static_cast<messages &>(obj));
+ return true;
+ case minithumbnail::ID:
+ func(static_cast<minithumbnail &>(obj));
+ return true;
+ case networkStatistics::ID:
+ func(static_cast<networkStatistics &>(obj));
+ return true;
+ case networkStatisticsEntryFile::ID:
+ func(static_cast<networkStatisticsEntryFile &>(obj));
+ return true;
+ case networkStatisticsEntryCall::ID:
+ func(static_cast<networkStatisticsEntryCall &>(obj));
+ return true;
+ case networkTypeNone::ID:
+ func(static_cast<networkTypeNone &>(obj));
+ return true;
+ case networkTypeMobile::ID:
+ func(static_cast<networkTypeMobile &>(obj));
+ return true;
+ case networkTypeMobileRoaming::ID:
+ func(static_cast<networkTypeMobileRoaming &>(obj));
+ return true;
+ case networkTypeWiFi::ID:
+ func(static_cast<networkTypeWiFi &>(obj));
+ return true;
+ case networkTypeOther::ID:
+ func(static_cast<networkTypeOther &>(obj));
+ return true;
+ case notification::ID:
+ func(static_cast<notification &>(obj));
+ return true;
+ case notificationGroup::ID:
+ func(static_cast<notificationGroup &>(obj));
+ return true;
+ case notificationGroupTypeMessages::ID:
+ func(static_cast<notificationGroupTypeMessages &>(obj));
+ return true;
+ case notificationGroupTypeMentions::ID:
+ func(static_cast<notificationGroupTypeMentions &>(obj));
+ return true;
+ case notificationGroupTypeSecretChat::ID:
+ func(static_cast<notificationGroupTypeSecretChat &>(obj));
+ return true;
+ case notificationGroupTypeCalls::ID:
+ func(static_cast<notificationGroupTypeCalls &>(obj));
+ return true;
+ case notificationSettingsScopePrivateChats::ID:
+ func(static_cast<notificationSettingsScopePrivateChats &>(obj));
+ return true;
+ case notificationSettingsScopeGroupChats::ID:
+ func(static_cast<notificationSettingsScopeGroupChats &>(obj));
+ return true;
+ case notificationSettingsScopeChannelChats::ID:
+ func(static_cast<notificationSettingsScopeChannelChats &>(obj));
+ return true;
+ case notificationSound::ID:
+ func(static_cast<notificationSound &>(obj));
+ return true;
+ case notificationSounds::ID:
+ func(static_cast<notificationSounds &>(obj));
+ return true;
+ case notificationTypeNewMessage::ID:
+ func(static_cast<notificationTypeNewMessage &>(obj));
+ return true;
+ case notificationTypeNewSecretChat::ID:
+ func(static_cast<notificationTypeNewSecretChat &>(obj));
+ return true;
+ case notificationTypeNewCall::ID:
+ func(static_cast<notificationTypeNewCall &>(obj));
+ return true;
+ case notificationTypeNewPushMessage::ID:
+ func(static_cast<notificationTypeNewPushMessage &>(obj));
+ return true;
+ case ok::ID:
+ func(static_cast<ok &>(obj));
+ return true;
+ case optionValueBoolean::ID:
+ func(static_cast<optionValueBoolean &>(obj));
+ return true;
+ case optionValueEmpty::ID:
+ func(static_cast<optionValueEmpty &>(obj));
+ return true;
+ case optionValueInteger::ID:
+ func(static_cast<optionValueInteger &>(obj));
+ return true;
+ case optionValueString::ID:
+ func(static_cast<optionValueString &>(obj));
+ return true;
+ case orderInfo::ID:
+ func(static_cast<orderInfo &>(obj));
+ return true;
+ case pageBlockTitle::ID:
+ func(static_cast<pageBlockTitle &>(obj));
+ return true;
+ case pageBlockSubtitle::ID:
+ func(static_cast<pageBlockSubtitle &>(obj));
+ return true;
+ case pageBlockAuthorDate::ID:
+ func(static_cast<pageBlockAuthorDate &>(obj));
+ return true;
+ case pageBlockHeader::ID:
+ func(static_cast<pageBlockHeader &>(obj));
+ return true;
+ case pageBlockSubheader::ID:
+ func(static_cast<pageBlockSubheader &>(obj));
+ return true;
+ case pageBlockKicker::ID:
+ func(static_cast<pageBlockKicker &>(obj));
+ return true;
+ case pageBlockParagraph::ID:
+ func(static_cast<pageBlockParagraph &>(obj));
+ return true;
+ case pageBlockPreformatted::ID:
+ func(static_cast<pageBlockPreformatted &>(obj));
+ return true;
+ case pageBlockFooter::ID:
+ func(static_cast<pageBlockFooter &>(obj));
+ return true;
+ case pageBlockDivider::ID:
+ func(static_cast<pageBlockDivider &>(obj));
+ return true;
+ case pageBlockAnchor::ID:
+ func(static_cast<pageBlockAnchor &>(obj));
+ return true;
+ case pageBlockList::ID:
+ func(static_cast<pageBlockList &>(obj));
+ return true;
+ case pageBlockBlockQuote::ID:
+ func(static_cast<pageBlockBlockQuote &>(obj));
+ return true;
+ case pageBlockPullQuote::ID:
+ func(static_cast<pageBlockPullQuote &>(obj));
+ return true;
+ case pageBlockAnimation::ID:
+ func(static_cast<pageBlockAnimation &>(obj));
+ return true;
+ case pageBlockAudio::ID:
+ func(static_cast<pageBlockAudio &>(obj));
+ return true;
+ case pageBlockPhoto::ID:
+ func(static_cast<pageBlockPhoto &>(obj));
+ return true;
+ case pageBlockVideo::ID:
+ func(static_cast<pageBlockVideo &>(obj));
+ return true;
+ case pageBlockVoiceNote::ID:
+ func(static_cast<pageBlockVoiceNote &>(obj));
+ return true;
+ case pageBlockCover::ID:
+ func(static_cast<pageBlockCover &>(obj));
+ return true;
+ case pageBlockEmbedded::ID:
+ func(static_cast<pageBlockEmbedded &>(obj));
+ return true;
+ case pageBlockEmbeddedPost::ID:
+ func(static_cast<pageBlockEmbeddedPost &>(obj));
+ return true;
+ case pageBlockCollage::ID:
+ func(static_cast<pageBlockCollage &>(obj));
+ return true;
+ case pageBlockSlideshow::ID:
+ func(static_cast<pageBlockSlideshow &>(obj));
+ return true;
+ case pageBlockChatLink::ID:
+ func(static_cast<pageBlockChatLink &>(obj));
+ return true;
+ case pageBlockTable::ID:
+ func(static_cast<pageBlockTable &>(obj));
+ return true;
+ case pageBlockDetails::ID:
+ func(static_cast<pageBlockDetails &>(obj));
+ return true;
+ case pageBlockRelatedArticles::ID:
+ func(static_cast<pageBlockRelatedArticles &>(obj));
+ return true;
+ case pageBlockMap::ID:
+ func(static_cast<pageBlockMap &>(obj));
+ return true;
+ case pageBlockCaption::ID:
+ func(static_cast<pageBlockCaption &>(obj));
+ return true;
+ case pageBlockHorizontalAlignmentLeft::ID:
+ func(static_cast<pageBlockHorizontalAlignmentLeft &>(obj));
+ return true;
+ case pageBlockHorizontalAlignmentCenter::ID:
+ func(static_cast<pageBlockHorizontalAlignmentCenter &>(obj));
+ return true;
+ case pageBlockHorizontalAlignmentRight::ID:
+ func(static_cast<pageBlockHorizontalAlignmentRight &>(obj));
+ return true;
+ case pageBlockListItem::ID:
+ func(static_cast<pageBlockListItem &>(obj));
+ return true;
+ case pageBlockRelatedArticle::ID:
+ func(static_cast<pageBlockRelatedArticle &>(obj));
+ return true;
+ case pageBlockTableCell::ID:
+ func(static_cast<pageBlockTableCell &>(obj));
+ return true;
+ case pageBlockVerticalAlignmentTop::ID:
+ func(static_cast<pageBlockVerticalAlignmentTop &>(obj));
+ return true;
+ case pageBlockVerticalAlignmentMiddle::ID:
+ func(static_cast<pageBlockVerticalAlignmentMiddle &>(obj));
+ return true;
+ case pageBlockVerticalAlignmentBottom::ID:
+ func(static_cast<pageBlockVerticalAlignmentBottom &>(obj));
+ return true;
+ case passportAuthorizationForm::ID:
+ func(static_cast<passportAuthorizationForm &>(obj));
+ return true;
+ case passportElementPersonalDetails::ID:
+ func(static_cast<passportElementPersonalDetails &>(obj));
+ return true;
+ case passportElementPassport::ID:
+ func(static_cast<passportElementPassport &>(obj));
+ return true;
+ case passportElementDriverLicense::ID:
+ func(static_cast<passportElementDriverLicense &>(obj));
+ return true;
+ case passportElementIdentityCard::ID:
+ func(static_cast<passportElementIdentityCard &>(obj));
+ return true;
+ case passportElementInternalPassport::ID:
+ func(static_cast<passportElementInternalPassport &>(obj));
+ return true;
+ case passportElementAddress::ID:
+ func(static_cast<passportElementAddress &>(obj));
+ return true;
+ case passportElementUtilityBill::ID:
+ func(static_cast<passportElementUtilityBill &>(obj));
+ return true;
+ case passportElementBankStatement::ID:
+ func(static_cast<passportElementBankStatement &>(obj));
+ return true;
+ case passportElementRentalAgreement::ID:
+ func(static_cast<passportElementRentalAgreement &>(obj));
+ return true;
+ case passportElementPassportRegistration::ID:
+ func(static_cast<passportElementPassportRegistration &>(obj));
+ return true;
+ case passportElementTemporaryRegistration::ID:
+ func(static_cast<passportElementTemporaryRegistration &>(obj));
+ return true;
+ case passportElementPhoneNumber::ID:
+ func(static_cast<passportElementPhoneNumber &>(obj));
+ return true;
+ case passportElementEmailAddress::ID:
+ func(static_cast<passportElementEmailAddress &>(obj));
+ return true;
+ case passportElementError::ID:
+ func(static_cast<passportElementError &>(obj));
+ return true;
+ case passportElementErrorSourceUnspecified::ID:
+ func(static_cast<passportElementErrorSourceUnspecified &>(obj));
+ return true;
+ case passportElementErrorSourceDataField::ID:
+ func(static_cast<passportElementErrorSourceDataField &>(obj));
+ return true;
+ case passportElementErrorSourceFrontSide::ID:
+ func(static_cast<passportElementErrorSourceFrontSide &>(obj));
+ return true;
+ case passportElementErrorSourceReverseSide::ID:
+ func(static_cast<passportElementErrorSourceReverseSide &>(obj));
+ return true;
+ case passportElementErrorSourceSelfie::ID:
+ func(static_cast<passportElementErrorSourceSelfie &>(obj));
+ return true;
+ case passportElementErrorSourceTranslationFile::ID:
+ func(static_cast<passportElementErrorSourceTranslationFile &>(obj));
+ return true;
+ case passportElementErrorSourceTranslationFiles::ID:
+ func(static_cast<passportElementErrorSourceTranslationFiles &>(obj));
+ return true;
+ case passportElementErrorSourceFile::ID:
+ func(static_cast<passportElementErrorSourceFile &>(obj));
+ return true;
+ case passportElementErrorSourceFiles::ID:
+ func(static_cast<passportElementErrorSourceFiles &>(obj));
+ return true;
+ case passportElementTypePersonalDetails::ID:
+ func(static_cast<passportElementTypePersonalDetails &>(obj));
+ return true;
+ case passportElementTypePassport::ID:
+ func(static_cast<passportElementTypePassport &>(obj));
+ return true;
+ case passportElementTypeDriverLicense::ID:
+ func(static_cast<passportElementTypeDriverLicense &>(obj));
+ return true;
+ case passportElementTypeIdentityCard::ID:
+ func(static_cast<passportElementTypeIdentityCard &>(obj));
+ return true;
+ case passportElementTypeInternalPassport::ID:
+ func(static_cast<passportElementTypeInternalPassport &>(obj));
+ return true;
+ case passportElementTypeAddress::ID:
+ func(static_cast<passportElementTypeAddress &>(obj));
+ return true;
+ case passportElementTypeUtilityBill::ID:
+ func(static_cast<passportElementTypeUtilityBill &>(obj));
+ return true;
+ case passportElementTypeBankStatement::ID:
+ func(static_cast<passportElementTypeBankStatement &>(obj));
+ return true;
+ case passportElementTypeRentalAgreement::ID:
+ func(static_cast<passportElementTypeRentalAgreement &>(obj));
+ return true;
+ case passportElementTypePassportRegistration::ID:
+ func(static_cast<passportElementTypePassportRegistration &>(obj));
+ return true;
+ case passportElementTypeTemporaryRegistration::ID:
+ func(static_cast<passportElementTypeTemporaryRegistration &>(obj));
+ return true;
+ case passportElementTypePhoneNumber::ID:
+ func(static_cast<passportElementTypePhoneNumber &>(obj));
+ return true;
+ case passportElementTypeEmailAddress::ID:
+ func(static_cast<passportElementTypeEmailAddress &>(obj));
+ return true;
+ case passportElements::ID:
+ func(static_cast<passportElements &>(obj));
+ return true;
+ case passportElementsWithErrors::ID:
+ func(static_cast<passportElementsWithErrors &>(obj));
+ return true;
+ case passportRequiredElement::ID:
+ func(static_cast<passportRequiredElement &>(obj));
+ return true;
+ case passportSuitableElement::ID:
+ func(static_cast<passportSuitableElement &>(obj));
+ return true;
+ case passwordState::ID:
+ func(static_cast<passwordState &>(obj));
+ return true;
+ case paymentForm::ID:
+ func(static_cast<paymentForm &>(obj));
+ return true;
+ case paymentOption::ID:
+ func(static_cast<paymentOption &>(obj));
+ return true;
+ case paymentProviderSmartGlocal::ID:
+ func(static_cast<paymentProviderSmartGlocal &>(obj));
+ return true;
+ case paymentProviderStripe::ID:
+ func(static_cast<paymentProviderStripe &>(obj));
+ return true;
+ case paymentProviderOther::ID:
+ func(static_cast<paymentProviderOther &>(obj));
+ return true;
+ case paymentReceipt::ID:
+ func(static_cast<paymentReceipt &>(obj));
+ return true;
+ case paymentResult::ID:
+ func(static_cast<paymentResult &>(obj));
+ return true;
+ case personalDetails::ID:
+ func(static_cast<personalDetails &>(obj));
+ return true;
+ case personalDocument::ID:
+ func(static_cast<personalDocument &>(obj));
+ return true;
+ case phoneNumberAuthenticationSettings::ID:
+ func(static_cast<phoneNumberAuthenticationSettings &>(obj));
+ return true;
+ case phoneNumberInfo::ID:
+ func(static_cast<phoneNumberInfo &>(obj));
+ return true;
+ case photo::ID:
+ func(static_cast<photo &>(obj));
+ return true;
+ case photoSize::ID:
+ func(static_cast<photoSize &>(obj));
+ return true;
+ case point::ID:
+ func(static_cast<point &>(obj));
+ return true;
+ case poll::ID:
+ func(static_cast<poll &>(obj));
+ return true;
+ case pollOption::ID:
+ func(static_cast<pollOption &>(obj));
+ return true;
+ case pollTypeRegular::ID:
+ func(static_cast<pollTypeRegular &>(obj));
+ return true;
+ case pollTypeQuiz::ID:
+ func(static_cast<pollTypeQuiz &>(obj));
+ return true;
+ case premiumFeatureIncreasedLimits::ID:
+ func(static_cast<premiumFeatureIncreasedLimits &>(obj));
+ return true;
+ case premiumFeatureIncreasedUploadFileSize::ID:
+ func(static_cast<premiumFeatureIncreasedUploadFileSize &>(obj));
+ return true;
+ case premiumFeatureImprovedDownloadSpeed::ID:
+ func(static_cast<premiumFeatureImprovedDownloadSpeed &>(obj));
+ return true;
+ case premiumFeatureVoiceRecognition::ID:
+ func(static_cast<premiumFeatureVoiceRecognition &>(obj));
+ return true;
+ case premiumFeatureDisabledAds::ID:
+ func(static_cast<premiumFeatureDisabledAds &>(obj));
+ return true;
+ case premiumFeatureUniqueReactions::ID:
+ func(static_cast<premiumFeatureUniqueReactions &>(obj));
+ return true;
+ case premiumFeatureUniqueStickers::ID:
+ func(static_cast<premiumFeatureUniqueStickers &>(obj));
+ return true;
+ case premiumFeatureCustomEmoji::ID:
+ func(static_cast<premiumFeatureCustomEmoji &>(obj));
+ return true;
+ case premiumFeatureAdvancedChatManagement::ID:
+ func(static_cast<premiumFeatureAdvancedChatManagement &>(obj));
+ return true;
+ case premiumFeatureProfileBadge::ID:
+ func(static_cast<premiumFeatureProfileBadge &>(obj));
+ return true;
+ case premiumFeatureEmojiStatus::ID:
+ func(static_cast<premiumFeatureEmojiStatus &>(obj));
+ return true;
+ case premiumFeatureAnimatedProfilePhoto::ID:
+ func(static_cast<premiumFeatureAnimatedProfilePhoto &>(obj));
+ return true;
+ case premiumFeatureForumTopicIcon::ID:
+ func(static_cast<premiumFeatureForumTopicIcon &>(obj));
+ return true;
+ case premiumFeatureAppIcons::ID:
+ func(static_cast<premiumFeatureAppIcons &>(obj));
+ return true;
+ case premiumFeaturePromotionAnimation::ID:
+ func(static_cast<premiumFeaturePromotionAnimation &>(obj));
+ return true;
+ case premiumFeatures::ID:
+ func(static_cast<premiumFeatures &>(obj));
+ return true;
+ case premiumLimit::ID:
+ func(static_cast<premiumLimit &>(obj));
+ return true;
+ case premiumLimitTypeSupergroupCount::ID:
+ func(static_cast<premiumLimitTypeSupergroupCount &>(obj));
+ return true;
+ case premiumLimitTypePinnedChatCount::ID:
+ func(static_cast<premiumLimitTypePinnedChatCount &>(obj));
+ return true;
+ case premiumLimitTypeCreatedPublicChatCount::ID:
+ func(static_cast<premiumLimitTypeCreatedPublicChatCount &>(obj));
+ return true;
+ case premiumLimitTypeSavedAnimationCount::ID:
+ func(static_cast<premiumLimitTypeSavedAnimationCount &>(obj));
+ return true;
+ case premiumLimitTypeFavoriteStickerCount::ID:
+ func(static_cast<premiumLimitTypeFavoriteStickerCount &>(obj));
+ return true;
+ case premiumLimitTypeChatFilterCount::ID:
+ func(static_cast<premiumLimitTypeChatFilterCount &>(obj));
+ return true;
+ case premiumLimitTypeChatFilterChosenChatCount::ID:
+ func(static_cast<premiumLimitTypeChatFilterChosenChatCount &>(obj));
+ return true;
+ case premiumLimitTypePinnedArchivedChatCount::ID:
+ func(static_cast<premiumLimitTypePinnedArchivedChatCount &>(obj));
+ return true;
+ case premiumLimitTypeCaptionLength::ID:
+ func(static_cast<premiumLimitTypeCaptionLength &>(obj));
+ return true;
+ case premiumLimitTypeBioLength::ID:
+ func(static_cast<premiumLimitTypeBioLength &>(obj));
+ return true;
+ case premiumPaymentOption::ID:
+ func(static_cast<premiumPaymentOption &>(obj));
+ return true;
+ case premiumSourceLimitExceeded::ID:
+ func(static_cast<premiumSourceLimitExceeded &>(obj));
+ return true;
+ case premiumSourceFeature::ID:
+ func(static_cast<premiumSourceFeature &>(obj));
+ return true;
+ case premiumSourceLink::ID:
+ func(static_cast<premiumSourceLink &>(obj));
+ return true;
+ case premiumSourceSettings::ID:
+ func(static_cast<premiumSourceSettings &>(obj));
+ return true;
+ case premiumState::ID:
+ func(static_cast<premiumState &>(obj));
+ return true;
+ case profilePhoto::ID:
+ func(static_cast<profilePhoto &>(obj));
+ return true;
+ case proxies::ID:
+ func(static_cast<proxies &>(obj));
+ return true;
+ case proxy::ID:
+ func(static_cast<proxy &>(obj));
+ return true;
+ case proxyTypeSocks5::ID:
+ func(static_cast<proxyTypeSocks5 &>(obj));
+ return true;
+ case proxyTypeHttp::ID:
+ func(static_cast<proxyTypeHttp &>(obj));
+ return true;
+ case proxyTypeMtproto::ID:
+ func(static_cast<proxyTypeMtproto &>(obj));
+ return true;
+ case publicChatTypeHasUsername::ID:
+ func(static_cast<publicChatTypeHasUsername &>(obj));
+ return true;
+ case publicChatTypeIsLocationBased::ID:
+ func(static_cast<publicChatTypeIsLocationBased &>(obj));
+ return true;
+ case pushMessageContentHidden::ID:
+ func(static_cast<pushMessageContentHidden &>(obj));
+ return true;
+ case pushMessageContentAnimation::ID:
+ func(static_cast<pushMessageContentAnimation &>(obj));
+ return true;
+ case pushMessageContentAudio::ID:
+ func(static_cast<pushMessageContentAudio &>(obj));
+ return true;
+ case pushMessageContentContact::ID:
+ func(static_cast<pushMessageContentContact &>(obj));
+ return true;
+ case pushMessageContentContactRegistered::ID:
+ func(static_cast<pushMessageContentContactRegistered &>(obj));
+ return true;
+ case pushMessageContentDocument::ID:
+ func(static_cast<pushMessageContentDocument &>(obj));
+ return true;
+ case pushMessageContentGame::ID:
+ func(static_cast<pushMessageContentGame &>(obj));
+ return true;
+ case pushMessageContentGameScore::ID:
+ func(static_cast<pushMessageContentGameScore &>(obj));
+ return true;
+ case pushMessageContentInvoice::ID:
+ func(static_cast<pushMessageContentInvoice &>(obj));
+ return true;
+ case pushMessageContentLocation::ID:
+ func(static_cast<pushMessageContentLocation &>(obj));
+ return true;
+ case pushMessageContentPhoto::ID:
+ func(static_cast<pushMessageContentPhoto &>(obj));
+ return true;
+ case pushMessageContentPoll::ID:
+ func(static_cast<pushMessageContentPoll &>(obj));
+ return true;
+ case pushMessageContentScreenshotTaken::ID:
+ func(static_cast<pushMessageContentScreenshotTaken &>(obj));
+ return true;
+ case pushMessageContentSticker::ID:
+ func(static_cast<pushMessageContentSticker &>(obj));
+ return true;
+ case pushMessageContentText::ID:
+ func(static_cast<pushMessageContentText &>(obj));
+ return true;
+ case pushMessageContentVideo::ID:
+ func(static_cast<pushMessageContentVideo &>(obj));
+ return true;
+ case pushMessageContentVideoNote::ID:
+ func(static_cast<pushMessageContentVideoNote &>(obj));
+ return true;
+ case pushMessageContentVoiceNote::ID:
+ func(static_cast<pushMessageContentVoiceNote &>(obj));
+ return true;
+ case pushMessageContentBasicGroupChatCreate::ID:
+ func(static_cast<pushMessageContentBasicGroupChatCreate &>(obj));
+ return true;
+ case pushMessageContentChatAddMembers::ID:
+ func(static_cast<pushMessageContentChatAddMembers &>(obj));
+ return true;
+ case pushMessageContentChatChangePhoto::ID:
+ func(static_cast<pushMessageContentChatChangePhoto &>(obj));
+ return true;
+ case pushMessageContentChatChangeTitle::ID:
+ func(static_cast<pushMessageContentChatChangeTitle &>(obj));
+ return true;
+ case pushMessageContentChatSetTheme::ID:
+ func(static_cast<pushMessageContentChatSetTheme &>(obj));
+ return true;
+ case pushMessageContentChatDeleteMember::ID:
+ func(static_cast<pushMessageContentChatDeleteMember &>(obj));
+ return true;
+ case pushMessageContentChatJoinByLink::ID:
+ func(static_cast<pushMessageContentChatJoinByLink &>(obj));
+ return true;
+ case pushMessageContentChatJoinByRequest::ID:
+ func(static_cast<pushMessageContentChatJoinByRequest &>(obj));
+ return true;
+ case pushMessageContentRecurringPayment::ID:
+ func(static_cast<pushMessageContentRecurringPayment &>(obj));
+ return true;
+ case pushMessageContentMessageForwards::ID:
+ func(static_cast<pushMessageContentMessageForwards &>(obj));
+ return true;
+ case pushMessageContentMediaAlbum::ID:
+ func(static_cast<pushMessageContentMediaAlbum &>(obj));
+ return true;
+ case pushReceiverId::ID:
+ func(static_cast<pushReceiverId &>(obj));
+ return true;
+ case reactionTypeEmoji::ID:
+ func(static_cast<reactionTypeEmoji &>(obj));
+ return true;
+ case reactionTypeCustomEmoji::ID:
+ func(static_cast<reactionTypeCustomEmoji &>(obj));
+ return true;
+ case recommendedChatFilter::ID:
+ func(static_cast<recommendedChatFilter &>(obj));
+ return true;
+ case recommendedChatFilters::ID:
+ func(static_cast<recommendedChatFilters &>(obj));
+ return true;
+ case recoveryEmailAddress::ID:
+ func(static_cast<recoveryEmailAddress &>(obj));
+ return true;
+ case remoteFile::ID:
+ func(static_cast<remoteFile &>(obj));
+ return true;
+ case replyMarkupRemoveKeyboard::ID:
+ func(static_cast<replyMarkupRemoveKeyboard &>(obj));
+ return true;
+ case replyMarkupForceReply::ID:
+ func(static_cast<replyMarkupForceReply &>(obj));
+ return true;
+ case replyMarkupShowKeyboard::ID:
+ func(static_cast<replyMarkupShowKeyboard &>(obj));
+ return true;
+ case replyMarkupInlineKeyboard::ID:
+ func(static_cast<replyMarkupInlineKeyboard &>(obj));
+ return true;
+ case resetPasswordResultOk::ID:
+ func(static_cast<resetPasswordResultOk &>(obj));
+ return true;
+ case resetPasswordResultPending::ID:
+ func(static_cast<resetPasswordResultPending &>(obj));
+ return true;
+ case resetPasswordResultDeclined::ID:
+ func(static_cast<resetPasswordResultDeclined &>(obj));
+ return true;
+ case richTextPlain::ID:
+ func(static_cast<richTextPlain &>(obj));
+ return true;
+ case richTextBold::ID:
+ func(static_cast<richTextBold &>(obj));
+ return true;
+ case richTextItalic::ID:
+ func(static_cast<richTextItalic &>(obj));
+ return true;
+ case richTextUnderline::ID:
+ func(static_cast<richTextUnderline &>(obj));
+ return true;
+ case richTextStrikethrough::ID:
+ func(static_cast<richTextStrikethrough &>(obj));
+ return true;
+ case richTextFixed::ID:
+ func(static_cast<richTextFixed &>(obj));
+ return true;
+ case richTextUrl::ID:
+ func(static_cast<richTextUrl &>(obj));
+ return true;
+ case richTextEmailAddress::ID:
+ func(static_cast<richTextEmailAddress &>(obj));
+ return true;
+ case richTextSubscript::ID:
+ func(static_cast<richTextSubscript &>(obj));
+ return true;
+ case richTextSuperscript::ID:
+ func(static_cast<richTextSuperscript &>(obj));
+ return true;
+ case richTextMarked::ID:
+ func(static_cast<richTextMarked &>(obj));
+ return true;
+ case richTextPhoneNumber::ID:
+ func(static_cast<richTextPhoneNumber &>(obj));
+ return true;
+ case richTextIcon::ID:
+ func(static_cast<richTextIcon &>(obj));
+ return true;
+ case richTextReference::ID:
+ func(static_cast<richTextReference &>(obj));
+ return true;
+ case richTextAnchor::ID:
+ func(static_cast<richTextAnchor &>(obj));
+ return true;
+ case richTextAnchorLink::ID:
+ func(static_cast<richTextAnchorLink &>(obj));
+ return true;
+ case richTexts::ID:
+ func(static_cast<richTexts &>(obj));
+ return true;
+ case rtmpUrl::ID:
+ func(static_cast<rtmpUrl &>(obj));
+ return true;
+ case savedCredentials::ID:
+ func(static_cast<savedCredentials &>(obj));
+ return true;
+ case scopeNotificationSettings::ID:
+ func(static_cast<scopeNotificationSettings &>(obj));
+ return true;
+ case searchMessagesFilterEmpty::ID:
+ func(static_cast<searchMessagesFilterEmpty &>(obj));
+ return true;
+ case searchMessagesFilterAnimation::ID:
+ func(static_cast<searchMessagesFilterAnimation &>(obj));
+ return true;
+ case searchMessagesFilterAudio::ID:
+ func(static_cast<searchMessagesFilterAudio &>(obj));
+ return true;
+ case searchMessagesFilterDocument::ID:
+ func(static_cast<searchMessagesFilterDocument &>(obj));
+ return true;
+ case searchMessagesFilterPhoto::ID:
+ func(static_cast<searchMessagesFilterPhoto &>(obj));
+ return true;
+ case searchMessagesFilterVideo::ID:
+ func(static_cast<searchMessagesFilterVideo &>(obj));
+ return true;
+ case searchMessagesFilterVoiceNote::ID:
+ func(static_cast<searchMessagesFilterVoiceNote &>(obj));
+ return true;
+ case searchMessagesFilterPhotoAndVideo::ID:
+ func(static_cast<searchMessagesFilterPhotoAndVideo &>(obj));
+ return true;
+ case searchMessagesFilterUrl::ID:
+ func(static_cast<searchMessagesFilterUrl &>(obj));
+ return true;
+ case searchMessagesFilterChatPhoto::ID:
+ func(static_cast<searchMessagesFilterChatPhoto &>(obj));
+ return true;
+ case searchMessagesFilterVideoNote::ID:
+ func(static_cast<searchMessagesFilterVideoNote &>(obj));
+ return true;
+ case searchMessagesFilterVoiceAndVideoNote::ID:
+ func(static_cast<searchMessagesFilterVoiceAndVideoNote &>(obj));
+ return true;
+ case searchMessagesFilterMention::ID:
+ func(static_cast<searchMessagesFilterMention &>(obj));
+ return true;
+ case searchMessagesFilterUnreadMention::ID:
+ func(static_cast<searchMessagesFilterUnreadMention &>(obj));
+ return true;
+ case searchMessagesFilterUnreadReaction::ID:
+ func(static_cast<searchMessagesFilterUnreadReaction &>(obj));
+ return true;
+ case searchMessagesFilterFailedToSend::ID:
+ func(static_cast<searchMessagesFilterFailedToSend &>(obj));
+ return true;
+ case searchMessagesFilterPinned::ID:
+ func(static_cast<searchMessagesFilterPinned &>(obj));
+ return true;
+ case seconds::ID:
+ func(static_cast<seconds &>(obj));
+ return true;
+ case secretChat::ID:
+ func(static_cast<secretChat &>(obj));
+ return true;
+ case secretChatStatePending::ID:
+ func(static_cast<secretChatStatePending &>(obj));
+ return true;
+ case secretChatStateReady::ID:
+ func(static_cast<secretChatStateReady &>(obj));
+ return true;
+ case secretChatStateClosed::ID:
+ func(static_cast<secretChatStateClosed &>(obj));
+ return true;
+ case sentWebAppMessage::ID:
+ func(static_cast<sentWebAppMessage &>(obj));
+ return true;
+ case session::ID:
+ func(static_cast<session &>(obj));
+ return true;
+ case sessionTypeAndroid::ID:
+ func(static_cast<sessionTypeAndroid &>(obj));
+ return true;
+ case sessionTypeApple::ID:
+ func(static_cast<sessionTypeApple &>(obj));
+ return true;
+ case sessionTypeBrave::ID:
+ func(static_cast<sessionTypeBrave &>(obj));
+ return true;
+ case sessionTypeChrome::ID:
+ func(static_cast<sessionTypeChrome &>(obj));
+ return true;
+ case sessionTypeEdge::ID:
+ func(static_cast<sessionTypeEdge &>(obj));
+ return true;
+ case sessionTypeFirefox::ID:
+ func(static_cast<sessionTypeFirefox &>(obj));
+ return true;
+ case sessionTypeIpad::ID:
+ func(static_cast<sessionTypeIpad &>(obj));
+ return true;
+ case sessionTypeIphone::ID:
+ func(static_cast<sessionTypeIphone &>(obj));
+ return true;
+ case sessionTypeLinux::ID:
+ func(static_cast<sessionTypeLinux &>(obj));
+ return true;
+ case sessionTypeMac::ID:
+ func(static_cast<sessionTypeMac &>(obj));
+ return true;
+ case sessionTypeOpera::ID:
+ func(static_cast<sessionTypeOpera &>(obj));
+ return true;
+ case sessionTypeSafari::ID:
+ func(static_cast<sessionTypeSafari &>(obj));
+ return true;
+ case sessionTypeUbuntu::ID:
+ func(static_cast<sessionTypeUbuntu &>(obj));
+ return true;
+ case sessionTypeUnknown::ID:
+ func(static_cast<sessionTypeUnknown &>(obj));
+ return true;
+ case sessionTypeVivaldi::ID:
+ func(static_cast<sessionTypeVivaldi &>(obj));
+ return true;
+ case sessionTypeWindows::ID:
+ func(static_cast<sessionTypeWindows &>(obj));
+ return true;
+ case sessionTypeXbox::ID:
+ func(static_cast<sessionTypeXbox &>(obj));
+ return true;
+ case sessions::ID:
+ func(static_cast<sessions &>(obj));
+ return true;
+ case shippingOption::ID:
+ func(static_cast<shippingOption &>(obj));
+ return true;
+ case speechRecognitionResultPending::ID:
+ func(static_cast<speechRecognitionResultPending &>(obj));
+ return true;
+ case speechRecognitionResultText::ID:
+ func(static_cast<speechRecognitionResultText &>(obj));
+ return true;
+ case speechRecognitionResultError::ID:
+ func(static_cast<speechRecognitionResultError &>(obj));
+ return true;
+ case sponsoredMessage::ID:
+ func(static_cast<sponsoredMessage &>(obj));
+ return true;
+ case sponsoredMessages::ID:
+ func(static_cast<sponsoredMessages &>(obj));
+ return true;
+ case statisticalGraphData::ID:
+ func(static_cast<statisticalGraphData &>(obj));
+ return true;
+ case statisticalGraphAsync::ID:
+ func(static_cast<statisticalGraphAsync &>(obj));
+ return true;
+ case statisticalGraphError::ID:
+ func(static_cast<statisticalGraphError &>(obj));
+ return true;
+ case statisticalValue::ID:
+ func(static_cast<statisticalValue &>(obj));
+ return true;
+ case sticker::ID:
+ func(static_cast<sticker &>(obj));
+ return true;
+ case stickerFormatWebp::ID:
+ func(static_cast<stickerFormatWebp &>(obj));
+ return true;
+ case stickerFormatTgs::ID:
+ func(static_cast<stickerFormatTgs &>(obj));
+ return true;
+ case stickerFormatWebm::ID:
+ func(static_cast<stickerFormatWebm &>(obj));
+ return true;
+ case stickerSet::ID:
+ func(static_cast<stickerSet &>(obj));
+ return true;
+ case stickerSetInfo::ID:
+ func(static_cast<stickerSetInfo &>(obj));
+ return true;
+ case stickerSets::ID:
+ func(static_cast<stickerSets &>(obj));
+ return true;
+ case stickerTypeRegular::ID:
+ func(static_cast<stickerTypeRegular &>(obj));
+ return true;
+ case stickerTypeMask::ID:
+ func(static_cast<stickerTypeMask &>(obj));
+ return true;
+ case stickerTypeCustomEmoji::ID:
+ func(static_cast<stickerTypeCustomEmoji &>(obj));
+ return true;
+ case stickers::ID:
+ func(static_cast<stickers &>(obj));
+ return true;
+ case storageStatistics::ID:
+ func(static_cast<storageStatistics &>(obj));
+ return true;
+ case storageStatisticsByChat::ID:
+ func(static_cast<storageStatisticsByChat &>(obj));
+ return true;
+ case storageStatisticsByFileType::ID:
+ func(static_cast<storageStatisticsByFileType &>(obj));
+ return true;
+ case storageStatisticsFast::ID:
+ func(static_cast<storageStatisticsFast &>(obj));
+ return true;
+ case storePaymentPurposePremiumSubscription::ID:
+ func(static_cast<storePaymentPurposePremiumSubscription &>(obj));
+ return true;
+ case storePaymentPurposeGiftedPremium::ID:
+ func(static_cast<storePaymentPurposeGiftedPremium &>(obj));
+ return true;
+ case suggestedActionEnableArchiveAndMuteNewChats::ID:
+ func(static_cast<suggestedActionEnableArchiveAndMuteNewChats &>(obj));
+ return true;
+ case suggestedActionCheckPassword::ID:
+ func(static_cast<suggestedActionCheckPassword &>(obj));
+ return true;
+ case suggestedActionCheckPhoneNumber::ID:
+ func(static_cast<suggestedActionCheckPhoneNumber &>(obj));
+ return true;
+ case suggestedActionViewChecksHint::ID:
+ func(static_cast<suggestedActionViewChecksHint &>(obj));
+ return true;
+ case suggestedActionConvertToBroadcastGroup::ID:
+ func(static_cast<suggestedActionConvertToBroadcastGroup &>(obj));
+ return true;
+ case suggestedActionSetPassword::ID:
+ func(static_cast<suggestedActionSetPassword &>(obj));
+ return true;
+ case supergroup::ID:
+ func(static_cast<supergroup &>(obj));
+ return true;
+ case supergroupFullInfo::ID:
+ func(static_cast<supergroupFullInfo &>(obj));
+ return true;
+ case supergroupMembersFilterRecent::ID:
+ func(static_cast<supergroupMembersFilterRecent &>(obj));
+ return true;
+ case supergroupMembersFilterContacts::ID:
+ func(static_cast<supergroupMembersFilterContacts &>(obj));
+ return true;
+ case supergroupMembersFilterAdministrators::ID:
+ func(static_cast<supergroupMembersFilterAdministrators &>(obj));
+ return true;
+ case supergroupMembersFilterSearch::ID:
+ func(static_cast<supergroupMembersFilterSearch &>(obj));
+ return true;
+ case supergroupMembersFilterRestricted::ID:
+ func(static_cast<supergroupMembersFilterRestricted &>(obj));
+ return true;
+ case supergroupMembersFilterBanned::ID:
+ func(static_cast<supergroupMembersFilterBanned &>(obj));
+ return true;
+ case supergroupMembersFilterMention::ID:
+ func(static_cast<supergroupMembersFilterMention &>(obj));
+ return true;
+ case supergroupMembersFilterBots::ID:
+ func(static_cast<supergroupMembersFilterBots &>(obj));
+ return true;
+ case tMeUrl::ID:
+ func(static_cast<tMeUrl &>(obj));
+ return true;
+ case tMeUrlTypeUser::ID:
+ func(static_cast<tMeUrlTypeUser &>(obj));
+ return true;
+ case tMeUrlTypeSupergroup::ID:
+ func(static_cast<tMeUrlTypeSupergroup &>(obj));
+ return true;
+ case tMeUrlTypeChatInvite::ID:
+ func(static_cast<tMeUrlTypeChatInvite &>(obj));
+ return true;
+ case tMeUrlTypeStickerSet::ID:
+ func(static_cast<tMeUrlTypeStickerSet &>(obj));
+ return true;
+ case tMeUrls::ID:
+ func(static_cast<tMeUrls &>(obj));
+ return true;
+ case targetChatCurrent::ID:
+ func(static_cast<targetChatCurrent &>(obj));
+ return true;
+ case targetChatChosen::ID:
+ func(static_cast<targetChatChosen &>(obj));
+ return true;
+ case targetChatInternalLink::ID:
+ func(static_cast<targetChatInternalLink &>(obj));
+ return true;
+ case temporaryPasswordState::ID:
+ func(static_cast<temporaryPasswordState &>(obj));
+ return true;
+ case termsOfService::ID:
+ func(static_cast<termsOfService &>(obj));
+ return true;
+ case testBytes::ID:
+ func(static_cast<testBytes &>(obj));
+ return true;
+ case testInt::ID:
+ func(static_cast<testInt &>(obj));
+ return true;
+ case testString::ID:
+ func(static_cast<testString &>(obj));
+ return true;
+ case testVectorInt::ID:
+ func(static_cast<testVectorInt &>(obj));
+ return true;
+ case testVectorIntObject::ID:
+ func(static_cast<testVectorIntObject &>(obj));
+ return true;
+ case testVectorString::ID:
+ func(static_cast<testVectorString &>(obj));
+ return true;
+ case testVectorStringObject::ID:
+ func(static_cast<testVectorStringObject &>(obj));
+ return true;
+ case text::ID:
+ func(static_cast<text &>(obj));
+ return true;
+ case textEntities::ID:
+ func(static_cast<textEntities &>(obj));
+ return true;
+ case textEntity::ID:
+ func(static_cast<textEntity &>(obj));
+ return true;
+ case textEntityTypeMention::ID:
+ func(static_cast<textEntityTypeMention &>(obj));
+ return true;
+ case textEntityTypeHashtag::ID:
+ func(static_cast<textEntityTypeHashtag &>(obj));
+ return true;
+ case textEntityTypeCashtag::ID:
+ func(static_cast<textEntityTypeCashtag &>(obj));
+ return true;
+ case textEntityTypeBotCommand::ID:
+ func(static_cast<textEntityTypeBotCommand &>(obj));
+ return true;
+ case textEntityTypeUrl::ID:
+ func(static_cast<textEntityTypeUrl &>(obj));
+ return true;
+ case textEntityTypeEmailAddress::ID:
+ func(static_cast<textEntityTypeEmailAddress &>(obj));
+ return true;
+ case textEntityTypePhoneNumber::ID:
+ func(static_cast<textEntityTypePhoneNumber &>(obj));
+ return true;
+ case textEntityTypeBankCardNumber::ID:
+ func(static_cast<textEntityTypeBankCardNumber &>(obj));
+ return true;
+ case textEntityTypeBold::ID:
+ func(static_cast<textEntityTypeBold &>(obj));
+ return true;
+ case textEntityTypeItalic::ID:
+ func(static_cast<textEntityTypeItalic &>(obj));
+ return true;
+ case textEntityTypeUnderline::ID:
+ func(static_cast<textEntityTypeUnderline &>(obj));
+ return true;
+ case textEntityTypeStrikethrough::ID:
+ func(static_cast<textEntityTypeStrikethrough &>(obj));
+ return true;
+ case textEntityTypeSpoiler::ID:
+ func(static_cast<textEntityTypeSpoiler &>(obj));
+ return true;
+ case textEntityTypeCode::ID:
+ func(static_cast<textEntityTypeCode &>(obj));
+ return true;
+ case textEntityTypePre::ID:
+ func(static_cast<textEntityTypePre &>(obj));
+ return true;
+ case textEntityTypePreCode::ID:
+ func(static_cast<textEntityTypePreCode &>(obj));
+ return true;
+ case textEntityTypeTextUrl::ID:
+ func(static_cast<textEntityTypeTextUrl &>(obj));
+ return true;
+ case textEntityTypeMentionName::ID:
+ func(static_cast<textEntityTypeMentionName &>(obj));
+ return true;
+ case textEntityTypeCustomEmoji::ID:
+ func(static_cast<textEntityTypeCustomEmoji &>(obj));
+ return true;
+ case textEntityTypeMediaTimestamp::ID:
+ func(static_cast<textEntityTypeMediaTimestamp &>(obj));
+ return true;
+ case textParseModeMarkdown::ID:
+ func(static_cast<textParseModeMarkdown &>(obj));
+ return true;
+ case textParseModeHTML::ID:
+ func(static_cast<textParseModeHTML &>(obj));
+ return true;
+ case themeParameters::ID:
+ func(static_cast<themeParameters &>(obj));
+ return true;
+ case themeSettings::ID:
+ func(static_cast<themeSettings &>(obj));
+ return true;
+ case thumbnail::ID:
+ func(static_cast<thumbnail &>(obj));
+ return true;
+ case thumbnailFormatJpeg::ID:
+ func(static_cast<thumbnailFormatJpeg &>(obj));
+ return true;
+ case thumbnailFormatGif::ID:
+ func(static_cast<thumbnailFormatGif &>(obj));
+ return true;
+ case thumbnailFormatMpeg4::ID:
+ func(static_cast<thumbnailFormatMpeg4 &>(obj));
+ return true;
+ case thumbnailFormatPng::ID:
+ func(static_cast<thumbnailFormatPng &>(obj));
+ return true;
+ case thumbnailFormatTgs::ID:
+ func(static_cast<thumbnailFormatTgs &>(obj));
+ return true;
+ case thumbnailFormatWebm::ID:
+ func(static_cast<thumbnailFormatWebm &>(obj));
+ return true;
+ case thumbnailFormatWebp::ID:
+ func(static_cast<thumbnailFormatWebp &>(obj));
+ return true;
+ case topChatCategoryUsers::ID:
+ func(static_cast<topChatCategoryUsers &>(obj));
+ return true;
+ case topChatCategoryBots::ID:
+ func(static_cast<topChatCategoryBots &>(obj));
+ return true;
+ case topChatCategoryGroups::ID:
+ func(static_cast<topChatCategoryGroups &>(obj));
+ return true;
+ case topChatCategoryChannels::ID:
+ func(static_cast<topChatCategoryChannels &>(obj));
+ return true;
+ case topChatCategoryInlineBots::ID:
+ func(static_cast<topChatCategoryInlineBots &>(obj));
+ return true;
+ case topChatCategoryCalls::ID:
+ func(static_cast<topChatCategoryCalls &>(obj));
+ return true;
+ case topChatCategoryForwardChats::ID:
+ func(static_cast<topChatCategoryForwardChats &>(obj));
+ return true;
+ case trendingStickerSets::ID:
+ func(static_cast<trendingStickerSets &>(obj));
+ return true;
+ case unreadReaction::ID:
+ func(static_cast<unreadReaction &>(obj));
+ return true;
+ case updateAuthorizationState::ID:
+ func(static_cast<updateAuthorizationState &>(obj));
+ return true;
+ case updateNewMessage::ID:
+ func(static_cast<updateNewMessage &>(obj));
+ return true;
+ case updateMessageSendAcknowledged::ID:
+ func(static_cast<updateMessageSendAcknowledged &>(obj));
+ return true;
+ case updateMessageSendSucceeded::ID:
+ func(static_cast<updateMessageSendSucceeded &>(obj));
+ return true;
+ case updateMessageSendFailed::ID:
+ func(static_cast<updateMessageSendFailed &>(obj));
+ return true;
+ case updateMessageContent::ID:
+ func(static_cast<updateMessageContent &>(obj));
+ return true;
+ case updateMessageEdited::ID:
+ func(static_cast<updateMessageEdited &>(obj));
+ return true;
+ case updateMessageIsPinned::ID:
+ func(static_cast<updateMessageIsPinned &>(obj));
+ return true;
+ case updateMessageInteractionInfo::ID:
+ func(static_cast<updateMessageInteractionInfo &>(obj));
+ return true;
+ case updateMessageContentOpened::ID:
+ func(static_cast<updateMessageContentOpened &>(obj));
+ return true;
+ case updateMessageMentionRead::ID:
+ func(static_cast<updateMessageMentionRead &>(obj));
+ return true;
+ case updateMessageUnreadReactions::ID:
+ func(static_cast<updateMessageUnreadReactions &>(obj));
+ return true;
+ case updateMessageLiveLocationViewed::ID:
+ func(static_cast<updateMessageLiveLocationViewed &>(obj));
+ return true;
+ case updateNewChat::ID:
+ func(static_cast<updateNewChat &>(obj));
+ return true;
+ case updateChatTitle::ID:
+ func(static_cast<updateChatTitle &>(obj));
+ return true;
+ case updateChatPhoto::ID:
+ func(static_cast<updateChatPhoto &>(obj));
+ return true;
+ case updateChatPermissions::ID:
+ func(static_cast<updateChatPermissions &>(obj));
+ return true;
+ case updateChatLastMessage::ID:
+ func(static_cast<updateChatLastMessage &>(obj));
+ return true;
+ case updateChatPosition::ID:
+ func(static_cast<updateChatPosition &>(obj));
+ return true;
+ case updateChatReadInbox::ID:
+ func(static_cast<updateChatReadInbox &>(obj));
+ return true;
+ case updateChatReadOutbox::ID:
+ func(static_cast<updateChatReadOutbox &>(obj));
+ return true;
+ case updateChatActionBar::ID:
+ func(static_cast<updateChatActionBar &>(obj));
+ return true;
+ case updateChatAvailableReactions::ID:
+ func(static_cast<updateChatAvailableReactions &>(obj));
+ return true;
+ case updateChatDraftMessage::ID:
+ func(static_cast<updateChatDraftMessage &>(obj));
+ return true;
+ case updateChatMessageSender::ID:
+ func(static_cast<updateChatMessageSender &>(obj));
+ return true;
+ case updateChatMessageTtl::ID:
+ func(static_cast<updateChatMessageTtl &>(obj));
+ return true;
+ case updateChatNotificationSettings::ID:
+ func(static_cast<updateChatNotificationSettings &>(obj));
+ return true;
+ case updateChatPendingJoinRequests::ID:
+ func(static_cast<updateChatPendingJoinRequests &>(obj));
+ return true;
+ case updateChatReplyMarkup::ID:
+ func(static_cast<updateChatReplyMarkup &>(obj));
+ return true;
+ case updateChatTheme::ID:
+ func(static_cast<updateChatTheme &>(obj));
+ return true;
+ case updateChatUnreadMentionCount::ID:
+ func(static_cast<updateChatUnreadMentionCount &>(obj));
+ return true;
+ case updateChatUnreadReactionCount::ID:
+ func(static_cast<updateChatUnreadReactionCount &>(obj));
+ return true;
+ case updateChatVideoChat::ID:
+ func(static_cast<updateChatVideoChat &>(obj));
+ return true;
+ case updateChatDefaultDisableNotification::ID:
+ func(static_cast<updateChatDefaultDisableNotification &>(obj));
+ return true;
+ case updateChatHasProtectedContent::ID:
+ func(static_cast<updateChatHasProtectedContent &>(obj));
+ return true;
+ case updateChatHasScheduledMessages::ID:
+ func(static_cast<updateChatHasScheduledMessages &>(obj));
+ return true;
+ case updateChatIsBlocked::ID:
+ func(static_cast<updateChatIsBlocked &>(obj));
+ return true;
+ case updateChatIsMarkedAsUnread::ID:
+ func(static_cast<updateChatIsMarkedAsUnread &>(obj));
+ return true;
+ case updateChatFilters::ID:
+ func(static_cast<updateChatFilters &>(obj));
+ return true;
+ case updateChatOnlineMemberCount::ID:
+ func(static_cast<updateChatOnlineMemberCount &>(obj));
+ return true;
+ case updateForumTopicInfo::ID:
+ func(static_cast<updateForumTopicInfo &>(obj));
+ return true;
+ case updateScopeNotificationSettings::ID:
+ func(static_cast<updateScopeNotificationSettings &>(obj));
+ return true;
+ case updateNotification::ID:
+ func(static_cast<updateNotification &>(obj));
+ return true;
+ case updateNotificationGroup::ID:
+ func(static_cast<updateNotificationGroup &>(obj));
+ return true;
+ case updateActiveNotifications::ID:
+ func(static_cast<updateActiveNotifications &>(obj));
+ return true;
+ case updateHavePendingNotifications::ID:
+ func(static_cast<updateHavePendingNotifications &>(obj));
+ return true;
+ case updateDeleteMessages::ID:
+ func(static_cast<updateDeleteMessages &>(obj));
+ return true;
+ case updateChatAction::ID:
+ func(static_cast<updateChatAction &>(obj));
+ return true;
+ case updateUserStatus::ID:
+ func(static_cast<updateUserStatus &>(obj));
+ return true;
+ case updateUser::ID:
+ func(static_cast<updateUser &>(obj));
+ return true;
+ case updateBasicGroup::ID:
+ func(static_cast<updateBasicGroup &>(obj));
+ return true;
+ case updateSupergroup::ID:
+ func(static_cast<updateSupergroup &>(obj));
+ return true;
+ case updateSecretChat::ID:
+ func(static_cast<updateSecretChat &>(obj));
+ return true;
+ case updateUserFullInfo::ID:
+ func(static_cast<updateUserFullInfo &>(obj));
+ return true;
+ case updateBasicGroupFullInfo::ID:
+ func(static_cast<updateBasicGroupFullInfo &>(obj));
+ return true;
+ case updateSupergroupFullInfo::ID:
+ func(static_cast<updateSupergroupFullInfo &>(obj));
+ return true;
+ case updateServiceNotification::ID:
+ func(static_cast<updateServiceNotification &>(obj));
+ return true;
+ case updateFile::ID:
+ func(static_cast<updateFile &>(obj));
+ return true;
+ case updateFileGenerationStart::ID:
+ func(static_cast<updateFileGenerationStart &>(obj));
+ return true;
+ case updateFileGenerationStop::ID:
+ func(static_cast<updateFileGenerationStop &>(obj));
+ return true;
+ case updateFileDownloads::ID:
+ func(static_cast<updateFileDownloads &>(obj));
+ return true;
+ case updateFileAddedToDownloads::ID:
+ func(static_cast<updateFileAddedToDownloads &>(obj));
+ return true;
+ case updateFileDownload::ID:
+ func(static_cast<updateFileDownload &>(obj));
+ return true;
+ case updateFileRemovedFromDownloads::ID:
+ func(static_cast<updateFileRemovedFromDownloads &>(obj));
+ return true;
+ case updateCall::ID:
+ func(static_cast<updateCall &>(obj));
+ return true;
+ case updateGroupCall::ID:
+ func(static_cast<updateGroupCall &>(obj));
+ return true;
+ case updateGroupCallParticipant::ID:
+ func(static_cast<updateGroupCallParticipant &>(obj));
+ return true;
+ case updateNewCallSignalingData::ID:
+ func(static_cast<updateNewCallSignalingData &>(obj));
+ return true;
+ case updateUserPrivacySettingRules::ID:
+ func(static_cast<updateUserPrivacySettingRules &>(obj));
+ return true;
+ case updateUnreadMessageCount::ID:
+ func(static_cast<updateUnreadMessageCount &>(obj));
+ return true;
+ case updateUnreadChatCount::ID:
+ func(static_cast<updateUnreadChatCount &>(obj));
+ return true;
+ case updateOption::ID:
+ func(static_cast<updateOption &>(obj));
+ return true;
+ case updateStickerSet::ID:
+ func(static_cast<updateStickerSet &>(obj));
+ return true;
+ case updateInstalledStickerSets::ID:
+ func(static_cast<updateInstalledStickerSets &>(obj));
+ return true;
+ case updateTrendingStickerSets::ID:
+ func(static_cast<updateTrendingStickerSets &>(obj));
+ return true;
+ case updateRecentStickers::ID:
+ func(static_cast<updateRecentStickers &>(obj));
+ return true;
+ case updateFavoriteStickers::ID:
+ func(static_cast<updateFavoriteStickers &>(obj));
+ return true;
+ case updateSavedAnimations::ID:
+ func(static_cast<updateSavedAnimations &>(obj));
+ return true;
+ case updateSavedNotificationSounds::ID:
+ func(static_cast<updateSavedNotificationSounds &>(obj));
+ return true;
+ case updateSelectedBackground::ID:
+ func(static_cast<updateSelectedBackground &>(obj));
+ return true;
+ case updateChatThemes::ID:
+ func(static_cast<updateChatThemes &>(obj));
+ return true;
+ case updateLanguagePackStrings::ID:
+ func(static_cast<updateLanguagePackStrings &>(obj));
+ return true;
+ case updateConnectionState::ID:
+ func(static_cast<updateConnectionState &>(obj));
+ return true;
+ case updateTermsOfService::ID:
+ func(static_cast<updateTermsOfService &>(obj));
+ return true;
+ case updateUsersNearby::ID:
+ func(static_cast<updateUsersNearby &>(obj));
+ return true;
+ case updateAttachmentMenuBots::ID:
+ func(static_cast<updateAttachmentMenuBots &>(obj));
+ return true;
+ case updateWebAppMessageSent::ID:
+ func(static_cast<updateWebAppMessageSent &>(obj));
+ return true;
+ case updateActiveEmojiReactions::ID:
+ func(static_cast<updateActiveEmojiReactions &>(obj));
+ return true;
+ case updateDefaultReactionType::ID:
+ func(static_cast<updateDefaultReactionType &>(obj));
+ return true;
+ case updateDiceEmojis::ID:
+ func(static_cast<updateDiceEmojis &>(obj));
+ return true;
+ case updateAnimatedEmojiMessageClicked::ID:
+ func(static_cast<updateAnimatedEmojiMessageClicked &>(obj));
+ return true;
+ case updateAnimationSearchParameters::ID:
+ func(static_cast<updateAnimationSearchParameters &>(obj));
+ return true;
+ case updateSuggestedActions::ID:
+ func(static_cast<updateSuggestedActions &>(obj));
+ return true;
+ case updateNewInlineQuery::ID:
+ func(static_cast<updateNewInlineQuery &>(obj));
+ return true;
+ case updateNewChosenInlineResult::ID:
+ func(static_cast<updateNewChosenInlineResult &>(obj));
+ return true;
+ case updateNewCallbackQuery::ID:
+ func(static_cast<updateNewCallbackQuery &>(obj));
+ return true;
+ case updateNewInlineCallbackQuery::ID:
+ func(static_cast<updateNewInlineCallbackQuery &>(obj));
+ return true;
+ case updateNewShippingQuery::ID:
+ func(static_cast<updateNewShippingQuery &>(obj));
+ return true;
+ case updateNewPreCheckoutQuery::ID:
+ func(static_cast<updateNewPreCheckoutQuery &>(obj));
+ return true;
+ case updateNewCustomEvent::ID:
+ func(static_cast<updateNewCustomEvent &>(obj));
+ return true;
+ case updateNewCustomQuery::ID:
+ func(static_cast<updateNewCustomQuery &>(obj));
+ return true;
+ case updatePoll::ID:
+ func(static_cast<updatePoll &>(obj));
+ return true;
+ case updatePollAnswer::ID:
+ func(static_cast<updatePollAnswer &>(obj));
+ return true;
+ case updateChatMember::ID:
+ func(static_cast<updateChatMember &>(obj));
+ return true;
+ case updateNewChatJoinRequest::ID:
+ func(static_cast<updateNewChatJoinRequest &>(obj));
+ return true;
+ case updates::ID:
+ func(static_cast<updates &>(obj));
+ return true;
+ case user::ID:
+ func(static_cast<user &>(obj));
+ return true;
+ case userFullInfo::ID:
+ func(static_cast<userFullInfo &>(obj));
+ return true;
+ case userPrivacySettingShowStatus::ID:
+ func(static_cast<userPrivacySettingShowStatus &>(obj));
+ return true;
+ case userPrivacySettingShowProfilePhoto::ID:
+ func(static_cast<userPrivacySettingShowProfilePhoto &>(obj));
+ return true;
+ case userPrivacySettingShowLinkInForwardedMessages::ID:
+ func(static_cast<userPrivacySettingShowLinkInForwardedMessages &>(obj));
+ return true;
+ case userPrivacySettingShowPhoneNumber::ID:
+ func(static_cast<userPrivacySettingShowPhoneNumber &>(obj));
+ return true;
+ case userPrivacySettingAllowChatInvites::ID:
+ func(static_cast<userPrivacySettingAllowChatInvites &>(obj));
+ return true;
+ case userPrivacySettingAllowCalls::ID:
+ func(static_cast<userPrivacySettingAllowCalls &>(obj));
+ return true;
+ case userPrivacySettingAllowPeerToPeerCalls::ID:
+ func(static_cast<userPrivacySettingAllowPeerToPeerCalls &>(obj));
+ return true;
+ case userPrivacySettingAllowFindingByPhoneNumber::ID:
+ func(static_cast<userPrivacySettingAllowFindingByPhoneNumber &>(obj));
+ return true;
+ case userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages::ID:
+ func(static_cast<userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &>(obj));
+ return true;
+ case userPrivacySettingRuleAllowAll::ID:
+ func(static_cast<userPrivacySettingRuleAllowAll &>(obj));
+ return true;
+ case userPrivacySettingRuleAllowContacts::ID:
+ func(static_cast<userPrivacySettingRuleAllowContacts &>(obj));
+ return true;
+ case userPrivacySettingRuleAllowUsers::ID:
+ func(static_cast<userPrivacySettingRuleAllowUsers &>(obj));
+ return true;
+ case userPrivacySettingRuleAllowChatMembers::ID:
+ func(static_cast<userPrivacySettingRuleAllowChatMembers &>(obj));
+ return true;
+ case userPrivacySettingRuleRestrictAll::ID:
+ func(static_cast<userPrivacySettingRuleRestrictAll &>(obj));
+ return true;
+ case userPrivacySettingRuleRestrictContacts::ID:
+ func(static_cast<userPrivacySettingRuleRestrictContacts &>(obj));
+ return true;
+ case userPrivacySettingRuleRestrictUsers::ID:
+ func(static_cast<userPrivacySettingRuleRestrictUsers &>(obj));
+ return true;
+ case userPrivacySettingRuleRestrictChatMembers::ID:
+ func(static_cast<userPrivacySettingRuleRestrictChatMembers &>(obj));
+ return true;
+ case userPrivacySettingRules::ID:
+ func(static_cast<userPrivacySettingRules &>(obj));
+ return true;
+ case userStatusEmpty::ID:
+ func(static_cast<userStatusEmpty &>(obj));
+ return true;
+ case userStatusOnline::ID:
+ func(static_cast<userStatusOnline &>(obj));
+ return true;
+ case userStatusOffline::ID:
+ func(static_cast<userStatusOffline &>(obj));
+ return true;
+ case userStatusRecently::ID:
+ func(static_cast<userStatusRecently &>(obj));
+ return true;
+ case userStatusLastWeek::ID:
+ func(static_cast<userStatusLastWeek &>(obj));
+ return true;
+ case userStatusLastMonth::ID:
+ func(static_cast<userStatusLastMonth &>(obj));
+ return true;
+ case userSupportInfo::ID:
+ func(static_cast<userSupportInfo &>(obj));
+ return true;
+ case userTypeRegular::ID:
+ func(static_cast<userTypeRegular &>(obj));
+ return true;
+ case userTypeDeleted::ID:
+ func(static_cast<userTypeDeleted &>(obj));
+ return true;
+ case userTypeBot::ID:
+ func(static_cast<userTypeBot &>(obj));
+ return true;
+ case userTypeUnknown::ID:
+ func(static_cast<userTypeUnknown &>(obj));
+ return true;
+ case usernames::ID:
+ func(static_cast<usernames &>(obj));
+ return true;
+ case users::ID:
+ func(static_cast<users &>(obj));
+ return true;
+ case validatedOrderInfo::ID:
+ func(static_cast<validatedOrderInfo &>(obj));
+ return true;
+ case vectorPathCommandLine::ID:
+ func(static_cast<vectorPathCommandLine &>(obj));
+ return true;
+ case vectorPathCommandCubicBezierCurve::ID:
+ func(static_cast<vectorPathCommandCubicBezierCurve &>(obj));
+ return true;
+ case venue::ID:
+ func(static_cast<venue &>(obj));
+ return true;
+ case video::ID:
+ func(static_cast<video &>(obj));
+ return true;
+ case videoChat::ID:
+ func(static_cast<videoChat &>(obj));
+ return true;
+ case videoNote::ID:
+ func(static_cast<videoNote &>(obj));
+ return true;
+ case voiceNote::ID:
+ func(static_cast<voiceNote &>(obj));
+ return true;
+ case webAppInfo::ID:
+ func(static_cast<webAppInfo &>(obj));
+ return true;
+ case webPage::ID:
+ func(static_cast<webPage &>(obj));
+ return true;
+ case webPageInstantView::ID:
+ func(static_cast<webPageInstantView &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Function &obj, const T &func) {
+ switch (obj.get_id()) {
+ case acceptCall::ID:
+ func(static_cast<acceptCall &>(obj));
+ return true;
+ case acceptTermsOfService::ID:
+ func(static_cast<acceptTermsOfService &>(obj));
+ return true;
+ case addChatMember::ID:
+ func(static_cast<addChatMember &>(obj));
+ return true;
+ case addChatMembers::ID:
+ func(static_cast<addChatMembers &>(obj));
+ return true;
+ case addChatToList::ID:
+ func(static_cast<addChatToList &>(obj));
+ return true;
+ case addContact::ID:
+ func(static_cast<addContact &>(obj));
+ return true;
+ case addCustomServerLanguagePack::ID:
+ func(static_cast<addCustomServerLanguagePack &>(obj));
+ return true;
+ case addFavoriteSticker::ID:
+ func(static_cast<addFavoriteSticker &>(obj));
+ return true;
+ case addFileToDownloads::ID:
+ func(static_cast<addFileToDownloads &>(obj));
+ return true;
+ case addLocalMessage::ID:
+ func(static_cast<addLocalMessage &>(obj));
+ return true;
+ case addLogMessage::ID:
+ func(static_cast<addLogMessage &>(obj));
+ return true;
+ case addMessageReaction::ID:
+ func(static_cast<addMessageReaction &>(obj));
+ return true;
+ case addNetworkStatistics::ID:
+ func(static_cast<addNetworkStatistics &>(obj));
+ return true;
+ case addProxy::ID:
+ func(static_cast<addProxy &>(obj));
+ return true;
+ case addRecentSticker::ID:
+ func(static_cast<addRecentSticker &>(obj));
+ return true;
+ case addRecentlyFoundChat::ID:
+ func(static_cast<addRecentlyFoundChat &>(obj));
+ return true;
+ case addSavedAnimation::ID:
+ func(static_cast<addSavedAnimation &>(obj));
+ return true;
+ case addSavedNotificationSound::ID:
+ func(static_cast<addSavedNotificationSound &>(obj));
+ return true;
+ case addStickerToSet::ID:
+ func(static_cast<addStickerToSet &>(obj));
+ return true;
+ case answerCallbackQuery::ID:
+ func(static_cast<answerCallbackQuery &>(obj));
+ return true;
+ case answerCustomQuery::ID:
+ func(static_cast<answerCustomQuery &>(obj));
+ return true;
+ case answerInlineQuery::ID:
+ func(static_cast<answerInlineQuery &>(obj));
+ return true;
+ case answerPreCheckoutQuery::ID:
+ func(static_cast<answerPreCheckoutQuery &>(obj));
+ return true;
+ case answerShippingQuery::ID:
+ func(static_cast<answerShippingQuery &>(obj));
+ return true;
+ case answerWebAppQuery::ID:
+ func(static_cast<answerWebAppQuery &>(obj));
+ return true;
+ case assignAppStoreTransaction::ID:
+ func(static_cast<assignAppStoreTransaction &>(obj));
+ return true;
+ case assignGooglePlayTransaction::ID:
+ func(static_cast<assignGooglePlayTransaction &>(obj));
+ return true;
+ case banChatMember::ID:
+ func(static_cast<banChatMember &>(obj));
+ return true;
+ case blockMessageSenderFromReplies::ID:
+ func(static_cast<blockMessageSenderFromReplies &>(obj));
+ return true;
+ case canPurchasePremium::ID:
+ func(static_cast<canPurchasePremium &>(obj));
+ return true;
+ case canTransferOwnership::ID:
+ func(static_cast<canTransferOwnership &>(obj));
+ return true;
+ case cancelDownloadFile::ID:
+ func(static_cast<cancelDownloadFile &>(obj));
+ return true;
+ case cancelPasswordReset::ID:
+ func(static_cast<cancelPasswordReset &>(obj));
+ return true;
+ case cancelPreliminaryUploadFile::ID:
+ func(static_cast<cancelPreliminaryUploadFile &>(obj));
+ return true;
+ case changeImportedContacts::ID:
+ func(static_cast<changeImportedContacts &>(obj));
+ return true;
+ case changePhoneNumber::ID:
+ func(static_cast<changePhoneNumber &>(obj));
+ return true;
+ case changeStickerSet::ID:
+ func(static_cast<changeStickerSet &>(obj));
+ return true;
+ case checkAuthenticationBotToken::ID:
+ func(static_cast<checkAuthenticationBotToken &>(obj));
+ return true;
+ case checkAuthenticationCode::ID:
+ func(static_cast<checkAuthenticationCode &>(obj));
+ return true;
+ case checkAuthenticationEmailCode::ID:
+ func(static_cast<checkAuthenticationEmailCode &>(obj));
+ return true;
+ case checkAuthenticationPassword::ID:
+ func(static_cast<checkAuthenticationPassword &>(obj));
+ return true;
+ case checkAuthenticationPasswordRecoveryCode::ID:
+ func(static_cast<checkAuthenticationPasswordRecoveryCode &>(obj));
+ return true;
+ case checkChangePhoneNumberCode::ID:
+ func(static_cast<checkChangePhoneNumberCode &>(obj));
+ return true;
+ case checkChatInviteLink::ID:
+ func(static_cast<checkChatInviteLink &>(obj));
+ return true;
+ case checkChatUsername::ID:
+ func(static_cast<checkChatUsername &>(obj));
+ return true;
+ case checkCreatedPublicChatsLimit::ID:
+ func(static_cast<checkCreatedPublicChatsLimit &>(obj));
+ return true;
+ case checkEmailAddressVerificationCode::ID:
+ func(static_cast<checkEmailAddressVerificationCode &>(obj));
+ return true;
+ case checkLoginEmailAddressCode::ID:
+ func(static_cast<checkLoginEmailAddressCode &>(obj));
+ return true;
+ case checkPasswordRecoveryCode::ID:
+ func(static_cast<checkPasswordRecoveryCode &>(obj));
+ return true;
+ case checkPhoneNumberConfirmationCode::ID:
+ func(static_cast<checkPhoneNumberConfirmationCode &>(obj));
+ return true;
+ case checkPhoneNumberVerificationCode::ID:
+ func(static_cast<checkPhoneNumberVerificationCode &>(obj));
+ return true;
+ case checkRecoveryEmailAddressCode::ID:
+ func(static_cast<checkRecoveryEmailAddressCode &>(obj));
+ return true;
+ case checkStickerSetName::ID:
+ func(static_cast<checkStickerSetName &>(obj));
+ return true;
+ case cleanFileName::ID:
+ func(static_cast<cleanFileName &>(obj));
+ return true;
+ case clearAllDraftMessages::ID:
+ func(static_cast<clearAllDraftMessages &>(obj));
+ return true;
+ case clearImportedContacts::ID:
+ func(static_cast<clearImportedContacts &>(obj));
+ return true;
+ case clearRecentEmojiStatuses::ID:
+ func(static_cast<clearRecentEmojiStatuses &>(obj));
+ return true;
+ case clearRecentReactions::ID:
+ func(static_cast<clearRecentReactions &>(obj));
+ return true;
+ case clearRecentStickers::ID:
+ func(static_cast<clearRecentStickers &>(obj));
+ return true;
+ case clearRecentlyFoundChats::ID:
+ func(static_cast<clearRecentlyFoundChats &>(obj));
+ return true;
+ case clickAnimatedEmojiMessage::ID:
+ func(static_cast<clickAnimatedEmojiMessage &>(obj));
+ return true;
+ case clickPremiumSubscriptionButton::ID:
+ func(static_cast<clickPremiumSubscriptionButton &>(obj));
+ return true;
+ case close::ID:
+ func(static_cast<close &>(obj));
+ return true;
+ case closeChat::ID:
+ func(static_cast<closeChat &>(obj));
+ return true;
+ case closeSecretChat::ID:
+ func(static_cast<closeSecretChat &>(obj));
+ return true;
+ case closeWebApp::ID:
+ func(static_cast<closeWebApp &>(obj));
+ return true;
+ case confirmQrCodeAuthentication::ID:
+ func(static_cast<confirmQrCodeAuthentication &>(obj));
+ return true;
+ case createBasicGroupChat::ID:
+ func(static_cast<createBasicGroupChat &>(obj));
+ return true;
+ case createCall::ID:
+ func(static_cast<createCall &>(obj));
+ return true;
+ case createChatFilter::ID:
+ func(static_cast<createChatFilter &>(obj));
+ return true;
+ case createChatInviteLink::ID:
+ func(static_cast<createChatInviteLink &>(obj));
+ return true;
+ case createForumTopic::ID:
+ func(static_cast<createForumTopic &>(obj));
+ return true;
+ case createInvoiceLink::ID:
+ func(static_cast<createInvoiceLink &>(obj));
+ return true;
+ case createNewBasicGroupChat::ID:
+ func(static_cast<createNewBasicGroupChat &>(obj));
+ return true;
+ case createNewSecretChat::ID:
+ func(static_cast<createNewSecretChat &>(obj));
+ return true;
+ case createNewStickerSet::ID:
+ func(static_cast<createNewStickerSet &>(obj));
+ return true;
+ case createNewSupergroupChat::ID:
+ func(static_cast<createNewSupergroupChat &>(obj));
+ return true;
+ case createPrivateChat::ID:
+ func(static_cast<createPrivateChat &>(obj));
+ return true;
+ case createSecretChat::ID:
+ func(static_cast<createSecretChat &>(obj));
+ return true;
+ case createSupergroupChat::ID:
+ func(static_cast<createSupergroupChat &>(obj));
+ return true;
+ case createTemporaryPassword::ID:
+ func(static_cast<createTemporaryPassword &>(obj));
+ return true;
+ case createVideoChat::ID:
+ func(static_cast<createVideoChat &>(obj));
+ return true;
+ case deleteAccount::ID:
+ func(static_cast<deleteAccount &>(obj));
+ return true;
+ case deleteAllCallMessages::ID:
+ func(static_cast<deleteAllCallMessages &>(obj));
+ return true;
+ case deleteAllRevokedChatInviteLinks::ID:
+ func(static_cast<deleteAllRevokedChatInviteLinks &>(obj));
+ return true;
+ case deleteChat::ID:
+ func(static_cast<deleteChat &>(obj));
+ return true;
+ case deleteChatFilter::ID:
+ func(static_cast<deleteChatFilter &>(obj));
+ return true;
+ case deleteChatHistory::ID:
+ func(static_cast<deleteChatHistory &>(obj));
+ return true;
+ case deleteChatMessagesByDate::ID:
+ func(static_cast<deleteChatMessagesByDate &>(obj));
+ return true;
+ case deleteChatMessagesBySender::ID:
+ func(static_cast<deleteChatMessagesBySender &>(obj));
+ return true;
+ case deleteChatReplyMarkup::ID:
+ func(static_cast<deleteChatReplyMarkup &>(obj));
+ return true;
+ case deleteCommands::ID:
+ func(static_cast<deleteCommands &>(obj));
+ return true;
+ case deleteFile::ID:
+ func(static_cast<deleteFile &>(obj));
+ return true;
+ case deleteForumTopic::ID:
+ func(static_cast<deleteForumTopic &>(obj));
+ return true;
+ case deleteLanguagePack::ID:
+ func(static_cast<deleteLanguagePack &>(obj));
+ return true;
+ case deleteMessages::ID:
+ func(static_cast<deleteMessages &>(obj));
+ return true;
+ case deletePassportElement::ID:
+ func(static_cast<deletePassportElement &>(obj));
+ return true;
+ case deleteProfilePhoto::ID:
+ func(static_cast<deleteProfilePhoto &>(obj));
+ return true;
+ case deleteRevokedChatInviteLink::ID:
+ func(static_cast<deleteRevokedChatInviteLink &>(obj));
+ return true;
+ case deleteSavedCredentials::ID:
+ func(static_cast<deleteSavedCredentials &>(obj));
+ return true;
+ case deleteSavedOrderInfo::ID:
+ func(static_cast<deleteSavedOrderInfo &>(obj));
+ return true;
+ case destroy::ID:
+ func(static_cast<destroy &>(obj));
+ return true;
+ case disableAllSupergroupUsernames::ID:
+ func(static_cast<disableAllSupergroupUsernames &>(obj));
+ return true;
+ case disableProxy::ID:
+ func(static_cast<disableProxy &>(obj));
+ return true;
+ case discardCall::ID:
+ func(static_cast<discardCall &>(obj));
+ return true;
+ case disconnectAllWebsites::ID:
+ func(static_cast<disconnectAllWebsites &>(obj));
+ return true;
+ case disconnectWebsite::ID:
+ func(static_cast<disconnectWebsite &>(obj));
+ return true;
+ case downloadFile::ID:
+ func(static_cast<downloadFile &>(obj));
+ return true;
+ case editChatFilter::ID:
+ func(static_cast<editChatFilter &>(obj));
+ return true;
+ case editChatInviteLink::ID:
+ func(static_cast<editChatInviteLink &>(obj));
+ return true;
+ case editCustomLanguagePackInfo::ID:
+ func(static_cast<editCustomLanguagePackInfo &>(obj));
+ return true;
+ case editForumTopic::ID:
+ func(static_cast<editForumTopic &>(obj));
+ return true;
+ case editInlineMessageCaption::ID:
+ func(static_cast<editInlineMessageCaption &>(obj));
+ return true;
+ case editInlineMessageLiveLocation::ID:
+ func(static_cast<editInlineMessageLiveLocation &>(obj));
+ return true;
+ case editInlineMessageMedia::ID:
+ func(static_cast<editInlineMessageMedia &>(obj));
+ return true;
+ case editInlineMessageReplyMarkup::ID:
+ func(static_cast<editInlineMessageReplyMarkup &>(obj));
+ return true;
+ case editInlineMessageText::ID:
+ func(static_cast<editInlineMessageText &>(obj));
+ return true;
+ case editMessageCaption::ID:
+ func(static_cast<editMessageCaption &>(obj));
+ return true;
+ case editMessageLiveLocation::ID:
+ func(static_cast<editMessageLiveLocation &>(obj));
+ return true;
+ case editMessageMedia::ID:
+ func(static_cast<editMessageMedia &>(obj));
+ return true;
+ case editMessageReplyMarkup::ID:
+ func(static_cast<editMessageReplyMarkup &>(obj));
+ return true;
+ case editMessageSchedulingState::ID:
+ func(static_cast<editMessageSchedulingState &>(obj));
+ return true;
+ case editMessageText::ID:
+ func(static_cast<editMessageText &>(obj));
+ return true;
+ case editProxy::ID:
+ func(static_cast<editProxy &>(obj));
+ return true;
+ case enableProxy::ID:
+ func(static_cast<enableProxy &>(obj));
+ return true;
+ case endGroupCall::ID:
+ func(static_cast<endGroupCall &>(obj));
+ return true;
+ case endGroupCallRecording::ID:
+ func(static_cast<endGroupCallRecording &>(obj));
+ return true;
+ case endGroupCallScreenSharing::ID:
+ func(static_cast<endGroupCallScreenSharing &>(obj));
+ return true;
+ case finishFileGeneration::ID:
+ func(static_cast<finishFileGeneration &>(obj));
+ return true;
+ case forwardMessages::ID:
+ func(static_cast<forwardMessages &>(obj));
+ return true;
+ case getAccountTtl::ID:
+ func(static_cast<getAccountTtl &>(obj));
+ return true;
+ case getActiveLiveLocationMessages::ID:
+ func(static_cast<getActiveLiveLocationMessages &>(obj));
+ return true;
+ case getActiveSessions::ID:
+ func(static_cast<getActiveSessions &>(obj));
+ return true;
+ case getAllPassportElements::ID:
+ func(static_cast<getAllPassportElements &>(obj));
+ return true;
+ case getAnimatedEmoji::ID:
+ func(static_cast<getAnimatedEmoji &>(obj));
+ return true;
+ case getApplicationConfig::ID:
+ func(static_cast<getApplicationConfig &>(obj));
+ return true;
+ case getApplicationDownloadLink::ID:
+ func(static_cast<getApplicationDownloadLink &>(obj));
+ return true;
+ case getArchivedStickerSets::ID:
+ func(static_cast<getArchivedStickerSets &>(obj));
+ return true;
+ case getAttachedStickerSets::ID:
+ func(static_cast<getAttachedStickerSets &>(obj));
+ return true;
+ case getAttachmentMenuBot::ID:
+ func(static_cast<getAttachmentMenuBot &>(obj));
+ return true;
+ case getAuthorizationState::ID:
+ func(static_cast<getAuthorizationState &>(obj));
+ return true;
+ case getAutoDownloadSettingsPresets::ID:
+ func(static_cast<getAutoDownloadSettingsPresets &>(obj));
+ return true;
+ case getBackgroundUrl::ID:
+ func(static_cast<getBackgroundUrl &>(obj));
+ return true;
+ case getBackgrounds::ID:
+ func(static_cast<getBackgrounds &>(obj));
+ return true;
+ case getBankCardInfo::ID:
+ func(static_cast<getBankCardInfo &>(obj));
+ return true;
+ case getBasicGroup::ID:
+ func(static_cast<getBasicGroup &>(obj));
+ return true;
+ case getBasicGroupFullInfo::ID:
+ func(static_cast<getBasicGroupFullInfo &>(obj));
+ return true;
+ case getBlockedMessageSenders::ID:
+ func(static_cast<getBlockedMessageSenders &>(obj));
+ return true;
+ case getCallbackQueryAnswer::ID:
+ func(static_cast<getCallbackQueryAnswer &>(obj));
+ return true;
+ case getCallbackQueryMessage::ID:
+ func(static_cast<getCallbackQueryMessage &>(obj));
+ return true;
+ case getChat::ID:
+ func(static_cast<getChat &>(obj));
+ return true;
+ case getChatAdministrators::ID:
+ func(static_cast<getChatAdministrators &>(obj));
+ return true;
+ case getChatAvailableMessageSenders::ID:
+ func(static_cast<getChatAvailableMessageSenders &>(obj));
+ return true;
+ case getChatEventLog::ID:
+ func(static_cast<getChatEventLog &>(obj));
+ return true;
+ case getChatFilter::ID:
+ func(static_cast<getChatFilter &>(obj));
+ return true;
+ case getChatFilterDefaultIconName::ID:
+ func(static_cast<getChatFilterDefaultIconName &>(obj));
+ return true;
+ case getChatHistory::ID:
+ func(static_cast<getChatHistory &>(obj));
+ return true;
+ case getChatInviteLink::ID:
+ func(static_cast<getChatInviteLink &>(obj));
+ return true;
+ case getChatInviteLinkCounts::ID:
+ func(static_cast<getChatInviteLinkCounts &>(obj));
+ return true;
+ case getChatInviteLinkMembers::ID:
+ func(static_cast<getChatInviteLinkMembers &>(obj));
+ return true;
+ case getChatInviteLinks::ID:
+ func(static_cast<getChatInviteLinks &>(obj));
+ return true;
+ case getChatJoinRequests::ID:
+ func(static_cast<getChatJoinRequests &>(obj));
+ return true;
+ case getChatListsToAddChat::ID:
+ func(static_cast<getChatListsToAddChat &>(obj));
+ return true;
+ case getChatMember::ID:
+ func(static_cast<getChatMember &>(obj));
+ return true;
+ case getChatMessageByDate::ID:
+ func(static_cast<getChatMessageByDate &>(obj));
+ return true;
+ case getChatMessageCalendar::ID:
+ func(static_cast<getChatMessageCalendar &>(obj));
+ return true;
+ case getChatMessageCount::ID:
+ func(static_cast<getChatMessageCount &>(obj));
+ return true;
+ case getChatMessagePosition::ID:
+ func(static_cast<getChatMessagePosition &>(obj));
+ return true;
+ case getChatNotificationSettingsExceptions::ID:
+ func(static_cast<getChatNotificationSettingsExceptions &>(obj));
+ return true;
+ case getChatPinnedMessage::ID:
+ func(static_cast<getChatPinnedMessage &>(obj));
+ return true;
+ case getChatScheduledMessages::ID:
+ func(static_cast<getChatScheduledMessages &>(obj));
+ return true;
+ case getChatSparseMessagePositions::ID:
+ func(static_cast<getChatSparseMessagePositions &>(obj));
+ return true;
+ case getChatSponsoredMessages::ID:
+ func(static_cast<getChatSponsoredMessages &>(obj));
+ return true;
+ case getChatStatistics::ID:
+ func(static_cast<getChatStatistics &>(obj));
+ return true;
+ case getChats::ID:
+ func(static_cast<getChats &>(obj));
+ return true;
+ case getCommands::ID:
+ func(static_cast<getCommands &>(obj));
+ return true;
+ case getConnectedWebsites::ID:
+ func(static_cast<getConnectedWebsites &>(obj));
+ return true;
+ case getContacts::ID:
+ func(static_cast<getContacts &>(obj));
+ return true;
+ case getCountries::ID:
+ func(static_cast<getCountries &>(obj));
+ return true;
+ case getCountryCode::ID:
+ func(static_cast<getCountryCode &>(obj));
+ return true;
+ case getCreatedPublicChats::ID:
+ func(static_cast<getCreatedPublicChats &>(obj));
+ return true;
+ case getCurrentState::ID:
+ func(static_cast<getCurrentState &>(obj));
+ return true;
+ case getCustomEmojiReactionAnimations::ID:
+ func(static_cast<getCustomEmojiReactionAnimations &>(obj));
+ return true;
+ case getCustomEmojiStickers::ID:
+ func(static_cast<getCustomEmojiStickers &>(obj));
+ return true;
+ case getDatabaseStatistics::ID:
+ func(static_cast<getDatabaseStatistics &>(obj));
+ return true;
+ case getDeepLinkInfo::ID:
+ func(static_cast<getDeepLinkInfo &>(obj));
+ return true;
+ case getDefaultEmojiStatuses::ID:
+ func(static_cast<getDefaultEmojiStatuses &>(obj));
+ return true;
+ case getEmojiReaction::ID:
+ func(static_cast<getEmojiReaction &>(obj));
+ return true;
+ case getEmojiSuggestionsUrl::ID:
+ func(static_cast<getEmojiSuggestionsUrl &>(obj));
+ return true;
+ case getExternalLink::ID:
+ func(static_cast<getExternalLink &>(obj));
+ return true;
+ case getExternalLinkInfo::ID:
+ func(static_cast<getExternalLinkInfo &>(obj));
+ return true;
+ case getFavoriteStickers::ID:
+ func(static_cast<getFavoriteStickers &>(obj));
+ return true;
+ case getFile::ID:
+ func(static_cast<getFile &>(obj));
+ return true;
+ case getFileDownloadedPrefixSize::ID:
+ func(static_cast<getFileDownloadedPrefixSize &>(obj));
+ return true;
+ case getFileExtension::ID:
+ func(static_cast<getFileExtension &>(obj));
+ return true;
+ case getFileMimeType::ID:
+ func(static_cast<getFileMimeType &>(obj));
+ return true;
+ case getForumTopicDefaultIcons::ID:
+ func(static_cast<getForumTopicDefaultIcons &>(obj));
+ return true;
+ case getGameHighScores::ID:
+ func(static_cast<getGameHighScores &>(obj));
+ return true;
+ case getGroupCall::ID:
+ func(static_cast<getGroupCall &>(obj));
+ return true;
+ case getGroupCallInviteLink::ID:
+ func(static_cast<getGroupCallInviteLink &>(obj));
+ return true;
+ case getGroupCallStreamSegment::ID:
+ func(static_cast<getGroupCallStreamSegment &>(obj));
+ return true;
+ case getGroupCallStreams::ID:
+ func(static_cast<getGroupCallStreams &>(obj));
+ return true;
+ case getGroupsInCommon::ID:
+ func(static_cast<getGroupsInCommon &>(obj));
+ return true;
+ case getImportedContactCount::ID:
+ func(static_cast<getImportedContactCount &>(obj));
+ return true;
+ case getInactiveSupergroupChats::ID:
+ func(static_cast<getInactiveSupergroupChats &>(obj));
+ return true;
+ case getInlineGameHighScores::ID:
+ func(static_cast<getInlineGameHighScores &>(obj));
+ return true;
+ case getInlineQueryResults::ID:
+ func(static_cast<getInlineQueryResults &>(obj));
+ return true;
+ case getInstalledStickerSets::ID:
+ func(static_cast<getInstalledStickerSets &>(obj));
+ return true;
+ case getInternalLinkType::ID:
+ func(static_cast<getInternalLinkType &>(obj));
+ return true;
+ case getJsonString::ID:
+ func(static_cast<getJsonString &>(obj));
+ return true;
+ case getJsonValue::ID:
+ func(static_cast<getJsonValue &>(obj));
+ return true;
+ case getLanguagePackInfo::ID:
+ func(static_cast<getLanguagePackInfo &>(obj));
+ return true;
+ case getLanguagePackString::ID:
+ func(static_cast<getLanguagePackString &>(obj));
+ return true;
+ case getLanguagePackStrings::ID:
+ func(static_cast<getLanguagePackStrings &>(obj));
+ return true;
+ case getLocalizationTargetInfo::ID:
+ func(static_cast<getLocalizationTargetInfo &>(obj));
+ return true;
+ case getLogStream::ID:
+ func(static_cast<getLogStream &>(obj));
+ return true;
+ case getLogTagVerbosityLevel::ID:
+ func(static_cast<getLogTagVerbosityLevel &>(obj));
+ return true;
+ case getLogTags::ID:
+ func(static_cast<getLogTags &>(obj));
+ return true;
+ case getLogVerbosityLevel::ID:
+ func(static_cast<getLogVerbosityLevel &>(obj));
+ return true;
+ case getLoginUrl::ID:
+ func(static_cast<getLoginUrl &>(obj));
+ return true;
+ case getLoginUrlInfo::ID:
+ func(static_cast<getLoginUrlInfo &>(obj));
+ return true;
+ case getMapThumbnailFile::ID:
+ func(static_cast<getMapThumbnailFile &>(obj));
+ return true;
+ case getMarkdownText::ID:
+ func(static_cast<getMarkdownText &>(obj));
+ return true;
+ case getMe::ID:
+ func(static_cast<getMe &>(obj));
+ return true;
+ case getMenuButton::ID:
+ func(static_cast<getMenuButton &>(obj));
+ return true;
+ case getMessage::ID:
+ func(static_cast<getMessage &>(obj));
+ return true;
+ case getMessageAddedReactions::ID:
+ func(static_cast<getMessageAddedReactions &>(obj));
+ return true;
+ case getMessageAvailableReactions::ID:
+ func(static_cast<getMessageAvailableReactions &>(obj));
+ return true;
+ case getMessageEmbeddingCode::ID:
+ func(static_cast<getMessageEmbeddingCode &>(obj));
+ return true;
+ case getMessageFileType::ID:
+ func(static_cast<getMessageFileType &>(obj));
+ return true;
+ case getMessageImportConfirmationText::ID:
+ func(static_cast<getMessageImportConfirmationText &>(obj));
+ return true;
+ case getMessageLink::ID:
+ func(static_cast<getMessageLink &>(obj));
+ return true;
+ case getMessageLinkInfo::ID:
+ func(static_cast<getMessageLinkInfo &>(obj));
+ return true;
+ case getMessageLocally::ID:
+ func(static_cast<getMessageLocally &>(obj));
+ return true;
+ case getMessagePublicForwards::ID:
+ func(static_cast<getMessagePublicForwards &>(obj));
+ return true;
+ case getMessageStatistics::ID:
+ func(static_cast<getMessageStatistics &>(obj));
+ return true;
+ case getMessageThread::ID:
+ func(static_cast<getMessageThread &>(obj));
+ return true;
+ case getMessageThreadHistory::ID:
+ func(static_cast<getMessageThreadHistory &>(obj));
+ return true;
+ case getMessageViewers::ID:
+ func(static_cast<getMessageViewers &>(obj));
+ return true;
+ case getMessages::ID:
+ func(static_cast<getMessages &>(obj));
+ return true;
+ case getNetworkStatistics::ID:
+ func(static_cast<getNetworkStatistics &>(obj));
+ return true;
+ case getOption::ID:
+ func(static_cast<getOption &>(obj));
+ return true;
+ case getPassportAuthorizationForm::ID:
+ func(static_cast<getPassportAuthorizationForm &>(obj));
+ return true;
+ case getPassportAuthorizationFormAvailableElements::ID:
+ func(static_cast<getPassportAuthorizationFormAvailableElements &>(obj));
+ return true;
+ case getPassportElement::ID:
+ func(static_cast<getPassportElement &>(obj));
+ return true;
+ case getPasswordState::ID:
+ func(static_cast<getPasswordState &>(obj));
+ return true;
+ case getPaymentForm::ID:
+ func(static_cast<getPaymentForm &>(obj));
+ return true;
+ case getPaymentReceipt::ID:
+ func(static_cast<getPaymentReceipt &>(obj));
+ return true;
+ case getPhoneNumberInfo::ID:
+ func(static_cast<getPhoneNumberInfo &>(obj));
+ return true;
+ case getPhoneNumberInfoSync::ID:
+ func(static_cast<getPhoneNumberInfoSync &>(obj));
+ return true;
+ case getPollVoters::ID:
+ func(static_cast<getPollVoters &>(obj));
+ return true;
+ case getPreferredCountryLanguage::ID:
+ func(static_cast<getPreferredCountryLanguage &>(obj));
+ return true;
+ case getPremiumFeatures::ID:
+ func(static_cast<getPremiumFeatures &>(obj));
+ return true;
+ case getPremiumLimit::ID:
+ func(static_cast<getPremiumLimit &>(obj));
+ return true;
+ case getPremiumState::ID:
+ func(static_cast<getPremiumState &>(obj));
+ return true;
+ case getPremiumStickerExamples::ID:
+ func(static_cast<getPremiumStickerExamples &>(obj));
+ return true;
+ case getPremiumStickers::ID:
+ func(static_cast<getPremiumStickers &>(obj));
+ return true;
+ case getProxies::ID:
+ func(static_cast<getProxies &>(obj));
+ return true;
+ case getProxyLink::ID:
+ func(static_cast<getProxyLink &>(obj));
+ return true;
+ case getPushReceiverId::ID:
+ func(static_cast<getPushReceiverId &>(obj));
+ return true;
+ case getRecentEmojiStatuses::ID:
+ func(static_cast<getRecentEmojiStatuses &>(obj));
+ return true;
+ case getRecentInlineBots::ID:
+ func(static_cast<getRecentInlineBots &>(obj));
+ return true;
+ case getRecentStickers::ID:
+ func(static_cast<getRecentStickers &>(obj));
+ return true;
+ case getRecentlyOpenedChats::ID:
+ func(static_cast<getRecentlyOpenedChats &>(obj));
+ return true;
+ case getRecentlyVisitedTMeUrls::ID:
+ func(static_cast<getRecentlyVisitedTMeUrls &>(obj));
+ return true;
+ case getRecommendedChatFilters::ID:
+ func(static_cast<getRecommendedChatFilters &>(obj));
+ return true;
+ case getRecoveryEmailAddress::ID:
+ func(static_cast<getRecoveryEmailAddress &>(obj));
+ return true;
+ case getRemoteFile::ID:
+ func(static_cast<getRemoteFile &>(obj));
+ return true;
+ case getRepliedMessage::ID:
+ func(static_cast<getRepliedMessage &>(obj));
+ return true;
+ case getSavedAnimations::ID:
+ func(static_cast<getSavedAnimations &>(obj));
+ return true;
+ case getSavedNotificationSound::ID:
+ func(static_cast<getSavedNotificationSound &>(obj));
+ return true;
+ case getSavedNotificationSounds::ID:
+ func(static_cast<getSavedNotificationSounds &>(obj));
+ return true;
+ case getSavedOrderInfo::ID:
+ func(static_cast<getSavedOrderInfo &>(obj));
+ return true;
+ case getScopeNotificationSettings::ID:
+ func(static_cast<getScopeNotificationSettings &>(obj));
+ return true;
+ case getSecretChat::ID:
+ func(static_cast<getSecretChat &>(obj));
+ return true;
+ case getStatisticalGraph::ID:
+ func(static_cast<getStatisticalGraph &>(obj));
+ return true;
+ case getStickerEmojis::ID:
+ func(static_cast<getStickerEmojis &>(obj));
+ return true;
+ case getStickerSet::ID:
+ func(static_cast<getStickerSet &>(obj));
+ return true;
+ case getStickers::ID:
+ func(static_cast<getStickers &>(obj));
+ return true;
+ case getStorageStatistics::ID:
+ func(static_cast<getStorageStatistics &>(obj));
+ return true;
+ case getStorageStatisticsFast::ID:
+ func(static_cast<getStorageStatisticsFast &>(obj));
+ return true;
+ case getSuggestedFileName::ID:
+ func(static_cast<getSuggestedFileName &>(obj));
+ return true;
+ case getSuggestedStickerSetName::ID:
+ func(static_cast<getSuggestedStickerSetName &>(obj));
+ return true;
+ case getSuitableDiscussionChats::ID:
+ func(static_cast<getSuitableDiscussionChats &>(obj));
+ return true;
+ case getSupergroup::ID:
+ func(static_cast<getSupergroup &>(obj));
+ return true;
+ case getSupergroupFullInfo::ID:
+ func(static_cast<getSupergroupFullInfo &>(obj));
+ return true;
+ case getSupergroupMembers::ID:
+ func(static_cast<getSupergroupMembers &>(obj));
+ return true;
+ case getSupportUser::ID:
+ func(static_cast<getSupportUser &>(obj));
+ return true;
+ case getTemporaryPasswordState::ID:
+ func(static_cast<getTemporaryPasswordState &>(obj));
+ return true;
+ case getTextEntities::ID:
+ func(static_cast<getTextEntities &>(obj));
+ return true;
+ case getThemeParametersJsonString::ID:
+ func(static_cast<getThemeParametersJsonString &>(obj));
+ return true;
+ case getThemedEmojiStatuses::ID:
+ func(static_cast<getThemedEmojiStatuses &>(obj));
+ return true;
+ case getTopChats::ID:
+ func(static_cast<getTopChats &>(obj));
+ return true;
+ case getTrendingStickerSets::ID:
+ func(static_cast<getTrendingStickerSets &>(obj));
+ return true;
+ case getUser::ID:
+ func(static_cast<getUser &>(obj));
+ return true;
+ case getUserFullInfo::ID:
+ func(static_cast<getUserFullInfo &>(obj));
+ return true;
+ case getUserPrivacySettingRules::ID:
+ func(static_cast<getUserPrivacySettingRules &>(obj));
+ return true;
+ case getUserProfilePhotos::ID:
+ func(static_cast<getUserProfilePhotos &>(obj));
+ return true;
+ case getUserSupportInfo::ID:
+ func(static_cast<getUserSupportInfo &>(obj));
+ return true;
+ case getVideoChatAvailableParticipants::ID:
+ func(static_cast<getVideoChatAvailableParticipants &>(obj));
+ return true;
+ case getVideoChatRtmpUrl::ID:
+ func(static_cast<getVideoChatRtmpUrl &>(obj));
+ return true;
+ case getWebAppUrl::ID:
+ func(static_cast<getWebAppUrl &>(obj));
+ return true;
+ case getWebPageInstantView::ID:
+ func(static_cast<getWebPageInstantView &>(obj));
+ return true;
+ case getWebPagePreview::ID:
+ func(static_cast<getWebPagePreview &>(obj));
+ return true;
+ case hideSuggestedAction::ID:
+ func(static_cast<hideSuggestedAction &>(obj));
+ return true;
+ case importContacts::ID:
+ func(static_cast<importContacts &>(obj));
+ return true;
+ case importMessages::ID:
+ func(static_cast<importMessages &>(obj));
+ return true;
+ case inviteGroupCallParticipants::ID:
+ func(static_cast<inviteGroupCallParticipants &>(obj));
+ return true;
+ case joinChat::ID:
+ func(static_cast<joinChat &>(obj));
+ return true;
+ case joinChatByInviteLink::ID:
+ func(static_cast<joinChatByInviteLink &>(obj));
+ return true;
+ case joinGroupCall::ID:
+ func(static_cast<joinGroupCall &>(obj));
+ return true;
+ case leaveChat::ID:
+ func(static_cast<leaveChat &>(obj));
+ return true;
+ case leaveGroupCall::ID:
+ func(static_cast<leaveGroupCall &>(obj));
+ return true;
+ case loadChats::ID:
+ func(static_cast<loadChats &>(obj));
+ return true;
+ case loadGroupCallParticipants::ID:
+ func(static_cast<loadGroupCallParticipants &>(obj));
+ return true;
+ case logOut::ID:
+ func(static_cast<logOut &>(obj));
+ return true;
+ case openChat::ID:
+ func(static_cast<openChat &>(obj));
+ return true;
+ case openMessageContent::ID:
+ func(static_cast<openMessageContent &>(obj));
+ return true;
+ case openWebApp::ID:
+ func(static_cast<openWebApp &>(obj));
+ return true;
+ case optimizeStorage::ID:
+ func(static_cast<optimizeStorage &>(obj));
+ return true;
+ case parseMarkdown::ID:
+ func(static_cast<parseMarkdown &>(obj));
+ return true;
+ case parseTextEntities::ID:
+ func(static_cast<parseTextEntities &>(obj));
+ return true;
+ case pinChatMessage::ID:
+ func(static_cast<pinChatMessage &>(obj));
+ return true;
+ case pingProxy::ID:
+ func(static_cast<pingProxy &>(obj));
+ return true;
+ case preliminaryUploadFile::ID:
+ func(static_cast<preliminaryUploadFile &>(obj));
+ return true;
+ case processChatJoinRequest::ID:
+ func(static_cast<processChatJoinRequest &>(obj));
+ return true;
+ case processChatJoinRequests::ID:
+ func(static_cast<processChatJoinRequests &>(obj));
+ return true;
+ case processPushNotification::ID:
+ func(static_cast<processPushNotification &>(obj));
+ return true;
+ case rateSpeechRecognition::ID:
+ func(static_cast<rateSpeechRecognition &>(obj));
+ return true;
+ case readAllChatMentions::ID:
+ func(static_cast<readAllChatMentions &>(obj));
+ return true;
+ case readAllChatReactions::ID:
+ func(static_cast<readAllChatReactions &>(obj));
+ return true;
+ case readAllMessageThreadMentions::ID:
+ func(static_cast<readAllMessageThreadMentions &>(obj));
+ return true;
+ case readAllMessageThreadReactions::ID:
+ func(static_cast<readAllMessageThreadReactions &>(obj));
+ return true;
+ case readFilePart::ID:
+ func(static_cast<readFilePart &>(obj));
+ return true;
+ case recognizeSpeech::ID:
+ func(static_cast<recognizeSpeech &>(obj));
+ return true;
+ case recoverAuthenticationPassword::ID:
+ func(static_cast<recoverAuthenticationPassword &>(obj));
+ return true;
+ case recoverPassword::ID:
+ func(static_cast<recoverPassword &>(obj));
+ return true;
+ case registerDevice::ID:
+ func(static_cast<registerDevice &>(obj));
+ return true;
+ case registerUser::ID:
+ func(static_cast<registerUser &>(obj));
+ return true;
+ case removeAllFilesFromDownloads::ID:
+ func(static_cast<removeAllFilesFromDownloads &>(obj));
+ return true;
+ case removeBackground::ID:
+ func(static_cast<removeBackground &>(obj));
+ return true;
+ case removeChatActionBar::ID:
+ func(static_cast<removeChatActionBar &>(obj));
+ return true;
+ case removeContacts::ID:
+ func(static_cast<removeContacts &>(obj));
+ return true;
+ case removeFavoriteSticker::ID:
+ func(static_cast<removeFavoriteSticker &>(obj));
+ return true;
+ case removeFileFromDownloads::ID:
+ func(static_cast<removeFileFromDownloads &>(obj));
+ return true;
+ case removeMessageReaction::ID:
+ func(static_cast<removeMessageReaction &>(obj));
+ return true;
+ case removeNotification::ID:
+ func(static_cast<removeNotification &>(obj));
+ return true;
+ case removeNotificationGroup::ID:
+ func(static_cast<removeNotificationGroup &>(obj));
+ return true;
+ case removeProxy::ID:
+ func(static_cast<removeProxy &>(obj));
+ return true;
+ case removeRecentHashtag::ID:
+ func(static_cast<removeRecentHashtag &>(obj));
+ return true;
+ case removeRecentSticker::ID:
+ func(static_cast<removeRecentSticker &>(obj));
+ return true;
+ case removeRecentlyFoundChat::ID:
+ func(static_cast<removeRecentlyFoundChat &>(obj));
+ return true;
+ case removeSavedAnimation::ID:
+ func(static_cast<removeSavedAnimation &>(obj));
+ return true;
+ case removeSavedNotificationSound::ID:
+ func(static_cast<removeSavedNotificationSound &>(obj));
+ return true;
+ case removeStickerFromSet::ID:
+ func(static_cast<removeStickerFromSet &>(obj));
+ return true;
+ case removeTopChat::ID:
+ func(static_cast<removeTopChat &>(obj));
+ return true;
+ case reorderActiveUsernames::ID:
+ func(static_cast<reorderActiveUsernames &>(obj));
+ return true;
+ case reorderChatFilters::ID:
+ func(static_cast<reorderChatFilters &>(obj));
+ return true;
+ case reorderInstalledStickerSets::ID:
+ func(static_cast<reorderInstalledStickerSets &>(obj));
+ return true;
+ case reorderSupergroupActiveUsernames::ID:
+ func(static_cast<reorderSupergroupActiveUsernames &>(obj));
+ return true;
+ case replacePrimaryChatInviteLink::ID:
+ func(static_cast<replacePrimaryChatInviteLink &>(obj));
+ return true;
+ case replaceVideoChatRtmpUrl::ID:
+ func(static_cast<replaceVideoChatRtmpUrl &>(obj));
+ return true;
+ case reportChat::ID:
+ func(static_cast<reportChat &>(obj));
+ return true;
+ case reportChatPhoto::ID:
+ func(static_cast<reportChatPhoto &>(obj));
+ return true;
+ case reportMessageReactions::ID:
+ func(static_cast<reportMessageReactions &>(obj));
+ return true;
+ case reportSupergroupSpam::ID:
+ func(static_cast<reportSupergroupSpam &>(obj));
+ return true;
+ case requestAuthenticationPasswordRecovery::ID:
+ func(static_cast<requestAuthenticationPasswordRecovery &>(obj));
+ return true;
+ case requestPasswordRecovery::ID:
+ func(static_cast<requestPasswordRecovery &>(obj));
+ return true;
+ case requestQrCodeAuthentication::ID:
+ func(static_cast<requestQrCodeAuthentication &>(obj));
+ return true;
+ case resendAuthenticationCode::ID:
+ func(static_cast<resendAuthenticationCode &>(obj));
+ return true;
+ case resendChangePhoneNumberCode::ID:
+ func(static_cast<resendChangePhoneNumberCode &>(obj));
+ return true;
+ case resendEmailAddressVerificationCode::ID:
+ func(static_cast<resendEmailAddressVerificationCode &>(obj));
+ return true;
+ case resendLoginEmailAddressCode::ID:
+ func(static_cast<resendLoginEmailAddressCode &>(obj));
+ return true;
+ case resendMessages::ID:
+ func(static_cast<resendMessages &>(obj));
+ return true;
+ case resendPhoneNumberConfirmationCode::ID:
+ func(static_cast<resendPhoneNumberConfirmationCode &>(obj));
+ return true;
+ case resendPhoneNumberVerificationCode::ID:
+ func(static_cast<resendPhoneNumberVerificationCode &>(obj));
+ return true;
+ case resendRecoveryEmailAddressCode::ID:
+ func(static_cast<resendRecoveryEmailAddressCode &>(obj));
+ return true;
+ case resetAllNotificationSettings::ID:
+ func(static_cast<resetAllNotificationSettings &>(obj));
+ return true;
+ case resetBackgrounds::ID:
+ func(static_cast<resetBackgrounds &>(obj));
+ return true;
+ case resetNetworkStatistics::ID:
+ func(static_cast<resetNetworkStatistics &>(obj));
+ return true;
+ case resetPassword::ID:
+ func(static_cast<resetPassword &>(obj));
+ return true;
+ case revokeChatInviteLink::ID:
+ func(static_cast<revokeChatInviteLink &>(obj));
+ return true;
+ case revokeGroupCallInviteLink::ID:
+ func(static_cast<revokeGroupCallInviteLink &>(obj));
+ return true;
+ case saveApplicationLogEvent::ID:
+ func(static_cast<saveApplicationLogEvent &>(obj));
+ return true;
+ case searchBackground::ID:
+ func(static_cast<searchBackground &>(obj));
+ return true;
+ case searchCallMessages::ID:
+ func(static_cast<searchCallMessages &>(obj));
+ return true;
+ case searchChatMembers::ID:
+ func(static_cast<searchChatMembers &>(obj));
+ return true;
+ case searchChatMessages::ID:
+ func(static_cast<searchChatMessages &>(obj));
+ return true;
+ case searchChatRecentLocationMessages::ID:
+ func(static_cast<searchChatRecentLocationMessages &>(obj));
+ return true;
+ case searchChats::ID:
+ func(static_cast<searchChats &>(obj));
+ return true;
+ case searchChatsNearby::ID:
+ func(static_cast<searchChatsNearby &>(obj));
+ return true;
+ case searchChatsOnServer::ID:
+ func(static_cast<searchChatsOnServer &>(obj));
+ return true;
+ case searchContacts::ID:
+ func(static_cast<searchContacts &>(obj));
+ return true;
+ case searchEmojis::ID:
+ func(static_cast<searchEmojis &>(obj));
+ return true;
+ case searchFileDownloads::ID:
+ func(static_cast<searchFileDownloads &>(obj));
+ return true;
+ case searchHashtags::ID:
+ func(static_cast<searchHashtags &>(obj));
+ return true;
+ case searchInstalledStickerSets::ID:
+ func(static_cast<searchInstalledStickerSets &>(obj));
+ return true;
+ case searchMessages::ID:
+ func(static_cast<searchMessages &>(obj));
+ return true;
+ case searchOutgoingDocumentMessages::ID:
+ func(static_cast<searchOutgoingDocumentMessages &>(obj));
+ return true;
+ case searchPublicChat::ID:
+ func(static_cast<searchPublicChat &>(obj));
+ return true;
+ case searchPublicChats::ID:
+ func(static_cast<searchPublicChats &>(obj));
+ return true;
+ case searchSecretMessages::ID:
+ func(static_cast<searchSecretMessages &>(obj));
+ return true;
+ case searchStickerSet::ID:
+ func(static_cast<searchStickerSet &>(obj));
+ return true;
+ case searchStickerSets::ID:
+ func(static_cast<searchStickerSets &>(obj));
+ return true;
+ case searchStickers::ID:
+ func(static_cast<searchStickers &>(obj));
+ return true;
+ case searchUserByPhoneNumber::ID:
+ func(static_cast<searchUserByPhoneNumber &>(obj));
+ return true;
+ case sendBotStartMessage::ID:
+ func(static_cast<sendBotStartMessage &>(obj));
+ return true;
+ case sendCallDebugInformation::ID:
+ func(static_cast<sendCallDebugInformation &>(obj));
+ return true;
+ case sendCallLog::ID:
+ func(static_cast<sendCallLog &>(obj));
+ return true;
+ case sendCallRating::ID:
+ func(static_cast<sendCallRating &>(obj));
+ return true;
+ case sendCallSignalingData::ID:
+ func(static_cast<sendCallSignalingData &>(obj));
+ return true;
+ case sendChatAction::ID:
+ func(static_cast<sendChatAction &>(obj));
+ return true;
+ case sendChatScreenshotTakenNotification::ID:
+ func(static_cast<sendChatScreenshotTakenNotification &>(obj));
+ return true;
+ case sendCustomRequest::ID:
+ func(static_cast<sendCustomRequest &>(obj));
+ return true;
+ case sendEmailAddressVerificationCode::ID:
+ func(static_cast<sendEmailAddressVerificationCode &>(obj));
+ return true;
+ case sendInlineQueryResultMessage::ID:
+ func(static_cast<sendInlineQueryResultMessage &>(obj));
+ return true;
+ case sendMessage::ID:
+ func(static_cast<sendMessage &>(obj));
+ return true;
+ case sendMessageAlbum::ID:
+ func(static_cast<sendMessageAlbum &>(obj));
+ return true;
+ case sendPassportAuthorizationForm::ID:
+ func(static_cast<sendPassportAuthorizationForm &>(obj));
+ return true;
+ case sendPaymentForm::ID:
+ func(static_cast<sendPaymentForm &>(obj));
+ return true;
+ case sendPhoneNumberConfirmationCode::ID:
+ func(static_cast<sendPhoneNumberConfirmationCode &>(obj));
+ return true;
+ case sendPhoneNumberVerificationCode::ID:
+ func(static_cast<sendPhoneNumberVerificationCode &>(obj));
+ return true;
+ case sendWebAppData::ID:
+ func(static_cast<sendWebAppData &>(obj));
+ return true;
+ case setAccountTtl::ID:
+ func(static_cast<setAccountTtl &>(obj));
+ return true;
+ case setAlarm::ID:
+ func(static_cast<setAlarm &>(obj));
+ return true;
+ case setAuthenticationEmailAddress::ID:
+ func(static_cast<setAuthenticationEmailAddress &>(obj));
+ return true;
+ case setAuthenticationPhoneNumber::ID:
+ func(static_cast<setAuthenticationPhoneNumber &>(obj));
+ return true;
+ case setAutoDownloadSettings::ID:
+ func(static_cast<setAutoDownloadSettings &>(obj));
+ return true;
+ case setBackground::ID:
+ func(static_cast<setBackground &>(obj));
+ return true;
+ case setBio::ID:
+ func(static_cast<setBio &>(obj));
+ return true;
+ case setBotUpdatesStatus::ID:
+ func(static_cast<setBotUpdatesStatus &>(obj));
+ return true;
+ case setChatAvailableReactions::ID:
+ func(static_cast<setChatAvailableReactions &>(obj));
+ return true;
+ case setChatClientData::ID:
+ func(static_cast<setChatClientData &>(obj));
+ return true;
+ case setChatDescription::ID:
+ func(static_cast<setChatDescription &>(obj));
+ return true;
+ case setChatDiscussionGroup::ID:
+ func(static_cast<setChatDiscussionGroup &>(obj));
+ return true;
+ case setChatDraftMessage::ID:
+ func(static_cast<setChatDraftMessage &>(obj));
+ return true;
+ case setChatLocation::ID:
+ func(static_cast<setChatLocation &>(obj));
+ return true;
+ case setChatMemberStatus::ID:
+ func(static_cast<setChatMemberStatus &>(obj));
+ return true;
+ case setChatMessageSender::ID:
+ func(static_cast<setChatMessageSender &>(obj));
+ return true;
+ case setChatMessageTtl::ID:
+ func(static_cast<setChatMessageTtl &>(obj));
+ return true;
+ case setChatNotificationSettings::ID:
+ func(static_cast<setChatNotificationSettings &>(obj));
+ return true;
+ case setChatPermissions::ID:
+ func(static_cast<setChatPermissions &>(obj));
+ return true;
+ case setChatPhoto::ID:
+ func(static_cast<setChatPhoto &>(obj));
+ return true;
+ case setChatSlowModeDelay::ID:
+ func(static_cast<setChatSlowModeDelay &>(obj));
+ return true;
+ case setChatTheme::ID:
+ func(static_cast<setChatTheme &>(obj));
+ return true;
+ case setChatTitle::ID:
+ func(static_cast<setChatTitle &>(obj));
+ return true;
+ case setCommands::ID:
+ func(static_cast<setCommands &>(obj));
+ return true;
+ case setCustomLanguagePack::ID:
+ func(static_cast<setCustomLanguagePack &>(obj));
+ return true;
+ case setCustomLanguagePackString::ID:
+ func(static_cast<setCustomLanguagePackString &>(obj));
+ return true;
+ case setDatabaseEncryptionKey::ID:
+ func(static_cast<setDatabaseEncryptionKey &>(obj));
+ return true;
+ case setDefaultChannelAdministratorRights::ID:
+ func(static_cast<setDefaultChannelAdministratorRights &>(obj));
+ return true;
+ case setDefaultGroupAdministratorRights::ID:
+ func(static_cast<setDefaultGroupAdministratorRights &>(obj));
+ return true;
+ case setDefaultReactionType::ID:
+ func(static_cast<setDefaultReactionType &>(obj));
+ return true;
+ case setEmojiStatus::ID:
+ func(static_cast<setEmojiStatus &>(obj));
+ return true;
+ case setFileGenerationProgress::ID:
+ func(static_cast<setFileGenerationProgress &>(obj));
+ return true;
+ case setGameScore::ID:
+ func(static_cast<setGameScore &>(obj));
+ return true;
+ case setGroupCallParticipantIsSpeaking::ID:
+ func(static_cast<setGroupCallParticipantIsSpeaking &>(obj));
+ return true;
+ case setGroupCallParticipantVolumeLevel::ID:
+ func(static_cast<setGroupCallParticipantVolumeLevel &>(obj));
+ return true;
+ case setGroupCallTitle::ID:
+ func(static_cast<setGroupCallTitle &>(obj));
+ return true;
+ case setInactiveSessionTtl::ID:
+ func(static_cast<setInactiveSessionTtl &>(obj));
+ return true;
+ case setInlineGameScore::ID:
+ func(static_cast<setInlineGameScore &>(obj));
+ return true;
+ case setLocation::ID:
+ func(static_cast<setLocation &>(obj));
+ return true;
+ case setLogStream::ID:
+ func(static_cast<setLogStream &>(obj));
+ return true;
+ case setLogTagVerbosityLevel::ID:
+ func(static_cast<setLogTagVerbosityLevel &>(obj));
+ return true;
+ case setLogVerbosityLevel::ID:
+ func(static_cast<setLogVerbosityLevel &>(obj));
+ return true;
+ case setLoginEmailAddress::ID:
+ func(static_cast<setLoginEmailAddress &>(obj));
+ return true;
+ case setMenuButton::ID:
+ func(static_cast<setMenuButton &>(obj));
+ return true;
+ case setName::ID:
+ func(static_cast<setName &>(obj));
+ return true;
+ case setNetworkType::ID:
+ func(static_cast<setNetworkType &>(obj));
+ return true;
+ case setOption::ID:
+ func(static_cast<setOption &>(obj));
+ return true;
+ case setPassportElement::ID:
+ func(static_cast<setPassportElement &>(obj));
+ return true;
+ case setPassportElementErrors::ID:
+ func(static_cast<setPassportElementErrors &>(obj));
+ return true;
+ case setPassword::ID:
+ func(static_cast<setPassword &>(obj));
+ return true;
+ case setPinnedChats::ID:
+ func(static_cast<setPinnedChats &>(obj));
+ return true;
+ case setPollAnswer::ID:
+ func(static_cast<setPollAnswer &>(obj));
+ return true;
+ case setProfilePhoto::ID:
+ func(static_cast<setProfilePhoto &>(obj));
+ return true;
+ case setRecoveryEmailAddress::ID:
+ func(static_cast<setRecoveryEmailAddress &>(obj));
+ return true;
+ case setScopeNotificationSettings::ID:
+ func(static_cast<setScopeNotificationSettings &>(obj));
+ return true;
+ case setStickerPositionInSet::ID:
+ func(static_cast<setStickerPositionInSet &>(obj));
+ return true;
+ case setStickerSetThumbnail::ID:
+ func(static_cast<setStickerSetThumbnail &>(obj));
+ return true;
+ case setSupergroupStickerSet::ID:
+ func(static_cast<setSupergroupStickerSet &>(obj));
+ return true;
+ case setSupergroupUsername::ID:
+ func(static_cast<setSupergroupUsername &>(obj));
+ return true;
+ case setTdlibParameters::ID:
+ func(static_cast<setTdlibParameters &>(obj));
+ return true;
+ case setUserPrivacySettingRules::ID:
+ func(static_cast<setUserPrivacySettingRules &>(obj));
+ return true;
+ case setUserSupportInfo::ID:
+ func(static_cast<setUserSupportInfo &>(obj));
+ return true;
+ case setUsername::ID:
+ func(static_cast<setUsername &>(obj));
+ return true;
+ case setVideoChatDefaultParticipant::ID:
+ func(static_cast<setVideoChatDefaultParticipant &>(obj));
+ return true;
+ case sharePhoneNumber::ID:
+ func(static_cast<sharePhoneNumber &>(obj));
+ return true;
+ case startGroupCallRecording::ID:
+ func(static_cast<startGroupCallRecording &>(obj));
+ return true;
+ case startGroupCallScreenSharing::ID:
+ func(static_cast<startGroupCallScreenSharing &>(obj));
+ return true;
+ case startScheduledGroupCall::ID:
+ func(static_cast<startScheduledGroupCall &>(obj));
+ return true;
+ case stopPoll::ID:
+ func(static_cast<stopPoll &>(obj));
+ return true;
+ case synchronizeLanguagePack::ID:
+ func(static_cast<synchronizeLanguagePack &>(obj));
+ return true;
+ case terminateAllOtherSessions::ID:
+ func(static_cast<terminateAllOtherSessions &>(obj));
+ return true;
+ case terminateSession::ID:
+ func(static_cast<terminateSession &>(obj));
+ return true;
+ case testCallBytes::ID:
+ func(static_cast<testCallBytes &>(obj));
+ return true;
+ case testCallEmpty::ID:
+ func(static_cast<testCallEmpty &>(obj));
+ return true;
+ case testCallString::ID:
+ func(static_cast<testCallString &>(obj));
+ return true;
+ case testCallVectorInt::ID:
+ func(static_cast<testCallVectorInt &>(obj));
+ return true;
+ case testCallVectorIntObject::ID:
+ func(static_cast<testCallVectorIntObject &>(obj));
+ return true;
+ case testCallVectorString::ID:
+ func(static_cast<testCallVectorString &>(obj));
+ return true;
+ case testCallVectorStringObject::ID:
+ func(static_cast<testCallVectorStringObject &>(obj));
+ return true;
+ case testGetDifference::ID:
+ func(static_cast<testGetDifference &>(obj));
+ return true;
+ case testNetwork::ID:
+ func(static_cast<testNetwork &>(obj));
+ return true;
+ case testProxy::ID:
+ func(static_cast<testProxy &>(obj));
+ return true;
+ case testReturnError::ID:
+ func(static_cast<testReturnError &>(obj));
+ return true;
+ case testSquareInt::ID:
+ func(static_cast<testSquareInt &>(obj));
+ return true;
+ case testUseUpdate::ID:
+ func(static_cast<testUseUpdate &>(obj));
+ return true;
+ case toggleAllDownloadsArePaused::ID:
+ func(static_cast<toggleAllDownloadsArePaused &>(obj));
+ return true;
+ case toggleBotIsAddedToAttachmentMenu::ID:
+ func(static_cast<toggleBotIsAddedToAttachmentMenu &>(obj));
+ return true;
+ case toggleChatDefaultDisableNotification::ID:
+ func(static_cast<toggleChatDefaultDisableNotification &>(obj));
+ return true;
+ case toggleChatHasProtectedContent::ID:
+ func(static_cast<toggleChatHasProtectedContent &>(obj));
+ return true;
+ case toggleChatIsMarkedAsUnread::ID:
+ func(static_cast<toggleChatIsMarkedAsUnread &>(obj));
+ return true;
+ case toggleChatIsPinned::ID:
+ func(static_cast<toggleChatIsPinned &>(obj));
+ return true;
+ case toggleDownloadIsPaused::ID:
+ func(static_cast<toggleDownloadIsPaused &>(obj));
+ return true;
+ case toggleForumTopicIsClosed::ID:
+ func(static_cast<toggleForumTopicIsClosed &>(obj));
+ return true;
+ case toggleGroupCallEnabledStartNotification::ID:
+ func(static_cast<toggleGroupCallEnabledStartNotification &>(obj));
+ return true;
+ case toggleGroupCallIsMyVideoEnabled::ID:
+ func(static_cast<toggleGroupCallIsMyVideoEnabled &>(obj));
+ return true;
+ case toggleGroupCallIsMyVideoPaused::ID:
+ func(static_cast<toggleGroupCallIsMyVideoPaused &>(obj));
+ return true;
+ case toggleGroupCallMuteNewParticipants::ID:
+ func(static_cast<toggleGroupCallMuteNewParticipants &>(obj));
+ return true;
+ case toggleGroupCallParticipantIsHandRaised::ID:
+ func(static_cast<toggleGroupCallParticipantIsHandRaised &>(obj));
+ return true;
+ case toggleGroupCallParticipantIsMuted::ID:
+ func(static_cast<toggleGroupCallParticipantIsMuted &>(obj));
+ return true;
+ case toggleGroupCallScreenSharingIsPaused::ID:
+ func(static_cast<toggleGroupCallScreenSharingIsPaused &>(obj));
+ return true;
+ case toggleMessageSenderIsBlocked::ID:
+ func(static_cast<toggleMessageSenderIsBlocked &>(obj));
+ return true;
+ case toggleSessionCanAcceptCalls::ID:
+ func(static_cast<toggleSessionCanAcceptCalls &>(obj));
+ return true;
+ case toggleSessionCanAcceptSecretChats::ID:
+ func(static_cast<toggleSessionCanAcceptSecretChats &>(obj));
+ return true;
+ case toggleSupergroupIsAllHistoryAvailable::ID:
+ func(static_cast<toggleSupergroupIsAllHistoryAvailable &>(obj));
+ return true;
+ case toggleSupergroupIsBroadcastGroup::ID:
+ func(static_cast<toggleSupergroupIsBroadcastGroup &>(obj));
+ return true;
+ case toggleSupergroupIsForum::ID:
+ func(static_cast<toggleSupergroupIsForum &>(obj));
+ return true;
+ case toggleSupergroupJoinByRequest::ID:
+ func(static_cast<toggleSupergroupJoinByRequest &>(obj));
+ return true;
+ case toggleSupergroupJoinToSendMessages::ID:
+ func(static_cast<toggleSupergroupJoinToSendMessages &>(obj));
+ return true;
+ case toggleSupergroupSignMessages::ID:
+ func(static_cast<toggleSupergroupSignMessages &>(obj));
+ return true;
+ case toggleSupergroupUsernameIsActive::ID:
+ func(static_cast<toggleSupergroupUsernameIsActive &>(obj));
+ return true;
+ case toggleUsernameIsActive::ID:
+ func(static_cast<toggleUsernameIsActive &>(obj));
+ return true;
+ case transferChatOwnership::ID:
+ func(static_cast<transferChatOwnership &>(obj));
+ return true;
+ case translateText::ID:
+ func(static_cast<translateText &>(obj));
+ return true;
+ case unpinAllChatMessages::ID:
+ func(static_cast<unpinAllChatMessages &>(obj));
+ return true;
+ case unpinAllMessageThreadMessages::ID:
+ func(static_cast<unpinAllMessageThreadMessages &>(obj));
+ return true;
+ case unpinChatMessage::ID:
+ func(static_cast<unpinChatMessage &>(obj));
+ return true;
+ case upgradeBasicGroupChatToSupergroupChat::ID:
+ func(static_cast<upgradeBasicGroupChatToSupergroupChat &>(obj));
+ return true;
+ case uploadStickerFile::ID:
+ func(static_cast<uploadStickerFile &>(obj));
+ return true;
+ case validateOrderInfo::ID:
+ func(static_cast<validateOrderInfo &>(obj));
+ return true;
+ case viewMessages::ID:
+ func(static_cast<viewMessages &>(obj));
+ return true;
+ case viewPremiumFeature::ID:
+ func(static_cast<viewPremiumFeature &>(obj));
+ return true;
+ case viewTrendingStickerSets::ID:
+ func(static_cast<viewTrendingStickerSets &>(obj));
+ return true;
+ case writeGeneratedFilePart::ID:
+ func(static_cast<writeGeneratedFilePart &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(AuthenticationCodeType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case authenticationCodeTypeTelegramMessage::ID:
+ func(static_cast<authenticationCodeTypeTelegramMessage &>(obj));
+ return true;
+ case authenticationCodeTypeSms::ID:
+ func(static_cast<authenticationCodeTypeSms &>(obj));
+ return true;
+ case authenticationCodeTypeCall::ID:
+ func(static_cast<authenticationCodeTypeCall &>(obj));
+ return true;
+ case authenticationCodeTypeFlashCall::ID:
+ func(static_cast<authenticationCodeTypeFlashCall &>(obj));
+ return true;
+ case authenticationCodeTypeMissedCall::ID:
+ func(static_cast<authenticationCodeTypeMissedCall &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(AuthorizationState &obj, const T &func) {
+ switch (obj.get_id()) {
+ case authorizationStateWaitTdlibParameters::ID:
+ func(static_cast<authorizationStateWaitTdlibParameters &>(obj));
+ return true;
+ case authorizationStateWaitPhoneNumber::ID:
+ func(static_cast<authorizationStateWaitPhoneNumber &>(obj));
+ return true;
+ case authorizationStateWaitEmailAddress::ID:
+ func(static_cast<authorizationStateWaitEmailAddress &>(obj));
+ return true;
+ case authorizationStateWaitEmailCode::ID:
+ func(static_cast<authorizationStateWaitEmailCode &>(obj));
+ return true;
+ case authorizationStateWaitCode::ID:
+ func(static_cast<authorizationStateWaitCode &>(obj));
+ return true;
+ case authorizationStateWaitOtherDeviceConfirmation::ID:
+ func(static_cast<authorizationStateWaitOtherDeviceConfirmation &>(obj));
+ return true;
+ case authorizationStateWaitRegistration::ID:
+ func(static_cast<authorizationStateWaitRegistration &>(obj));
+ return true;
+ case authorizationStateWaitPassword::ID:
+ func(static_cast<authorizationStateWaitPassword &>(obj));
+ return true;
+ case authorizationStateReady::ID:
+ func(static_cast<authorizationStateReady &>(obj));
+ return true;
+ case authorizationStateLoggingOut::ID:
+ func(static_cast<authorizationStateLoggingOut &>(obj));
+ return true;
+ case authorizationStateClosing::ID:
+ func(static_cast<authorizationStateClosing &>(obj));
+ return true;
+ case authorizationStateClosed::ID:
+ func(static_cast<authorizationStateClosed &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(BackgroundFill &obj, const T &func) {
+ switch (obj.get_id()) {
+ case backgroundFillSolid::ID:
+ func(static_cast<backgroundFillSolid &>(obj));
+ return true;
+ case backgroundFillGradient::ID:
+ func(static_cast<backgroundFillGradient &>(obj));
+ return true;
+ case backgroundFillFreeformGradient::ID:
+ func(static_cast<backgroundFillFreeformGradient &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(BackgroundType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case backgroundTypeWallpaper::ID:
+ func(static_cast<backgroundTypeWallpaper &>(obj));
+ return true;
+ case backgroundTypePattern::ID:
+ func(static_cast<backgroundTypePattern &>(obj));
+ return true;
+ case backgroundTypeFill::ID:
+ func(static_cast<backgroundTypeFill &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(BotCommandScope &obj, const T &func) {
+ switch (obj.get_id()) {
+ case botCommandScopeDefault::ID:
+ func(static_cast<botCommandScopeDefault &>(obj));
+ return true;
+ case botCommandScopeAllPrivateChats::ID:
+ func(static_cast<botCommandScopeAllPrivateChats &>(obj));
+ return true;
+ case botCommandScopeAllGroupChats::ID:
+ func(static_cast<botCommandScopeAllGroupChats &>(obj));
+ return true;
+ case botCommandScopeAllChatAdministrators::ID:
+ func(static_cast<botCommandScopeAllChatAdministrators &>(obj));
+ return true;
+ case botCommandScopeChat::ID:
+ func(static_cast<botCommandScopeChat &>(obj));
+ return true;
+ case botCommandScopeChatAdministrators::ID:
+ func(static_cast<botCommandScopeChatAdministrators &>(obj));
+ return true;
+ case botCommandScopeChatMember::ID:
+ func(static_cast<botCommandScopeChatMember &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(CallDiscardReason &obj, const T &func) {
+ switch (obj.get_id()) {
+ case callDiscardReasonEmpty::ID:
+ func(static_cast<callDiscardReasonEmpty &>(obj));
+ return true;
+ case callDiscardReasonMissed::ID:
+ func(static_cast<callDiscardReasonMissed &>(obj));
+ return true;
+ case callDiscardReasonDeclined::ID:
+ func(static_cast<callDiscardReasonDeclined &>(obj));
+ return true;
+ case callDiscardReasonDisconnected::ID:
+ func(static_cast<callDiscardReasonDisconnected &>(obj));
+ return true;
+ case callDiscardReasonHungUp::ID:
+ func(static_cast<callDiscardReasonHungUp &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(CallProblem &obj, const T &func) {
+ switch (obj.get_id()) {
+ case callProblemEcho::ID:
+ func(static_cast<callProblemEcho &>(obj));
+ return true;
+ case callProblemNoise::ID:
+ func(static_cast<callProblemNoise &>(obj));
+ return true;
+ case callProblemInterruptions::ID:
+ func(static_cast<callProblemInterruptions &>(obj));
+ return true;
+ case callProblemDistortedSpeech::ID:
+ func(static_cast<callProblemDistortedSpeech &>(obj));
+ return true;
+ case callProblemSilentLocal::ID:
+ func(static_cast<callProblemSilentLocal &>(obj));
+ return true;
+ case callProblemSilentRemote::ID:
+ func(static_cast<callProblemSilentRemote &>(obj));
+ return true;
+ case callProblemDropped::ID:
+ func(static_cast<callProblemDropped &>(obj));
+ return true;
+ case callProblemDistortedVideo::ID:
+ func(static_cast<callProblemDistortedVideo &>(obj));
+ return true;
+ case callProblemPixelatedVideo::ID:
+ func(static_cast<callProblemPixelatedVideo &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(CallServerType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case callServerTypeTelegramReflector::ID:
+ func(static_cast<callServerTypeTelegramReflector &>(obj));
+ return true;
+ case callServerTypeWebrtc::ID:
+ func(static_cast<callServerTypeWebrtc &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(CallState &obj, const T &func) {
+ switch (obj.get_id()) {
+ case callStatePending::ID:
+ func(static_cast<callStatePending &>(obj));
+ return true;
+ case callStateExchangingKeys::ID:
+ func(static_cast<callStateExchangingKeys &>(obj));
+ return true;
+ case callStateReady::ID:
+ func(static_cast<callStateReady &>(obj));
+ return true;
+ case callStateHangingUp::ID:
+ func(static_cast<callStateHangingUp &>(obj));
+ return true;
+ case callStateDiscarded::ID:
+ func(static_cast<callStateDiscarded &>(obj));
+ return true;
+ case callStateError::ID:
+ func(static_cast<callStateError &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(CallbackQueryPayload &obj, const T &func) {
+ switch (obj.get_id()) {
+ case callbackQueryPayloadData::ID:
+ func(static_cast<callbackQueryPayloadData &>(obj));
+ return true;
+ case callbackQueryPayloadDataWithPassword::ID:
+ func(static_cast<callbackQueryPayloadDataWithPassword &>(obj));
+ return true;
+ case callbackQueryPayloadGame::ID:
+ func(static_cast<callbackQueryPayloadGame &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(CanTransferOwnershipResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case canTransferOwnershipResultOk::ID:
+ func(static_cast<canTransferOwnershipResultOk &>(obj));
+ return true;
+ case canTransferOwnershipResultPasswordNeeded::ID:
+ func(static_cast<canTransferOwnershipResultPasswordNeeded &>(obj));
+ return true;
+ case canTransferOwnershipResultPasswordTooFresh::ID:
+ func(static_cast<canTransferOwnershipResultPasswordTooFresh &>(obj));
+ return true;
+ case canTransferOwnershipResultSessionTooFresh::ID:
+ func(static_cast<canTransferOwnershipResultSessionTooFresh &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatAction &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatActionTyping::ID:
+ func(static_cast<chatActionTyping &>(obj));
+ return true;
+ case chatActionRecordingVideo::ID:
+ func(static_cast<chatActionRecordingVideo &>(obj));
+ return true;
+ case chatActionUploadingVideo::ID:
+ func(static_cast<chatActionUploadingVideo &>(obj));
+ return true;
+ case chatActionRecordingVoiceNote::ID:
+ func(static_cast<chatActionRecordingVoiceNote &>(obj));
+ return true;
+ case chatActionUploadingVoiceNote::ID:
+ func(static_cast<chatActionUploadingVoiceNote &>(obj));
+ return true;
+ case chatActionUploadingPhoto::ID:
+ func(static_cast<chatActionUploadingPhoto &>(obj));
+ return true;
+ case chatActionUploadingDocument::ID:
+ func(static_cast<chatActionUploadingDocument &>(obj));
+ return true;
+ case chatActionChoosingSticker::ID:
+ func(static_cast<chatActionChoosingSticker &>(obj));
+ return true;
+ case chatActionChoosingLocation::ID:
+ func(static_cast<chatActionChoosingLocation &>(obj));
+ return true;
+ case chatActionChoosingContact::ID:
+ func(static_cast<chatActionChoosingContact &>(obj));
+ return true;
+ case chatActionStartPlayingGame::ID:
+ func(static_cast<chatActionStartPlayingGame &>(obj));
+ return true;
+ case chatActionRecordingVideoNote::ID:
+ func(static_cast<chatActionRecordingVideoNote &>(obj));
+ return true;
+ case chatActionUploadingVideoNote::ID:
+ func(static_cast<chatActionUploadingVideoNote &>(obj));
+ return true;
+ case chatActionWatchingAnimations::ID:
+ func(static_cast<chatActionWatchingAnimations &>(obj));
+ return true;
+ case chatActionCancel::ID:
+ func(static_cast<chatActionCancel &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatActionBar &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatActionBarReportSpam::ID:
+ func(static_cast<chatActionBarReportSpam &>(obj));
+ return true;
+ case chatActionBarReportUnrelatedLocation::ID:
+ func(static_cast<chatActionBarReportUnrelatedLocation &>(obj));
+ return true;
+ case chatActionBarInviteMembers::ID:
+ func(static_cast<chatActionBarInviteMembers &>(obj));
+ return true;
+ case chatActionBarReportAddBlock::ID:
+ func(static_cast<chatActionBarReportAddBlock &>(obj));
+ return true;
+ case chatActionBarAddContact::ID:
+ func(static_cast<chatActionBarAddContact &>(obj));
+ return true;
+ case chatActionBarSharePhoneNumber::ID:
+ func(static_cast<chatActionBarSharePhoneNumber &>(obj));
+ return true;
+ case chatActionBarJoinRequest::ID:
+ func(static_cast<chatActionBarJoinRequest &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatAvailableReactions &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatAvailableReactionsAll::ID:
+ func(static_cast<chatAvailableReactionsAll &>(obj));
+ return true;
+ case chatAvailableReactionsSome::ID:
+ func(static_cast<chatAvailableReactionsSome &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatEventAction &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatEventMessageEdited::ID:
+ func(static_cast<chatEventMessageEdited &>(obj));
+ return true;
+ case chatEventMessageDeleted::ID:
+ func(static_cast<chatEventMessageDeleted &>(obj));
+ return true;
+ case chatEventMessagePinned::ID:
+ func(static_cast<chatEventMessagePinned &>(obj));
+ return true;
+ case chatEventMessageUnpinned::ID:
+ func(static_cast<chatEventMessageUnpinned &>(obj));
+ return true;
+ case chatEventPollStopped::ID:
+ func(static_cast<chatEventPollStopped &>(obj));
+ return true;
+ case chatEventMemberJoined::ID:
+ func(static_cast<chatEventMemberJoined &>(obj));
+ return true;
+ case chatEventMemberJoinedByInviteLink::ID:
+ func(static_cast<chatEventMemberJoinedByInviteLink &>(obj));
+ return true;
+ case chatEventMemberJoinedByRequest::ID:
+ func(static_cast<chatEventMemberJoinedByRequest &>(obj));
+ return true;
+ case chatEventMemberInvited::ID:
+ func(static_cast<chatEventMemberInvited &>(obj));
+ return true;
+ case chatEventMemberLeft::ID:
+ func(static_cast<chatEventMemberLeft &>(obj));
+ return true;
+ case chatEventMemberPromoted::ID:
+ func(static_cast<chatEventMemberPromoted &>(obj));
+ return true;
+ case chatEventMemberRestricted::ID:
+ func(static_cast<chatEventMemberRestricted &>(obj));
+ return true;
+ case chatEventAvailableReactionsChanged::ID:
+ func(static_cast<chatEventAvailableReactionsChanged &>(obj));
+ return true;
+ case chatEventDescriptionChanged::ID:
+ func(static_cast<chatEventDescriptionChanged &>(obj));
+ return true;
+ case chatEventLinkedChatChanged::ID:
+ func(static_cast<chatEventLinkedChatChanged &>(obj));
+ return true;
+ case chatEventLocationChanged::ID:
+ func(static_cast<chatEventLocationChanged &>(obj));
+ return true;
+ case chatEventMessageTtlChanged::ID:
+ func(static_cast<chatEventMessageTtlChanged &>(obj));
+ return true;
+ case chatEventPermissionsChanged::ID:
+ func(static_cast<chatEventPermissionsChanged &>(obj));
+ return true;
+ case chatEventPhotoChanged::ID:
+ func(static_cast<chatEventPhotoChanged &>(obj));
+ return true;
+ case chatEventSlowModeDelayChanged::ID:
+ func(static_cast<chatEventSlowModeDelayChanged &>(obj));
+ return true;
+ case chatEventStickerSetChanged::ID:
+ func(static_cast<chatEventStickerSetChanged &>(obj));
+ return true;
+ case chatEventTitleChanged::ID:
+ func(static_cast<chatEventTitleChanged &>(obj));
+ return true;
+ case chatEventUsernameChanged::ID:
+ func(static_cast<chatEventUsernameChanged &>(obj));
+ return true;
+ case chatEventActiveUsernamesChanged::ID:
+ func(static_cast<chatEventActiveUsernamesChanged &>(obj));
+ return true;
+ case chatEventHasProtectedContentToggled::ID:
+ func(static_cast<chatEventHasProtectedContentToggled &>(obj));
+ return true;
+ case chatEventInvitesToggled::ID:
+ func(static_cast<chatEventInvitesToggled &>(obj));
+ return true;
+ case chatEventIsAllHistoryAvailableToggled::ID:
+ func(static_cast<chatEventIsAllHistoryAvailableToggled &>(obj));
+ return true;
+ case chatEventSignMessagesToggled::ID:
+ func(static_cast<chatEventSignMessagesToggled &>(obj));
+ return true;
+ case chatEventInviteLinkEdited::ID:
+ func(static_cast<chatEventInviteLinkEdited &>(obj));
+ return true;
+ case chatEventInviteLinkRevoked::ID:
+ func(static_cast<chatEventInviteLinkRevoked &>(obj));
+ return true;
+ case chatEventInviteLinkDeleted::ID:
+ func(static_cast<chatEventInviteLinkDeleted &>(obj));
+ return true;
+ case chatEventVideoChatCreated::ID:
+ func(static_cast<chatEventVideoChatCreated &>(obj));
+ return true;
+ case chatEventVideoChatEnded::ID:
+ func(static_cast<chatEventVideoChatEnded &>(obj));
+ return true;
+ case chatEventVideoChatMuteNewParticipantsToggled::ID:
+ func(static_cast<chatEventVideoChatMuteNewParticipantsToggled &>(obj));
+ return true;
+ case chatEventVideoChatParticipantIsMutedToggled::ID:
+ func(static_cast<chatEventVideoChatParticipantIsMutedToggled &>(obj));
+ return true;
+ case chatEventVideoChatParticipantVolumeLevelChanged::ID:
+ func(static_cast<chatEventVideoChatParticipantVolumeLevelChanged &>(obj));
+ return true;
+ case chatEventIsForumToggled::ID:
+ func(static_cast<chatEventIsForumToggled &>(obj));
+ return true;
+ case chatEventForumTopicCreated::ID:
+ func(static_cast<chatEventForumTopicCreated &>(obj));
+ return true;
+ case chatEventForumTopicEdited::ID:
+ func(static_cast<chatEventForumTopicEdited &>(obj));
+ return true;
+ case chatEventForumTopicToggleIsClosed::ID:
+ func(static_cast<chatEventForumTopicToggleIsClosed &>(obj));
+ return true;
+ case chatEventForumTopicDeleted::ID:
+ func(static_cast<chatEventForumTopicDeleted &>(obj));
+ return true;
+ case chatEventForumTopicPinned::ID:
+ func(static_cast<chatEventForumTopicPinned &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatList &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatListMain::ID:
+ func(static_cast<chatListMain &>(obj));
+ return true;
+ case chatListArchive::ID:
+ func(static_cast<chatListArchive &>(obj));
+ return true;
+ case chatListFilter::ID:
+ func(static_cast<chatListFilter &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatMemberStatus &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatMemberStatusCreator::ID:
+ func(static_cast<chatMemberStatusCreator &>(obj));
+ return true;
+ case chatMemberStatusAdministrator::ID:
+ func(static_cast<chatMemberStatusAdministrator &>(obj));
+ return true;
+ case chatMemberStatusMember::ID:
+ func(static_cast<chatMemberStatusMember &>(obj));
+ return true;
+ case chatMemberStatusRestricted::ID:
+ func(static_cast<chatMemberStatusRestricted &>(obj));
+ return true;
+ case chatMemberStatusLeft::ID:
+ func(static_cast<chatMemberStatusLeft &>(obj));
+ return true;
+ case chatMemberStatusBanned::ID:
+ func(static_cast<chatMemberStatusBanned &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatMembersFilter &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatMembersFilterContacts::ID:
+ func(static_cast<chatMembersFilterContacts &>(obj));
+ return true;
+ case chatMembersFilterAdministrators::ID:
+ func(static_cast<chatMembersFilterAdministrators &>(obj));
+ return true;
+ case chatMembersFilterMembers::ID:
+ func(static_cast<chatMembersFilterMembers &>(obj));
+ return true;
+ case chatMembersFilterMention::ID:
+ func(static_cast<chatMembersFilterMention &>(obj));
+ return true;
+ case chatMembersFilterRestricted::ID:
+ func(static_cast<chatMembersFilterRestricted &>(obj));
+ return true;
+ case chatMembersFilterBanned::ID:
+ func(static_cast<chatMembersFilterBanned &>(obj));
+ return true;
+ case chatMembersFilterBots::ID:
+ func(static_cast<chatMembersFilterBots &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatReportReason &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatReportReasonSpam::ID:
+ func(static_cast<chatReportReasonSpam &>(obj));
+ return true;
+ case chatReportReasonViolence::ID:
+ func(static_cast<chatReportReasonViolence &>(obj));
+ return true;
+ case chatReportReasonPornography::ID:
+ func(static_cast<chatReportReasonPornography &>(obj));
+ return true;
+ case chatReportReasonChildAbuse::ID:
+ func(static_cast<chatReportReasonChildAbuse &>(obj));
+ return true;
+ case chatReportReasonCopyright::ID:
+ func(static_cast<chatReportReasonCopyright &>(obj));
+ return true;
+ case chatReportReasonUnrelatedLocation::ID:
+ func(static_cast<chatReportReasonUnrelatedLocation &>(obj));
+ return true;
+ case chatReportReasonFake::ID:
+ func(static_cast<chatReportReasonFake &>(obj));
+ return true;
+ case chatReportReasonIllegalDrugs::ID:
+ func(static_cast<chatReportReasonIllegalDrugs &>(obj));
+ return true;
+ case chatReportReasonPersonalDetails::ID:
+ func(static_cast<chatReportReasonPersonalDetails &>(obj));
+ return true;
+ case chatReportReasonCustom::ID:
+ func(static_cast<chatReportReasonCustom &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatSource &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatSourceMtprotoProxy::ID:
+ func(static_cast<chatSourceMtprotoProxy &>(obj));
+ return true;
+ case chatSourcePublicServiceAnnouncement::ID:
+ func(static_cast<chatSourcePublicServiceAnnouncement &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatStatistics &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatStatisticsSupergroup::ID:
+ func(static_cast<chatStatisticsSupergroup &>(obj));
+ return true;
+ case chatStatisticsChannel::ID:
+ func(static_cast<chatStatisticsChannel &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatTypePrivate::ID:
+ func(static_cast<chatTypePrivate &>(obj));
+ return true;
+ case chatTypeBasicGroup::ID:
+ func(static_cast<chatTypeBasicGroup &>(obj));
+ return true;
+ case chatTypeSupergroup::ID:
+ func(static_cast<chatTypeSupergroup &>(obj));
+ return true;
+ case chatTypeSecret::ID:
+ func(static_cast<chatTypeSecret &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(CheckChatUsernameResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case checkChatUsernameResultOk::ID:
+ func(static_cast<checkChatUsernameResultOk &>(obj));
+ return true;
+ case checkChatUsernameResultUsernameInvalid::ID:
+ func(static_cast<checkChatUsernameResultUsernameInvalid &>(obj));
+ return true;
+ case checkChatUsernameResultUsernameOccupied::ID:
+ func(static_cast<checkChatUsernameResultUsernameOccupied &>(obj));
+ return true;
+ case checkChatUsernameResultPublicChatsTooMuch::ID:
+ func(static_cast<checkChatUsernameResultPublicChatsTooMuch &>(obj));
+ return true;
+ case checkChatUsernameResultPublicGroupsUnavailable::ID:
+ func(static_cast<checkChatUsernameResultPublicGroupsUnavailable &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(CheckStickerSetNameResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case checkStickerSetNameResultOk::ID:
+ func(static_cast<checkStickerSetNameResultOk &>(obj));
+ return true;
+ case checkStickerSetNameResultNameInvalid::ID:
+ func(static_cast<checkStickerSetNameResultNameInvalid &>(obj));
+ return true;
+ case checkStickerSetNameResultNameOccupied::ID:
+ func(static_cast<checkStickerSetNameResultNameOccupied &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ConnectionState &obj, const T &func) {
+ switch (obj.get_id()) {
+ case connectionStateWaitingForNetwork::ID:
+ func(static_cast<connectionStateWaitingForNetwork &>(obj));
+ return true;
+ case connectionStateConnectingToProxy::ID:
+ func(static_cast<connectionStateConnectingToProxy &>(obj));
+ return true;
+ case connectionStateConnecting::ID:
+ func(static_cast<connectionStateConnecting &>(obj));
+ return true;
+ case connectionStateUpdating::ID:
+ func(static_cast<connectionStateUpdating &>(obj));
+ return true;
+ case connectionStateReady::ID:
+ func(static_cast<connectionStateReady &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DeviceToken &obj, const T &func) {
+ switch (obj.get_id()) {
+ case deviceTokenFirebaseCloudMessaging::ID:
+ func(static_cast<deviceTokenFirebaseCloudMessaging &>(obj));
+ return true;
+ case deviceTokenApplePush::ID:
+ func(static_cast<deviceTokenApplePush &>(obj));
+ return true;
+ case deviceTokenApplePushVoIP::ID:
+ func(static_cast<deviceTokenApplePushVoIP &>(obj));
+ return true;
+ case deviceTokenWindowsPush::ID:
+ func(static_cast<deviceTokenWindowsPush &>(obj));
+ return true;
+ case deviceTokenMicrosoftPush::ID:
+ func(static_cast<deviceTokenMicrosoftPush &>(obj));
+ return true;
+ case deviceTokenMicrosoftPushVoIP::ID:
+ func(static_cast<deviceTokenMicrosoftPushVoIP &>(obj));
+ return true;
+ case deviceTokenWebPush::ID:
+ func(static_cast<deviceTokenWebPush &>(obj));
+ return true;
+ case deviceTokenSimplePush::ID:
+ func(static_cast<deviceTokenSimplePush &>(obj));
+ return true;
+ case deviceTokenUbuntuPush::ID:
+ func(static_cast<deviceTokenUbuntuPush &>(obj));
+ return true;
+ case deviceTokenBlackBerryPush::ID:
+ func(static_cast<deviceTokenBlackBerryPush &>(obj));
+ return true;
+ case deviceTokenTizenPush::ID:
+ func(static_cast<deviceTokenTizenPush &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DiceStickers &obj, const T &func) {
+ switch (obj.get_id()) {
+ case diceStickersRegular::ID:
+ func(static_cast<diceStickersRegular &>(obj));
+ return true;
+ case diceStickersSlotMachine::ID:
+ func(static_cast<diceStickersSlotMachine &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(EmailAddressAuthentication &obj, const T &func) {
+ switch (obj.get_id()) {
+ case emailAddressAuthenticationCode::ID:
+ func(static_cast<emailAddressAuthenticationCode &>(obj));
+ return true;
+ case emailAddressAuthenticationAppleId::ID:
+ func(static_cast<emailAddressAuthenticationAppleId &>(obj));
+ return true;
+ case emailAddressAuthenticationGoogleId::ID:
+ func(static_cast<emailAddressAuthenticationGoogleId &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(FileType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case fileTypeNone::ID:
+ func(static_cast<fileTypeNone &>(obj));
+ return true;
+ case fileTypeAnimation::ID:
+ func(static_cast<fileTypeAnimation &>(obj));
+ return true;
+ case fileTypeAudio::ID:
+ func(static_cast<fileTypeAudio &>(obj));
+ return true;
+ case fileTypeDocument::ID:
+ func(static_cast<fileTypeDocument &>(obj));
+ return true;
+ case fileTypeNotificationSound::ID:
+ func(static_cast<fileTypeNotificationSound &>(obj));
+ return true;
+ case fileTypePhoto::ID:
+ func(static_cast<fileTypePhoto &>(obj));
+ return true;
+ case fileTypeProfilePhoto::ID:
+ func(static_cast<fileTypeProfilePhoto &>(obj));
+ return true;
+ case fileTypeSecret::ID:
+ func(static_cast<fileTypeSecret &>(obj));
+ return true;
+ case fileTypeSecretThumbnail::ID:
+ func(static_cast<fileTypeSecretThumbnail &>(obj));
+ return true;
+ case fileTypeSecure::ID:
+ func(static_cast<fileTypeSecure &>(obj));
+ return true;
+ case fileTypeSticker::ID:
+ func(static_cast<fileTypeSticker &>(obj));
+ return true;
+ case fileTypeThumbnail::ID:
+ func(static_cast<fileTypeThumbnail &>(obj));
+ return true;
+ case fileTypeUnknown::ID:
+ func(static_cast<fileTypeUnknown &>(obj));
+ return true;
+ case fileTypeVideo::ID:
+ func(static_cast<fileTypeVideo &>(obj));
+ return true;
+ case fileTypeVideoNote::ID:
+ func(static_cast<fileTypeVideoNote &>(obj));
+ return true;
+ case fileTypeVoiceNote::ID:
+ func(static_cast<fileTypeVoiceNote &>(obj));
+ return true;
+ case fileTypeWallpaper::ID:
+ func(static_cast<fileTypeWallpaper &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(GroupCallVideoQuality &obj, const T &func) {
+ switch (obj.get_id()) {
+ case groupCallVideoQualityThumbnail::ID:
+ func(static_cast<groupCallVideoQualityThumbnail &>(obj));
+ return true;
+ case groupCallVideoQualityMedium::ID:
+ func(static_cast<groupCallVideoQualityMedium &>(obj));
+ return true;
+ case groupCallVideoQualityFull::ID:
+ func(static_cast<groupCallVideoQualityFull &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InlineKeyboardButtonType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inlineKeyboardButtonTypeUrl::ID:
+ func(static_cast<inlineKeyboardButtonTypeUrl &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeLoginUrl::ID:
+ func(static_cast<inlineKeyboardButtonTypeLoginUrl &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeWebApp::ID:
+ func(static_cast<inlineKeyboardButtonTypeWebApp &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeCallback::ID:
+ func(static_cast<inlineKeyboardButtonTypeCallback &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeCallbackWithPassword::ID:
+ func(static_cast<inlineKeyboardButtonTypeCallbackWithPassword &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeCallbackGame::ID:
+ func(static_cast<inlineKeyboardButtonTypeCallbackGame &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeSwitchInline::ID:
+ func(static_cast<inlineKeyboardButtonTypeSwitchInline &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeBuy::ID:
+ func(static_cast<inlineKeyboardButtonTypeBuy &>(obj));
+ return true;
+ case inlineKeyboardButtonTypeUser::ID:
+ func(static_cast<inlineKeyboardButtonTypeUser &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InlineQueryResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inlineQueryResultArticle::ID:
+ func(static_cast<inlineQueryResultArticle &>(obj));
+ return true;
+ case inlineQueryResultContact::ID:
+ func(static_cast<inlineQueryResultContact &>(obj));
+ return true;
+ case inlineQueryResultLocation::ID:
+ func(static_cast<inlineQueryResultLocation &>(obj));
+ return true;
+ case inlineQueryResultVenue::ID:
+ func(static_cast<inlineQueryResultVenue &>(obj));
+ return true;
+ case inlineQueryResultGame::ID:
+ func(static_cast<inlineQueryResultGame &>(obj));
+ return true;
+ case inlineQueryResultAnimation::ID:
+ func(static_cast<inlineQueryResultAnimation &>(obj));
+ return true;
+ case inlineQueryResultAudio::ID:
+ func(static_cast<inlineQueryResultAudio &>(obj));
+ return true;
+ case inlineQueryResultDocument::ID:
+ func(static_cast<inlineQueryResultDocument &>(obj));
+ return true;
+ case inlineQueryResultPhoto::ID:
+ func(static_cast<inlineQueryResultPhoto &>(obj));
+ return true;
+ case inlineQueryResultSticker::ID:
+ func(static_cast<inlineQueryResultSticker &>(obj));
+ return true;
+ case inlineQueryResultVideo::ID:
+ func(static_cast<inlineQueryResultVideo &>(obj));
+ return true;
+ case inlineQueryResultVoiceNote::ID:
+ func(static_cast<inlineQueryResultVoiceNote &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputBackground &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputBackgroundLocal::ID:
+ func(static_cast<inputBackgroundLocal &>(obj));
+ return true;
+ case inputBackgroundRemote::ID:
+ func(static_cast<inputBackgroundRemote &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputChatPhoto &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputChatPhotoPrevious::ID:
+ func(static_cast<inputChatPhotoPrevious &>(obj));
+ return true;
+ case inputChatPhotoStatic::ID:
+ func(static_cast<inputChatPhotoStatic &>(obj));
+ return true;
+ case inputChatPhotoAnimation::ID:
+ func(static_cast<inputChatPhotoAnimation &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputCredentials &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputCredentialsSaved::ID:
+ func(static_cast<inputCredentialsSaved &>(obj));
+ return true;
+ case inputCredentialsNew::ID:
+ func(static_cast<inputCredentialsNew &>(obj));
+ return true;
+ case inputCredentialsApplePay::ID:
+ func(static_cast<inputCredentialsApplePay &>(obj));
+ return true;
+ case inputCredentialsGooglePay::ID:
+ func(static_cast<inputCredentialsGooglePay &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputFile &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputFileId::ID:
+ func(static_cast<inputFileId &>(obj));
+ return true;
+ case inputFileRemote::ID:
+ func(static_cast<inputFileRemote &>(obj));
+ return true;
+ case inputFileLocal::ID:
+ func(static_cast<inputFileLocal &>(obj));
+ return true;
+ case inputFileGenerated::ID:
+ func(static_cast<inputFileGenerated &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputInlineQueryResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputInlineQueryResultAnimation::ID:
+ func(static_cast<inputInlineQueryResultAnimation &>(obj));
+ return true;
+ case inputInlineQueryResultArticle::ID:
+ func(static_cast<inputInlineQueryResultArticle &>(obj));
+ return true;
+ case inputInlineQueryResultAudio::ID:
+ func(static_cast<inputInlineQueryResultAudio &>(obj));
+ return true;
+ case inputInlineQueryResultContact::ID:
+ func(static_cast<inputInlineQueryResultContact &>(obj));
+ return true;
+ case inputInlineQueryResultDocument::ID:
+ func(static_cast<inputInlineQueryResultDocument &>(obj));
+ return true;
+ case inputInlineQueryResultGame::ID:
+ func(static_cast<inputInlineQueryResultGame &>(obj));
+ return true;
+ case inputInlineQueryResultLocation::ID:
+ func(static_cast<inputInlineQueryResultLocation &>(obj));
+ return true;
+ case inputInlineQueryResultPhoto::ID:
+ func(static_cast<inputInlineQueryResultPhoto &>(obj));
+ return true;
+ case inputInlineQueryResultSticker::ID:
+ func(static_cast<inputInlineQueryResultSticker &>(obj));
+ return true;
+ case inputInlineQueryResultVenue::ID:
+ func(static_cast<inputInlineQueryResultVenue &>(obj));
+ return true;
+ case inputInlineQueryResultVideo::ID:
+ func(static_cast<inputInlineQueryResultVideo &>(obj));
+ return true;
+ case inputInlineQueryResultVoiceNote::ID:
+ func(static_cast<inputInlineQueryResultVoiceNote &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputInvoice &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputInvoiceMessage::ID:
+ func(static_cast<inputInvoiceMessage &>(obj));
+ return true;
+ case inputInvoiceName::ID:
+ func(static_cast<inputInvoiceName &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputMessageContent &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputMessageText::ID:
+ func(static_cast<inputMessageText &>(obj));
+ return true;
+ case inputMessageAnimation::ID:
+ func(static_cast<inputMessageAnimation &>(obj));
+ return true;
+ case inputMessageAudio::ID:
+ func(static_cast<inputMessageAudio &>(obj));
+ return true;
+ case inputMessageDocument::ID:
+ func(static_cast<inputMessageDocument &>(obj));
+ return true;
+ case inputMessagePhoto::ID:
+ func(static_cast<inputMessagePhoto &>(obj));
+ return true;
+ case inputMessageSticker::ID:
+ func(static_cast<inputMessageSticker &>(obj));
+ return true;
+ case inputMessageVideo::ID:
+ func(static_cast<inputMessageVideo &>(obj));
+ return true;
+ case inputMessageVideoNote::ID:
+ func(static_cast<inputMessageVideoNote &>(obj));
+ return true;
+ case inputMessageVoiceNote::ID:
+ func(static_cast<inputMessageVoiceNote &>(obj));
+ return true;
+ case inputMessageLocation::ID:
+ func(static_cast<inputMessageLocation &>(obj));
+ return true;
+ case inputMessageVenue::ID:
+ func(static_cast<inputMessageVenue &>(obj));
+ return true;
+ case inputMessageContact::ID:
+ func(static_cast<inputMessageContact &>(obj));
+ return true;
+ case inputMessageDice::ID:
+ func(static_cast<inputMessageDice &>(obj));
+ return true;
+ case inputMessageGame::ID:
+ func(static_cast<inputMessageGame &>(obj));
+ return true;
+ case inputMessageInvoice::ID:
+ func(static_cast<inputMessageInvoice &>(obj));
+ return true;
+ case inputMessagePoll::ID:
+ func(static_cast<inputMessagePoll &>(obj));
+ return true;
+ case inputMessageForwarded::ID:
+ func(static_cast<inputMessageForwarded &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputPassportElement &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputPassportElementPersonalDetails::ID:
+ func(static_cast<inputPassportElementPersonalDetails &>(obj));
+ return true;
+ case inputPassportElementPassport::ID:
+ func(static_cast<inputPassportElementPassport &>(obj));
+ return true;
+ case inputPassportElementDriverLicense::ID:
+ func(static_cast<inputPassportElementDriverLicense &>(obj));
+ return true;
+ case inputPassportElementIdentityCard::ID:
+ func(static_cast<inputPassportElementIdentityCard &>(obj));
+ return true;
+ case inputPassportElementInternalPassport::ID:
+ func(static_cast<inputPassportElementInternalPassport &>(obj));
+ return true;
+ case inputPassportElementAddress::ID:
+ func(static_cast<inputPassportElementAddress &>(obj));
+ return true;
+ case inputPassportElementUtilityBill::ID:
+ func(static_cast<inputPassportElementUtilityBill &>(obj));
+ return true;
+ case inputPassportElementBankStatement::ID:
+ func(static_cast<inputPassportElementBankStatement &>(obj));
+ return true;
+ case inputPassportElementRentalAgreement::ID:
+ func(static_cast<inputPassportElementRentalAgreement &>(obj));
+ return true;
+ case inputPassportElementPassportRegistration::ID:
+ func(static_cast<inputPassportElementPassportRegistration &>(obj));
+ return true;
+ case inputPassportElementTemporaryRegistration::ID:
+ func(static_cast<inputPassportElementTemporaryRegistration &>(obj));
+ return true;
+ case inputPassportElementPhoneNumber::ID:
+ func(static_cast<inputPassportElementPhoneNumber &>(obj));
+ return true;
+ case inputPassportElementEmailAddress::ID:
+ func(static_cast<inputPassportElementEmailAddress &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputPassportElementErrorSource &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputPassportElementErrorSourceUnspecified::ID:
+ func(static_cast<inputPassportElementErrorSourceUnspecified &>(obj));
+ return true;
+ case inputPassportElementErrorSourceDataField::ID:
+ func(static_cast<inputPassportElementErrorSourceDataField &>(obj));
+ return true;
+ case inputPassportElementErrorSourceFrontSide::ID:
+ func(static_cast<inputPassportElementErrorSourceFrontSide &>(obj));
+ return true;
+ case inputPassportElementErrorSourceReverseSide::ID:
+ func(static_cast<inputPassportElementErrorSourceReverseSide &>(obj));
+ return true;
+ case inputPassportElementErrorSourceSelfie::ID:
+ func(static_cast<inputPassportElementErrorSourceSelfie &>(obj));
+ return true;
+ case inputPassportElementErrorSourceTranslationFile::ID:
+ func(static_cast<inputPassportElementErrorSourceTranslationFile &>(obj));
+ return true;
+ case inputPassportElementErrorSourceTranslationFiles::ID:
+ func(static_cast<inputPassportElementErrorSourceTranslationFiles &>(obj));
+ return true;
+ case inputPassportElementErrorSourceFile::ID:
+ func(static_cast<inputPassportElementErrorSourceFile &>(obj));
+ return true;
+ case inputPassportElementErrorSourceFiles::ID:
+ func(static_cast<inputPassportElementErrorSourceFiles &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InternalLinkType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case internalLinkTypeActiveSessions::ID:
+ func(static_cast<internalLinkTypeActiveSessions &>(obj));
+ return true;
+ case internalLinkTypeAttachmentMenuBot::ID:
+ func(static_cast<internalLinkTypeAttachmentMenuBot &>(obj));
+ return true;
+ case internalLinkTypeAuthenticationCode::ID:
+ func(static_cast<internalLinkTypeAuthenticationCode &>(obj));
+ return true;
+ case internalLinkTypeBackground::ID:
+ func(static_cast<internalLinkTypeBackground &>(obj));
+ return true;
+ case internalLinkTypeBotStart::ID:
+ func(static_cast<internalLinkTypeBotStart &>(obj));
+ return true;
+ case internalLinkTypeBotStartInGroup::ID:
+ func(static_cast<internalLinkTypeBotStartInGroup &>(obj));
+ return true;
+ case internalLinkTypeBotAddToChannel::ID:
+ func(static_cast<internalLinkTypeBotAddToChannel &>(obj));
+ return true;
+ case internalLinkTypeChangePhoneNumber::ID:
+ func(static_cast<internalLinkTypeChangePhoneNumber &>(obj));
+ return true;
+ case internalLinkTypeChatInvite::ID:
+ func(static_cast<internalLinkTypeChatInvite &>(obj));
+ return true;
+ case internalLinkTypeFilterSettings::ID:
+ func(static_cast<internalLinkTypeFilterSettings &>(obj));
+ return true;
+ case internalLinkTypeGame::ID:
+ func(static_cast<internalLinkTypeGame &>(obj));
+ return true;
+ case internalLinkTypeInstantView::ID:
+ func(static_cast<internalLinkTypeInstantView &>(obj));
+ return true;
+ case internalLinkTypeInvoice::ID:
+ func(static_cast<internalLinkTypeInvoice &>(obj));
+ return true;
+ case internalLinkTypeLanguagePack::ID:
+ func(static_cast<internalLinkTypeLanguagePack &>(obj));
+ return true;
+ case internalLinkTypeLanguageSettings::ID:
+ func(static_cast<internalLinkTypeLanguageSettings &>(obj));
+ return true;
+ case internalLinkTypeMessage::ID:
+ func(static_cast<internalLinkTypeMessage &>(obj));
+ return true;
+ case internalLinkTypeMessageDraft::ID:
+ func(static_cast<internalLinkTypeMessageDraft &>(obj));
+ return true;
+ case internalLinkTypePassportDataRequest::ID:
+ func(static_cast<internalLinkTypePassportDataRequest &>(obj));
+ return true;
+ case internalLinkTypePhoneNumberConfirmation::ID:
+ func(static_cast<internalLinkTypePhoneNumberConfirmation &>(obj));
+ return true;
+ case internalLinkTypePremiumFeatures::ID:
+ func(static_cast<internalLinkTypePremiumFeatures &>(obj));
+ return true;
+ case internalLinkTypePrivacyAndSecuritySettings::ID:
+ func(static_cast<internalLinkTypePrivacyAndSecuritySettings &>(obj));
+ return true;
+ case internalLinkTypeProxy::ID:
+ func(static_cast<internalLinkTypeProxy &>(obj));
+ return true;
+ case internalLinkTypePublicChat::ID:
+ func(static_cast<internalLinkTypePublicChat &>(obj));
+ return true;
+ case internalLinkTypeQrCodeAuthentication::ID:
+ func(static_cast<internalLinkTypeQrCodeAuthentication &>(obj));
+ return true;
+ case internalLinkTypeRestorePurchases::ID:
+ func(static_cast<internalLinkTypeRestorePurchases &>(obj));
+ return true;
+ case internalLinkTypeSettings::ID:
+ func(static_cast<internalLinkTypeSettings &>(obj));
+ return true;
+ case internalLinkTypeStickerSet::ID:
+ func(static_cast<internalLinkTypeStickerSet &>(obj));
+ return true;
+ case internalLinkTypeTheme::ID:
+ func(static_cast<internalLinkTypeTheme &>(obj));
+ return true;
+ case internalLinkTypeThemeSettings::ID:
+ func(static_cast<internalLinkTypeThemeSettings &>(obj));
+ return true;
+ case internalLinkTypeUnknownDeepLink::ID:
+ func(static_cast<internalLinkTypeUnknownDeepLink &>(obj));
+ return true;
+ case internalLinkTypeUnsupportedProxy::ID:
+ func(static_cast<internalLinkTypeUnsupportedProxy &>(obj));
+ return true;
+ case internalLinkTypeUserPhoneNumber::ID:
+ func(static_cast<internalLinkTypeUserPhoneNumber &>(obj));
+ return true;
+ case internalLinkTypeVideoChat::ID:
+ func(static_cast<internalLinkTypeVideoChat &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(JsonValue &obj, const T &func) {
+ switch (obj.get_id()) {
+ case jsonValueNull::ID:
+ func(static_cast<jsonValueNull &>(obj));
+ return true;
+ case jsonValueBoolean::ID:
+ func(static_cast<jsonValueBoolean &>(obj));
+ return true;
+ case jsonValueNumber::ID:
+ func(static_cast<jsonValueNumber &>(obj));
+ return true;
+ case jsonValueString::ID:
+ func(static_cast<jsonValueString &>(obj));
+ return true;
+ case jsonValueArray::ID:
+ func(static_cast<jsonValueArray &>(obj));
+ return true;
+ case jsonValueObject::ID:
+ func(static_cast<jsonValueObject &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(KeyboardButtonType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case keyboardButtonTypeText::ID:
+ func(static_cast<keyboardButtonTypeText &>(obj));
+ return true;
+ case keyboardButtonTypeRequestPhoneNumber::ID:
+ func(static_cast<keyboardButtonTypeRequestPhoneNumber &>(obj));
+ return true;
+ case keyboardButtonTypeRequestLocation::ID:
+ func(static_cast<keyboardButtonTypeRequestLocation &>(obj));
+ return true;
+ case keyboardButtonTypeRequestPoll::ID:
+ func(static_cast<keyboardButtonTypeRequestPoll &>(obj));
+ return true;
+ case keyboardButtonTypeWebApp::ID:
+ func(static_cast<keyboardButtonTypeWebApp &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(LanguagePackStringValue &obj, const T &func) {
+ switch (obj.get_id()) {
+ case languagePackStringValueOrdinary::ID:
+ func(static_cast<languagePackStringValueOrdinary &>(obj));
+ return true;
+ case languagePackStringValuePluralized::ID:
+ func(static_cast<languagePackStringValuePluralized &>(obj));
+ return true;
+ case languagePackStringValueDeleted::ID:
+ func(static_cast<languagePackStringValueDeleted &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(LogStream &obj, const T &func) {
+ switch (obj.get_id()) {
+ case logStreamDefault::ID:
+ func(static_cast<logStreamDefault &>(obj));
+ return true;
+ case logStreamFile::ID:
+ func(static_cast<logStreamFile &>(obj));
+ return true;
+ case logStreamEmpty::ID:
+ func(static_cast<logStreamEmpty &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(LoginUrlInfo &obj, const T &func) {
+ switch (obj.get_id()) {
+ case loginUrlInfoOpen::ID:
+ func(static_cast<loginUrlInfoOpen &>(obj));
+ return true;
+ case loginUrlInfoRequestConfirmation::ID:
+ func(static_cast<loginUrlInfoRequestConfirmation &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MaskPoint &obj, const T &func) {
+ switch (obj.get_id()) {
+ case maskPointForehead::ID:
+ func(static_cast<maskPointForehead &>(obj));
+ return true;
+ case maskPointEyes::ID:
+ func(static_cast<maskPointEyes &>(obj));
+ return true;
+ case maskPointMouth::ID:
+ func(static_cast<maskPointMouth &>(obj));
+ return true;
+ case maskPointChin::ID:
+ func(static_cast<maskPointChin &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageContent &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageText::ID:
+ func(static_cast<messageText &>(obj));
+ return true;
+ case messageAnimation::ID:
+ func(static_cast<messageAnimation &>(obj));
+ return true;
+ case messageAudio::ID:
+ func(static_cast<messageAudio &>(obj));
+ return true;
+ case messageDocument::ID:
+ func(static_cast<messageDocument &>(obj));
+ return true;
+ case messagePhoto::ID:
+ func(static_cast<messagePhoto &>(obj));
+ return true;
+ case messageExpiredPhoto::ID:
+ func(static_cast<messageExpiredPhoto &>(obj));
+ return true;
+ case messageSticker::ID:
+ func(static_cast<messageSticker &>(obj));
+ return true;
+ case messageVideo::ID:
+ func(static_cast<messageVideo &>(obj));
+ return true;
+ case messageExpiredVideo::ID:
+ func(static_cast<messageExpiredVideo &>(obj));
+ return true;
+ case messageVideoNote::ID:
+ func(static_cast<messageVideoNote &>(obj));
+ return true;
+ case messageVoiceNote::ID:
+ func(static_cast<messageVoiceNote &>(obj));
+ return true;
+ case messageLocation::ID:
+ func(static_cast<messageLocation &>(obj));
+ return true;
+ case messageVenue::ID:
+ func(static_cast<messageVenue &>(obj));
+ return true;
+ case messageContact::ID:
+ func(static_cast<messageContact &>(obj));
+ return true;
+ case messageAnimatedEmoji::ID:
+ func(static_cast<messageAnimatedEmoji &>(obj));
+ return true;
+ case messageDice::ID:
+ func(static_cast<messageDice &>(obj));
+ return true;
+ case messageGame::ID:
+ func(static_cast<messageGame &>(obj));
+ return true;
+ case messagePoll::ID:
+ func(static_cast<messagePoll &>(obj));
+ return true;
+ case messageInvoice::ID:
+ func(static_cast<messageInvoice &>(obj));
+ return true;
+ case messageCall::ID:
+ func(static_cast<messageCall &>(obj));
+ return true;
+ case messageVideoChatScheduled::ID:
+ func(static_cast<messageVideoChatScheduled &>(obj));
+ return true;
+ case messageVideoChatStarted::ID:
+ func(static_cast<messageVideoChatStarted &>(obj));
+ return true;
+ case messageVideoChatEnded::ID:
+ func(static_cast<messageVideoChatEnded &>(obj));
+ return true;
+ case messageInviteVideoChatParticipants::ID:
+ func(static_cast<messageInviteVideoChatParticipants &>(obj));
+ return true;
+ case messageBasicGroupChatCreate::ID:
+ func(static_cast<messageBasicGroupChatCreate &>(obj));
+ return true;
+ case messageSupergroupChatCreate::ID:
+ func(static_cast<messageSupergroupChatCreate &>(obj));
+ return true;
+ case messageChatChangeTitle::ID:
+ func(static_cast<messageChatChangeTitle &>(obj));
+ return true;
+ case messageChatChangePhoto::ID:
+ func(static_cast<messageChatChangePhoto &>(obj));
+ return true;
+ case messageChatDeletePhoto::ID:
+ func(static_cast<messageChatDeletePhoto &>(obj));
+ return true;
+ case messageChatAddMembers::ID:
+ func(static_cast<messageChatAddMembers &>(obj));
+ return true;
+ case messageChatJoinByLink::ID:
+ func(static_cast<messageChatJoinByLink &>(obj));
+ return true;
+ case messageChatJoinByRequest::ID:
+ func(static_cast<messageChatJoinByRequest &>(obj));
+ return true;
+ case messageChatDeleteMember::ID:
+ func(static_cast<messageChatDeleteMember &>(obj));
+ return true;
+ case messageChatUpgradeTo::ID:
+ func(static_cast<messageChatUpgradeTo &>(obj));
+ return true;
+ case messageChatUpgradeFrom::ID:
+ func(static_cast<messageChatUpgradeFrom &>(obj));
+ return true;
+ case messagePinMessage::ID:
+ func(static_cast<messagePinMessage &>(obj));
+ return true;
+ case messageScreenshotTaken::ID:
+ func(static_cast<messageScreenshotTaken &>(obj));
+ return true;
+ case messageChatSetTheme::ID:
+ func(static_cast<messageChatSetTheme &>(obj));
+ return true;
+ case messageChatSetTtl::ID:
+ func(static_cast<messageChatSetTtl &>(obj));
+ return true;
+ case messageForumTopicCreated::ID:
+ func(static_cast<messageForumTopicCreated &>(obj));
+ return true;
+ case messageForumTopicEdited::ID:
+ func(static_cast<messageForumTopicEdited &>(obj));
+ return true;
+ case messageForumTopicIsClosedToggled::ID:
+ func(static_cast<messageForumTopicIsClosedToggled &>(obj));
+ return true;
+ case messageCustomServiceAction::ID:
+ func(static_cast<messageCustomServiceAction &>(obj));
+ return true;
+ case messageGameScore::ID:
+ func(static_cast<messageGameScore &>(obj));
+ return true;
+ case messagePaymentSuccessful::ID:
+ func(static_cast<messagePaymentSuccessful &>(obj));
+ return true;
+ case messagePaymentSuccessfulBot::ID:
+ func(static_cast<messagePaymentSuccessfulBot &>(obj));
+ return true;
+ case messageGiftedPremium::ID:
+ func(static_cast<messageGiftedPremium &>(obj));
+ return true;
+ case messageContactRegistered::ID:
+ func(static_cast<messageContactRegistered &>(obj));
+ return true;
+ case messageWebsiteConnected::ID:
+ func(static_cast<messageWebsiteConnected &>(obj));
+ return true;
+ case messageWebAppDataSent::ID:
+ func(static_cast<messageWebAppDataSent &>(obj));
+ return true;
+ case messageWebAppDataReceived::ID:
+ func(static_cast<messageWebAppDataReceived &>(obj));
+ return true;
+ case messagePassportDataSent::ID:
+ func(static_cast<messagePassportDataSent &>(obj));
+ return true;
+ case messagePassportDataReceived::ID:
+ func(static_cast<messagePassportDataReceived &>(obj));
+ return true;
+ case messageProximityAlertTriggered::ID:
+ func(static_cast<messageProximityAlertTriggered &>(obj));
+ return true;
+ case messageUnsupported::ID:
+ func(static_cast<messageUnsupported &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageExtendedMedia &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageExtendedMediaPreview::ID:
+ func(static_cast<messageExtendedMediaPreview &>(obj));
+ return true;
+ case messageExtendedMediaPhoto::ID:
+ func(static_cast<messageExtendedMediaPhoto &>(obj));
+ return true;
+ case messageExtendedMediaVideo::ID:
+ func(static_cast<messageExtendedMediaVideo &>(obj));
+ return true;
+ case messageExtendedMediaUnsupported::ID:
+ func(static_cast<messageExtendedMediaUnsupported &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageFileType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageFileTypePrivate::ID:
+ func(static_cast<messageFileTypePrivate &>(obj));
+ return true;
+ case messageFileTypeGroup::ID:
+ func(static_cast<messageFileTypeGroup &>(obj));
+ return true;
+ case messageFileTypeUnknown::ID:
+ func(static_cast<messageFileTypeUnknown &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageForwardOrigin &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageForwardOriginUser::ID:
+ func(static_cast<messageForwardOriginUser &>(obj));
+ return true;
+ case messageForwardOriginChat::ID:
+ func(static_cast<messageForwardOriginChat &>(obj));
+ return true;
+ case messageForwardOriginHiddenUser::ID:
+ func(static_cast<messageForwardOriginHiddenUser &>(obj));
+ return true;
+ case messageForwardOriginChannel::ID:
+ func(static_cast<messageForwardOriginChannel &>(obj));
+ return true;
+ case messageForwardOriginMessageImport::ID:
+ func(static_cast<messageForwardOriginMessageImport &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageSchedulingState &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageSchedulingStateSendAtDate::ID:
+ func(static_cast<messageSchedulingStateSendAtDate &>(obj));
+ return true;
+ case messageSchedulingStateSendWhenOnline::ID:
+ func(static_cast<messageSchedulingStateSendWhenOnline &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageSender &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageSenderUser::ID:
+ func(static_cast<messageSenderUser &>(obj));
+ return true;
+ case messageSenderChat::ID:
+ func(static_cast<messageSenderChat &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageSendingState &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageSendingStatePending::ID:
+ func(static_cast<messageSendingStatePending &>(obj));
+ return true;
+ case messageSendingStateFailed::ID:
+ func(static_cast<messageSendingStateFailed &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(NetworkStatisticsEntry &obj, const T &func) {
+ switch (obj.get_id()) {
+ case networkStatisticsEntryFile::ID:
+ func(static_cast<networkStatisticsEntryFile &>(obj));
+ return true;
+ case networkStatisticsEntryCall::ID:
+ func(static_cast<networkStatisticsEntryCall &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(NetworkType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case networkTypeNone::ID:
+ func(static_cast<networkTypeNone &>(obj));
+ return true;
+ case networkTypeMobile::ID:
+ func(static_cast<networkTypeMobile &>(obj));
+ return true;
+ case networkTypeMobileRoaming::ID:
+ func(static_cast<networkTypeMobileRoaming &>(obj));
+ return true;
+ case networkTypeWiFi::ID:
+ func(static_cast<networkTypeWiFi &>(obj));
+ return true;
+ case networkTypeOther::ID:
+ func(static_cast<networkTypeOther &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(NotificationGroupType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case notificationGroupTypeMessages::ID:
+ func(static_cast<notificationGroupTypeMessages &>(obj));
+ return true;
+ case notificationGroupTypeMentions::ID:
+ func(static_cast<notificationGroupTypeMentions &>(obj));
+ return true;
+ case notificationGroupTypeSecretChat::ID:
+ func(static_cast<notificationGroupTypeSecretChat &>(obj));
+ return true;
+ case notificationGroupTypeCalls::ID:
+ func(static_cast<notificationGroupTypeCalls &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(NotificationSettingsScope &obj, const T &func) {
+ switch (obj.get_id()) {
+ case notificationSettingsScopePrivateChats::ID:
+ func(static_cast<notificationSettingsScopePrivateChats &>(obj));
+ return true;
+ case notificationSettingsScopeGroupChats::ID:
+ func(static_cast<notificationSettingsScopeGroupChats &>(obj));
+ return true;
+ case notificationSettingsScopeChannelChats::ID:
+ func(static_cast<notificationSettingsScopeChannelChats &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(NotificationType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case notificationTypeNewMessage::ID:
+ func(static_cast<notificationTypeNewMessage &>(obj));
+ return true;
+ case notificationTypeNewSecretChat::ID:
+ func(static_cast<notificationTypeNewSecretChat &>(obj));
+ return true;
+ case notificationTypeNewCall::ID:
+ func(static_cast<notificationTypeNewCall &>(obj));
+ return true;
+ case notificationTypeNewPushMessage::ID:
+ func(static_cast<notificationTypeNewPushMessage &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(OptionValue &obj, const T &func) {
+ switch (obj.get_id()) {
+ case optionValueBoolean::ID:
+ func(static_cast<optionValueBoolean &>(obj));
+ return true;
+ case optionValueEmpty::ID:
+ func(static_cast<optionValueEmpty &>(obj));
+ return true;
+ case optionValueInteger::ID:
+ func(static_cast<optionValueInteger &>(obj));
+ return true;
+ case optionValueString::ID:
+ func(static_cast<optionValueString &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PageBlock &obj, const T &func) {
+ switch (obj.get_id()) {
+ case pageBlockTitle::ID:
+ func(static_cast<pageBlockTitle &>(obj));
+ return true;
+ case pageBlockSubtitle::ID:
+ func(static_cast<pageBlockSubtitle &>(obj));
+ return true;
+ case pageBlockAuthorDate::ID:
+ func(static_cast<pageBlockAuthorDate &>(obj));
+ return true;
+ case pageBlockHeader::ID:
+ func(static_cast<pageBlockHeader &>(obj));
+ return true;
+ case pageBlockSubheader::ID:
+ func(static_cast<pageBlockSubheader &>(obj));
+ return true;
+ case pageBlockKicker::ID:
+ func(static_cast<pageBlockKicker &>(obj));
+ return true;
+ case pageBlockParagraph::ID:
+ func(static_cast<pageBlockParagraph &>(obj));
+ return true;
+ case pageBlockPreformatted::ID:
+ func(static_cast<pageBlockPreformatted &>(obj));
+ return true;
+ case pageBlockFooter::ID:
+ func(static_cast<pageBlockFooter &>(obj));
+ return true;
+ case pageBlockDivider::ID:
+ func(static_cast<pageBlockDivider &>(obj));
+ return true;
+ case pageBlockAnchor::ID:
+ func(static_cast<pageBlockAnchor &>(obj));
+ return true;
+ case pageBlockList::ID:
+ func(static_cast<pageBlockList &>(obj));
+ return true;
+ case pageBlockBlockQuote::ID:
+ func(static_cast<pageBlockBlockQuote &>(obj));
+ return true;
+ case pageBlockPullQuote::ID:
+ func(static_cast<pageBlockPullQuote &>(obj));
+ return true;
+ case pageBlockAnimation::ID:
+ func(static_cast<pageBlockAnimation &>(obj));
+ return true;
+ case pageBlockAudio::ID:
+ func(static_cast<pageBlockAudio &>(obj));
+ return true;
+ case pageBlockPhoto::ID:
+ func(static_cast<pageBlockPhoto &>(obj));
+ return true;
+ case pageBlockVideo::ID:
+ func(static_cast<pageBlockVideo &>(obj));
+ return true;
+ case pageBlockVoiceNote::ID:
+ func(static_cast<pageBlockVoiceNote &>(obj));
+ return true;
+ case pageBlockCover::ID:
+ func(static_cast<pageBlockCover &>(obj));
+ return true;
+ case pageBlockEmbedded::ID:
+ func(static_cast<pageBlockEmbedded &>(obj));
+ return true;
+ case pageBlockEmbeddedPost::ID:
+ func(static_cast<pageBlockEmbeddedPost &>(obj));
+ return true;
+ case pageBlockCollage::ID:
+ func(static_cast<pageBlockCollage &>(obj));
+ return true;
+ case pageBlockSlideshow::ID:
+ func(static_cast<pageBlockSlideshow &>(obj));
+ return true;
+ case pageBlockChatLink::ID:
+ func(static_cast<pageBlockChatLink &>(obj));
+ return true;
+ case pageBlockTable::ID:
+ func(static_cast<pageBlockTable &>(obj));
+ return true;
+ case pageBlockDetails::ID:
+ func(static_cast<pageBlockDetails &>(obj));
+ return true;
+ case pageBlockRelatedArticles::ID:
+ func(static_cast<pageBlockRelatedArticles &>(obj));
+ return true;
+ case pageBlockMap::ID:
+ func(static_cast<pageBlockMap &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PageBlockHorizontalAlignment &obj, const T &func) {
+ switch (obj.get_id()) {
+ case pageBlockHorizontalAlignmentLeft::ID:
+ func(static_cast<pageBlockHorizontalAlignmentLeft &>(obj));
+ return true;
+ case pageBlockHorizontalAlignmentCenter::ID:
+ func(static_cast<pageBlockHorizontalAlignmentCenter &>(obj));
+ return true;
+ case pageBlockHorizontalAlignmentRight::ID:
+ func(static_cast<pageBlockHorizontalAlignmentRight &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PageBlockVerticalAlignment &obj, const T &func) {
+ switch (obj.get_id()) {
+ case pageBlockVerticalAlignmentTop::ID:
+ func(static_cast<pageBlockVerticalAlignmentTop &>(obj));
+ return true;
+ case pageBlockVerticalAlignmentMiddle::ID:
+ func(static_cast<pageBlockVerticalAlignmentMiddle &>(obj));
+ return true;
+ case pageBlockVerticalAlignmentBottom::ID:
+ func(static_cast<pageBlockVerticalAlignmentBottom &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PassportElement &obj, const T &func) {
+ switch (obj.get_id()) {
+ case passportElementPersonalDetails::ID:
+ func(static_cast<passportElementPersonalDetails &>(obj));
+ return true;
+ case passportElementPassport::ID:
+ func(static_cast<passportElementPassport &>(obj));
+ return true;
+ case passportElementDriverLicense::ID:
+ func(static_cast<passportElementDriverLicense &>(obj));
+ return true;
+ case passportElementIdentityCard::ID:
+ func(static_cast<passportElementIdentityCard &>(obj));
+ return true;
+ case passportElementInternalPassport::ID:
+ func(static_cast<passportElementInternalPassport &>(obj));
+ return true;
+ case passportElementAddress::ID:
+ func(static_cast<passportElementAddress &>(obj));
+ return true;
+ case passportElementUtilityBill::ID:
+ func(static_cast<passportElementUtilityBill &>(obj));
+ return true;
+ case passportElementBankStatement::ID:
+ func(static_cast<passportElementBankStatement &>(obj));
+ return true;
+ case passportElementRentalAgreement::ID:
+ func(static_cast<passportElementRentalAgreement &>(obj));
+ return true;
+ case passportElementPassportRegistration::ID:
+ func(static_cast<passportElementPassportRegistration &>(obj));
+ return true;
+ case passportElementTemporaryRegistration::ID:
+ func(static_cast<passportElementTemporaryRegistration &>(obj));
+ return true;
+ case passportElementPhoneNumber::ID:
+ func(static_cast<passportElementPhoneNumber &>(obj));
+ return true;
+ case passportElementEmailAddress::ID:
+ func(static_cast<passportElementEmailAddress &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PassportElementErrorSource &obj, const T &func) {
+ switch (obj.get_id()) {
+ case passportElementErrorSourceUnspecified::ID:
+ func(static_cast<passportElementErrorSourceUnspecified &>(obj));
+ return true;
+ case passportElementErrorSourceDataField::ID:
+ func(static_cast<passportElementErrorSourceDataField &>(obj));
+ return true;
+ case passportElementErrorSourceFrontSide::ID:
+ func(static_cast<passportElementErrorSourceFrontSide &>(obj));
+ return true;
+ case passportElementErrorSourceReverseSide::ID:
+ func(static_cast<passportElementErrorSourceReverseSide &>(obj));
+ return true;
+ case passportElementErrorSourceSelfie::ID:
+ func(static_cast<passportElementErrorSourceSelfie &>(obj));
+ return true;
+ case passportElementErrorSourceTranslationFile::ID:
+ func(static_cast<passportElementErrorSourceTranslationFile &>(obj));
+ return true;
+ case passportElementErrorSourceTranslationFiles::ID:
+ func(static_cast<passportElementErrorSourceTranslationFiles &>(obj));
+ return true;
+ case passportElementErrorSourceFile::ID:
+ func(static_cast<passportElementErrorSourceFile &>(obj));
+ return true;
+ case passportElementErrorSourceFiles::ID:
+ func(static_cast<passportElementErrorSourceFiles &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PassportElementType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case passportElementTypePersonalDetails::ID:
+ func(static_cast<passportElementTypePersonalDetails &>(obj));
+ return true;
+ case passportElementTypePassport::ID:
+ func(static_cast<passportElementTypePassport &>(obj));
+ return true;
+ case passportElementTypeDriverLicense::ID:
+ func(static_cast<passportElementTypeDriverLicense &>(obj));
+ return true;
+ case passportElementTypeIdentityCard::ID:
+ func(static_cast<passportElementTypeIdentityCard &>(obj));
+ return true;
+ case passportElementTypeInternalPassport::ID:
+ func(static_cast<passportElementTypeInternalPassport &>(obj));
+ return true;
+ case passportElementTypeAddress::ID:
+ func(static_cast<passportElementTypeAddress &>(obj));
+ return true;
+ case passportElementTypeUtilityBill::ID:
+ func(static_cast<passportElementTypeUtilityBill &>(obj));
+ return true;
+ case passportElementTypeBankStatement::ID:
+ func(static_cast<passportElementTypeBankStatement &>(obj));
+ return true;
+ case passportElementTypeRentalAgreement::ID:
+ func(static_cast<passportElementTypeRentalAgreement &>(obj));
+ return true;
+ case passportElementTypePassportRegistration::ID:
+ func(static_cast<passportElementTypePassportRegistration &>(obj));
+ return true;
+ case passportElementTypeTemporaryRegistration::ID:
+ func(static_cast<passportElementTypeTemporaryRegistration &>(obj));
+ return true;
+ case passportElementTypePhoneNumber::ID:
+ func(static_cast<passportElementTypePhoneNumber &>(obj));
+ return true;
+ case passportElementTypeEmailAddress::ID:
+ func(static_cast<passportElementTypeEmailAddress &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PaymentProvider &obj, const T &func) {
+ switch (obj.get_id()) {
+ case paymentProviderSmartGlocal::ID:
+ func(static_cast<paymentProviderSmartGlocal &>(obj));
+ return true;
+ case paymentProviderStripe::ID:
+ func(static_cast<paymentProviderStripe &>(obj));
+ return true;
+ case paymentProviderOther::ID:
+ func(static_cast<paymentProviderOther &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PollType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case pollTypeRegular::ID:
+ func(static_cast<pollTypeRegular &>(obj));
+ return true;
+ case pollTypeQuiz::ID:
+ func(static_cast<pollTypeQuiz &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PremiumFeature &obj, const T &func) {
+ switch (obj.get_id()) {
+ case premiumFeatureIncreasedLimits::ID:
+ func(static_cast<premiumFeatureIncreasedLimits &>(obj));
+ return true;
+ case premiumFeatureIncreasedUploadFileSize::ID:
+ func(static_cast<premiumFeatureIncreasedUploadFileSize &>(obj));
+ return true;
+ case premiumFeatureImprovedDownloadSpeed::ID:
+ func(static_cast<premiumFeatureImprovedDownloadSpeed &>(obj));
+ return true;
+ case premiumFeatureVoiceRecognition::ID:
+ func(static_cast<premiumFeatureVoiceRecognition &>(obj));
+ return true;
+ case premiumFeatureDisabledAds::ID:
+ func(static_cast<premiumFeatureDisabledAds &>(obj));
+ return true;
+ case premiumFeatureUniqueReactions::ID:
+ func(static_cast<premiumFeatureUniqueReactions &>(obj));
+ return true;
+ case premiumFeatureUniqueStickers::ID:
+ func(static_cast<premiumFeatureUniqueStickers &>(obj));
+ return true;
+ case premiumFeatureCustomEmoji::ID:
+ func(static_cast<premiumFeatureCustomEmoji &>(obj));
+ return true;
+ case premiumFeatureAdvancedChatManagement::ID:
+ func(static_cast<premiumFeatureAdvancedChatManagement &>(obj));
+ return true;
+ case premiumFeatureProfileBadge::ID:
+ func(static_cast<premiumFeatureProfileBadge &>(obj));
+ return true;
+ case premiumFeatureEmojiStatus::ID:
+ func(static_cast<premiumFeatureEmojiStatus &>(obj));
+ return true;
+ case premiumFeatureAnimatedProfilePhoto::ID:
+ func(static_cast<premiumFeatureAnimatedProfilePhoto &>(obj));
+ return true;
+ case premiumFeatureForumTopicIcon::ID:
+ func(static_cast<premiumFeatureForumTopicIcon &>(obj));
+ return true;
+ case premiumFeatureAppIcons::ID:
+ func(static_cast<premiumFeatureAppIcons &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PremiumLimitType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case premiumLimitTypeSupergroupCount::ID:
+ func(static_cast<premiumLimitTypeSupergroupCount &>(obj));
+ return true;
+ case premiumLimitTypePinnedChatCount::ID:
+ func(static_cast<premiumLimitTypePinnedChatCount &>(obj));
+ return true;
+ case premiumLimitTypeCreatedPublicChatCount::ID:
+ func(static_cast<premiumLimitTypeCreatedPublicChatCount &>(obj));
+ return true;
+ case premiumLimitTypeSavedAnimationCount::ID:
+ func(static_cast<premiumLimitTypeSavedAnimationCount &>(obj));
+ return true;
+ case premiumLimitTypeFavoriteStickerCount::ID:
+ func(static_cast<premiumLimitTypeFavoriteStickerCount &>(obj));
+ return true;
+ case premiumLimitTypeChatFilterCount::ID:
+ func(static_cast<premiumLimitTypeChatFilterCount &>(obj));
+ return true;
+ case premiumLimitTypeChatFilterChosenChatCount::ID:
+ func(static_cast<premiumLimitTypeChatFilterChosenChatCount &>(obj));
+ return true;
+ case premiumLimitTypePinnedArchivedChatCount::ID:
+ func(static_cast<premiumLimitTypePinnedArchivedChatCount &>(obj));
+ return true;
+ case premiumLimitTypeCaptionLength::ID:
+ func(static_cast<premiumLimitTypeCaptionLength &>(obj));
+ return true;
+ case premiumLimitTypeBioLength::ID:
+ func(static_cast<premiumLimitTypeBioLength &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PremiumSource &obj, const T &func) {
+ switch (obj.get_id()) {
+ case premiumSourceLimitExceeded::ID:
+ func(static_cast<premiumSourceLimitExceeded &>(obj));
+ return true;
+ case premiumSourceFeature::ID:
+ func(static_cast<premiumSourceFeature &>(obj));
+ return true;
+ case premiumSourceLink::ID:
+ func(static_cast<premiumSourceLink &>(obj));
+ return true;
+ case premiumSourceSettings::ID:
+ func(static_cast<premiumSourceSettings &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ProxyType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case proxyTypeSocks5::ID:
+ func(static_cast<proxyTypeSocks5 &>(obj));
+ return true;
+ case proxyTypeHttp::ID:
+ func(static_cast<proxyTypeHttp &>(obj));
+ return true;
+ case proxyTypeMtproto::ID:
+ func(static_cast<proxyTypeMtproto &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PublicChatType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case publicChatTypeHasUsername::ID:
+ func(static_cast<publicChatTypeHasUsername &>(obj));
+ return true;
+ case publicChatTypeIsLocationBased::ID:
+ func(static_cast<publicChatTypeIsLocationBased &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PushMessageContent &obj, const T &func) {
+ switch (obj.get_id()) {
+ case pushMessageContentHidden::ID:
+ func(static_cast<pushMessageContentHidden &>(obj));
+ return true;
+ case pushMessageContentAnimation::ID:
+ func(static_cast<pushMessageContentAnimation &>(obj));
+ return true;
+ case pushMessageContentAudio::ID:
+ func(static_cast<pushMessageContentAudio &>(obj));
+ return true;
+ case pushMessageContentContact::ID:
+ func(static_cast<pushMessageContentContact &>(obj));
+ return true;
+ case pushMessageContentContactRegistered::ID:
+ func(static_cast<pushMessageContentContactRegistered &>(obj));
+ return true;
+ case pushMessageContentDocument::ID:
+ func(static_cast<pushMessageContentDocument &>(obj));
+ return true;
+ case pushMessageContentGame::ID:
+ func(static_cast<pushMessageContentGame &>(obj));
+ return true;
+ case pushMessageContentGameScore::ID:
+ func(static_cast<pushMessageContentGameScore &>(obj));
+ return true;
+ case pushMessageContentInvoice::ID:
+ func(static_cast<pushMessageContentInvoice &>(obj));
+ return true;
+ case pushMessageContentLocation::ID:
+ func(static_cast<pushMessageContentLocation &>(obj));
+ return true;
+ case pushMessageContentPhoto::ID:
+ func(static_cast<pushMessageContentPhoto &>(obj));
+ return true;
+ case pushMessageContentPoll::ID:
+ func(static_cast<pushMessageContentPoll &>(obj));
+ return true;
+ case pushMessageContentScreenshotTaken::ID:
+ func(static_cast<pushMessageContentScreenshotTaken &>(obj));
+ return true;
+ case pushMessageContentSticker::ID:
+ func(static_cast<pushMessageContentSticker &>(obj));
+ return true;
+ case pushMessageContentText::ID:
+ func(static_cast<pushMessageContentText &>(obj));
+ return true;
+ case pushMessageContentVideo::ID:
+ func(static_cast<pushMessageContentVideo &>(obj));
+ return true;
+ case pushMessageContentVideoNote::ID:
+ func(static_cast<pushMessageContentVideoNote &>(obj));
+ return true;
+ case pushMessageContentVoiceNote::ID:
+ func(static_cast<pushMessageContentVoiceNote &>(obj));
+ return true;
+ case pushMessageContentBasicGroupChatCreate::ID:
+ func(static_cast<pushMessageContentBasicGroupChatCreate &>(obj));
+ return true;
+ case pushMessageContentChatAddMembers::ID:
+ func(static_cast<pushMessageContentChatAddMembers &>(obj));
+ return true;
+ case pushMessageContentChatChangePhoto::ID:
+ func(static_cast<pushMessageContentChatChangePhoto &>(obj));
+ return true;
+ case pushMessageContentChatChangeTitle::ID:
+ func(static_cast<pushMessageContentChatChangeTitle &>(obj));
+ return true;
+ case pushMessageContentChatSetTheme::ID:
+ func(static_cast<pushMessageContentChatSetTheme &>(obj));
+ return true;
+ case pushMessageContentChatDeleteMember::ID:
+ func(static_cast<pushMessageContentChatDeleteMember &>(obj));
+ return true;
+ case pushMessageContentChatJoinByLink::ID:
+ func(static_cast<pushMessageContentChatJoinByLink &>(obj));
+ return true;
+ case pushMessageContentChatJoinByRequest::ID:
+ func(static_cast<pushMessageContentChatJoinByRequest &>(obj));
+ return true;
+ case pushMessageContentRecurringPayment::ID:
+ func(static_cast<pushMessageContentRecurringPayment &>(obj));
+ return true;
+ case pushMessageContentMessageForwards::ID:
+ func(static_cast<pushMessageContentMessageForwards &>(obj));
+ return true;
+ case pushMessageContentMediaAlbum::ID:
+ func(static_cast<pushMessageContentMediaAlbum &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ReactionType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case reactionTypeEmoji::ID:
+ func(static_cast<reactionTypeEmoji &>(obj));
+ return true;
+ case reactionTypeCustomEmoji::ID:
+ func(static_cast<reactionTypeCustomEmoji &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ReplyMarkup &obj, const T &func) {
+ switch (obj.get_id()) {
+ case replyMarkupRemoveKeyboard::ID:
+ func(static_cast<replyMarkupRemoveKeyboard &>(obj));
+ return true;
+ case replyMarkupForceReply::ID:
+ func(static_cast<replyMarkupForceReply &>(obj));
+ return true;
+ case replyMarkupShowKeyboard::ID:
+ func(static_cast<replyMarkupShowKeyboard &>(obj));
+ return true;
+ case replyMarkupInlineKeyboard::ID:
+ func(static_cast<replyMarkupInlineKeyboard &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ResetPasswordResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case resetPasswordResultOk::ID:
+ func(static_cast<resetPasswordResultOk &>(obj));
+ return true;
+ case resetPasswordResultPending::ID:
+ func(static_cast<resetPasswordResultPending &>(obj));
+ return true;
+ case resetPasswordResultDeclined::ID:
+ func(static_cast<resetPasswordResultDeclined &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(RichText &obj, const T &func) {
+ switch (obj.get_id()) {
+ case richTextPlain::ID:
+ func(static_cast<richTextPlain &>(obj));
+ return true;
+ case richTextBold::ID:
+ func(static_cast<richTextBold &>(obj));
+ return true;
+ case richTextItalic::ID:
+ func(static_cast<richTextItalic &>(obj));
+ return true;
+ case richTextUnderline::ID:
+ func(static_cast<richTextUnderline &>(obj));
+ return true;
+ case richTextStrikethrough::ID:
+ func(static_cast<richTextStrikethrough &>(obj));
+ return true;
+ case richTextFixed::ID:
+ func(static_cast<richTextFixed &>(obj));
+ return true;
+ case richTextUrl::ID:
+ func(static_cast<richTextUrl &>(obj));
+ return true;
+ case richTextEmailAddress::ID:
+ func(static_cast<richTextEmailAddress &>(obj));
+ return true;
+ case richTextSubscript::ID:
+ func(static_cast<richTextSubscript &>(obj));
+ return true;
+ case richTextSuperscript::ID:
+ func(static_cast<richTextSuperscript &>(obj));
+ return true;
+ case richTextMarked::ID:
+ func(static_cast<richTextMarked &>(obj));
+ return true;
+ case richTextPhoneNumber::ID:
+ func(static_cast<richTextPhoneNumber &>(obj));
+ return true;
+ case richTextIcon::ID:
+ func(static_cast<richTextIcon &>(obj));
+ return true;
+ case richTextReference::ID:
+ func(static_cast<richTextReference &>(obj));
+ return true;
+ case richTextAnchor::ID:
+ func(static_cast<richTextAnchor &>(obj));
+ return true;
+ case richTextAnchorLink::ID:
+ func(static_cast<richTextAnchorLink &>(obj));
+ return true;
+ case richTexts::ID:
+ func(static_cast<richTexts &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SearchMessagesFilter &obj, const T &func) {
+ switch (obj.get_id()) {
+ case searchMessagesFilterEmpty::ID:
+ func(static_cast<searchMessagesFilterEmpty &>(obj));
+ return true;
+ case searchMessagesFilterAnimation::ID:
+ func(static_cast<searchMessagesFilterAnimation &>(obj));
+ return true;
+ case searchMessagesFilterAudio::ID:
+ func(static_cast<searchMessagesFilterAudio &>(obj));
+ return true;
+ case searchMessagesFilterDocument::ID:
+ func(static_cast<searchMessagesFilterDocument &>(obj));
+ return true;
+ case searchMessagesFilterPhoto::ID:
+ func(static_cast<searchMessagesFilterPhoto &>(obj));
+ return true;
+ case searchMessagesFilterVideo::ID:
+ func(static_cast<searchMessagesFilterVideo &>(obj));
+ return true;
+ case searchMessagesFilterVoiceNote::ID:
+ func(static_cast<searchMessagesFilterVoiceNote &>(obj));
+ return true;
+ case searchMessagesFilterPhotoAndVideo::ID:
+ func(static_cast<searchMessagesFilterPhotoAndVideo &>(obj));
+ return true;
+ case searchMessagesFilterUrl::ID:
+ func(static_cast<searchMessagesFilterUrl &>(obj));
+ return true;
+ case searchMessagesFilterChatPhoto::ID:
+ func(static_cast<searchMessagesFilterChatPhoto &>(obj));
+ return true;
+ case searchMessagesFilterVideoNote::ID:
+ func(static_cast<searchMessagesFilterVideoNote &>(obj));
+ return true;
+ case searchMessagesFilterVoiceAndVideoNote::ID:
+ func(static_cast<searchMessagesFilterVoiceAndVideoNote &>(obj));
+ return true;
+ case searchMessagesFilterMention::ID:
+ func(static_cast<searchMessagesFilterMention &>(obj));
+ return true;
+ case searchMessagesFilterUnreadMention::ID:
+ func(static_cast<searchMessagesFilterUnreadMention &>(obj));
+ return true;
+ case searchMessagesFilterUnreadReaction::ID:
+ func(static_cast<searchMessagesFilterUnreadReaction &>(obj));
+ return true;
+ case searchMessagesFilterFailedToSend::ID:
+ func(static_cast<searchMessagesFilterFailedToSend &>(obj));
+ return true;
+ case searchMessagesFilterPinned::ID:
+ func(static_cast<searchMessagesFilterPinned &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SecretChatState &obj, const T &func) {
+ switch (obj.get_id()) {
+ case secretChatStatePending::ID:
+ func(static_cast<secretChatStatePending &>(obj));
+ return true;
+ case secretChatStateReady::ID:
+ func(static_cast<secretChatStateReady &>(obj));
+ return true;
+ case secretChatStateClosed::ID:
+ func(static_cast<secretChatStateClosed &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SessionType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case sessionTypeAndroid::ID:
+ func(static_cast<sessionTypeAndroid &>(obj));
+ return true;
+ case sessionTypeApple::ID:
+ func(static_cast<sessionTypeApple &>(obj));
+ return true;
+ case sessionTypeBrave::ID:
+ func(static_cast<sessionTypeBrave &>(obj));
+ return true;
+ case sessionTypeChrome::ID:
+ func(static_cast<sessionTypeChrome &>(obj));
+ return true;
+ case sessionTypeEdge::ID:
+ func(static_cast<sessionTypeEdge &>(obj));
+ return true;
+ case sessionTypeFirefox::ID:
+ func(static_cast<sessionTypeFirefox &>(obj));
+ return true;
+ case sessionTypeIpad::ID:
+ func(static_cast<sessionTypeIpad &>(obj));
+ return true;
+ case sessionTypeIphone::ID:
+ func(static_cast<sessionTypeIphone &>(obj));
+ return true;
+ case sessionTypeLinux::ID:
+ func(static_cast<sessionTypeLinux &>(obj));
+ return true;
+ case sessionTypeMac::ID:
+ func(static_cast<sessionTypeMac &>(obj));
+ return true;
+ case sessionTypeOpera::ID:
+ func(static_cast<sessionTypeOpera &>(obj));
+ return true;
+ case sessionTypeSafari::ID:
+ func(static_cast<sessionTypeSafari &>(obj));
+ return true;
+ case sessionTypeUbuntu::ID:
+ func(static_cast<sessionTypeUbuntu &>(obj));
+ return true;
+ case sessionTypeUnknown::ID:
+ func(static_cast<sessionTypeUnknown &>(obj));
+ return true;
+ case sessionTypeVivaldi::ID:
+ func(static_cast<sessionTypeVivaldi &>(obj));
+ return true;
+ case sessionTypeWindows::ID:
+ func(static_cast<sessionTypeWindows &>(obj));
+ return true;
+ case sessionTypeXbox::ID:
+ func(static_cast<sessionTypeXbox &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SpeechRecognitionResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case speechRecognitionResultPending::ID:
+ func(static_cast<speechRecognitionResultPending &>(obj));
+ return true;
+ case speechRecognitionResultText::ID:
+ func(static_cast<speechRecognitionResultText &>(obj));
+ return true;
+ case speechRecognitionResultError::ID:
+ func(static_cast<speechRecognitionResultError &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(StatisticalGraph &obj, const T &func) {
+ switch (obj.get_id()) {
+ case statisticalGraphData::ID:
+ func(static_cast<statisticalGraphData &>(obj));
+ return true;
+ case statisticalGraphAsync::ID:
+ func(static_cast<statisticalGraphAsync &>(obj));
+ return true;
+ case statisticalGraphError::ID:
+ func(static_cast<statisticalGraphError &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(StickerFormat &obj, const T &func) {
+ switch (obj.get_id()) {
+ case stickerFormatWebp::ID:
+ func(static_cast<stickerFormatWebp &>(obj));
+ return true;
+ case stickerFormatTgs::ID:
+ func(static_cast<stickerFormatTgs &>(obj));
+ return true;
+ case stickerFormatWebm::ID:
+ func(static_cast<stickerFormatWebm &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(StickerType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case stickerTypeRegular::ID:
+ func(static_cast<stickerTypeRegular &>(obj));
+ return true;
+ case stickerTypeMask::ID:
+ func(static_cast<stickerTypeMask &>(obj));
+ return true;
+ case stickerTypeCustomEmoji::ID:
+ func(static_cast<stickerTypeCustomEmoji &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(StorePaymentPurpose &obj, const T &func) {
+ switch (obj.get_id()) {
+ case storePaymentPurposePremiumSubscription::ID:
+ func(static_cast<storePaymentPurposePremiumSubscription &>(obj));
+ return true;
+ case storePaymentPurposeGiftedPremium::ID:
+ func(static_cast<storePaymentPurposeGiftedPremium &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SuggestedAction &obj, const T &func) {
+ switch (obj.get_id()) {
+ case suggestedActionEnableArchiveAndMuteNewChats::ID:
+ func(static_cast<suggestedActionEnableArchiveAndMuteNewChats &>(obj));
+ return true;
+ case suggestedActionCheckPassword::ID:
+ func(static_cast<suggestedActionCheckPassword &>(obj));
+ return true;
+ case suggestedActionCheckPhoneNumber::ID:
+ func(static_cast<suggestedActionCheckPhoneNumber &>(obj));
+ return true;
+ case suggestedActionViewChecksHint::ID:
+ func(static_cast<suggestedActionViewChecksHint &>(obj));
+ return true;
+ case suggestedActionConvertToBroadcastGroup::ID:
+ func(static_cast<suggestedActionConvertToBroadcastGroup &>(obj));
+ return true;
+ case suggestedActionSetPassword::ID:
+ func(static_cast<suggestedActionSetPassword &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SupergroupMembersFilter &obj, const T &func) {
+ switch (obj.get_id()) {
+ case supergroupMembersFilterRecent::ID:
+ func(static_cast<supergroupMembersFilterRecent &>(obj));
+ return true;
+ case supergroupMembersFilterContacts::ID:
+ func(static_cast<supergroupMembersFilterContacts &>(obj));
+ return true;
+ case supergroupMembersFilterAdministrators::ID:
+ func(static_cast<supergroupMembersFilterAdministrators &>(obj));
+ return true;
+ case supergroupMembersFilterSearch::ID:
+ func(static_cast<supergroupMembersFilterSearch &>(obj));
+ return true;
+ case supergroupMembersFilterRestricted::ID:
+ func(static_cast<supergroupMembersFilterRestricted &>(obj));
+ return true;
+ case supergroupMembersFilterBanned::ID:
+ func(static_cast<supergroupMembersFilterBanned &>(obj));
+ return true;
+ case supergroupMembersFilterMention::ID:
+ func(static_cast<supergroupMembersFilterMention &>(obj));
+ return true;
+ case supergroupMembersFilterBots::ID:
+ func(static_cast<supergroupMembersFilterBots &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(TMeUrlType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case tMeUrlTypeUser::ID:
+ func(static_cast<tMeUrlTypeUser &>(obj));
+ return true;
+ case tMeUrlTypeSupergroup::ID:
+ func(static_cast<tMeUrlTypeSupergroup &>(obj));
+ return true;
+ case tMeUrlTypeChatInvite::ID:
+ func(static_cast<tMeUrlTypeChatInvite &>(obj));
+ return true;
+ case tMeUrlTypeStickerSet::ID:
+ func(static_cast<tMeUrlTypeStickerSet &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(TargetChat &obj, const T &func) {
+ switch (obj.get_id()) {
+ case targetChatCurrent::ID:
+ func(static_cast<targetChatCurrent &>(obj));
+ return true;
+ case targetChatChosen::ID:
+ func(static_cast<targetChatChosen &>(obj));
+ return true;
+ case targetChatInternalLink::ID:
+ func(static_cast<targetChatInternalLink &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(TextEntityType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case textEntityTypeMention::ID:
+ func(static_cast<textEntityTypeMention &>(obj));
+ return true;
+ case textEntityTypeHashtag::ID:
+ func(static_cast<textEntityTypeHashtag &>(obj));
+ return true;
+ case textEntityTypeCashtag::ID:
+ func(static_cast<textEntityTypeCashtag &>(obj));
+ return true;
+ case textEntityTypeBotCommand::ID:
+ func(static_cast<textEntityTypeBotCommand &>(obj));
+ return true;
+ case textEntityTypeUrl::ID:
+ func(static_cast<textEntityTypeUrl &>(obj));
+ return true;
+ case textEntityTypeEmailAddress::ID:
+ func(static_cast<textEntityTypeEmailAddress &>(obj));
+ return true;
+ case textEntityTypePhoneNumber::ID:
+ func(static_cast<textEntityTypePhoneNumber &>(obj));
+ return true;
+ case textEntityTypeBankCardNumber::ID:
+ func(static_cast<textEntityTypeBankCardNumber &>(obj));
+ return true;
+ case textEntityTypeBold::ID:
+ func(static_cast<textEntityTypeBold &>(obj));
+ return true;
+ case textEntityTypeItalic::ID:
+ func(static_cast<textEntityTypeItalic &>(obj));
+ return true;
+ case textEntityTypeUnderline::ID:
+ func(static_cast<textEntityTypeUnderline &>(obj));
+ return true;
+ case textEntityTypeStrikethrough::ID:
+ func(static_cast<textEntityTypeStrikethrough &>(obj));
+ return true;
+ case textEntityTypeSpoiler::ID:
+ func(static_cast<textEntityTypeSpoiler &>(obj));
+ return true;
+ case textEntityTypeCode::ID:
+ func(static_cast<textEntityTypeCode &>(obj));
+ return true;
+ case textEntityTypePre::ID:
+ func(static_cast<textEntityTypePre &>(obj));
+ return true;
+ case textEntityTypePreCode::ID:
+ func(static_cast<textEntityTypePreCode &>(obj));
+ return true;
+ case textEntityTypeTextUrl::ID:
+ func(static_cast<textEntityTypeTextUrl &>(obj));
+ return true;
+ case textEntityTypeMentionName::ID:
+ func(static_cast<textEntityTypeMentionName &>(obj));
+ return true;
+ case textEntityTypeCustomEmoji::ID:
+ func(static_cast<textEntityTypeCustomEmoji &>(obj));
+ return true;
+ case textEntityTypeMediaTimestamp::ID:
+ func(static_cast<textEntityTypeMediaTimestamp &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(TextParseMode &obj, const T &func) {
+ switch (obj.get_id()) {
+ case textParseModeMarkdown::ID:
+ func(static_cast<textParseModeMarkdown &>(obj));
+ return true;
+ case textParseModeHTML::ID:
+ func(static_cast<textParseModeHTML &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ThumbnailFormat &obj, const T &func) {
+ switch (obj.get_id()) {
+ case thumbnailFormatJpeg::ID:
+ func(static_cast<thumbnailFormatJpeg &>(obj));
+ return true;
+ case thumbnailFormatGif::ID:
+ func(static_cast<thumbnailFormatGif &>(obj));
+ return true;
+ case thumbnailFormatMpeg4::ID:
+ func(static_cast<thumbnailFormatMpeg4 &>(obj));
+ return true;
+ case thumbnailFormatPng::ID:
+ func(static_cast<thumbnailFormatPng &>(obj));
+ return true;
+ case thumbnailFormatTgs::ID:
+ func(static_cast<thumbnailFormatTgs &>(obj));
+ return true;
+ case thumbnailFormatWebm::ID:
+ func(static_cast<thumbnailFormatWebm &>(obj));
+ return true;
+ case thumbnailFormatWebp::ID:
+ func(static_cast<thumbnailFormatWebp &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(TopChatCategory &obj, const T &func) {
+ switch (obj.get_id()) {
+ case topChatCategoryUsers::ID:
+ func(static_cast<topChatCategoryUsers &>(obj));
+ return true;
+ case topChatCategoryBots::ID:
+ func(static_cast<topChatCategoryBots &>(obj));
+ return true;
+ case topChatCategoryGroups::ID:
+ func(static_cast<topChatCategoryGroups &>(obj));
+ return true;
+ case topChatCategoryChannels::ID:
+ func(static_cast<topChatCategoryChannels &>(obj));
+ return true;
+ case topChatCategoryInlineBots::ID:
+ func(static_cast<topChatCategoryInlineBots &>(obj));
+ return true;
+ case topChatCategoryCalls::ID:
+ func(static_cast<topChatCategoryCalls &>(obj));
+ return true;
+ case topChatCategoryForwardChats::ID:
+ func(static_cast<topChatCategoryForwardChats &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Update &obj, const T &func) {
+ switch (obj.get_id()) {
+ case updateAuthorizationState::ID:
+ func(static_cast<updateAuthorizationState &>(obj));
+ return true;
+ case updateNewMessage::ID:
+ func(static_cast<updateNewMessage &>(obj));
+ return true;
+ case updateMessageSendAcknowledged::ID:
+ func(static_cast<updateMessageSendAcknowledged &>(obj));
+ return true;
+ case updateMessageSendSucceeded::ID:
+ func(static_cast<updateMessageSendSucceeded &>(obj));
+ return true;
+ case updateMessageSendFailed::ID:
+ func(static_cast<updateMessageSendFailed &>(obj));
+ return true;
+ case updateMessageContent::ID:
+ func(static_cast<updateMessageContent &>(obj));
+ return true;
+ case updateMessageEdited::ID:
+ func(static_cast<updateMessageEdited &>(obj));
+ return true;
+ case updateMessageIsPinned::ID:
+ func(static_cast<updateMessageIsPinned &>(obj));
+ return true;
+ case updateMessageInteractionInfo::ID:
+ func(static_cast<updateMessageInteractionInfo &>(obj));
+ return true;
+ case updateMessageContentOpened::ID:
+ func(static_cast<updateMessageContentOpened &>(obj));
+ return true;
+ case updateMessageMentionRead::ID:
+ func(static_cast<updateMessageMentionRead &>(obj));
+ return true;
+ case updateMessageUnreadReactions::ID:
+ func(static_cast<updateMessageUnreadReactions &>(obj));
+ return true;
+ case updateMessageLiveLocationViewed::ID:
+ func(static_cast<updateMessageLiveLocationViewed &>(obj));
+ return true;
+ case updateNewChat::ID:
+ func(static_cast<updateNewChat &>(obj));
+ return true;
+ case updateChatTitle::ID:
+ func(static_cast<updateChatTitle &>(obj));
+ return true;
+ case updateChatPhoto::ID:
+ func(static_cast<updateChatPhoto &>(obj));
+ return true;
+ case updateChatPermissions::ID:
+ func(static_cast<updateChatPermissions &>(obj));
+ return true;
+ case updateChatLastMessage::ID:
+ func(static_cast<updateChatLastMessage &>(obj));
+ return true;
+ case updateChatPosition::ID:
+ func(static_cast<updateChatPosition &>(obj));
+ return true;
+ case updateChatReadInbox::ID:
+ func(static_cast<updateChatReadInbox &>(obj));
+ return true;
+ case updateChatReadOutbox::ID:
+ func(static_cast<updateChatReadOutbox &>(obj));
+ return true;
+ case updateChatActionBar::ID:
+ func(static_cast<updateChatActionBar &>(obj));
+ return true;
+ case updateChatAvailableReactions::ID:
+ func(static_cast<updateChatAvailableReactions &>(obj));
+ return true;
+ case updateChatDraftMessage::ID:
+ func(static_cast<updateChatDraftMessage &>(obj));
+ return true;
+ case updateChatMessageSender::ID:
+ func(static_cast<updateChatMessageSender &>(obj));
+ return true;
+ case updateChatMessageTtl::ID:
+ func(static_cast<updateChatMessageTtl &>(obj));
+ return true;
+ case updateChatNotificationSettings::ID:
+ func(static_cast<updateChatNotificationSettings &>(obj));
+ return true;
+ case updateChatPendingJoinRequests::ID:
+ func(static_cast<updateChatPendingJoinRequests &>(obj));
+ return true;
+ case updateChatReplyMarkup::ID:
+ func(static_cast<updateChatReplyMarkup &>(obj));
+ return true;
+ case updateChatTheme::ID:
+ func(static_cast<updateChatTheme &>(obj));
+ return true;
+ case updateChatUnreadMentionCount::ID:
+ func(static_cast<updateChatUnreadMentionCount &>(obj));
+ return true;
+ case updateChatUnreadReactionCount::ID:
+ func(static_cast<updateChatUnreadReactionCount &>(obj));
+ return true;
+ case updateChatVideoChat::ID:
+ func(static_cast<updateChatVideoChat &>(obj));
+ return true;
+ case updateChatDefaultDisableNotification::ID:
+ func(static_cast<updateChatDefaultDisableNotification &>(obj));
+ return true;
+ case updateChatHasProtectedContent::ID:
+ func(static_cast<updateChatHasProtectedContent &>(obj));
+ return true;
+ case updateChatHasScheduledMessages::ID:
+ func(static_cast<updateChatHasScheduledMessages &>(obj));
+ return true;
+ case updateChatIsBlocked::ID:
+ func(static_cast<updateChatIsBlocked &>(obj));
+ return true;
+ case updateChatIsMarkedAsUnread::ID:
+ func(static_cast<updateChatIsMarkedAsUnread &>(obj));
+ return true;
+ case updateChatFilters::ID:
+ func(static_cast<updateChatFilters &>(obj));
+ return true;
+ case updateChatOnlineMemberCount::ID:
+ func(static_cast<updateChatOnlineMemberCount &>(obj));
+ return true;
+ case updateForumTopicInfo::ID:
+ func(static_cast<updateForumTopicInfo &>(obj));
+ return true;
+ case updateScopeNotificationSettings::ID:
+ func(static_cast<updateScopeNotificationSettings &>(obj));
+ return true;
+ case updateNotification::ID:
+ func(static_cast<updateNotification &>(obj));
+ return true;
+ case updateNotificationGroup::ID:
+ func(static_cast<updateNotificationGroup &>(obj));
+ return true;
+ case updateActiveNotifications::ID:
+ func(static_cast<updateActiveNotifications &>(obj));
+ return true;
+ case updateHavePendingNotifications::ID:
+ func(static_cast<updateHavePendingNotifications &>(obj));
+ return true;
+ case updateDeleteMessages::ID:
+ func(static_cast<updateDeleteMessages &>(obj));
+ return true;
+ case updateChatAction::ID:
+ func(static_cast<updateChatAction &>(obj));
+ return true;
+ case updateUserStatus::ID:
+ func(static_cast<updateUserStatus &>(obj));
+ return true;
+ case updateUser::ID:
+ func(static_cast<updateUser &>(obj));
+ return true;
+ case updateBasicGroup::ID:
+ func(static_cast<updateBasicGroup &>(obj));
+ return true;
+ case updateSupergroup::ID:
+ func(static_cast<updateSupergroup &>(obj));
+ return true;
+ case updateSecretChat::ID:
+ func(static_cast<updateSecretChat &>(obj));
+ return true;
+ case updateUserFullInfo::ID:
+ func(static_cast<updateUserFullInfo &>(obj));
+ return true;
+ case updateBasicGroupFullInfo::ID:
+ func(static_cast<updateBasicGroupFullInfo &>(obj));
+ return true;
+ case updateSupergroupFullInfo::ID:
+ func(static_cast<updateSupergroupFullInfo &>(obj));
+ return true;
+ case updateServiceNotification::ID:
+ func(static_cast<updateServiceNotification &>(obj));
+ return true;
+ case updateFile::ID:
+ func(static_cast<updateFile &>(obj));
+ return true;
+ case updateFileGenerationStart::ID:
+ func(static_cast<updateFileGenerationStart &>(obj));
+ return true;
+ case updateFileGenerationStop::ID:
+ func(static_cast<updateFileGenerationStop &>(obj));
+ return true;
+ case updateFileDownloads::ID:
+ func(static_cast<updateFileDownloads &>(obj));
+ return true;
+ case updateFileAddedToDownloads::ID:
+ func(static_cast<updateFileAddedToDownloads &>(obj));
+ return true;
+ case updateFileDownload::ID:
+ func(static_cast<updateFileDownload &>(obj));
+ return true;
+ case updateFileRemovedFromDownloads::ID:
+ func(static_cast<updateFileRemovedFromDownloads &>(obj));
+ return true;
+ case updateCall::ID:
+ func(static_cast<updateCall &>(obj));
+ return true;
+ case updateGroupCall::ID:
+ func(static_cast<updateGroupCall &>(obj));
+ return true;
+ case updateGroupCallParticipant::ID:
+ func(static_cast<updateGroupCallParticipant &>(obj));
+ return true;
+ case updateNewCallSignalingData::ID:
+ func(static_cast<updateNewCallSignalingData &>(obj));
+ return true;
+ case updateUserPrivacySettingRules::ID:
+ func(static_cast<updateUserPrivacySettingRules &>(obj));
+ return true;
+ case updateUnreadMessageCount::ID:
+ func(static_cast<updateUnreadMessageCount &>(obj));
+ return true;
+ case updateUnreadChatCount::ID:
+ func(static_cast<updateUnreadChatCount &>(obj));
+ return true;
+ case updateOption::ID:
+ func(static_cast<updateOption &>(obj));
+ return true;
+ case updateStickerSet::ID:
+ func(static_cast<updateStickerSet &>(obj));
+ return true;
+ case updateInstalledStickerSets::ID:
+ func(static_cast<updateInstalledStickerSets &>(obj));
+ return true;
+ case updateTrendingStickerSets::ID:
+ func(static_cast<updateTrendingStickerSets &>(obj));
+ return true;
+ case updateRecentStickers::ID:
+ func(static_cast<updateRecentStickers &>(obj));
+ return true;
+ case updateFavoriteStickers::ID:
+ func(static_cast<updateFavoriteStickers &>(obj));
+ return true;
+ case updateSavedAnimations::ID:
+ func(static_cast<updateSavedAnimations &>(obj));
+ return true;
+ case updateSavedNotificationSounds::ID:
+ func(static_cast<updateSavedNotificationSounds &>(obj));
+ return true;
+ case updateSelectedBackground::ID:
+ func(static_cast<updateSelectedBackground &>(obj));
+ return true;
+ case updateChatThemes::ID:
+ func(static_cast<updateChatThemes &>(obj));
+ return true;
+ case updateLanguagePackStrings::ID:
+ func(static_cast<updateLanguagePackStrings &>(obj));
+ return true;
+ case updateConnectionState::ID:
+ func(static_cast<updateConnectionState &>(obj));
+ return true;
+ case updateTermsOfService::ID:
+ func(static_cast<updateTermsOfService &>(obj));
+ return true;
+ case updateUsersNearby::ID:
+ func(static_cast<updateUsersNearby &>(obj));
+ return true;
+ case updateAttachmentMenuBots::ID:
+ func(static_cast<updateAttachmentMenuBots &>(obj));
+ return true;
+ case updateWebAppMessageSent::ID:
+ func(static_cast<updateWebAppMessageSent &>(obj));
+ return true;
+ case updateActiveEmojiReactions::ID:
+ func(static_cast<updateActiveEmojiReactions &>(obj));
+ return true;
+ case updateDefaultReactionType::ID:
+ func(static_cast<updateDefaultReactionType &>(obj));
+ return true;
+ case updateDiceEmojis::ID:
+ func(static_cast<updateDiceEmojis &>(obj));
+ return true;
+ case updateAnimatedEmojiMessageClicked::ID:
+ func(static_cast<updateAnimatedEmojiMessageClicked &>(obj));
+ return true;
+ case updateAnimationSearchParameters::ID:
+ func(static_cast<updateAnimationSearchParameters &>(obj));
+ return true;
+ case updateSuggestedActions::ID:
+ func(static_cast<updateSuggestedActions &>(obj));
+ return true;
+ case updateNewInlineQuery::ID:
+ func(static_cast<updateNewInlineQuery &>(obj));
+ return true;
+ case updateNewChosenInlineResult::ID:
+ func(static_cast<updateNewChosenInlineResult &>(obj));
+ return true;
+ case updateNewCallbackQuery::ID:
+ func(static_cast<updateNewCallbackQuery &>(obj));
+ return true;
+ case updateNewInlineCallbackQuery::ID:
+ func(static_cast<updateNewInlineCallbackQuery &>(obj));
+ return true;
+ case updateNewShippingQuery::ID:
+ func(static_cast<updateNewShippingQuery &>(obj));
+ return true;
+ case updateNewPreCheckoutQuery::ID:
+ func(static_cast<updateNewPreCheckoutQuery &>(obj));
+ return true;
+ case updateNewCustomEvent::ID:
+ func(static_cast<updateNewCustomEvent &>(obj));
+ return true;
+ case updateNewCustomQuery::ID:
+ func(static_cast<updateNewCustomQuery &>(obj));
+ return true;
+ case updatePoll::ID:
+ func(static_cast<updatePoll &>(obj));
+ return true;
+ case updatePollAnswer::ID:
+ func(static_cast<updatePollAnswer &>(obj));
+ return true;
+ case updateChatMember::ID:
+ func(static_cast<updateChatMember &>(obj));
+ return true;
+ case updateNewChatJoinRequest::ID:
+ func(static_cast<updateNewChatJoinRequest &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(UserPrivacySetting &obj, const T &func) {
+ switch (obj.get_id()) {
+ case userPrivacySettingShowStatus::ID:
+ func(static_cast<userPrivacySettingShowStatus &>(obj));
+ return true;
+ case userPrivacySettingShowProfilePhoto::ID:
+ func(static_cast<userPrivacySettingShowProfilePhoto &>(obj));
+ return true;
+ case userPrivacySettingShowLinkInForwardedMessages::ID:
+ func(static_cast<userPrivacySettingShowLinkInForwardedMessages &>(obj));
+ return true;
+ case userPrivacySettingShowPhoneNumber::ID:
+ func(static_cast<userPrivacySettingShowPhoneNumber &>(obj));
+ return true;
+ case userPrivacySettingAllowChatInvites::ID:
+ func(static_cast<userPrivacySettingAllowChatInvites &>(obj));
+ return true;
+ case userPrivacySettingAllowCalls::ID:
+ func(static_cast<userPrivacySettingAllowCalls &>(obj));
+ return true;
+ case userPrivacySettingAllowPeerToPeerCalls::ID:
+ func(static_cast<userPrivacySettingAllowPeerToPeerCalls &>(obj));
+ return true;
+ case userPrivacySettingAllowFindingByPhoneNumber::ID:
+ func(static_cast<userPrivacySettingAllowFindingByPhoneNumber &>(obj));
+ return true;
+ case userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages::ID:
+ func(static_cast<userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(UserPrivacySettingRule &obj, const T &func) {
+ switch (obj.get_id()) {
+ case userPrivacySettingRuleAllowAll::ID:
+ func(static_cast<userPrivacySettingRuleAllowAll &>(obj));
+ return true;
+ case userPrivacySettingRuleAllowContacts::ID:
+ func(static_cast<userPrivacySettingRuleAllowContacts &>(obj));
+ return true;
+ case userPrivacySettingRuleAllowUsers::ID:
+ func(static_cast<userPrivacySettingRuleAllowUsers &>(obj));
+ return true;
+ case userPrivacySettingRuleAllowChatMembers::ID:
+ func(static_cast<userPrivacySettingRuleAllowChatMembers &>(obj));
+ return true;
+ case userPrivacySettingRuleRestrictAll::ID:
+ func(static_cast<userPrivacySettingRuleRestrictAll &>(obj));
+ return true;
+ case userPrivacySettingRuleRestrictContacts::ID:
+ func(static_cast<userPrivacySettingRuleRestrictContacts &>(obj));
+ return true;
+ case userPrivacySettingRuleRestrictUsers::ID:
+ func(static_cast<userPrivacySettingRuleRestrictUsers &>(obj));
+ return true;
+ case userPrivacySettingRuleRestrictChatMembers::ID:
+ func(static_cast<userPrivacySettingRuleRestrictChatMembers &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(UserStatus &obj, const T &func) {
+ switch (obj.get_id()) {
+ case userStatusEmpty::ID:
+ func(static_cast<userStatusEmpty &>(obj));
+ return true;
+ case userStatusOnline::ID:
+ func(static_cast<userStatusOnline &>(obj));
+ return true;
+ case userStatusOffline::ID:
+ func(static_cast<userStatusOffline &>(obj));
+ return true;
+ case userStatusRecently::ID:
+ func(static_cast<userStatusRecently &>(obj));
+ return true;
+ case userStatusLastWeek::ID:
+ func(static_cast<userStatusLastWeek &>(obj));
+ return true;
+ case userStatusLastMonth::ID:
+ func(static_cast<userStatusLastMonth &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(UserType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case userTypeRegular::ID:
+ func(static_cast<userTypeRegular &>(obj));
+ return true;
+ case userTypeDeleted::ID:
+ func(static_cast<userTypeDeleted &>(obj));
+ return true;
+ case userTypeBot::ID:
+ func(static_cast<userTypeBot &>(obj));
+ return true;
+ case userTypeUnknown::ID:
+ func(static_cast<userTypeUnknown &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(VectorPathCommand &obj, const T &func) {
+ switch (obj.get_id()) {
+ case vectorPathCommandLine::ID:
+ func(static_cast<vectorPathCommandLine &>(obj));
+ return true;
+ case vectorPathCommandCubicBezierCurve::ID:
+ func(static_cast<vectorPathCommandCubicBezierCurve &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+} // namespace td_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.cpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.cpp
new file mode 100644
index 0000000000..f20c545374
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.cpp
@@ -0,0 +1,15711 @@
+#include "td/telegram/td_api_json.h"
+
+#include "td/telegram/td_api.h"
+#include "td/telegram/td_api.hpp"
+
+#include "td/tl/tl_json.h"
+
+#include "td/utils/base64.h"
+#include "td/utils/common.h"
+#include "td/utils/FlatHashMap.h"
+#include "td/utils/Slice.h"
+
+#include <functional>
+
+namespace td {
+namespace td_api {
+
+void to_json(JsonValueScope &jv, const tl_object_ptr<Object> &value) {
+ td::to_json(jv, std::move(value));
+}
+
+Status from_json(tl_object_ptr<Function> &to, td::JsonValue from) {
+ return td::from_json(to, std::move(from));
+}
+
+template <class T>
+auto lazy_to_json(JsonValueScope &jv, const T &t) -> decltype(td_api::to_json(jv, t)) {
+ return td_api::to_json(jv, t);
+}
+
+template <class T>
+void lazy_to_json(std::reference_wrapper<JsonValueScope>, const T &t) {
+ UNREACHABLE();
+}
+
+void to_json(JsonValueScope &jv, const Object &object) {
+ downcast_call(const_cast<Object &>(object), [&jv](const auto &object) { lazy_to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const Function &object) {
+ downcast_call(const_cast<Function &>(object), [&jv](const auto &object) { lazy_to_json(jv, object); });
+}
+
+Result<int32> tl_constructor_from_string(td_api::BackgroundFill *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"backgroundFillSolid", 1010678813},
+ {"backgroundFillGradient", -1839206017},
+ {"backgroundFillFreeformGradient", -1145469255}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::BackgroundType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"backgroundTypeWallpaper", 1972128891},
+ {"backgroundTypePattern", 1290213117},
+ {"backgroundTypeFill", 993008684}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::BotCommandScope *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"botCommandScopeDefault", 795652779},
+ {"botCommandScopeAllPrivateChats", -344889543},
+ {"botCommandScopeAllGroupChats", -981088162},
+ {"botCommandScopeAllChatAdministrators", 1998329169},
+ {"botCommandScopeChat", -430234971},
+ {"botCommandScopeChatAdministrators", 1119682126},
+ {"botCommandScopeChatMember", -211380494}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::CallProblem *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"callProblemEcho", 801116548},
+ {"callProblemNoise", 1053065359},
+ {"callProblemInterruptions", 1119493218},
+ {"callProblemDistortedSpeech", 379960581},
+ {"callProblemSilentLocal", 253652790},
+ {"callProblemSilentRemote", 573634714},
+ {"callProblemDropped", -1207311487},
+ {"callProblemDistortedVideo", 385245706},
+ {"callProblemPixelatedVideo", 2115315411}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::CallbackQueryPayload *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"callbackQueryPayloadData", -1977729946},
+ {"callbackQueryPayloadDataWithPassword", 1340266738},
+ {"callbackQueryPayloadGame", 1303571512}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::ChatAction *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"chatActionTyping", 380122167},
+ {"chatActionRecordingVideo", 216553362},
+ {"chatActionUploadingVideo", 1234185270},
+ {"chatActionRecordingVoiceNote", -808850058},
+ {"chatActionUploadingVoiceNote", -613643666},
+ {"chatActionUploadingPhoto", 654240583},
+ {"chatActionUploadingDocument", 167884362},
+ {"chatActionChoosingSticker", 372753697},
+ {"chatActionChoosingLocation", -2017893596},
+ {"chatActionChoosingContact", -1222507496},
+ {"chatActionStartPlayingGame", -865884164},
+ {"chatActionRecordingVideoNote", 16523393},
+ {"chatActionUploadingVideoNote", 1172364918},
+ {"chatActionWatchingAnimations", 2052990641},
+ {"chatActionCancel", 1160523958}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::ChatAvailableReactions *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"chatAvailableReactionsAll", -537887666},
+ {"chatAvailableReactionsSome", -640810821}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::ChatList *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"chatListMain", -400991316},
+ {"chatListArchive", 362770115},
+ {"chatListFilter", -2022707655}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::ChatMemberStatus *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"chatMemberStatusCreator", -160019714},
+ {"chatMemberStatusAdministrator", -70024163},
+ {"chatMemberStatusMember", 844723285},
+ {"chatMemberStatusRestricted", 1661432998},
+ {"chatMemberStatusLeft", -5815259},
+ {"chatMemberStatusBanned", -1653518666}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::ChatMembersFilter *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"chatMembersFilterContacts", 1774485671},
+ {"chatMembersFilterAdministrators", -1266893796},
+ {"chatMembersFilterMembers", 670504342},
+ {"chatMembersFilterMention", 856419831},
+ {"chatMembersFilterRestricted", 1256282813},
+ {"chatMembersFilterBanned", -1863102648},
+ {"chatMembersFilterBots", -1422567288}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::ChatReportReason *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"chatReportReasonSpam", -510848863},
+ {"chatReportReasonViolence", -1330235395},
+ {"chatReportReasonPornography", 722614385},
+ {"chatReportReasonChildAbuse", -1070686531},
+ {"chatReportReasonCopyright", 986898080},
+ {"chatReportReasonUnrelatedLocation", 2632403},
+ {"chatReportReasonFake", -1713230446},
+ {"chatReportReasonIllegalDrugs", -844539307},
+ {"chatReportReasonPersonalDetails", 1121159029},
+ {"chatReportReasonCustom", 1288925974}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::DeviceToken *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"deviceTokenFirebaseCloudMessaging", -797881849},
+ {"deviceTokenApplePush", 387541955},
+ {"deviceTokenApplePushVoIP", 804275689},
+ {"deviceTokenWindowsPush", -1410514289},
+ {"deviceTokenMicrosoftPush", 1224269900},
+ {"deviceTokenMicrosoftPushVoIP", -785603759},
+ {"deviceTokenWebPush", -1694507273},
+ {"deviceTokenSimplePush", 49584736},
+ {"deviceTokenUbuntuPush", 1782320422},
+ {"deviceTokenBlackBerryPush", 1559167234},
+ {"deviceTokenTizenPush", -1359947213}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::EmailAddressAuthentication *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"emailAddressAuthenticationCode", -993257022},
+ {"emailAddressAuthenticationAppleId", 633948265},
+ {"emailAddressAuthenticationGoogleId", -19142846}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::FileType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"fileTypeNone", 2003009189},
+ {"fileTypeAnimation", -290816582},
+ {"fileTypeAudio", -709112160},
+ {"fileTypeDocument", -564722929},
+ {"fileTypeNotificationSound", -1020289271},
+ {"fileTypePhoto", -1718914651},
+ {"fileTypeProfilePhoto", 1795089315},
+ {"fileTypeSecret", -1871899401},
+ {"fileTypeSecretThumbnail", -1401326026},
+ {"fileTypeSecure", -1419133146},
+ {"fileTypeSticker", 475233385},
+ {"fileTypeThumbnail", -12443298},
+ {"fileTypeUnknown", -2011566768},
+ {"fileTypeVideo", 1430816539},
+ {"fileTypeVideoNote", -518412385},
+ {"fileTypeVoiceNote", -588681661},
+ {"fileTypeWallpaper", 1854930076}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::GroupCallVideoQuality *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"groupCallVideoQualityThumbnail", -379186304},
+ {"groupCallVideoQualityMedium", 394968234},
+ {"groupCallVideoQualityFull", -2125916617}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::InlineKeyboardButtonType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"inlineKeyboardButtonTypeUrl", 1130741420},
+ {"inlineKeyboardButtonTypeLoginUrl", -1203413081},
+ {"inlineKeyboardButtonTypeWebApp", -1767471672},
+ {"inlineKeyboardButtonTypeCallback", -1127515139},
+ {"inlineKeyboardButtonTypeCallbackWithPassword", 908018248},
+ {"inlineKeyboardButtonTypeCallbackGame", -383429528},
+ {"inlineKeyboardButtonTypeSwitchInline", -2035563307},
+ {"inlineKeyboardButtonTypeBuy", 1360739440},
+ {"inlineKeyboardButtonTypeUser", 1836574114}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::InputBackground *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"inputBackgroundLocal", -1747094364},
+ {"inputBackgroundRemote", -274976231}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::InputChatPhoto *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"inputChatPhotoPrevious", 23128529},
+ {"inputChatPhotoStatic", 1979179699},
+ {"inputChatPhotoAnimation", 90846242}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::InputCredentials *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"inputCredentialsSaved", -2034385364},
+ {"inputCredentialsNew", -829689558},
+ {"inputCredentialsApplePay", -1246570799},
+ {"inputCredentialsGooglePay", 844384100}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::InputFile *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"inputFileId", 1788906253},
+ {"inputFileRemote", -107574466},
+ {"inputFileLocal", 2056030919},
+ {"inputFileGenerated", -1333385216}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::InputInlineQueryResult *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"inputInlineQueryResultAnimation", -1489808874},
+ {"inputInlineQueryResultArticle", 1973670156},
+ {"inputInlineQueryResultAudio", 1260139988},
+ {"inputInlineQueryResultContact", 1846064594},
+ {"inputInlineQueryResultDocument", 578801869},
+ {"inputInlineQueryResultGame", 966074327},
+ {"inputInlineQueryResultLocation", -1887650218},
+ {"inputInlineQueryResultPhoto", -1123338721},
+ {"inputInlineQueryResultSticker", 274007129},
+ {"inputInlineQueryResultVenue", 541704509},
+ {"inputInlineQueryResultVideo", 1724073191},
+ {"inputInlineQueryResultVoiceNote", -1790072503}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::InputInvoice *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"inputInvoiceMessage", 1490872848},
+ {"inputInvoiceName", -1312155917}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::InputMessageContent *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"inputMessageText", 247050392},
+ {"inputMessageAnimation", 1208433535},
+ {"inputMessageAudio", -626786126},
+ {"inputMessageDocument", 1633383097},
+ {"inputMessagePhoto", 1648801584},
+ {"inputMessageSticker", 1072805625},
+ {"inputMessageVideo", -2108486755},
+ {"inputMessageVideoNote", 279108859},
+ {"inputMessageVoiceNote", 2136519657},
+ {"inputMessageLocation", 648735088},
+ {"inputMessageVenue", 1447926269},
+ {"inputMessageContact", -982446849},
+ {"inputMessageDice", 841574313},
+ {"inputMessageGame", 1252944610},
+ {"inputMessageInvoice", 885857632},
+ {"inputMessagePoll", 2054629900},
+ {"inputMessageForwarded", 1696232440}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::InputPassportElement *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"inputPassportElementPersonalDetails", 164791359},
+ {"inputPassportElementPassport", -497011356},
+ {"inputPassportElementDriverLicense", 304813264},
+ {"inputPassportElementIdentityCard", -9963390},
+ {"inputPassportElementInternalPassport", 715360043},
+ {"inputPassportElementAddress", 461630480},
+ {"inputPassportElementUtilityBill", 1389203841},
+ {"inputPassportElementBankStatement", -26585208},
+ {"inputPassportElementRentalAgreement", 1736154155},
+ {"inputPassportElementPassportRegistration", 1314562128},
+ {"inputPassportElementTemporaryRegistration", -1913238047},
+ {"inputPassportElementPhoneNumber", 1319357497},
+ {"inputPassportElementEmailAddress", -248605659}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::InputPassportElementErrorSource *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"inputPassportElementErrorSourceUnspecified", 267230319},
+ {"inputPassportElementErrorSourceDataField", -426795002},
+ {"inputPassportElementErrorSourceFrontSide", 588023741},
+ {"inputPassportElementErrorSourceReverseSide", 413072891},
+ {"inputPassportElementErrorSourceSelfie", -773575528},
+ {"inputPassportElementErrorSourceTranslationFile", 505842299},
+ {"inputPassportElementErrorSourceTranslationFiles", -527254048},
+ {"inputPassportElementErrorSourceFile", -298492469},
+ {"inputPassportElementErrorSourceFiles", -2008541640}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::JsonValue *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"jsonValueNull", -92872499},
+ {"jsonValueBoolean", -2142186576},
+ {"jsonValueNumber", -1010822033},
+ {"jsonValueString", 1597947313},
+ {"jsonValueArray", -183913546},
+ {"jsonValueObject", 520252026}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::KeyboardButtonType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"keyboardButtonTypeText", -1773037256},
+ {"keyboardButtonTypeRequestPhoneNumber", -1529235527},
+ {"keyboardButtonTypeRequestLocation", -125661955},
+ {"keyboardButtonTypeRequestPoll", 1902435512},
+ {"keyboardButtonTypeWebApp", 1892220770}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::LanguagePackStringValue *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"languagePackStringValueOrdinary", -249256352},
+ {"languagePackStringValuePluralized", 1906840261},
+ {"languagePackStringValueDeleted", 1834792698}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::LogStream *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"logStreamDefault", 1390581436},
+ {"logStreamFile", 1532136933},
+ {"logStreamEmpty", -499912244}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::MaskPoint *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"maskPointForehead", 1027512005},
+ {"maskPointEyes", 1748310861},
+ {"maskPointMouth", 411773406},
+ {"maskPointChin", 534995335}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::MessageSchedulingState *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"messageSchedulingStateSendAtDate", -1485570073},
+ {"messageSchedulingStateSendWhenOnline", 2092947464}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::MessageSender *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"messageSenderUser", -336109341},
+ {"messageSenderChat", -239660751}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::NetworkStatisticsEntry *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"networkStatisticsEntryFile", 188452706},
+ {"networkStatisticsEntryCall", 737000365}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::NetworkType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"networkTypeNone", -1971691759},
+ {"networkTypeMobile", 819228239},
+ {"networkTypeMobileRoaming", -1435199760},
+ {"networkTypeWiFi", -633872070},
+ {"networkTypeOther", 1942128539}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::NotificationSettingsScope *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"notificationSettingsScopePrivateChats", 937446759},
+ {"notificationSettingsScopeGroupChats", 1212142067},
+ {"notificationSettingsScopeChannelChats", 548013448}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::OptionValue *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"optionValueBoolean", 63135518},
+ {"optionValueEmpty", 918955155},
+ {"optionValueInteger", -186858780},
+ {"optionValueString", 756248212}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::PassportElementType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"passportElementTypePersonalDetails", -1032136365},
+ {"passportElementTypePassport", -436360376},
+ {"passportElementTypeDriverLicense", 1827298379},
+ {"passportElementTypeIdentityCard", -502356132},
+ {"passportElementTypeInternalPassport", -793781959},
+ {"passportElementTypeAddress", 496327874},
+ {"passportElementTypeUtilityBill", 627084906},
+ {"passportElementTypeBankStatement", 574095667},
+ {"passportElementTypeRentalAgreement", -2060583280},
+ {"passportElementTypePassportRegistration", -159478209},
+ {"passportElementTypeTemporaryRegistration", 1092498527},
+ {"passportElementTypePhoneNumber", -995361172},
+ {"passportElementTypeEmailAddress", -79321405}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::PollType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"pollTypeRegular", 641265698},
+ {"pollTypeQuiz", 657013913}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::PremiumFeature *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"premiumFeatureIncreasedLimits", 1785455031},
+ {"premiumFeatureIncreasedUploadFileSize", 1825367155},
+ {"premiumFeatureImprovedDownloadSpeed", -267695554},
+ {"premiumFeatureVoiceRecognition", 1288216542},
+ {"premiumFeatureDisabledAds", -2008587702},
+ {"premiumFeatureUniqueReactions", 766750743},
+ {"premiumFeatureUniqueStickers", -2101773312},
+ {"premiumFeatureCustomEmoji", 1332599628},
+ {"premiumFeatureAdvancedChatManagement", 796347674},
+ {"premiumFeatureProfileBadge", 233648322},
+ {"premiumFeatureEmojiStatus", -36516639},
+ {"premiumFeatureAnimatedProfilePhoto", -100741914},
+ {"premiumFeatureForumTopicIcon", -823172286},
+ {"premiumFeatureAppIcons", 1585050761}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::PremiumLimitType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"premiumLimitTypeSupergroupCount", -247467131},
+ {"premiumLimitTypePinnedChatCount", -998947871},
+ {"premiumLimitTypeCreatedPublicChatCount", 446086841},
+ {"premiumLimitTypeSavedAnimationCount", -19759735},
+ {"premiumLimitTypeFavoriteStickerCount", 639754787},
+ {"premiumLimitTypeChatFilterCount", -644517214},
+ {"premiumLimitTypeChatFilterChosenChatCount", 2057969759},
+ {"premiumLimitTypePinnedArchivedChatCount", 1485515276},
+ {"premiumLimitTypeCaptionLength", 293984314},
+ {"premiumLimitTypeBioLength", -1146976765}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::PremiumSource *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"premiumSourceLimitExceeded", -2052159742},
+ {"premiumSourceFeature", 445813541},
+ {"premiumSourceLink", 2135071132},
+ {"premiumSourceSettings", -285702859}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::ProxyType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"proxyTypeSocks5", -890027341},
+ {"proxyTypeHttp", -1547188361},
+ {"proxyTypeMtproto", -1964826627}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::PublicChatType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"publicChatTypeHasUsername", 350789758},
+ {"publicChatTypeIsLocationBased", 1183735952}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::ReactionType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"reactionTypeEmoji", -1942084920},
+ {"reactionTypeCustomEmoji", -989117709}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::ReplyMarkup *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"replyMarkupRemoveKeyboard", -691252879},
+ {"replyMarkupForceReply", 1101461919},
+ {"replyMarkupShowKeyboard", -64985802},
+ {"replyMarkupInlineKeyboard", -619317658}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::SearchMessagesFilter *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"searchMessagesFilterEmpty", -869395657},
+ {"searchMessagesFilterAnimation", -155713339},
+ {"searchMessagesFilterAudio", 867505275},
+ {"searchMessagesFilterDocument", 1526331215},
+ {"searchMessagesFilterPhoto", 925932293},
+ {"searchMessagesFilterVideo", 115538222},
+ {"searchMessagesFilterVoiceNote", 1841439357},
+ {"searchMessagesFilterPhotoAndVideo", 1352130963},
+ {"searchMessagesFilterUrl", -1828724341},
+ {"searchMessagesFilterChatPhoto", -1247751329},
+ {"searchMessagesFilterVideoNote", 564323321},
+ {"searchMessagesFilterVoiceAndVideoNote", 664174819},
+ {"searchMessagesFilterMention", 2001258652},
+ {"searchMessagesFilterUnreadMention", -95769149},
+ {"searchMessagesFilterUnreadReaction", -1379651328},
+ {"searchMessagesFilterFailedToSend", -596322564},
+ {"searchMessagesFilterPinned", 371805512}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::StickerFormat *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"stickerFormatWebp", -2123043040},
+ {"stickerFormatTgs", 1614588662},
+ {"stickerFormatWebm", -2070162097}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::StickerType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"stickerTypeRegular", 56345973},
+ {"stickerTypeMask", -1765394796},
+ {"stickerTypeCustomEmoji", -120752249}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::StorePaymentPurpose *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"storePaymentPurposePremiumSubscription", -1497906096},
+ {"storePaymentPurposeGiftedPremium", 1916846289}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::SuggestedAction *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"suggestedActionEnableArchiveAndMuteNewChats", 2017586255},
+ {"suggestedActionCheckPassword", 1910534839},
+ {"suggestedActionCheckPhoneNumber", 648771563},
+ {"suggestedActionViewChecksHint", 891303239},
+ {"suggestedActionConvertToBroadcastGroup", -965071304},
+ {"suggestedActionSetPassword", 1863613848}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::SupergroupMembersFilter *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"supergroupMembersFilterRecent", 1178199509},
+ {"supergroupMembersFilterContacts", -1282910856},
+ {"supergroupMembersFilterAdministrators", -2097380265},
+ {"supergroupMembersFilterSearch", -1696358469},
+ {"supergroupMembersFilterRestricted", -1107800034},
+ {"supergroupMembersFilterBanned", -1210621683},
+ {"supergroupMembersFilterMention", 947915036},
+ {"supergroupMembersFilterBots", 492138918}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::TextEntityType *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"textEntityTypeMention", 934535013},
+ {"textEntityTypeHashtag", -1023958307},
+ {"textEntityTypeCashtag", 1222915915},
+ {"textEntityTypeBotCommand", -1150997581},
+ {"textEntityTypeUrl", -1312762756},
+ {"textEntityTypeEmailAddress", 1425545249},
+ {"textEntityTypePhoneNumber", -1160140246},
+ {"textEntityTypeBankCardNumber", 105986320},
+ {"textEntityTypeBold", -1128210000},
+ {"textEntityTypeItalic", -118253987},
+ {"textEntityTypeUnderline", 792317842},
+ {"textEntityTypeStrikethrough", 961529082},
+ {"textEntityTypeSpoiler", 544019899},
+ {"textEntityTypeCode", -974534326},
+ {"textEntityTypePre", 1648958606},
+ {"textEntityTypePreCode", -945325397},
+ {"textEntityTypeTextUrl", 445719651},
+ {"textEntityTypeMentionName", -1570974289},
+ {"textEntityTypeCustomEmoji", 1724820677},
+ {"textEntityTypeMediaTimestamp", -1841898992}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::TextParseMode *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"textParseModeMarkdown", 360073407},
+ {"textParseModeHTML", 1660208627}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::TopChatCategory *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"topChatCategoryUsers", 1026706816},
+ {"topChatCategoryBots", -1577129195},
+ {"topChatCategoryGroups", 1530056846},
+ {"topChatCategoryChannels", -500825885},
+ {"topChatCategoryInlineBots", 377023356},
+ {"topChatCategoryCalls", 356208861},
+ {"topChatCategoryForwardChats", 1695922133}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::UserPrivacySetting *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"userPrivacySettingShowStatus", 1862829310},
+ {"userPrivacySettingShowProfilePhoto", 1408485877},
+ {"userPrivacySettingShowLinkInForwardedMessages", 592688870},
+ {"userPrivacySettingShowPhoneNumber", -791567831},
+ {"userPrivacySettingAllowChatInvites", 1271668007},
+ {"userPrivacySettingAllowCalls", -906967291},
+ {"userPrivacySettingAllowPeerToPeerCalls", 352500032},
+ {"userPrivacySettingAllowFindingByPhoneNumber", -1846645423},
+ {"userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages", 338112060}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::UserPrivacySettingRule *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"userPrivacySettingRuleAllowAll", -1967186881},
+ {"userPrivacySettingRuleAllowContacts", -1892733680},
+ {"userPrivacySettingRuleAllowUsers", 1110988334},
+ {"userPrivacySettingRuleAllowChatMembers", -2048749863},
+ {"userPrivacySettingRuleRestrictAll", -1406495408},
+ {"userPrivacySettingRuleRestrictContacts", 1008389378},
+ {"userPrivacySettingRuleRestrictUsers", 622796522},
+ {"userPrivacySettingRuleRestrictChatMembers", 392530897}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::Object *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"accountTtl", 1324495492},
+ {"address", -2043654342},
+ {"autoDownloadSettings", -813805749},
+ {"backgroundFillSolid", 1010678813},
+ {"backgroundFillGradient", -1839206017},
+ {"backgroundFillFreeformGradient", -1145469255},
+ {"backgroundTypeWallpaper", 1972128891},
+ {"backgroundTypePattern", 1290213117},
+ {"backgroundTypeFill", 993008684},
+ {"botCommand", -1032140601},
+ {"botCommandScopeDefault", 795652779},
+ {"botCommandScopeAllPrivateChats", -344889543},
+ {"botCommandScopeAllGroupChats", -981088162},
+ {"botCommandScopeAllChatAdministrators", 1998329169},
+ {"botCommandScopeChat", -430234971},
+ {"botCommandScopeChatAdministrators", 1119682126},
+ {"botCommandScopeChatMember", -211380494},
+ {"botMenuButton", -944407322},
+ {"callProblemEcho", 801116548},
+ {"callProblemNoise", 1053065359},
+ {"callProblemInterruptions", 1119493218},
+ {"callProblemDistortedSpeech", 379960581},
+ {"callProblemSilentLocal", 253652790},
+ {"callProblemSilentRemote", 573634714},
+ {"callProblemDropped", -1207311487},
+ {"callProblemDistortedVideo", 385245706},
+ {"callProblemPixelatedVideo", 2115315411},
+ {"callProtocol", -1075562897},
+ {"callbackQueryPayloadData", -1977729946},
+ {"callbackQueryPayloadDataWithPassword", 1340266738},
+ {"callbackQueryPayloadGame", 1303571512},
+ {"chatActionTyping", 380122167},
+ {"chatActionRecordingVideo", 216553362},
+ {"chatActionUploadingVideo", 1234185270},
+ {"chatActionRecordingVoiceNote", -808850058},
+ {"chatActionUploadingVoiceNote", -613643666},
+ {"chatActionUploadingPhoto", 654240583},
+ {"chatActionUploadingDocument", 167884362},
+ {"chatActionChoosingSticker", 372753697},
+ {"chatActionChoosingLocation", -2017893596},
+ {"chatActionChoosingContact", -1222507496},
+ {"chatActionStartPlayingGame", -865884164},
+ {"chatActionRecordingVideoNote", 16523393},
+ {"chatActionUploadingVideoNote", 1172364918},
+ {"chatActionWatchingAnimations", 2052990641},
+ {"chatActionCancel", 1160523958},
+ {"chatAdministratorRights", -1384650041},
+ {"chatAvailableReactionsAll", -537887666},
+ {"chatAvailableReactionsSome", -640810821},
+ {"chatEventLogFilters", 1648261677},
+ {"chatFilter", -664815123},
+ {"chatInviteLinkMember", -1409060582},
+ {"chatJoinRequest", 59341416},
+ {"chatListMain", -400991316},
+ {"chatListArchive", 362770115},
+ {"chatListFilter", -2022707655},
+ {"chatLocation", -1566863583},
+ {"chatMemberStatusCreator", -160019714},
+ {"chatMemberStatusAdministrator", -70024163},
+ {"chatMemberStatusMember", 844723285},
+ {"chatMemberStatusRestricted", 1661432998},
+ {"chatMemberStatusLeft", -5815259},
+ {"chatMemberStatusBanned", -1653518666},
+ {"chatMembersFilterContacts", 1774485671},
+ {"chatMembersFilterAdministrators", -1266893796},
+ {"chatMembersFilterMembers", 670504342},
+ {"chatMembersFilterMention", 856419831},
+ {"chatMembersFilterRestricted", 1256282813},
+ {"chatMembersFilterBanned", -1863102648},
+ {"chatMembersFilterBots", -1422567288},
+ {"chatNotificationSettings", 944322400},
+ {"chatPermissions", -835592567},
+ {"chatReportReasonSpam", -510848863},
+ {"chatReportReasonViolence", -1330235395},
+ {"chatReportReasonPornography", 722614385},
+ {"chatReportReasonChildAbuse", -1070686531},
+ {"chatReportReasonCopyright", 986898080},
+ {"chatReportReasonUnrelatedLocation", 2632403},
+ {"chatReportReasonFake", -1713230446},
+ {"chatReportReasonIllegalDrugs", -844539307},
+ {"chatReportReasonPersonalDetails", 1121159029},
+ {"chatReportReasonCustom", 1288925974},
+ {"contact", -1993844876},
+ {"date", -277956960},
+ {"deviceTokenFirebaseCloudMessaging", -797881849},
+ {"deviceTokenApplePush", 387541955},
+ {"deviceTokenApplePushVoIP", 804275689},
+ {"deviceTokenWindowsPush", -1410514289},
+ {"deviceTokenMicrosoftPush", 1224269900},
+ {"deviceTokenMicrosoftPushVoIP", -785603759},
+ {"deviceTokenWebPush", -1694507273},
+ {"deviceTokenSimplePush", 49584736},
+ {"deviceTokenUbuntuPush", 1782320422},
+ {"deviceTokenBlackBerryPush", 1559167234},
+ {"deviceTokenTizenPush", -1359947213},
+ {"draftMessage", 1373050112},
+ {"emailAddressAuthenticationCode", -993257022},
+ {"emailAddressAuthenticationAppleId", 633948265},
+ {"emailAddressAuthenticationGoogleId", -19142846},
+ {"emojiStatus", 1092133478},
+ {"error", -1679978726},
+ {"fileTypeNone", 2003009189},
+ {"fileTypeAnimation", -290816582},
+ {"fileTypeAudio", -709112160},
+ {"fileTypeDocument", -564722929},
+ {"fileTypeNotificationSound", -1020289271},
+ {"fileTypePhoto", -1718914651},
+ {"fileTypeProfilePhoto", 1795089315},
+ {"fileTypeSecret", -1871899401},
+ {"fileTypeSecretThumbnail", -1401326026},
+ {"fileTypeSecure", -1419133146},
+ {"fileTypeSticker", 475233385},
+ {"fileTypeThumbnail", -12443298},
+ {"fileTypeUnknown", -2011566768},
+ {"fileTypeVideo", 1430816539},
+ {"fileTypeVideoNote", -518412385},
+ {"fileTypeVoiceNote", -588681661},
+ {"fileTypeWallpaper", 1854930076},
+ {"formattedText", -252624564},
+ {"forumTopicIcon", -818765421},
+ {"groupCallVideoQualityThumbnail", -379186304},
+ {"groupCallVideoQualityMedium", 394968234},
+ {"groupCallVideoQualityFull", -2125916617},
+ {"inlineKeyboardButton", -372105704},
+ {"inlineKeyboardButtonTypeUrl", 1130741420},
+ {"inlineKeyboardButtonTypeLoginUrl", -1203413081},
+ {"inlineKeyboardButtonTypeWebApp", -1767471672},
+ {"inlineKeyboardButtonTypeCallback", -1127515139},
+ {"inlineKeyboardButtonTypeCallbackWithPassword", 908018248},
+ {"inlineKeyboardButtonTypeCallbackGame", -383429528},
+ {"inlineKeyboardButtonTypeSwitchInline", -2035563307},
+ {"inlineKeyboardButtonTypeBuy", 1360739440},
+ {"inlineKeyboardButtonTypeUser", 1836574114},
+ {"inputBackgroundLocal", -1747094364},
+ {"inputBackgroundRemote", -274976231},
+ {"inputChatPhotoPrevious", 23128529},
+ {"inputChatPhotoStatic", 1979179699},
+ {"inputChatPhotoAnimation", 90846242},
+ {"inputCredentialsSaved", -2034385364},
+ {"inputCredentialsNew", -829689558},
+ {"inputCredentialsApplePay", -1246570799},
+ {"inputCredentialsGooglePay", 844384100},
+ {"inputFileId", 1788906253},
+ {"inputFileRemote", -107574466},
+ {"inputFileLocal", 2056030919},
+ {"inputFileGenerated", -1333385216},
+ {"inputIdentityDocument", -381776063},
+ {"inputInlineQueryResultAnimation", -1489808874},
+ {"inputInlineQueryResultArticle", 1973670156},
+ {"inputInlineQueryResultAudio", 1260139988},
+ {"inputInlineQueryResultContact", 1846064594},
+ {"inputInlineQueryResultDocument", 578801869},
+ {"inputInlineQueryResultGame", 966074327},
+ {"inputInlineQueryResultLocation", -1887650218},
+ {"inputInlineQueryResultPhoto", -1123338721},
+ {"inputInlineQueryResultSticker", 274007129},
+ {"inputInlineQueryResultVenue", 541704509},
+ {"inputInlineQueryResultVideo", 1724073191},
+ {"inputInlineQueryResultVoiceNote", -1790072503},
+ {"inputInvoiceMessage", 1490872848},
+ {"inputInvoiceName", -1312155917},
+ {"inputMessageText", 247050392},
+ {"inputMessageAnimation", 1208433535},
+ {"inputMessageAudio", -626786126},
+ {"inputMessageDocument", 1633383097},
+ {"inputMessagePhoto", 1648801584},
+ {"inputMessageSticker", 1072805625},
+ {"inputMessageVideo", -2108486755},
+ {"inputMessageVideoNote", 279108859},
+ {"inputMessageVoiceNote", 2136519657},
+ {"inputMessageLocation", 648735088},
+ {"inputMessageVenue", 1447926269},
+ {"inputMessageContact", -982446849},
+ {"inputMessageDice", 841574313},
+ {"inputMessageGame", 1252944610},
+ {"inputMessageInvoice", 885857632},
+ {"inputMessagePoll", 2054629900},
+ {"inputMessageForwarded", 1696232440},
+ {"inputPassportElementPersonalDetails", 164791359},
+ {"inputPassportElementPassport", -497011356},
+ {"inputPassportElementDriverLicense", 304813264},
+ {"inputPassportElementIdentityCard", -9963390},
+ {"inputPassportElementInternalPassport", 715360043},
+ {"inputPassportElementAddress", 461630480},
+ {"inputPassportElementUtilityBill", 1389203841},
+ {"inputPassportElementBankStatement", -26585208},
+ {"inputPassportElementRentalAgreement", 1736154155},
+ {"inputPassportElementPassportRegistration", 1314562128},
+ {"inputPassportElementTemporaryRegistration", -1913238047},
+ {"inputPassportElementPhoneNumber", 1319357497},
+ {"inputPassportElementEmailAddress", -248605659},
+ {"inputPassportElementError", 285756898},
+ {"inputPassportElementErrorSourceUnspecified", 267230319},
+ {"inputPassportElementErrorSourceDataField", -426795002},
+ {"inputPassportElementErrorSourceFrontSide", 588023741},
+ {"inputPassportElementErrorSourceReverseSide", 413072891},
+ {"inputPassportElementErrorSourceSelfie", -773575528},
+ {"inputPassportElementErrorSourceTranslationFile", 505842299},
+ {"inputPassportElementErrorSourceTranslationFiles", -527254048},
+ {"inputPassportElementErrorSourceFile", -298492469},
+ {"inputPassportElementErrorSourceFiles", -2008541640},
+ {"inputPersonalDocument", 1676966826},
+ {"inputSticker", -1692915280},
+ {"inputThumbnail", 1582387236},
+ {"invoice", 1977205639},
+ {"jsonObjectMember", -1803309418},
+ {"jsonValueNull", -92872499},
+ {"jsonValueBoolean", -2142186576},
+ {"jsonValueNumber", -1010822033},
+ {"jsonValueString", 1597947313},
+ {"jsonValueArray", -183913546},
+ {"jsonValueObject", 520252026},
+ {"keyboardButton", -2069836172},
+ {"keyboardButtonTypeText", -1773037256},
+ {"keyboardButtonTypeRequestPhoneNumber", -1529235527},
+ {"keyboardButtonTypeRequestLocation", -125661955},
+ {"keyboardButtonTypeRequestPoll", 1902435512},
+ {"keyboardButtonTypeWebApp", 1892220770},
+ {"labeledPricePart", 552789798},
+ {"languagePackInfo", 542199642},
+ {"languagePackString", 1307632736},
+ {"languagePackStringValueOrdinary", -249256352},
+ {"languagePackStringValuePluralized", 1906840261},
+ {"languagePackStringValueDeleted", 1834792698},
+ {"location", -443392141},
+ {"logStreamDefault", 1390581436},
+ {"logStreamFile", 1532136933},
+ {"logStreamEmpty", -499912244},
+ {"maskPointForehead", 1027512005},
+ {"maskPointEyes", 1748310861},
+ {"maskPointMouth", 411773406},
+ {"maskPointChin", 534995335},
+ {"maskPosition", -2097433026},
+ {"messageCopyOptions", 1208442937},
+ {"messageSchedulingStateSendAtDate", -1485570073},
+ {"messageSchedulingStateSendWhenOnline", 2092947464},
+ {"messageSendOptions", -783267022},
+ {"messageSenderUser", -336109341},
+ {"messageSenderChat", -239660751},
+ {"networkStatisticsEntryFile", 188452706},
+ {"networkStatisticsEntryCall", 737000365},
+ {"networkTypeNone", -1971691759},
+ {"networkTypeMobile", 819228239},
+ {"networkTypeMobileRoaming", -1435199760},
+ {"networkTypeWiFi", -633872070},
+ {"networkTypeOther", 1942128539},
+ {"notificationSettingsScopePrivateChats", 937446759},
+ {"notificationSettingsScopeGroupChats", 1212142067},
+ {"notificationSettingsScopeChannelChats", 548013448},
+ {"optionValueBoolean", 63135518},
+ {"optionValueEmpty", 918955155},
+ {"optionValueInteger", -186858780},
+ {"optionValueString", 756248212},
+ {"orderInfo", 783997294},
+ {"passportElementTypePersonalDetails", -1032136365},
+ {"passportElementTypePassport", -436360376},
+ {"passportElementTypeDriverLicense", 1827298379},
+ {"passportElementTypeIdentityCard", -502356132},
+ {"passportElementTypeInternalPassport", -793781959},
+ {"passportElementTypeAddress", 496327874},
+ {"passportElementTypeUtilityBill", 627084906},
+ {"passportElementTypeBankStatement", 574095667},
+ {"passportElementTypeRentalAgreement", -2060583280},
+ {"passportElementTypePassportRegistration", -159478209},
+ {"passportElementTypeTemporaryRegistration", 1092498527},
+ {"passportElementTypePhoneNumber", -995361172},
+ {"passportElementTypeEmailAddress", -79321405},
+ {"personalDetails", -1061656137},
+ {"phoneNumberAuthenticationSettings", -421219756},
+ {"pollTypeRegular", 641265698},
+ {"pollTypeQuiz", 657013913},
+ {"premiumFeatureIncreasedLimits", 1785455031},
+ {"premiumFeatureIncreasedUploadFileSize", 1825367155},
+ {"premiumFeatureImprovedDownloadSpeed", -267695554},
+ {"premiumFeatureVoiceRecognition", 1288216542},
+ {"premiumFeatureDisabledAds", -2008587702},
+ {"premiumFeatureUniqueReactions", 766750743},
+ {"premiumFeatureUniqueStickers", -2101773312},
+ {"premiumFeatureCustomEmoji", 1332599628},
+ {"premiumFeatureAdvancedChatManagement", 796347674},
+ {"premiumFeatureProfileBadge", 233648322},
+ {"premiumFeatureEmojiStatus", -36516639},
+ {"premiumFeatureAnimatedProfilePhoto", -100741914},
+ {"premiumFeatureForumTopicIcon", -823172286},
+ {"premiumFeatureAppIcons", 1585050761},
+ {"premiumLimitTypeSupergroupCount", -247467131},
+ {"premiumLimitTypePinnedChatCount", -998947871},
+ {"premiumLimitTypeCreatedPublicChatCount", 446086841},
+ {"premiumLimitTypeSavedAnimationCount", -19759735},
+ {"premiumLimitTypeFavoriteStickerCount", 639754787},
+ {"premiumLimitTypeChatFilterCount", -644517214},
+ {"premiumLimitTypeChatFilterChosenChatCount", 2057969759},
+ {"premiumLimitTypePinnedArchivedChatCount", 1485515276},
+ {"premiumLimitTypeCaptionLength", 293984314},
+ {"premiumLimitTypeBioLength", -1146976765},
+ {"premiumSourceLimitExceeded", -2052159742},
+ {"premiumSourceFeature", 445813541},
+ {"premiumSourceLink", 2135071132},
+ {"premiumSourceSettings", -285702859},
+ {"proxyTypeSocks5", -890027341},
+ {"proxyTypeHttp", -1547188361},
+ {"proxyTypeMtproto", -1964826627},
+ {"publicChatTypeHasUsername", 350789758},
+ {"publicChatTypeIsLocationBased", 1183735952},
+ {"reactionTypeEmoji", -1942084920},
+ {"reactionTypeCustomEmoji", -989117709},
+ {"replyMarkupRemoveKeyboard", -691252879},
+ {"replyMarkupForceReply", 1101461919},
+ {"replyMarkupShowKeyboard", -64985802},
+ {"replyMarkupInlineKeyboard", -619317658},
+ {"scopeNotificationSettings", -1383458661},
+ {"searchMessagesFilterEmpty", -869395657},
+ {"searchMessagesFilterAnimation", -155713339},
+ {"searchMessagesFilterAudio", 867505275},
+ {"searchMessagesFilterDocument", 1526331215},
+ {"searchMessagesFilterPhoto", 925932293},
+ {"searchMessagesFilterVideo", 115538222},
+ {"searchMessagesFilterVoiceNote", 1841439357},
+ {"searchMessagesFilterPhotoAndVideo", 1352130963},
+ {"searchMessagesFilterUrl", -1828724341},
+ {"searchMessagesFilterChatPhoto", -1247751329},
+ {"searchMessagesFilterVideoNote", 564323321},
+ {"searchMessagesFilterVoiceAndVideoNote", 664174819},
+ {"searchMessagesFilterMention", 2001258652},
+ {"searchMessagesFilterUnreadMention", -95769149},
+ {"searchMessagesFilterUnreadReaction", -1379651328},
+ {"searchMessagesFilterFailedToSend", -596322564},
+ {"searchMessagesFilterPinned", 371805512},
+ {"shippingOption", 1425690001},
+ {"stickerFormatWebp", -2123043040},
+ {"stickerFormatTgs", 1614588662},
+ {"stickerFormatWebm", -2070162097},
+ {"stickerTypeRegular", 56345973},
+ {"stickerTypeMask", -1765394796},
+ {"stickerTypeCustomEmoji", -120752249},
+ {"storePaymentPurposePremiumSubscription", -1497906096},
+ {"storePaymentPurposeGiftedPremium", 1916846289},
+ {"suggestedActionEnableArchiveAndMuteNewChats", 2017586255},
+ {"suggestedActionCheckPassword", 1910534839},
+ {"suggestedActionCheckPhoneNumber", 648771563},
+ {"suggestedActionViewChecksHint", 891303239},
+ {"suggestedActionConvertToBroadcastGroup", -965071304},
+ {"suggestedActionSetPassword", 1863613848},
+ {"supergroupMembersFilterRecent", 1178199509},
+ {"supergroupMembersFilterContacts", -1282910856},
+ {"supergroupMembersFilterAdministrators", -2097380265},
+ {"supergroupMembersFilterSearch", -1696358469},
+ {"supergroupMembersFilterRestricted", -1107800034},
+ {"supergroupMembersFilterBanned", -1210621683},
+ {"supergroupMembersFilterMention", 947915036},
+ {"supergroupMembersFilterBots", 492138918},
+ {"testInt", -574804983},
+ {"testString", -27891572},
+ {"textEntity", -1951688280},
+ {"textEntityTypeMention", 934535013},
+ {"textEntityTypeHashtag", -1023958307},
+ {"textEntityTypeCashtag", 1222915915},
+ {"textEntityTypeBotCommand", -1150997581},
+ {"textEntityTypeUrl", -1312762756},
+ {"textEntityTypeEmailAddress", 1425545249},
+ {"textEntityTypePhoneNumber", -1160140246},
+ {"textEntityTypeBankCardNumber", 105986320},
+ {"textEntityTypeBold", -1128210000},
+ {"textEntityTypeItalic", -118253987},
+ {"textEntityTypeUnderline", 792317842},
+ {"textEntityTypeStrikethrough", 961529082},
+ {"textEntityTypeSpoiler", 544019899},
+ {"textEntityTypeCode", -974534326},
+ {"textEntityTypePre", 1648958606},
+ {"textEntityTypePreCode", -945325397},
+ {"textEntityTypeTextUrl", 445719651},
+ {"textEntityTypeMentionName", -1570974289},
+ {"textEntityTypeCustomEmoji", 1724820677},
+ {"textEntityTypeMediaTimestamp", -1841898992},
+ {"textParseModeMarkdown", 360073407},
+ {"textParseModeHTML", 1660208627},
+ {"themeParameters", -644809106},
+ {"topChatCategoryUsers", 1026706816},
+ {"topChatCategoryBots", -1577129195},
+ {"topChatCategoryGroups", 1530056846},
+ {"topChatCategoryChannels", -500825885},
+ {"topChatCategoryInlineBots", 377023356},
+ {"topChatCategoryCalls", 356208861},
+ {"topChatCategoryForwardChats", 1695922133},
+ {"userPrivacySettingShowStatus", 1862829310},
+ {"userPrivacySettingShowProfilePhoto", 1408485877},
+ {"userPrivacySettingShowLinkInForwardedMessages", 592688870},
+ {"userPrivacySettingShowPhoneNumber", -791567831},
+ {"userPrivacySettingAllowChatInvites", 1271668007},
+ {"userPrivacySettingAllowCalls", -906967291},
+ {"userPrivacySettingAllowPeerToPeerCalls", 352500032},
+ {"userPrivacySettingAllowFindingByPhoneNumber", -1846645423},
+ {"userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages", 338112060},
+ {"userPrivacySettingRuleAllowAll", -1967186881},
+ {"userPrivacySettingRuleAllowContacts", -1892733680},
+ {"userPrivacySettingRuleAllowUsers", 1110988334},
+ {"userPrivacySettingRuleAllowChatMembers", -2048749863},
+ {"userPrivacySettingRuleRestrictAll", -1406495408},
+ {"userPrivacySettingRuleRestrictContacts", 1008389378},
+ {"userPrivacySettingRuleRestrictUsers", 622796522},
+ {"userPrivacySettingRuleRestrictChatMembers", 392530897},
+ {"userPrivacySettingRules", 322477541},
+ {"venue", 1070406393}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Result<int32> tl_constructor_from_string(td_api::Function *object, const std::string &str) {
+ static const FlatHashMap<Slice, int32, SliceHash> m = {
+ {"acceptCall", -646618416},
+ {"acceptTermsOfService", 2130576356},
+ {"addChatMember", 499426810},
+ {"addChatMembers", -519951226},
+ {"addChatToList", -80523595},
+ {"addContact", 1869640000},
+ {"addCustomServerLanguagePack", 4492771},
+ {"addFavoriteSticker", 324504799},
+ {"addFileToDownloads", 867533751},
+ {"addLocalMessage", -1998878725},
+ {"addLogMessage", 1597427692},
+ {"addMessageReaction", 1419269613},
+ {"addNetworkStatistics", 1264825305},
+ {"addProxy", 331529432},
+ {"addRecentSticker", -1478109026},
+ {"addRecentlyFoundChat", -1746396787},
+ {"addSavedAnimation", -1538525088},
+ {"addSavedNotificationSound", 1043956975},
+ {"addStickerToSet", -1340783267},
+ {"answerCallbackQuery", -1153028490},
+ {"answerCustomQuery", -1293603521},
+ {"answerInlineQuery", 485879477},
+ {"answerPreCheckoutQuery", -1486789653},
+ {"answerShippingQuery", -434601324},
+ {"answerWebAppQuery", -1598776079},
+ {"assignAppStoreTransaction", -2030892112},
+ {"assignGooglePlayTransaction", -1992704860},
+ {"banChatMember", -888111748},
+ {"blockMessageSenderFromReplies", -1214384757},
+ {"canPurchasePremium", -371319616},
+ {"canTransferOwnership", 634602508},
+ {"cancelDownloadFile", -1954524450},
+ {"cancelPasswordReset", 940733538},
+ {"cancelPreliminaryUploadFile", 823412414},
+ {"changeImportedContacts", 1968207955},
+ {"changePhoneNumber", -124666973},
+ {"changeStickerSet", 449357293},
+ {"checkAuthenticationBotToken", 639321206},
+ {"checkAuthenticationCode", -302103382},
+ {"checkAuthenticationEmailCode", -582827361},
+ {"checkAuthenticationPassword", -2025698400},
+ {"checkAuthenticationPasswordRecoveryCode", -603309083},
+ {"checkChangePhoneNumberCode", -1720278429},
+ {"checkChatInviteLink", -496940997},
+ {"checkChatUsername", -119119344},
+ {"checkCreatedPublicChatsLimit", -445546591},
+ {"checkEmailAddressVerificationCode", -426386685},
+ {"checkLoginEmailAddressCode", -1454244766},
+ {"checkPasswordRecoveryCode", -200794600},
+ {"checkPhoneNumberConfirmationCode", -1348060966},
+ {"checkPhoneNumberVerificationCode", 1497462718},
+ {"checkRecoveryEmailAddressCode", -1997039589},
+ {"checkStickerSetName", -1789392642},
+ {"cleanFileName", 967964667},
+ {"clearAllDraftMessages", -46369573},
+ {"clearImportedContacts", 869503298},
+ {"clearRecentEmojiStatuses", -428749986},
+ {"clearRecentReactions", 1298253650},
+ {"clearRecentStickers", -321242684},
+ {"clearRecentlyFoundChats", -285582542},
+ {"clickAnimatedEmojiMessage", 196179554},
+ {"clickPremiumSubscriptionButton", -369319162},
+ {"close", -1187782273},
+ {"closeChat", 39749353},
+ {"closeSecretChat", -471006133},
+ {"closeWebApp", 1755391174},
+ {"confirmQrCodeAuthentication", -376199379},
+ {"createBasicGroupChat", 1972024548},
+ {"createCall", -1104663024},
+ {"createChatFilter", 49065126},
+ {"createChatInviteLink", 287744833},
+ {"createForumTopic", -1040570140},
+ {"createInvoiceLink", 216787233},
+ {"createNewBasicGroupChat", -2104438789},
+ {"createNewSecretChat", -620682651},
+ {"createNewStickerSet", 1424129402},
+ {"createNewSupergroupChat", -830232895},
+ {"createPrivateChat", -947758327},
+ {"createSecretChat", 1930285615},
+ {"createSupergroupChat", 1187475691},
+ {"createTemporaryPassword", -1626509434},
+ {"createVideoChat", 2124715405},
+ {"deleteAccount", 1395816134},
+ {"deleteAllCallMessages", -1466445325},
+ {"deleteAllRevokedChatInviteLinks", 1112020698},
+ {"deleteChat", -171253666},
+ {"deleteChatFilter", -523220877},
+ {"deleteChatHistory", -1472081761},
+ {"deleteChatMessagesByDate", -1639653185},
+ {"deleteChatMessagesBySender", -1164235161},
+ {"deleteChatReplyMarkup", 100637531},
+ {"deleteCommands", 1002732586},
+ {"deleteFile", 1807653676},
+ {"deleteForumTopic", 1864916152},
+ {"deleteLanguagePack", -2108761026},
+ {"deleteMessages", 1130090173},
+ {"deletePassportElement", -1719555468},
+ {"deleteProfilePhoto", 1319794625},
+ {"deleteRevokedChatInviteLink", -1859711873},
+ {"deleteSavedCredentials", 826300114},
+ {"deleteSavedOrderInfo", 1629058164},
+ {"destroy", 685331274},
+ {"disableAllSupergroupUsernames", 843511216},
+ {"disableProxy", -2100095102},
+ {"discardCall", -1784044162},
+ {"disconnectAllWebsites", -1082985981},
+ {"disconnectWebsite", -778767395},
+ {"downloadFile", 1059402292},
+ {"editChatFilter", -1674793086},
+ {"editChatInviteLink", 1320303996},
+ {"editCustomLanguagePackInfo", 1320751257},
+ {"editForumTopic", -222142032},
+ {"editInlineMessageCaption", -760985929},
+ {"editInlineMessageLiveLocation", -156902912},
+ {"editInlineMessageMedia", 23553921},
+ {"editInlineMessageReplyMarkup", -67565858},
+ {"editInlineMessageText", -855457307},
+ {"editMessageCaption", 1154677038},
+ {"editMessageLiveLocation", -14047982},
+ {"editMessageMedia", -1152678125},
+ {"editMessageReplyMarkup", 332127881},
+ {"editMessageSchedulingState", -1372976192},
+ {"editMessageText", 196272567},
+ {"editProxy", -1605883821},
+ {"enableProxy", 1494450838},
+ {"endGroupCall", 573131959},
+ {"endGroupCallRecording", -75799927},
+ {"endGroupCallScreenSharing", -2047599540},
+ {"finishFileGeneration", -1055060835},
+ {"forwardMessages", -1054441908},
+ {"getAccountTtl", -443905161},
+ {"getActiveLiveLocationMessages", -1425459567},
+ {"getActiveSessions", 1119710526},
+ {"getAllPassportElements", -2038945045},
+ {"getAnimatedEmoji", 1065635702},
+ {"getApplicationConfig", -1823144318},
+ {"getApplicationDownloadLink", 112013252},
+ {"getArchivedStickerSets", 1001931341},
+ {"getAttachedStickerSets", 1302172429},
+ {"getAttachmentMenuBot", 1034248699},
+ {"getAuthorizationState", 1949154877},
+ {"getAutoDownloadSettingsPresets", -1721088201},
+ {"getBackgroundUrl", 733769682},
+ {"getBackgrounds", 249072633},
+ {"getBankCardInfo", -1310515792},
+ {"getBasicGroup", -1635174828},
+ {"getBasicGroupFullInfo", -1822039253},
+ {"getBlockedMessageSenders", 1947079776},
+ {"getCallbackQueryAnswer", 116357727},
+ {"getCallbackQueryMessage", -1121939086},
+ {"getChat", 1866601536},
+ {"getChatAdministrators", 1544468155},
+ {"getChatAvailableMessageSenders", 1158670635},
+ {"getChatEventLog", -1281344669},
+ {"getChatFilter", 1826317803},
+ {"getChatFilterDefaultIconName", -1339828680},
+ {"getChatHistory", -799960451},
+ {"getChatInviteLink", -479575555},
+ {"getChatInviteLinkCounts", 890299025},
+ {"getChatInviteLinkMembers", -977921638},
+ {"getChatInviteLinks", 883252396},
+ {"getChatJoinRequests", -388428126},
+ {"getChatListsToAddChat", 654956193},
+ {"getChatMember", -792636814},
+ {"getChatMessageByDate", 1062564150},
+ {"getChatMessageCalendar", -326164204},
+ {"getChatMessageCount", 205435308},
+ {"getChatMessagePosition", -559474920},
+ {"getChatNotificationSettingsExceptions", 201199121},
+ {"getChatPinnedMessage", 359865008},
+ {"getChatScheduledMessages", -549638149},
+ {"getChatSparseMessagePositions", -462227580},
+ {"getChatSponsoredMessages", 1353203864},
+ {"getChatStatistics", 327057816},
+ {"getChats", -972768574},
+ {"getCommands", 1488621559},
+ {"getConnectedWebsites", -170536110},
+ {"getContacts", -1417722768},
+ {"getCountries", -51902050},
+ {"getCountryCode", 1540593906},
+ {"getCreatedPublicChats", 710354415},
+ {"getCurrentState", -1191417719},
+ {"getCustomEmojiReactionAnimations", 1232375250},
+ {"getCustomEmojiStickers", -2127427955},
+ {"getDatabaseStatistics", -1942760263},
+ {"getDeepLinkInfo", 680673150},
+ {"getDefaultEmojiStatuses", 618946243},
+ {"getEmojiReaction", -449572388},
+ {"getEmojiSuggestionsUrl", -1404101841},
+ {"getExternalLink", 1586688235},
+ {"getExternalLinkInfo", 1175288383},
+ {"getFavoriteStickers", -338964672},
+ {"getFile", 1553923406},
+ {"getFileDownloadedPrefixSize", 855948589},
+ {"getFileExtension", -106055372},
+ {"getFileMimeType", -2073879671},
+ {"getForumTopicDefaultIcons", 1479898332},
+ {"getGameHighScores", 15746459},
+ {"getGroupCall", 1468491406},
+ {"getGroupCallInviteLink", 719407396},
+ {"getGroupCallStreamSegment", -2077959515},
+ {"getGroupCallStreams", -1619226268},
+ {"getGroupsInCommon", 381539178},
+ {"getImportedContactCount", -656336346},
+ {"getInactiveSupergroupChats", -657720907},
+ {"getInlineGameHighScores", -533107798},
+ {"getInlineQueryResults", 2044524652},
+ {"getInstalledStickerSets", 1630467830},
+ {"getInternalLinkType", -1948428535},
+ {"getJsonString", 663458849},
+ {"getJsonValue", -1829086715},
+ {"getLanguagePackInfo", 2077809320},
+ {"getLanguagePackString", 150789747},
+ {"getLanguagePackStrings", 1246259088},
+ {"getLocalizationTargetInfo", 1849499526},
+ {"getLogStream", 1167608667},
+ {"getLogTagVerbosityLevel", 951004547},
+ {"getLogTags", -254449190},
+ {"getLogVerbosityLevel", 594057956},
+ {"getLoginUrl", 791844305},
+ {"getLoginUrlInfo", -859202125},
+ {"getMapThumbnailFile", -152660070},
+ {"getMarkdownText", 164524584},
+ {"getMe", -191516033},
+ {"getMenuButton", -437324736},
+ {"getMessage", -1821196160},
+ {"getMessageAddedReactions", 2110172754},
+ {"getMessageAvailableReactions", 1994098354},
+ {"getMessageEmbeddingCode", 1654967561},
+ {"getMessageFileType", -490270764},
+ {"getMessageImportConfirmationText", 390627752},
+ {"getMessageLink", -984158342},
+ {"getMessageLinkInfo", -700533672},
+ {"getMessageLocally", -603575444},
+ {"getMessagePublicForwards", 1611049289},
+ {"getMessageStatistics", 1270194648},
+ {"getMessageThread", 2062695998},
+ {"getMessageThreadHistory", -1808411608},
+ {"getMessageViewers", -1879496099},
+ {"getMessages", 425299338},
+ {"getNetworkStatistics", -986228706},
+ {"getOption", -1572495746},
+ {"getPassportAuthorizationForm", 1636107398},
+ {"getPassportAuthorizationFormAvailableElements", 1738134754},
+ {"getPassportElement", -1882398342},
+ {"getPasswordState", -174752904},
+ {"getPaymentForm", -1924172076},
+ {"getPaymentReceipt", 1013758294},
+ {"getPhoneNumberInfo", -1608344583},
+ {"getPhoneNumberInfoSync", 547061048},
+ {"getPollVoters", 2075288734},
+ {"getPreferredCountryLanguage", -933049386},
+ {"getPremiumFeatures", -1260640695},
+ {"getPremiumLimit", 1075313898},
+ {"getPremiumState", 663632610},
+ {"getPremiumStickerExamples", 1399442328},
+ {"getPremiumStickers", -280950192},
+ {"getProxies", -95026381},
+ {"getProxyLink", -1054495112},
+ {"getPushReceiverId", -286505294},
+ {"getRecentEmojiStatuses", -1371914967},
+ {"getRecentInlineBots", 1437823548},
+ {"getRecentStickers", -579622241},
+ {"getRecentlyOpenedChats", -1924156893},
+ {"getRecentlyVisitedTMeUrls", 806754961},
+ {"getRecommendedChatFilters", -779390746},
+ {"getRecoveryEmailAddress", -1594770947},
+ {"getRemoteFile", 2137204530},
+ {"getRepliedMessage", -641918531},
+ {"getSavedAnimations", 7051032},
+ {"getSavedNotificationSound", 459569431},
+ {"getSavedNotificationSounds", -1070305368},
+ {"getSavedOrderInfo", -1152016675},
+ {"getScopeNotificationSettings", -995613361},
+ {"getSecretChat", 40599169},
+ {"getStatisticalGraph", 1100975515},
+ {"getStickerEmojis", -1895508665},
+ {"getStickerSet", 1052318659},
+ {"getStickers", 1158058819},
+ {"getStorageStatistics", -853193929},
+ {"getStorageStatisticsFast", 61368066},
+ {"getSuggestedFileName", -2049399674},
+ {"getSuggestedStickerSetName", -1340995520},
+ {"getSuitableDiscussionChats", 49044982},
+ {"getSupergroup", 989663458},
+ {"getSupergroupFullInfo", 1099776056},
+ {"getSupergroupMembers", -570940984},
+ {"getSupportUser", -1733497700},
+ {"getTemporaryPasswordState", -12670830},
+ {"getTextEntities", -341490693},
+ {"getThemeParametersJsonString", -1850145288},
+ {"getThemedEmojiStatuses", 1791346882},
+ {"getTopChats", -388410847},
+ {"getTrendingStickerSets", -531085986},
+ {"getUser", 1117363211},
+ {"getUserFullInfo", -776823720},
+ {"getUserPrivacySettingRules", -2077223311},
+ {"getUserProfilePhotos", -908132798},
+ {"getUserSupportInfo", 1957008133},
+ {"getVideoChatAvailableParticipants", -1000496379},
+ {"getVideoChatRtmpUrl", 1210784543},
+ {"getWebAppUrl", 1690578110},
+ {"getWebPageInstantView", -1962649975},
+ {"getWebPagePreview", 573441580},
+ {"hideSuggestedAction", -1561384065},
+ {"importContacts", -215132767},
+ {"importMessages", -1864116784},
+ {"inviteGroupCallParticipants", 1867097679},
+ {"joinChat", 326769313},
+ {"joinChatByInviteLink", -1049973882},
+ {"joinGroupCall", -1043773467},
+ {"leaveChat", -1825080735},
+ {"leaveGroupCall", 980152233},
+ {"loadChats", -1885635205},
+ {"loadGroupCallParticipants", 938720974},
+ {"logOut", -1581923301},
+ {"openChat", -323371509},
+ {"openMessageContent", -739088005},
+ {"openWebApp", -763742925},
+ {"optimizeStorage", 853186759},
+ {"parseMarkdown", 756366063},
+ {"parseTextEntities", -1709194593},
+ {"pinChatMessage", 2034719663},
+ {"pingProxy", -979681103},
+ {"preliminaryUploadFile", 1894239129},
+ {"processChatJoinRequest", 1004876963},
+ {"processChatJoinRequests", 1048722894},
+ {"processPushNotification", 786679952},
+ {"rateSpeechRecognition", -287521867},
+ {"readAllChatMentions", 1357558453},
+ {"readAllChatReactions", 1421973357},
+ {"readAllMessageThreadMentions", 1323136341},
+ {"readAllMessageThreadReactions", -792975554},
+ {"readFilePart", 906798861},
+ {"recognizeSpeech", 1741947577},
+ {"recoverAuthenticationPassword", -131001053},
+ {"recoverPassword", -1524262541},
+ {"registerDevice", 366088823},
+ {"registerUser", -109994467},
+ {"removeAllFilesFromDownloads", -1186433402},
+ {"removeBackground", -1484545642},
+ {"removeChatActionBar", -1650968070},
+ {"removeContacts", 1943858054},
+ {"removeFavoriteSticker", 1152945264},
+ {"removeFileFromDownloads", 1460060142},
+ {"removeMessageReaction", -1756934789},
+ {"removeNotification", 862630734},
+ {"removeNotificationGroup", 1713005454},
+ {"removeProxy", 1369219847},
+ {"removeRecentHashtag", -1013735260},
+ {"removeRecentSticker", 1246577677},
+ {"removeRecentlyFoundChat", 717340444},
+ {"removeSavedAnimation", -495605479},
+ {"removeSavedNotificationSound", -480032946},
+ {"removeStickerFromSet", 1642196644},
+ {"removeTopChat", -1907876267},
+ {"reorderActiveUsernames", -455399375},
+ {"reorderChatFilters", -1805801313},
+ {"reorderInstalledStickerSets", 1074928158},
+ {"reorderSupergroupActiveUsernames", -1962466095},
+ {"replacePrimaryChatInviteLink", 1067350941},
+ {"replaceVideoChatRtmpUrl", 558862304},
+ {"reportChat", -964543587},
+ {"reportChatPhoto", 734652708},
+ {"reportMessageReactions", 919111719},
+ {"reportSupergroupSpam", -94825000},
+ {"requestAuthenticationPasswordRecovery", 1393896118},
+ {"requestPasswordRecovery", -13777582},
+ {"requestQrCodeAuthentication", 1363496527},
+ {"resendAuthenticationCode", -814377191},
+ {"resendChangePhoneNumberCode", -786772060},
+ {"resendEmailAddressVerificationCode", -1872416732},
+ {"resendLoginEmailAddressCode", 292966933},
+ {"resendMessages", -940655817},
+ {"resendPhoneNumberConfirmationCode", 2069068522},
+ {"resendPhoneNumberVerificationCode", 1367629820},
+ {"resendRecoveryEmailAddressCode", 433483548},
+ {"resetAllNotificationSettings", -174020359},
+ {"resetBackgrounds", 204852088},
+ {"resetNetworkStatistics", 1646452102},
+ {"resetPassword", -593589091},
+ {"revokeChatInviteLink", -776514135},
+ {"revokeGroupCallInviteLink", 501589140},
+ {"saveApplicationLogEvent", -811154930},
+ {"searchBackground", -2130996959},
+ {"searchCallMessages", -1077230820},
+ {"searchChatMembers", -445823291},
+ {"searchChatMessages", -162154976},
+ {"searchChatRecentLocationMessages", 950238950},
+ {"searchChats", -1879787060},
+ {"searchChatsNearby", -196753377},
+ {"searchChatsOnServer", -1158402188},
+ {"searchContacts", -1794690715},
+ {"searchEmojis", 398837927},
+ {"searchFileDownloads", 706611286},
+ {"searchHashtags", 1043637617},
+ {"searchInstalledStickerSets", 2120122276},
+ {"searchMessages", -225214062},
+ {"searchOutgoingDocumentMessages", -1071397762},
+ {"searchPublicChat", 857135533},
+ {"searchPublicChats", 970385337},
+ {"searchSecretMessages", -852865892},
+ {"searchStickerSet", 1157930222},
+ {"searchStickerSets", -1082314629},
+ {"searchStickers", 1555771203},
+ {"searchUserByPhoneNumber", -1562236142},
+ {"sendBotStartMessage", -1435877650},
+ {"sendCallDebugInformation", 2019243839},
+ {"sendCallLog", 1057638353},
+ {"sendCallRating", -1402719502},
+ {"sendCallSignalingData", 1412280732},
+ {"sendChatAction", 2096947540},
+ {"sendChatScreenshotTakenNotification", 448399457},
+ {"sendCustomRequest", 285045153},
+ {"sendEmailAddressVerificationCode", -221621379},
+ {"sendInlineQueryResultMessage", -948639588},
+ {"sendMessage", 960453021},
+ {"sendMessageAlbum", -1639797862},
+ {"sendPassportAuthorizationForm", -602402218},
+ {"sendPaymentForm", -965855094},
+ {"sendPhoneNumberConfirmationCode", -1901171495},
+ {"sendPhoneNumberVerificationCode", 2081689035},
+ {"sendWebAppData", -1423978996},
+ {"setAccountTtl", 701389032},
+ {"setAlarm", -873497067},
+ {"setAuthenticationEmailAddress", 1773323522},
+ {"setAuthenticationPhoneNumber", 868276259},
+ {"setAutoDownloadSettings", -353671948},
+ {"setBackground", -1035439225},
+ {"setBio", -1619582124},
+ {"setBotUpdatesStatus", -1154926191},
+ {"setChatAvailableReactions", 267075078},
+ {"setChatClientData", -827119811},
+ {"setChatDescription", 1957213277},
+ {"setChatDiscussionGroup", -918801736},
+ {"setChatDraftMessage", 1683889946},
+ {"setChatLocation", -767091286},
+ {"setChatMemberStatus", 81794847},
+ {"setChatMessageSender", -1421513858},
+ {"setChatMessageTtl", -1578406279},
+ {"setChatNotificationSettings", 777199614},
+ {"setChatPermissions", 2138507006},
+ {"setChatPhoto", -377778941},
+ {"setChatSlowModeDelay", -540350914},
+ {"setChatTheme", -1895234925},
+ {"setChatTitle", 164282047},
+ {"setCommands", -907165606},
+ {"setCustomLanguagePack", -296742819},
+ {"setCustomLanguagePackString", 1316365592},
+ {"setDatabaseEncryptionKey", -1204599371},
+ {"setDefaultChannelAdministratorRights", -234004967},
+ {"setDefaultGroupAdministratorRights", 1700231016},
+ {"setDefaultReactionType", 1694730813},
+ {"setEmojiStatus", -1310680569},
+ {"setFileGenerationProgress", 1836403518},
+ {"setGameScore", 2127359430},
+ {"setGroupCallParticipantIsSpeaking", 927506917},
+ {"setGroupCallParticipantVolumeLevel", -1753769944},
+ {"setGroupCallTitle", -1228825139},
+ {"setInactiveSessionTtl", 1570548048},
+ {"setInlineGameScore", -948871797},
+ {"setLocation", 93926257},
+ {"setLogStream", -1364199535},
+ {"setLogTagVerbosityLevel", -2095589738},
+ {"setLogVerbosityLevel", -303429678},
+ {"setLoginEmailAddress", 935019476},
+ {"setMenuButton", -1269841599},
+ {"setName", 1711693584},
+ {"setNetworkType", -701635234},
+ {"setOption", 2114670322},
+ {"setPassportElement", 2068173212},
+ {"setPassportElementErrors", -2056754881},
+ {"setPassword", -1193589027},
+ {"setPinnedChats", -695640000},
+ {"setPollAnswer", -1399388792},
+ {"setProfilePhoto", -2069678882},
+ {"setRecoveryEmailAddress", -1981836385},
+ {"setScopeNotificationSettings", -2049984966},
+ {"setStickerPositionInSet", 2075281185},
+ {"setStickerSetThumbnail", 1230174856},
+ {"setSupergroupStickerSet", -2056344215},
+ {"setSupergroupUsername", 1346325252},
+ {"setTdlibParameters", 1384743481},
+ {"setUserPrivacySettingRules", -473812741},
+ {"setUserSupportInfo", -2088986621},
+ {"setUsername", 439901214},
+ {"setVideoChatDefaultParticipant", -240749901},
+ {"sharePhoneNumber", 1097130069},
+ {"startGroupCallRecording", 1757774971},
+ {"startGroupCallScreenSharing", -884068051},
+ {"startScheduledGroupCall", 1519938838},
+ {"stopPoll", 1659374253},
+ {"synchronizeLanguagePack", -2065307858},
+ {"terminateAllOtherSessions", 1874485523},
+ {"terminateSession", -407385812},
+ {"testCallBytes", -736011607},
+ {"testCallEmpty", -627291626},
+ {"testCallString", -1732818385},
+ {"testCallVectorInt", -2137277793},
+ {"testCallVectorIntObject", 1825428218},
+ {"testCallVectorString", -408600900},
+ {"testCallVectorStringObject", 1527666429},
+ {"testGetDifference", 1747084069},
+ {"testNetwork", -1343998901},
+ {"testProxy", -1197366626},
+ {"testReturnError", 455179506},
+ {"testSquareInt", -60135024},
+ {"testUseUpdate", 717094686},
+ {"toggleAllDownloadsArePaused", 1251512322},
+ {"toggleBotIsAddedToAttachmentMenu", -1251515422},
+ {"toggleChatDefaultDisableNotification", 314794002},
+ {"toggleChatHasProtectedContent", 975231309},
+ {"toggleChatIsMarkedAsUnread", -986129697},
+ {"toggleChatIsPinned", -1485429186},
+ {"toggleDownloadIsPaused", -947493099},
+ {"toggleForumTopicIsClosed", -949712141},
+ {"toggleGroupCallEnabledStartNotification", 707839826},
+ {"toggleGroupCallIsMyVideoEnabled", -1624289030},
+ {"toggleGroupCallIsMyVideoPaused", -478875239},
+ {"toggleGroupCallMuteNewParticipants", 284082626},
+ {"toggleGroupCallParticipantIsHandRaised", -1896127519},
+ {"toggleGroupCallParticipantIsMuted", -1308093433},
+ {"toggleGroupCallScreenSharingIsPaused", -1602530464},
+ {"toggleMessageSenderIsBlocked", -2008084779},
+ {"toggleSessionCanAcceptCalls", 1819027208},
+ {"toggleSessionCanAcceptSecretChats", 1000843390},
+ {"toggleSupergroupIsAllHistoryAvailable", 1155110478},
+ {"toggleSupergroupIsBroadcastGroup", 884089365},
+ {"toggleSupergroupIsForum", -1771071990},
+ {"toggleSupergroupJoinByRequest", 2111807454},
+ {"toggleSupergroupJoinToSendMessages", -182022642},
+ {"toggleSupergroupSignMessages", 1156568356},
+ {"toggleSupergroupUsernameIsActive", -1500811777},
+ {"toggleUsernameIsActive", 1244098019},
+ {"transferChatOwnership", 2006977043},
+ {"translateText", -1619686803},
+ {"unpinAllChatMessages", -1437805385},
+ {"unpinAllMessageThreadMessages", -1211719936},
+ {"unpinChatMessage", 2065448670},
+ {"upgradeBasicGroupChatToSupergroupChat", 300488122},
+ {"uploadStickerFile", 86279066},
+ {"validateOrderInfo", -1248305201},
+ {"viewMessages", -1155961496},
+ {"viewPremiumFeature", 192950706},
+ {"viewTrendingStickerSets", -952416520},
+ {"writeGeneratedFilePart", 214474389}
+ };
+ auto it = m.find(str);
+ if (it == m.end()) {
+ return Status::Error(PSLICE() << "Unknown class \"" << str << "\"");
+ }
+ return it->second;
+}
+
+Status from_json(td_api::accountTtl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.days_, get_json_object_field_force(from, "days")));
+ return Status::OK();
+}
+
+Status from_json(td_api::address &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.country_code_, get_json_object_field_force(from, "country_code")));
+ TRY_STATUS(from_json(to.state_, get_json_object_field_force(from, "state")));
+ TRY_STATUS(from_json(to.city_, get_json_object_field_force(from, "city")));
+ TRY_STATUS(from_json(to.street_line1_, get_json_object_field_force(from, "street_line1")));
+ TRY_STATUS(from_json(to.street_line2_, get_json_object_field_force(from, "street_line2")));
+ TRY_STATUS(from_json(to.postal_code_, get_json_object_field_force(from, "postal_code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::autoDownloadSettings &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.is_auto_download_enabled_, get_json_object_field_force(from, "is_auto_download_enabled")));
+ TRY_STATUS(from_json(to.max_photo_file_size_, get_json_object_field_force(from, "max_photo_file_size")));
+ TRY_STATUS(from_json(to.max_video_file_size_, get_json_object_field_force(from, "max_video_file_size")));
+ TRY_STATUS(from_json(to.max_other_file_size_, get_json_object_field_force(from, "max_other_file_size")));
+ TRY_STATUS(from_json(to.video_upload_bitrate_, get_json_object_field_force(from, "video_upload_bitrate")));
+ TRY_STATUS(from_json(to.preload_large_videos_, get_json_object_field_force(from, "preload_large_videos")));
+ TRY_STATUS(from_json(to.preload_next_audio_, get_json_object_field_force(from, "preload_next_audio")));
+ TRY_STATUS(from_json(to.use_less_data_for_calls_, get_json_object_field_force(from, "use_less_data_for_calls")));
+ return Status::OK();
+}
+
+Status from_json(td_api::backgroundFillSolid &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.color_, get_json_object_field_force(from, "color")));
+ return Status::OK();
+}
+
+Status from_json(td_api::backgroundFillGradient &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.top_color_, get_json_object_field_force(from, "top_color")));
+ TRY_STATUS(from_json(to.bottom_color_, get_json_object_field_force(from, "bottom_color")));
+ TRY_STATUS(from_json(to.rotation_angle_, get_json_object_field_force(from, "rotation_angle")));
+ return Status::OK();
+}
+
+Status from_json(td_api::backgroundFillFreeformGradient &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.colors_, get_json_object_field_force(from, "colors")));
+ return Status::OK();
+}
+
+Status from_json(td_api::backgroundTypeWallpaper &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.is_blurred_, get_json_object_field_force(from, "is_blurred")));
+ TRY_STATUS(from_json(to.is_moving_, get_json_object_field_force(from, "is_moving")));
+ return Status::OK();
+}
+
+Status from_json(td_api::backgroundTypePattern &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.fill_, get_json_object_field_force(from, "fill")));
+ TRY_STATUS(from_json(to.intensity_, get_json_object_field_force(from, "intensity")));
+ TRY_STATUS(from_json(to.is_inverted_, get_json_object_field_force(from, "is_inverted")));
+ TRY_STATUS(from_json(to.is_moving_, get_json_object_field_force(from, "is_moving")));
+ return Status::OK();
+}
+
+Status from_json(td_api::backgroundTypeFill &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.fill_, get_json_object_field_force(from, "fill")));
+ return Status::OK();
+}
+
+Status from_json(td_api::botCommand &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.command_, get_json_object_field_force(from, "command")));
+ TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description")));
+ return Status::OK();
+}
+
+Status from_json(td_api::botCommandScopeDefault &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::botCommandScopeAllPrivateChats &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::botCommandScopeAllGroupChats &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::botCommandScopeAllChatAdministrators &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::botCommandScopeChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::botCommandScopeChatAdministrators &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::botCommandScopeChatMember &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::botMenuButton &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ return Status::OK();
+}
+
+Status from_json(td_api::callProblemEcho &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::callProblemNoise &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::callProblemInterruptions &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::callProblemDistortedSpeech &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::callProblemSilentLocal &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::callProblemSilentRemote &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::callProblemDropped &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::callProblemDistortedVideo &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::callProblemPixelatedVideo &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::callProtocol &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.udp_p2p_, get_json_object_field_force(from, "udp_p2p")));
+ TRY_STATUS(from_json(to.udp_reflector_, get_json_object_field_force(from, "udp_reflector")));
+ TRY_STATUS(from_json(to.min_layer_, get_json_object_field_force(from, "min_layer")));
+ TRY_STATUS(from_json(to.max_layer_, get_json_object_field_force(from, "max_layer")));
+ TRY_STATUS(from_json(to.library_versions_, get_json_object_field_force(from, "library_versions")));
+ return Status::OK();
+}
+
+Status from_json(td_api::callbackQueryPayloadData &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::callbackQueryPayloadDataWithPassword &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::callbackQueryPayloadGame &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.game_short_name_, get_json_object_field_force(from, "game_short_name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionTyping &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionRecordingVideo &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionUploadingVideo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.progress_, get_json_object_field_force(from, "progress")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionRecordingVoiceNote &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionUploadingVoiceNote &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.progress_, get_json_object_field_force(from, "progress")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionUploadingPhoto &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.progress_, get_json_object_field_force(from, "progress")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionUploadingDocument &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.progress_, get_json_object_field_force(from, "progress")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionChoosingSticker &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionChoosingLocation &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionChoosingContact &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionStartPlayingGame &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionRecordingVideoNote &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionUploadingVideoNote &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.progress_, get_json_object_field_force(from, "progress")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionWatchingAnimations &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatActionCancel &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatAdministratorRights &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.can_manage_chat_, get_json_object_field_force(from, "can_manage_chat")));
+ TRY_STATUS(from_json(to.can_change_info_, get_json_object_field_force(from, "can_change_info")));
+ TRY_STATUS(from_json(to.can_post_messages_, get_json_object_field_force(from, "can_post_messages")));
+ TRY_STATUS(from_json(to.can_edit_messages_, get_json_object_field_force(from, "can_edit_messages")));
+ TRY_STATUS(from_json(to.can_delete_messages_, get_json_object_field_force(from, "can_delete_messages")));
+ TRY_STATUS(from_json(to.can_invite_users_, get_json_object_field_force(from, "can_invite_users")));
+ TRY_STATUS(from_json(to.can_restrict_members_, get_json_object_field_force(from, "can_restrict_members")));
+ TRY_STATUS(from_json(to.can_pin_messages_, get_json_object_field_force(from, "can_pin_messages")));
+ TRY_STATUS(from_json(to.can_manage_topics_, get_json_object_field_force(from, "can_manage_topics")));
+ TRY_STATUS(from_json(to.can_promote_members_, get_json_object_field_force(from, "can_promote_members")));
+ TRY_STATUS(from_json(to.can_manage_video_chats_, get_json_object_field_force(from, "can_manage_video_chats")));
+ TRY_STATUS(from_json(to.is_anonymous_, get_json_object_field_force(from, "is_anonymous")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatAvailableReactionsAll &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatAvailableReactionsSome &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.reactions_, get_json_object_field_force(from, "reactions")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatEventLogFilters &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.message_edits_, get_json_object_field_force(from, "message_edits")));
+ TRY_STATUS(from_json(to.message_deletions_, get_json_object_field_force(from, "message_deletions")));
+ TRY_STATUS(from_json(to.message_pins_, get_json_object_field_force(from, "message_pins")));
+ TRY_STATUS(from_json(to.member_joins_, get_json_object_field_force(from, "member_joins")));
+ TRY_STATUS(from_json(to.member_leaves_, get_json_object_field_force(from, "member_leaves")));
+ TRY_STATUS(from_json(to.member_invites_, get_json_object_field_force(from, "member_invites")));
+ TRY_STATUS(from_json(to.member_promotions_, get_json_object_field_force(from, "member_promotions")));
+ TRY_STATUS(from_json(to.member_restrictions_, get_json_object_field_force(from, "member_restrictions")));
+ TRY_STATUS(from_json(to.info_changes_, get_json_object_field_force(from, "info_changes")));
+ TRY_STATUS(from_json(to.setting_changes_, get_json_object_field_force(from, "setting_changes")));
+ TRY_STATUS(from_json(to.invite_link_changes_, get_json_object_field_force(from, "invite_link_changes")));
+ TRY_STATUS(from_json(to.video_chat_changes_, get_json_object_field_force(from, "video_chat_changes")));
+ TRY_STATUS(from_json(to.forum_changes_, get_json_object_field_force(from, "forum_changes")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatFilter &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.icon_name_, get_json_object_field_force(from, "icon_name")));
+ TRY_STATUS(from_json(to.pinned_chat_ids_, get_json_object_field_force(from, "pinned_chat_ids")));
+ TRY_STATUS(from_json(to.included_chat_ids_, get_json_object_field_force(from, "included_chat_ids")));
+ TRY_STATUS(from_json(to.excluded_chat_ids_, get_json_object_field_force(from, "excluded_chat_ids")));
+ TRY_STATUS(from_json(to.exclude_muted_, get_json_object_field_force(from, "exclude_muted")));
+ TRY_STATUS(from_json(to.exclude_read_, get_json_object_field_force(from, "exclude_read")));
+ TRY_STATUS(from_json(to.exclude_archived_, get_json_object_field_force(from, "exclude_archived")));
+ TRY_STATUS(from_json(to.include_contacts_, get_json_object_field_force(from, "include_contacts")));
+ TRY_STATUS(from_json(to.include_non_contacts_, get_json_object_field_force(from, "include_non_contacts")));
+ TRY_STATUS(from_json(to.include_bots_, get_json_object_field_force(from, "include_bots")));
+ TRY_STATUS(from_json(to.include_groups_, get_json_object_field_force(from, "include_groups")));
+ TRY_STATUS(from_json(to.include_channels_, get_json_object_field_force(from, "include_channels")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatInviteLinkMember &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.joined_chat_date_, get_json_object_field_force(from, "joined_chat_date")));
+ TRY_STATUS(from_json(to.approver_user_id_, get_json_object_field_force(from, "approver_user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatJoinRequest &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.date_, get_json_object_field_force(from, "date")));
+ TRY_STATUS(from_json(to.bio_, get_json_object_field_force(from, "bio")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatListMain &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatListArchive &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatListFilter &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_filter_id_, get_json_object_field_force(from, "chat_filter_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatLocation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ TRY_STATUS(from_json(to.address_, get_json_object_field_force(from, "address")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMemberStatusCreator &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.custom_title_, get_json_object_field_force(from, "custom_title")));
+ TRY_STATUS(from_json(to.is_anonymous_, get_json_object_field_force(from, "is_anonymous")));
+ TRY_STATUS(from_json(to.is_member_, get_json_object_field_force(from, "is_member")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMemberStatusAdministrator &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.custom_title_, get_json_object_field_force(from, "custom_title")));
+ TRY_STATUS(from_json(to.can_be_edited_, get_json_object_field_force(from, "can_be_edited")));
+ TRY_STATUS(from_json(to.rights_, get_json_object_field_force(from, "rights")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMemberStatusMember &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMemberStatusRestricted &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.is_member_, get_json_object_field_force(from, "is_member")));
+ TRY_STATUS(from_json(to.restricted_until_date_, get_json_object_field_force(from, "restricted_until_date")));
+ TRY_STATUS(from_json(to.permissions_, get_json_object_field_force(from, "permissions")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMemberStatusLeft &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMemberStatusBanned &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.banned_until_date_, get_json_object_field_force(from, "banned_until_date")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMembersFilterContacts &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMembersFilterAdministrators &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMembersFilterMembers &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMembersFilterMention &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMembersFilterRestricted &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMembersFilterBanned &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatMembersFilterBots &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatNotificationSettings &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.use_default_mute_for_, get_json_object_field_force(from, "use_default_mute_for")));
+ TRY_STATUS(from_json(to.mute_for_, get_json_object_field_force(from, "mute_for")));
+ TRY_STATUS(from_json(to.use_default_sound_, get_json_object_field_force(from, "use_default_sound")));
+ TRY_STATUS(from_json(to.sound_id_, get_json_object_field_force(from, "sound_id")));
+ TRY_STATUS(from_json(to.use_default_show_preview_, get_json_object_field_force(from, "use_default_show_preview")));
+ TRY_STATUS(from_json(to.show_preview_, get_json_object_field_force(from, "show_preview")));
+ TRY_STATUS(from_json(to.use_default_disable_pinned_message_notifications_, get_json_object_field_force(from, "use_default_disable_pinned_message_notifications")));
+ TRY_STATUS(from_json(to.disable_pinned_message_notifications_, get_json_object_field_force(from, "disable_pinned_message_notifications")));
+ TRY_STATUS(from_json(to.use_default_disable_mention_notifications_, get_json_object_field_force(from, "use_default_disable_mention_notifications")));
+ TRY_STATUS(from_json(to.disable_mention_notifications_, get_json_object_field_force(from, "disable_mention_notifications")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatPermissions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.can_send_messages_, get_json_object_field_force(from, "can_send_messages")));
+ TRY_STATUS(from_json(to.can_send_media_messages_, get_json_object_field_force(from, "can_send_media_messages")));
+ TRY_STATUS(from_json(to.can_send_polls_, get_json_object_field_force(from, "can_send_polls")));
+ TRY_STATUS(from_json(to.can_send_other_messages_, get_json_object_field_force(from, "can_send_other_messages")));
+ TRY_STATUS(from_json(to.can_add_web_page_previews_, get_json_object_field_force(from, "can_add_web_page_previews")));
+ TRY_STATUS(from_json(to.can_change_info_, get_json_object_field_force(from, "can_change_info")));
+ TRY_STATUS(from_json(to.can_invite_users_, get_json_object_field_force(from, "can_invite_users")));
+ TRY_STATUS(from_json(to.can_pin_messages_, get_json_object_field_force(from, "can_pin_messages")));
+ TRY_STATUS(from_json(to.can_manage_topics_, get_json_object_field_force(from, "can_manage_topics")));
+ return Status::OK();
+}
+
+Status from_json(td_api::chatReportReasonSpam &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatReportReasonViolence &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatReportReasonPornography &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatReportReasonChildAbuse &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatReportReasonCopyright &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatReportReasonUnrelatedLocation &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatReportReasonFake &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatReportReasonIllegalDrugs &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatReportReasonPersonalDetails &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::chatReportReasonCustom &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::contact &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number")));
+ TRY_STATUS(from_json(to.first_name_, get_json_object_field_force(from, "first_name")));
+ TRY_STATUS(from_json(to.last_name_, get_json_object_field_force(from, "last_name")));
+ TRY_STATUS(from_json(to.vcard_, get_json_object_field_force(from, "vcard")));
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::date &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.day_, get_json_object_field_force(from, "day")));
+ TRY_STATUS(from_json(to.month_, get_json_object_field_force(from, "month")));
+ TRY_STATUS(from_json(to.year_, get_json_object_field_force(from, "year")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenFirebaseCloudMessaging &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token")));
+ TRY_STATUS(from_json(to.encrypt_, get_json_object_field_force(from, "encrypt")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenApplePush &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.device_token_, get_json_object_field_force(from, "device_token")));
+ TRY_STATUS(from_json(to.is_app_sandbox_, get_json_object_field_force(from, "is_app_sandbox")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenApplePushVoIP &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.device_token_, get_json_object_field_force(from, "device_token")));
+ TRY_STATUS(from_json(to.is_app_sandbox_, get_json_object_field_force(from, "is_app_sandbox")));
+ TRY_STATUS(from_json(to.encrypt_, get_json_object_field_force(from, "encrypt")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenWindowsPush &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.access_token_, get_json_object_field_force(from, "access_token")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenMicrosoftPush &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.channel_uri_, get_json_object_field_force(from, "channel_uri")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenMicrosoftPushVoIP &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.channel_uri_, get_json_object_field_force(from, "channel_uri")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenWebPush &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.endpoint_, get_json_object_field_force(from, "endpoint")));
+ TRY_STATUS(from_json(to.p256dh_base64url_, get_json_object_field_force(from, "p256dh_base64url")));
+ TRY_STATUS(from_json(to.auth_base64url_, get_json_object_field_force(from, "auth_base64url")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenSimplePush &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.endpoint_, get_json_object_field_force(from, "endpoint")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenUbuntuPush &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenBlackBerryPush &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deviceTokenTizenPush &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.reg_id_, get_json_object_field_force(from, "reg_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::draftMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id")));
+ TRY_STATUS(from_json(to.date_, get_json_object_field_force(from, "date")));
+ TRY_STATUS(from_json(to.input_message_text_, get_json_object_field_force(from, "input_message_text")));
+ return Status::OK();
+}
+
+Status from_json(td_api::emailAddressAuthenticationCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::emailAddressAuthenticationAppleId &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token")));
+ return Status::OK();
+}
+
+Status from_json(td_api::emailAddressAuthenticationGoogleId &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token")));
+ return Status::OK();
+}
+
+Status from_json(td_api::emojiStatus &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.custom_emoji_id_, get_json_object_field_force(from, "custom_emoji_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::error &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code")));
+ TRY_STATUS(from_json(to.message_, get_json_object_field_force(from, "message")));
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeNone &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeAnimation &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeAudio &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeDocument &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeNotificationSound &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypePhoto &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeProfilePhoto &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeSecret &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeSecretThumbnail &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeSecure &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeSticker &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeThumbnail &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeUnknown &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeVideo &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeVideoNote &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeVoiceNote &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::fileTypeWallpaper &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::formattedText &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ TRY_STATUS(from_json(to.entities_, get_json_object_field_force(from, "entities")));
+ return Status::OK();
+}
+
+Status from_json(td_api::forumTopicIcon &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.color_, get_json_object_field_force(from, "color")));
+ TRY_STATUS(from_json(to.custom_emoji_id_, get_json_object_field_force(from, "custom_emoji_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::groupCallVideoQualityThumbnail &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::groupCallVideoQualityMedium &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::groupCallVideoQualityFull &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::inlineKeyboardButton &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inlineKeyboardButtonTypeUrl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inlineKeyboardButtonTypeLoginUrl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.forward_text_, get_json_object_field_force(from, "forward_text")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inlineKeyboardButtonTypeWebApp &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inlineKeyboardButtonTypeCallback &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inlineKeyboardButtonTypeCallbackWithPassword &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inlineKeyboardButtonTypeCallbackGame &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::inlineKeyboardButtonTypeSwitchInline &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.in_current_chat_, get_json_object_field_force(from, "in_current_chat")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inlineKeyboardButtonTypeBuy &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::inlineKeyboardButtonTypeUser &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputBackgroundLocal &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.background_, get_json_object_field_force(from, "background")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputBackgroundRemote &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.background_id_, get_json_object_field_force(from, "background_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputChatPhotoPrevious &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_photo_id_, get_json_object_field_force(from, "chat_photo_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputChatPhotoStatic &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.photo_, get_json_object_field_force(from, "photo")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputChatPhotoAnimation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.animation_, get_json_object_field_force(from, "animation")));
+ TRY_STATUS(from_json(to.main_frame_timestamp_, get_json_object_field_force(from, "main_frame_timestamp")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputCredentialsSaved &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.saved_credentials_id_, get_json_object_field_force(from, "saved_credentials_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputCredentialsNew &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data")));
+ TRY_STATUS(from_json(to.allow_save_, get_json_object_field_force(from, "allow_save")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputCredentialsApplePay &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputCredentialsGooglePay &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputFileId &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputFileRemote &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputFileLocal &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.path_, get_json_object_field_force(from, "path")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputFileGenerated &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.original_path_, get_json_object_field_force(from, "original_path")));
+ TRY_STATUS(from_json(to.conversion_, get_json_object_field_force(from, "conversion")));
+ TRY_STATUS(from_json(to.expected_size_, get_json_object_field_force(from, "expected_size")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputIdentityDocument &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.number_, get_json_object_field_force(from, "number")));
+ TRY_STATUS(from_json(to.expiry_date_, get_json_object_field_force(from, "expiry_date")));
+ TRY_STATUS(from_json(to.front_side_, get_json_object_field_force(from, "front_side")));
+ TRY_STATUS(from_json(to.reverse_side_, get_json_object_field_force(from, "reverse_side")));
+ TRY_STATUS(from_json(to.selfie_, get_json_object_field_force(from, "selfie")));
+ TRY_STATUS(from_json(to.translation_, get_json_object_field_force(from, "translation")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultAnimation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url")));
+ TRY_STATUS(from_json(to.thumbnail_mime_type_, get_json_object_field_force(from, "thumbnail_mime_type")));
+ TRY_STATUS(from_json(to.video_url_, get_json_object_field_force(from, "video_url")));
+ TRY_STATUS(from_json(to.video_mime_type_, get_json_object_field_force(from, "video_mime_type")));
+ TRY_STATUS(from_json(to.video_duration_, get_json_object_field_force(from, "video_duration")));
+ TRY_STATUS(from_json(to.video_width_, get_json_object_field_force(from, "video_width")));
+ TRY_STATUS(from_json(to.video_height_, get_json_object_field_force(from, "video_height")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultArticle &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ TRY_STATUS(from_json(to.hide_url_, get_json_object_field_force(from, "hide_url")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description")));
+ TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url")));
+ TRY_STATUS(from_json(to.thumbnail_width_, get_json_object_field_force(from, "thumbnail_width")));
+ TRY_STATUS(from_json(to.thumbnail_height_, get_json_object_field_force(from, "thumbnail_height")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultAudio &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.performer_, get_json_object_field_force(from, "performer")));
+ TRY_STATUS(from_json(to.audio_url_, get_json_object_field_force(from, "audio_url")));
+ TRY_STATUS(from_json(to.audio_duration_, get_json_object_field_force(from, "audio_duration")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultContact &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.contact_, get_json_object_field_force(from, "contact")));
+ TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url")));
+ TRY_STATUS(from_json(to.thumbnail_width_, get_json_object_field_force(from, "thumbnail_width")));
+ TRY_STATUS(from_json(to.thumbnail_height_, get_json_object_field_force(from, "thumbnail_height")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultDocument &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description")));
+ TRY_STATUS(from_json(to.document_url_, get_json_object_field_force(from, "document_url")));
+ TRY_STATUS(from_json(to.mime_type_, get_json_object_field_force(from, "mime_type")));
+ TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url")));
+ TRY_STATUS(from_json(to.thumbnail_width_, get_json_object_field_force(from, "thumbnail_width")));
+ TRY_STATUS(from_json(to.thumbnail_height_, get_json_object_field_force(from, "thumbnail_height")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultGame &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.game_short_name_, get_json_object_field_force(from, "game_short_name")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultLocation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ TRY_STATUS(from_json(to.live_period_, get_json_object_field_force(from, "live_period")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url")));
+ TRY_STATUS(from_json(to.thumbnail_width_, get_json_object_field_force(from, "thumbnail_width")));
+ TRY_STATUS(from_json(to.thumbnail_height_, get_json_object_field_force(from, "thumbnail_height")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultPhoto &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description")));
+ TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url")));
+ TRY_STATUS(from_json(to.photo_url_, get_json_object_field_force(from, "photo_url")));
+ TRY_STATUS(from_json(to.photo_width_, get_json_object_field_force(from, "photo_width")));
+ TRY_STATUS(from_json(to.photo_height_, get_json_object_field_force(from, "photo_height")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultSticker &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url")));
+ TRY_STATUS(from_json(to.sticker_url_, get_json_object_field_force(from, "sticker_url")));
+ TRY_STATUS(from_json(to.sticker_width_, get_json_object_field_force(from, "sticker_width")));
+ TRY_STATUS(from_json(to.sticker_height_, get_json_object_field_force(from, "sticker_height")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultVenue &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.venue_, get_json_object_field_force(from, "venue")));
+ TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url")));
+ TRY_STATUS(from_json(to.thumbnail_width_, get_json_object_field_force(from, "thumbnail_width")));
+ TRY_STATUS(from_json(to.thumbnail_height_, get_json_object_field_force(from, "thumbnail_height")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultVideo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description")));
+ TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url")));
+ TRY_STATUS(from_json(to.video_url_, get_json_object_field_force(from, "video_url")));
+ TRY_STATUS(from_json(to.mime_type_, get_json_object_field_force(from, "mime_type")));
+ TRY_STATUS(from_json(to.video_width_, get_json_object_field_force(from, "video_width")));
+ TRY_STATUS(from_json(to.video_height_, get_json_object_field_force(from, "video_height")));
+ TRY_STATUS(from_json(to.video_duration_, get_json_object_field_force(from, "video_duration")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInlineQueryResultVoiceNote &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.voice_note_url_, get_json_object_field_force(from, "voice_note_url")));
+ TRY_STATUS(from_json(to.voice_note_duration_, get_json_object_field_force(from, "voice_note_duration")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInvoiceMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputInvoiceName &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageText &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ TRY_STATUS(from_json(to.disable_web_page_preview_, get_json_object_field_force(from, "disable_web_page_preview")));
+ TRY_STATUS(from_json(to.clear_draft_, get_json_object_field_force(from, "clear_draft")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageAnimation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.animation_, get_json_object_field_force(from, "animation")));
+ TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail")));
+ TRY_STATUS(from_json(to.added_sticker_file_ids_, get_json_object_field_force(from, "added_sticker_file_ids")));
+ TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration")));
+ TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width")));
+ TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height")));
+ TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageAudio &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.audio_, get_json_object_field_force(from, "audio")));
+ TRY_STATUS(from_json(to.album_cover_thumbnail_, get_json_object_field_force(from, "album_cover_thumbnail")));
+ TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.performer_, get_json_object_field_force(from, "performer")));
+ TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageDocument &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.document_, get_json_object_field_force(from, "document")));
+ TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail")));
+ TRY_STATUS(from_json(to.disable_content_type_detection_, get_json_object_field_force(from, "disable_content_type_detection")));
+ TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessagePhoto &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.photo_, get_json_object_field_force(from, "photo")));
+ TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail")));
+ TRY_STATUS(from_json(to.added_sticker_file_ids_, get_json_object_field_force(from, "added_sticker_file_ids")));
+ TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width")));
+ TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height")));
+ TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption")));
+ TRY_STATUS(from_json(to.ttl_, get_json_object_field_force(from, "ttl")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageSticker &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail")));
+ TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width")));
+ TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height")));
+ TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageVideo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.video_, get_json_object_field_force(from, "video")));
+ TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail")));
+ TRY_STATUS(from_json(to.added_sticker_file_ids_, get_json_object_field_force(from, "added_sticker_file_ids")));
+ TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration")));
+ TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width")));
+ TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height")));
+ TRY_STATUS(from_json(to.supports_streaming_, get_json_object_field_force(from, "supports_streaming")));
+ TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption")));
+ TRY_STATUS(from_json(to.ttl_, get_json_object_field_force(from, "ttl")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageVideoNote &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.video_note_, get_json_object_field_force(from, "video_note")));
+ TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail")));
+ TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration")));
+ TRY_STATUS(from_json(to.length_, get_json_object_field_force(from, "length")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageVoiceNote &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.voice_note_, get_json_object_field_force(from, "voice_note")));
+ TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration")));
+ TRY_STATUS(from_json_bytes(to.waveform_, get_json_object_field_force(from, "waveform")));
+ TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageLocation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ TRY_STATUS(from_json(to.live_period_, get_json_object_field_force(from, "live_period")));
+ TRY_STATUS(from_json(to.heading_, get_json_object_field_force(from, "heading")));
+ TRY_STATUS(from_json(to.proximity_alert_radius_, get_json_object_field_force(from, "proximity_alert_radius")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageVenue &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.venue_, get_json_object_field_force(from, "venue")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageContact &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.contact_, get_json_object_field_force(from, "contact")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageDice &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji")));
+ TRY_STATUS(from_json(to.clear_draft_, get_json_object_field_force(from, "clear_draft")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageGame &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id")));
+ TRY_STATUS(from_json(to.game_short_name_, get_json_object_field_force(from, "game_short_name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageInvoice &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.invoice_, get_json_object_field_force(from, "invoice")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description")));
+ TRY_STATUS(from_json(to.photo_url_, get_json_object_field_force(from, "photo_url")));
+ TRY_STATUS(from_json(to.photo_size_, get_json_object_field_force(from, "photo_size")));
+ TRY_STATUS(from_json(to.photo_width_, get_json_object_field_force(from, "photo_width")));
+ TRY_STATUS(from_json(to.photo_height_, get_json_object_field_force(from, "photo_height")));
+ TRY_STATUS(from_json_bytes(to.payload_, get_json_object_field_force(from, "payload")));
+ TRY_STATUS(from_json(to.provider_token_, get_json_object_field_force(from, "provider_token")));
+ TRY_STATUS(from_json(to.provider_data_, get_json_object_field_force(from, "provider_data")));
+ TRY_STATUS(from_json(to.start_parameter_, get_json_object_field_force(from, "start_parameter")));
+ TRY_STATUS(from_json(to.extended_media_content_, get_json_object_field_force(from, "extended_media_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessagePoll &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.question_, get_json_object_field_force(from, "question")));
+ TRY_STATUS(from_json(to.options_, get_json_object_field_force(from, "options")));
+ TRY_STATUS(from_json(to.is_anonymous_, get_json_object_field_force(from, "is_anonymous")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ TRY_STATUS(from_json(to.open_period_, get_json_object_field_force(from, "open_period")));
+ TRY_STATUS(from_json(to.close_date_, get_json_object_field_force(from, "close_date")));
+ TRY_STATUS(from_json(to.is_closed_, get_json_object_field_force(from, "is_closed")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputMessageForwarded &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.from_chat_id_, get_json_object_field_force(from, "from_chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.in_game_share_, get_json_object_field_force(from, "in_game_share")));
+ TRY_STATUS(from_json(to.copy_options_, get_json_object_field_force(from, "copy_options")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementPersonalDetails &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.personal_details_, get_json_object_field_force(from, "personal_details")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementPassport &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.passport_, get_json_object_field_force(from, "passport")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementDriverLicense &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.driver_license_, get_json_object_field_force(from, "driver_license")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementIdentityCard &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.identity_card_, get_json_object_field_force(from, "identity_card")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementInternalPassport &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.internal_passport_, get_json_object_field_force(from, "internal_passport")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementAddress &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.address_, get_json_object_field_force(from, "address")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementUtilityBill &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.utility_bill_, get_json_object_field_force(from, "utility_bill")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementBankStatement &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bank_statement_, get_json_object_field_force(from, "bank_statement")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementRentalAgreement &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.rental_agreement_, get_json_object_field_force(from, "rental_agreement")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementPassportRegistration &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.passport_registration_, get_json_object_field_force(from, "passport_registration")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementTemporaryRegistration &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.temporary_registration_, get_json_object_field_force(from, "temporary_registration")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementPhoneNumber &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementEmailAddress &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.email_address_, get_json_object_field_force(from, "email_address")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementError &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ TRY_STATUS(from_json(to.message_, get_json_object_field_force(from, "message")));
+ TRY_STATUS(from_json(to.source_, get_json_object_field_force(from, "source")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementErrorSourceUnspecified &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.element_hash_, get_json_object_field_force(from, "element_hash")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementErrorSourceDataField &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.field_name_, get_json_object_field_force(from, "field_name")));
+ TRY_STATUS(from_json_bytes(to.data_hash_, get_json_object_field_force(from, "data_hash")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementErrorSourceFrontSide &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.file_hash_, get_json_object_field_force(from, "file_hash")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementErrorSourceReverseSide &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.file_hash_, get_json_object_field_force(from, "file_hash")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementErrorSourceSelfie &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.file_hash_, get_json_object_field_force(from, "file_hash")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementErrorSourceTranslationFile &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.file_hash_, get_json_object_field_force(from, "file_hash")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementErrorSourceTranslationFiles &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_hashes_, get_json_object_field_force(from, "file_hashes")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementErrorSourceFile &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.file_hash_, get_json_object_field_force(from, "file_hash")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPassportElementErrorSourceFiles &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_hashes_, get_json_object_field_force(from, "file_hashes")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputPersonalDocument &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.files_, get_json_object_field_force(from, "files")));
+ TRY_STATUS(from_json(to.translation_, get_json_object_field_force(from, "translation")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputSticker &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ TRY_STATUS(from_json(to.emojis_, get_json_object_field_force(from, "emojis")));
+ TRY_STATUS(from_json(to.format_, get_json_object_field_force(from, "format")));
+ TRY_STATUS(from_json(to.mask_position_, get_json_object_field_force(from, "mask_position")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inputThumbnail &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail")));
+ TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width")));
+ TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height")));
+ return Status::OK();
+}
+
+Status from_json(td_api::invoice &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.currency_, get_json_object_field_force(from, "currency")));
+ TRY_STATUS(from_json(to.price_parts_, get_json_object_field_force(from, "price_parts")));
+ TRY_STATUS(from_json(to.max_tip_amount_, get_json_object_field_force(from, "max_tip_amount")));
+ TRY_STATUS(from_json(to.suggested_tip_amounts_, get_json_object_field_force(from, "suggested_tip_amounts")));
+ TRY_STATUS(from_json(to.recurring_payment_terms_of_service_url_, get_json_object_field_force(from, "recurring_payment_terms_of_service_url")));
+ TRY_STATUS(from_json(to.is_test_, get_json_object_field_force(from, "is_test")));
+ TRY_STATUS(from_json(to.need_name_, get_json_object_field_force(from, "need_name")));
+ TRY_STATUS(from_json(to.need_phone_number_, get_json_object_field_force(from, "need_phone_number")));
+ TRY_STATUS(from_json(to.need_email_address_, get_json_object_field_force(from, "need_email_address")));
+ TRY_STATUS(from_json(to.need_shipping_address_, get_json_object_field_force(from, "need_shipping_address")));
+ TRY_STATUS(from_json(to.send_phone_number_to_provider_, get_json_object_field_force(from, "send_phone_number_to_provider")));
+ TRY_STATUS(from_json(to.send_email_address_to_provider_, get_json_object_field_force(from, "send_email_address_to_provider")));
+ TRY_STATUS(from_json(to.is_flexible_, get_json_object_field_force(from, "is_flexible")));
+ return Status::OK();
+}
+
+Status from_json(td_api::jsonObjectMember &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.key_, get_json_object_field_force(from, "key")));
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::jsonValueNull &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::jsonValueBoolean &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::jsonValueNumber &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::jsonValueString &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::jsonValueArray &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.values_, get_json_object_field_force(from, "values")));
+ return Status::OK();
+}
+
+Status from_json(td_api::jsonValueObject &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.members_, get_json_object_field_force(from, "members")));
+ return Status::OK();
+}
+
+Status from_json(td_api::keyboardButton &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::keyboardButtonTypeText &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::keyboardButtonTypeRequestPhoneNumber &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::keyboardButtonTypeRequestLocation &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::keyboardButtonTypeRequestPoll &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.force_regular_, get_json_object_field_force(from, "force_regular")));
+ TRY_STATUS(from_json(to.force_quiz_, get_json_object_field_force(from, "force_quiz")));
+ return Status::OK();
+}
+
+Status from_json(td_api::keyboardButtonTypeWebApp &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ return Status::OK();
+}
+
+Status from_json(td_api::labeledPricePart &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.label_, get_json_object_field_force(from, "label")));
+ TRY_STATUS(from_json(to.amount_, get_json_object_field_force(from, "amount")));
+ return Status::OK();
+}
+
+Status from_json(td_api::languagePackInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.base_language_pack_id_, get_json_object_field_force(from, "base_language_pack_id")));
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.native_name_, get_json_object_field_force(from, "native_name")));
+ TRY_STATUS(from_json(to.plural_code_, get_json_object_field_force(from, "plural_code")));
+ TRY_STATUS(from_json(to.is_official_, get_json_object_field_force(from, "is_official")));
+ TRY_STATUS(from_json(to.is_rtl_, get_json_object_field_force(from, "is_rtl")));
+ TRY_STATUS(from_json(to.is_beta_, get_json_object_field_force(from, "is_beta")));
+ TRY_STATUS(from_json(to.is_installed_, get_json_object_field_force(from, "is_installed")));
+ TRY_STATUS(from_json(to.total_string_count_, get_json_object_field_force(from, "total_string_count")));
+ TRY_STATUS(from_json(to.translated_string_count_, get_json_object_field_force(from, "translated_string_count")));
+ TRY_STATUS(from_json(to.local_string_count_, get_json_object_field_force(from, "local_string_count")));
+ TRY_STATUS(from_json(to.translation_url_, get_json_object_field_force(from, "translation_url")));
+ return Status::OK();
+}
+
+Status from_json(td_api::languagePackString &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.key_, get_json_object_field_force(from, "key")));
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::languagePackStringValueOrdinary &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::languagePackStringValuePluralized &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.zero_value_, get_json_object_field_force(from, "zero_value")));
+ TRY_STATUS(from_json(to.one_value_, get_json_object_field_force(from, "one_value")));
+ TRY_STATUS(from_json(to.two_value_, get_json_object_field_force(from, "two_value")));
+ TRY_STATUS(from_json(to.few_value_, get_json_object_field_force(from, "few_value")));
+ TRY_STATUS(from_json(to.many_value_, get_json_object_field_force(from, "many_value")));
+ TRY_STATUS(from_json(to.other_value_, get_json_object_field_force(from, "other_value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::languagePackStringValueDeleted &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::location &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.latitude_, get_json_object_field_force(from, "latitude")));
+ TRY_STATUS(from_json(to.longitude_, get_json_object_field_force(from, "longitude")));
+ TRY_STATUS(from_json(to.horizontal_accuracy_, get_json_object_field_force(from, "horizontal_accuracy")));
+ return Status::OK();
+}
+
+Status from_json(td_api::logStreamDefault &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::logStreamFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.path_, get_json_object_field_force(from, "path")));
+ TRY_STATUS(from_json(to.max_file_size_, get_json_object_field_force(from, "max_file_size")));
+ TRY_STATUS(from_json(to.redirect_stderr_, get_json_object_field_force(from, "redirect_stderr")));
+ return Status::OK();
+}
+
+Status from_json(td_api::logStreamEmpty &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::maskPointForehead &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::maskPointEyes &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::maskPointMouth &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::maskPointChin &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::maskPosition &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.point_, get_json_object_field_force(from, "point")));
+ TRY_STATUS(from_json(to.x_shift_, get_json_object_field_force(from, "x_shift")));
+ TRY_STATUS(from_json(to.y_shift_, get_json_object_field_force(from, "y_shift")));
+ TRY_STATUS(from_json(to.scale_, get_json_object_field_force(from, "scale")));
+ return Status::OK();
+}
+
+Status from_json(td_api::messageCopyOptions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.send_copy_, get_json_object_field_force(from, "send_copy")));
+ TRY_STATUS(from_json(to.replace_caption_, get_json_object_field_force(from, "replace_caption")));
+ TRY_STATUS(from_json(to.new_caption_, get_json_object_field_force(from, "new_caption")));
+ return Status::OK();
+}
+
+Status from_json(td_api::messageSchedulingStateSendAtDate &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.send_date_, get_json_object_field_force(from, "send_date")));
+ return Status::OK();
+}
+
+Status from_json(td_api::messageSchedulingStateSendWhenOnline &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::messageSendOptions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.disable_notification_, get_json_object_field_force(from, "disable_notification")));
+ TRY_STATUS(from_json(to.from_background_, get_json_object_field_force(from, "from_background")));
+ TRY_STATUS(from_json(to.protect_content_, get_json_object_field_force(from, "protect_content")));
+ TRY_STATUS(from_json(to.update_order_of_installed_sticker_sets_, get_json_object_field_force(from, "update_order_of_installed_sticker_sets")));
+ TRY_STATUS(from_json(to.scheduling_state_, get_json_object_field_force(from, "scheduling_state")));
+ return Status::OK();
+}
+
+Status from_json(td_api::messageSenderUser &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::messageSenderChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::networkStatisticsEntryFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_type_, get_json_object_field_force(from, "file_type")));
+ TRY_STATUS(from_json(to.network_type_, get_json_object_field_force(from, "network_type")));
+ TRY_STATUS(from_json(to.sent_bytes_, get_json_object_field_force(from, "sent_bytes")));
+ TRY_STATUS(from_json(to.received_bytes_, get_json_object_field_force(from, "received_bytes")));
+ return Status::OK();
+}
+
+Status from_json(td_api::networkStatisticsEntryCall &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.network_type_, get_json_object_field_force(from, "network_type")));
+ TRY_STATUS(from_json(to.sent_bytes_, get_json_object_field_force(from, "sent_bytes")));
+ TRY_STATUS(from_json(to.received_bytes_, get_json_object_field_force(from, "received_bytes")));
+ TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration")));
+ return Status::OK();
+}
+
+Status from_json(td_api::networkTypeNone &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::networkTypeMobile &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::networkTypeMobileRoaming &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::networkTypeWiFi &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::networkTypeOther &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::notificationSettingsScopePrivateChats &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::notificationSettingsScopeGroupChats &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::notificationSettingsScopeChannelChats &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::optionValueBoolean &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::optionValueEmpty &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::optionValueInteger &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::optionValueString &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::orderInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number")));
+ TRY_STATUS(from_json(to.email_address_, get_json_object_field_force(from, "email_address")));
+ TRY_STATUS(from_json(to.shipping_address_, get_json_object_field_force(from, "shipping_address")));
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypePersonalDetails &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypePassport &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypeDriverLicense &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypeIdentityCard &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypeInternalPassport &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypeAddress &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypeUtilityBill &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypeBankStatement &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypeRentalAgreement &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypePassportRegistration &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypeTemporaryRegistration &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypePhoneNumber &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::passportElementTypeEmailAddress &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::personalDetails &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.first_name_, get_json_object_field_force(from, "first_name")));
+ TRY_STATUS(from_json(to.middle_name_, get_json_object_field_force(from, "middle_name")));
+ TRY_STATUS(from_json(to.last_name_, get_json_object_field_force(from, "last_name")));
+ TRY_STATUS(from_json(to.native_first_name_, get_json_object_field_force(from, "native_first_name")));
+ TRY_STATUS(from_json(to.native_middle_name_, get_json_object_field_force(from, "native_middle_name")));
+ TRY_STATUS(from_json(to.native_last_name_, get_json_object_field_force(from, "native_last_name")));
+ TRY_STATUS(from_json(to.birthdate_, get_json_object_field_force(from, "birthdate")));
+ TRY_STATUS(from_json(to.gender_, get_json_object_field_force(from, "gender")));
+ TRY_STATUS(from_json(to.country_code_, get_json_object_field_force(from, "country_code")));
+ TRY_STATUS(from_json(to.residence_country_code_, get_json_object_field_force(from, "residence_country_code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::phoneNumberAuthenticationSettings &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.allow_flash_call_, get_json_object_field_force(from, "allow_flash_call")));
+ TRY_STATUS(from_json(to.allow_missed_call_, get_json_object_field_force(from, "allow_missed_call")));
+ TRY_STATUS(from_json(to.is_current_phone_number_, get_json_object_field_force(from, "is_current_phone_number")));
+ TRY_STATUS(from_json(to.allow_sms_retriever_api_, get_json_object_field_force(from, "allow_sms_retriever_api")));
+ TRY_STATUS(from_json(to.authentication_tokens_, get_json_object_field_force(from, "authentication_tokens")));
+ return Status::OK();
+}
+
+Status from_json(td_api::pollTypeRegular &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.allow_multiple_answers_, get_json_object_field_force(from, "allow_multiple_answers")));
+ return Status::OK();
+}
+
+Status from_json(td_api::pollTypeQuiz &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.correct_option_id_, get_json_object_field_force(from, "correct_option_id")));
+ TRY_STATUS(from_json(to.explanation_, get_json_object_field_force(from, "explanation")));
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureIncreasedLimits &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureIncreasedUploadFileSize &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureImprovedDownloadSpeed &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureVoiceRecognition &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureDisabledAds &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureUniqueReactions &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureUniqueStickers &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureCustomEmoji &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureAdvancedChatManagement &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureProfileBadge &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureEmojiStatus &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureAnimatedProfilePhoto &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureForumTopicIcon &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumFeatureAppIcons &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumLimitTypeSupergroupCount &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumLimitTypePinnedChatCount &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumLimitTypeCreatedPublicChatCount &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumLimitTypeSavedAnimationCount &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumLimitTypeFavoriteStickerCount &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumLimitTypeChatFilterCount &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumLimitTypeChatFilterChosenChatCount &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumLimitTypePinnedArchivedChatCount &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumLimitTypeCaptionLength &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumLimitTypeBioLength &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumSourceLimitExceeded &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.limit_type_, get_json_object_field_force(from, "limit_type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumSourceFeature &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.feature_, get_json_object_field_force(from, "feature")));
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumSourceLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.referrer_, get_json_object_field_force(from, "referrer")));
+ return Status::OK();
+}
+
+Status from_json(td_api::premiumSourceSettings &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::proxyTypeSocks5 &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username")));
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ return Status::OK();
+}
+
+Status from_json(td_api::proxyTypeHttp &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username")));
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ TRY_STATUS(from_json(to.http_only_, get_json_object_field_force(from, "http_only")));
+ return Status::OK();
+}
+
+Status from_json(td_api::proxyTypeMtproto &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.secret_, get_json_object_field_force(from, "secret")));
+ return Status::OK();
+}
+
+Status from_json(td_api::publicChatTypeHasUsername &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::publicChatTypeIsLocationBased &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::reactionTypeEmoji &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji")));
+ return Status::OK();
+}
+
+Status from_json(td_api::reactionTypeCustomEmoji &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.custom_emoji_id_, get_json_object_field_force(from, "custom_emoji_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::replyMarkupRemoveKeyboard &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.is_personal_, get_json_object_field_force(from, "is_personal")));
+ return Status::OK();
+}
+
+Status from_json(td_api::replyMarkupForceReply &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.is_personal_, get_json_object_field_force(from, "is_personal")));
+ TRY_STATUS(from_json(to.input_field_placeholder_, get_json_object_field_force(from, "input_field_placeholder")));
+ return Status::OK();
+}
+
+Status from_json(td_api::replyMarkupShowKeyboard &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.rows_, get_json_object_field_force(from, "rows")));
+ TRY_STATUS(from_json(to.resize_keyboard_, get_json_object_field_force(from, "resize_keyboard")));
+ TRY_STATUS(from_json(to.one_time_, get_json_object_field_force(from, "one_time")));
+ TRY_STATUS(from_json(to.is_personal_, get_json_object_field_force(from, "is_personal")));
+ TRY_STATUS(from_json(to.input_field_placeholder_, get_json_object_field_force(from, "input_field_placeholder")));
+ return Status::OK();
+}
+
+Status from_json(td_api::replyMarkupInlineKeyboard &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.rows_, get_json_object_field_force(from, "rows")));
+ return Status::OK();
+}
+
+Status from_json(td_api::scopeNotificationSettings &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.mute_for_, get_json_object_field_force(from, "mute_for")));
+ TRY_STATUS(from_json(to.sound_id_, get_json_object_field_force(from, "sound_id")));
+ TRY_STATUS(from_json(to.show_preview_, get_json_object_field_force(from, "show_preview")));
+ TRY_STATUS(from_json(to.disable_pinned_message_notifications_, get_json_object_field_force(from, "disable_pinned_message_notifications")));
+ TRY_STATUS(from_json(to.disable_mention_notifications_, get_json_object_field_force(from, "disable_mention_notifications")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterEmpty &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterAnimation &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterAudio &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterDocument &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterPhoto &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterVideo &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterVoiceNote &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterPhotoAndVideo &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterUrl &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterChatPhoto &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterVideoNote &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterVoiceAndVideoNote &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterMention &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterUnreadMention &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterUnreadReaction &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterFailedToSend &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessagesFilterPinned &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::shippingOption &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.price_parts_, get_json_object_field_force(from, "price_parts")));
+ return Status::OK();
+}
+
+Status from_json(td_api::stickerFormatWebp &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::stickerFormatTgs &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::stickerFormatWebm &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::stickerTypeRegular &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::stickerTypeMask &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::stickerTypeCustomEmoji &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::storePaymentPurposePremiumSubscription &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.is_restore_, get_json_object_field_force(from, "is_restore")));
+ return Status::OK();
+}
+
+Status from_json(td_api::storePaymentPurposeGiftedPremium &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.currency_, get_json_object_field_force(from, "currency")));
+ TRY_STATUS(from_json(to.amount_, get_json_object_field_force(from, "amount")));
+ return Status::OK();
+}
+
+Status from_json(td_api::suggestedActionEnableArchiveAndMuteNewChats &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::suggestedActionCheckPassword &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::suggestedActionCheckPhoneNumber &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::suggestedActionViewChecksHint &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::suggestedActionConvertToBroadcastGroup &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::suggestedActionSetPassword &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.authorization_delay_, get_json_object_field_force(from, "authorization_delay")));
+ return Status::OK();
+}
+
+Status from_json(td_api::supergroupMembersFilterRecent &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::supergroupMembersFilterContacts &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ return Status::OK();
+}
+
+Status from_json(td_api::supergroupMembersFilterAdministrators &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::supergroupMembersFilterSearch &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ return Status::OK();
+}
+
+Status from_json(td_api::supergroupMembersFilterRestricted &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ return Status::OK();
+}
+
+Status from_json(td_api::supergroupMembersFilterBanned &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ return Status::OK();
+}
+
+Status from_json(td_api::supergroupMembersFilterMention &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::supergroupMembersFilterBots &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::testInt &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testString &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntity &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.length_, get_json_object_field_force(from, "length")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeMention &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeHashtag &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeCashtag &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeBotCommand &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeUrl &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeEmailAddress &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypePhoneNumber &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeBankCardNumber &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeBold &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeItalic &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeUnderline &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeStrikethrough &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeSpoiler &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeCode &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypePre &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypePreCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.language_, get_json_object_field_force(from, "language")));
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeTextUrl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeMentionName &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeCustomEmoji &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.custom_emoji_id_, get_json_object_field_force(from, "custom_emoji_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::textEntityTypeMediaTimestamp &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.media_timestamp_, get_json_object_field_force(from, "media_timestamp")));
+ return Status::OK();
+}
+
+Status from_json(td_api::textParseModeMarkdown &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.version_, get_json_object_field_force(from, "version")));
+ return Status::OK();
+}
+
+Status from_json(td_api::textParseModeHTML &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::themeParameters &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.background_color_, get_json_object_field_force(from, "background_color")));
+ TRY_STATUS(from_json(to.secondary_background_color_, get_json_object_field_force(from, "secondary_background_color")));
+ TRY_STATUS(from_json(to.text_color_, get_json_object_field_force(from, "text_color")));
+ TRY_STATUS(from_json(to.hint_color_, get_json_object_field_force(from, "hint_color")));
+ TRY_STATUS(from_json(to.link_color_, get_json_object_field_force(from, "link_color")));
+ TRY_STATUS(from_json(to.button_color_, get_json_object_field_force(from, "button_color")));
+ TRY_STATUS(from_json(to.button_text_color_, get_json_object_field_force(from, "button_text_color")));
+ return Status::OK();
+}
+
+Status from_json(td_api::topChatCategoryUsers &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::topChatCategoryBots &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::topChatCategoryGroups &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::topChatCategoryChannels &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::topChatCategoryInlineBots &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::topChatCategoryCalls &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::topChatCategoryForwardChats &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingShowStatus &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingShowProfilePhoto &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingShowLinkInForwardedMessages &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingShowPhoneNumber &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingAllowChatInvites &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingAllowCalls &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingAllowPeerToPeerCalls &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingAllowFindingByPhoneNumber &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingRuleAllowAll &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingRuleAllowContacts &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingRuleAllowUsers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingRuleAllowChatMembers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_ids_, get_json_object_field_force(from, "chat_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingRuleRestrictAll &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingRuleRestrictContacts &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingRuleRestrictUsers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingRuleRestrictChatMembers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_ids_, get_json_object_field_force(from, "chat_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::userPrivacySettingRules &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.rules_, get_json_object_field_force(from, "rules")));
+ return Status::OK();
+}
+
+Status from_json(td_api::venue &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.address_, get_json_object_field_force(from, "address")));
+ TRY_STATUS(from_json(to.provider_, get_json_object_field_force(from, "provider")));
+ TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::acceptCall &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id")));
+ TRY_STATUS(from_json(to.protocol_, get_json_object_field_force(from, "protocol")));
+ return Status::OK();
+}
+
+Status from_json(td_api::acceptTermsOfService &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.terms_of_service_id_, get_json_object_field_force(from, "terms_of_service_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addChatMember &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.forward_limit_, get_json_object_field_force(from, "forward_limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addChatMembers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addChatToList &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addContact &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.contact_, get_json_object_field_force(from, "contact")));
+ TRY_STATUS(from_json(to.share_phone_number_, get_json_object_field_force(from, "share_phone_number")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addCustomServerLanguagePack &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addFavoriteSticker &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addFileToDownloads &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.priority_, get_json_object_field_force(from, "priority")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addLocalMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.sender_id_, get_json_object_field_force(from, "sender_id")));
+ TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id")));
+ TRY_STATUS(from_json(to.disable_notification_, get_json_object_field_force(from, "disable_notification")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addLogMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.verbosity_level_, get_json_object_field_force(from, "verbosity_level")));
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addMessageReaction &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.reaction_type_, get_json_object_field_force(from, "reaction_type")));
+ TRY_STATUS(from_json(to.is_big_, get_json_object_field_force(from, "is_big")));
+ TRY_STATUS(from_json(to.update_recent_reactions_, get_json_object_field_force(from, "update_recent_reactions")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addNetworkStatistics &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.entry_, get_json_object_field_force(from, "entry")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addProxy &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.server_, get_json_object_field_force(from, "server")));
+ TRY_STATUS(from_json(to.port_, get_json_object_field_force(from, "port")));
+ TRY_STATUS(from_json(to.enable_, get_json_object_field_force(from, "enable")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addRecentSticker &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.is_attached_, get_json_object_field_force(from, "is_attached")));
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addRecentlyFoundChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addSavedAnimation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.animation_, get_json_object_field_force(from, "animation")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addSavedNotificationSound &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sound_, get_json_object_field_force(from, "sound")));
+ return Status::OK();
+}
+
+Status from_json(td_api::addStickerToSet &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ return Status::OK();
+}
+
+Status from_json(td_api::answerCallbackQuery &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.callback_query_id_, get_json_object_field_force(from, "callback_query_id")));
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ TRY_STATUS(from_json(to.show_alert_, get_json_object_field_force(from, "show_alert")));
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ TRY_STATUS(from_json(to.cache_time_, get_json_object_field_force(from, "cache_time")));
+ return Status::OK();
+}
+
+Status from_json(td_api::answerCustomQuery &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.custom_query_id_, get_json_object_field_force(from, "custom_query_id")));
+ TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::answerInlineQuery &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.inline_query_id_, get_json_object_field_force(from, "inline_query_id")));
+ TRY_STATUS(from_json(to.is_personal_, get_json_object_field_force(from, "is_personal")));
+ TRY_STATUS(from_json(to.results_, get_json_object_field_force(from, "results")));
+ TRY_STATUS(from_json(to.cache_time_, get_json_object_field_force(from, "cache_time")));
+ TRY_STATUS(from_json(to.next_offset_, get_json_object_field_force(from, "next_offset")));
+ TRY_STATUS(from_json(to.switch_pm_text_, get_json_object_field_force(from, "switch_pm_text")));
+ TRY_STATUS(from_json(to.switch_pm_parameter_, get_json_object_field_force(from, "switch_pm_parameter")));
+ return Status::OK();
+}
+
+Status from_json(td_api::answerPreCheckoutQuery &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.pre_checkout_query_id_, get_json_object_field_force(from, "pre_checkout_query_id")));
+ TRY_STATUS(from_json(to.error_message_, get_json_object_field_force(from, "error_message")));
+ return Status::OK();
+}
+
+Status from_json(td_api::answerShippingQuery &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.shipping_query_id_, get_json_object_field_force(from, "shipping_query_id")));
+ TRY_STATUS(from_json(to.shipping_options_, get_json_object_field_force(from, "shipping_options")));
+ TRY_STATUS(from_json(to.error_message_, get_json_object_field_force(from, "error_message")));
+ return Status::OK();
+}
+
+Status from_json(td_api::answerWebAppQuery &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.web_app_query_id_, get_json_object_field_force(from, "web_app_query_id")));
+ TRY_STATUS(from_json(to.result_, get_json_object_field_force(from, "result")));
+ return Status::OK();
+}
+
+Status from_json(td_api::assignAppStoreTransaction &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.receipt_, get_json_object_field_force(from, "receipt")));
+ TRY_STATUS(from_json(to.purpose_, get_json_object_field_force(from, "purpose")));
+ return Status::OK();
+}
+
+Status from_json(td_api::assignGooglePlayTransaction &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.package_name_, get_json_object_field_force(from, "package_name")));
+ TRY_STATUS(from_json(to.store_product_id_, get_json_object_field_force(from, "store_product_id")));
+ TRY_STATUS(from_json(to.purchase_token_, get_json_object_field_force(from, "purchase_token")));
+ TRY_STATUS(from_json(to.purpose_, get_json_object_field_force(from, "purpose")));
+ return Status::OK();
+}
+
+Status from_json(td_api::banChatMember &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.member_id_, get_json_object_field_force(from, "member_id")));
+ TRY_STATUS(from_json(to.banned_until_date_, get_json_object_field_force(from, "banned_until_date")));
+ TRY_STATUS(from_json(to.revoke_messages_, get_json_object_field_force(from, "revoke_messages")));
+ return Status::OK();
+}
+
+Status from_json(td_api::blockMessageSenderFromReplies &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.delete_message_, get_json_object_field_force(from, "delete_message")));
+ TRY_STATUS(from_json(to.delete_all_messages_, get_json_object_field_force(from, "delete_all_messages")));
+ TRY_STATUS(from_json(to.report_spam_, get_json_object_field_force(from, "report_spam")));
+ return Status::OK();
+}
+
+Status from_json(td_api::canPurchasePremium &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.purpose_, get_json_object_field_force(from, "purpose")));
+ return Status::OK();
+}
+
+Status from_json(td_api::canTransferOwnership &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::cancelDownloadFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ TRY_STATUS(from_json(to.only_if_pending_, get_json_object_field_force(from, "only_if_pending")));
+ return Status::OK();
+}
+
+Status from_json(td_api::cancelPasswordReset &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::cancelPreliminaryUploadFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::changeImportedContacts &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.contacts_, get_json_object_field_force(from, "contacts")));
+ return Status::OK();
+}
+
+Status from_json(td_api::changePhoneNumber &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number")));
+ TRY_STATUS(from_json(to.settings_, get_json_object_field_force(from, "settings")));
+ return Status::OK();
+}
+
+Status from_json(td_api::changeStickerSet &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.set_id_, get_json_object_field_force(from, "set_id")));
+ TRY_STATUS(from_json(to.is_installed_, get_json_object_field_force(from, "is_installed")));
+ TRY_STATUS(from_json(to.is_archived_, get_json_object_field_force(from, "is_archived")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkAuthenticationBotToken &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkAuthenticationCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkAuthenticationEmailCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkAuthenticationPassword &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkAuthenticationPasswordRecoveryCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.recovery_code_, get_json_object_field_force(from, "recovery_code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkChangePhoneNumberCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkChatInviteLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkChatUsername &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkCreatedPublicChatsLimit &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkEmailAddressVerificationCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkLoginEmailAddressCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkPasswordRecoveryCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.recovery_code_, get_json_object_field_force(from, "recovery_code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkPhoneNumberConfirmationCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkPhoneNumberVerificationCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkRecoveryEmailAddressCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::checkStickerSetName &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::cleanFileName &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_name_, get_json_object_field_force(from, "file_name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::clearAllDraftMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.exclude_secret_chats_, get_json_object_field_force(from, "exclude_secret_chats")));
+ return Status::OK();
+}
+
+Status from_json(td_api::clearImportedContacts &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::clearRecentEmojiStatuses &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::clearRecentReactions &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::clearRecentStickers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.is_attached_, get_json_object_field_force(from, "is_attached")));
+ return Status::OK();
+}
+
+Status from_json(td_api::clearRecentlyFoundChats &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::clickAnimatedEmojiMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::clickPremiumSubscriptionButton &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::close &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::closeChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::closeSecretChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.secret_chat_id_, get_json_object_field_force(from, "secret_chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::closeWebApp &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.web_app_launch_id_, get_json_object_field_force(from, "web_app_launch_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::confirmQrCodeAuthentication &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.link_, get_json_object_field_force(from, "link")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createBasicGroupChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.basic_group_id_, get_json_object_field_force(from, "basic_group_id")));
+ TRY_STATUS(from_json(to.force_, get_json_object_field_force(from, "force")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createCall &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.protocol_, get_json_object_field_force(from, "protocol")));
+ TRY_STATUS(from_json(to.is_video_, get_json_object_field_force(from, "is_video")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createChatFilter &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createChatInviteLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.expiration_date_, get_json_object_field_force(from, "expiration_date")));
+ TRY_STATUS(from_json(to.member_limit_, get_json_object_field_force(from, "member_limit")));
+ TRY_STATUS(from_json(to.creates_join_request_, get_json_object_field_force(from, "creates_join_request")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createForumTopic &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.icon_, get_json_object_field_force(from, "icon")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createInvoiceLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.invoice_, get_json_object_field_force(from, "invoice")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createNewBasicGroupChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createNewSecretChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createNewStickerSet &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type")));
+ TRY_STATUS(from_json(to.stickers_, get_json_object_field_force(from, "stickers")));
+ TRY_STATUS(from_json(to.source_, get_json_object_field_force(from, "source")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createNewSupergroupChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.is_channel_, get_json_object_field_force(from, "is_channel")));
+ TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description")));
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ TRY_STATUS(from_json(to.for_import_, get_json_object_field_force(from, "for_import")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createPrivateChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.force_, get_json_object_field_force(from, "force")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createSecretChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.secret_chat_id_, get_json_object_field_force(from, "secret_chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createSupergroupChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.force_, get_json_object_field_force(from, "force")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createTemporaryPassword &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ TRY_STATUS(from_json(to.valid_for_, get_json_object_field_force(from, "valid_for")));
+ return Status::OK();
+}
+
+Status from_json(td_api::createVideoChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.start_date_, get_json_object_field_force(from, "start_date")));
+ TRY_STATUS(from_json(to.is_rtmp_stream_, get_json_object_field_force(from, "is_rtmp_stream")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteAccount &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.reason_, get_json_object_field_force(from, "reason")));
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteAllCallMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.revoke_, get_json_object_field_force(from, "revoke")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteAllRevokedChatInviteLinks &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.creator_user_id_, get_json_object_field_force(from, "creator_user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteChatFilter &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_filter_id_, get_json_object_field_force(from, "chat_filter_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteChatHistory &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.remove_from_chat_list_, get_json_object_field_force(from, "remove_from_chat_list")));
+ TRY_STATUS(from_json(to.revoke_, get_json_object_field_force(from, "revoke")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteChatMessagesByDate &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.min_date_, get_json_object_field_force(from, "min_date")));
+ TRY_STATUS(from_json(to.max_date_, get_json_object_field_force(from, "max_date")));
+ TRY_STATUS(from_json(to.revoke_, get_json_object_field_force(from, "revoke")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteChatMessagesBySender &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.sender_id_, get_json_object_field_force(from, "sender_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteChatReplyMarkup &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteCommands &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope")));
+ TRY_STATUS(from_json(to.language_code_, get_json_object_field_force(from, "language_code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteForumTopic &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteLanguagePack &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids")));
+ TRY_STATUS(from_json(to.revoke_, get_json_object_field_force(from, "revoke")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deletePassportElement &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteProfilePhoto &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.profile_photo_id_, get_json_object_field_force(from, "profile_photo_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteRevokedChatInviteLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link")));
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteSavedCredentials &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::deleteSavedOrderInfo &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::destroy &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::disableAllSupergroupUsernames &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::disableProxy &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::discardCall &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id")));
+ TRY_STATUS(from_json(to.is_disconnected_, get_json_object_field_force(from, "is_disconnected")));
+ TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration")));
+ TRY_STATUS(from_json(to.is_video_, get_json_object_field_force(from, "is_video")));
+ TRY_STATUS(from_json(to.connection_id_, get_json_object_field_force(from, "connection_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::disconnectAllWebsites &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::disconnectWebsite &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.website_id_, get_json_object_field_force(from, "website_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::downloadFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ TRY_STATUS(from_json(to.priority_, get_json_object_field_force(from, "priority")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ TRY_STATUS(from_json(to.synchronous_, get_json_object_field_force(from, "synchronous")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editChatFilter &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_filter_id_, get_json_object_field_force(from, "chat_filter_id")));
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editChatInviteLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link")));
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.expiration_date_, get_json_object_field_force(from, "expiration_date")));
+ TRY_STATUS(from_json(to.member_limit_, get_json_object_field_force(from, "member_limit")));
+ TRY_STATUS(from_json(to.creates_join_request_, get_json_object_field_force(from, "creates_join_request")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editCustomLanguagePackInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.info_, get_json_object_field_force(from, "info")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editForumTopic &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.icon_custom_emoji_id_, get_json_object_field_force(from, "icon_custom_emoji_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editInlineMessageCaption &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editInlineMessageLiveLocation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ TRY_STATUS(from_json(to.heading_, get_json_object_field_force(from, "heading")));
+ TRY_STATUS(from_json(to.proximity_alert_radius_, get_json_object_field_force(from, "proximity_alert_radius")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editInlineMessageMedia &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editInlineMessageReplyMarkup &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editInlineMessageText &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editMessageCaption &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editMessageLiveLocation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ TRY_STATUS(from_json(to.heading_, get_json_object_field_force(from, "heading")));
+ TRY_STATUS(from_json(to.proximity_alert_radius_, get_json_object_field_force(from, "proximity_alert_radius")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editMessageMedia &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editMessageReplyMarkup &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editMessageSchedulingState &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.scheduling_state_, get_json_object_field_force(from, "scheduling_state")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editMessageText &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::editProxy &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.proxy_id_, get_json_object_field_force(from, "proxy_id")));
+ TRY_STATUS(from_json(to.server_, get_json_object_field_force(from, "server")));
+ TRY_STATUS(from_json(to.port_, get_json_object_field_force(from, "port")));
+ TRY_STATUS(from_json(to.enable_, get_json_object_field_force(from, "enable")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::enableProxy &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.proxy_id_, get_json_object_field_force(from, "proxy_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::endGroupCall &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::endGroupCallRecording &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::endGroupCallScreenSharing &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::finishFileGeneration &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.generation_id_, get_json_object_field_force(from, "generation_id")));
+ TRY_STATUS(from_json(to.error_, get_json_object_field_force(from, "error")));
+ return Status::OK();
+}
+
+Status from_json(td_api::forwardMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ TRY_STATUS(from_json(to.from_chat_id_, get_json_object_field_force(from, "from_chat_id")));
+ TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids")));
+ TRY_STATUS(from_json(to.options_, get_json_object_field_force(from, "options")));
+ TRY_STATUS(from_json(to.send_copy_, get_json_object_field_force(from, "send_copy")));
+ TRY_STATUS(from_json(to.remove_caption_, get_json_object_field_force(from, "remove_caption")));
+ TRY_STATUS(from_json(to.only_preview_, get_json_object_field_force(from, "only_preview")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getAccountTtl &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getActiveLiveLocationMessages &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getActiveSessions &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getAllPassportElements &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getAnimatedEmoji &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getApplicationConfig &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getApplicationDownloadLink &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getArchivedStickerSets &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type")));
+ TRY_STATUS(from_json(to.offset_sticker_set_id_, get_json_object_field_force(from, "offset_sticker_set_id")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getAttachedStickerSets &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getAttachmentMenuBot &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getAuthorizationState &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getAutoDownloadSettingsPresets &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getBackgroundUrl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getBackgrounds &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.for_dark_theme_, get_json_object_field_force(from, "for_dark_theme")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getBankCardInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bank_card_number_, get_json_object_field_force(from, "bank_card_number")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getBasicGroup &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.basic_group_id_, get_json_object_field_force(from, "basic_group_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getBasicGroupFullInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.basic_group_id_, get_json_object_field_force(from, "basic_group_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getBlockedMessageSenders &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getCallbackQueryAnswer &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.payload_, get_json_object_field_force(from, "payload")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getCallbackQueryMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.callback_query_id_, get_json_object_field_force(from, "callback_query_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatAdministrators &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatAvailableMessageSenders &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatEventLog &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.from_event_id_, get_json_object_field_force(from, "from_event_id")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ TRY_STATUS(from_json(to.filters_, get_json_object_field_force(from, "filters")));
+ TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatFilter &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_filter_id_, get_json_object_field_force(from, "chat_filter_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatFilterDefaultIconName &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatHistory &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ TRY_STATUS(from_json(to.only_local_, get_json_object_field_force(from, "only_local")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatInviteLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatInviteLinkCounts &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatInviteLinkMembers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link")));
+ TRY_STATUS(from_json(to.offset_member_, get_json_object_field_force(from, "offset_member")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatInviteLinks &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.creator_user_id_, get_json_object_field_force(from, "creator_user_id")));
+ TRY_STATUS(from_json(to.is_revoked_, get_json_object_field_force(from, "is_revoked")));
+ TRY_STATUS(from_json(to.offset_date_, get_json_object_field_force(from, "offset_date")));
+ TRY_STATUS(from_json(to.offset_invite_link_, get_json_object_field_force(from, "offset_invite_link")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatJoinRequests &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link")));
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.offset_request_, get_json_object_field_force(from, "offset_request")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatListsToAddChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatMember &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.member_id_, get_json_object_field_force(from, "member_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatMessageByDate &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.date_, get_json_object_field_force(from, "date")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatMessageCalendar &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatMessageCount &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ TRY_STATUS(from_json(to.return_local_, get_json_object_field_force(from, "return_local")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatMessagePosition &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatNotificationSettingsExceptions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope")));
+ TRY_STATUS(from_json(to.compare_sound_, get_json_object_field_force(from, "compare_sound")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatPinnedMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatScheduledMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatSparseMessagePositions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatSponsoredMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChatStatistics &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.is_dark_, get_json_object_field_force(from, "is_dark")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getChats &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getCommands &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope")));
+ TRY_STATUS(from_json(to.language_code_, get_json_object_field_force(from, "language_code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getConnectedWebsites &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getContacts &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getCountries &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getCountryCode &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getCreatedPublicChats &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getCurrentState &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getCustomEmojiReactionAnimations &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getCustomEmojiStickers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.custom_emoji_ids_, get_json_object_field_force(from, "custom_emoji_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getDatabaseStatistics &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getDeepLinkInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.link_, get_json_object_field_force(from, "link")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getDefaultEmojiStatuses &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getEmojiReaction &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getEmojiSuggestionsUrl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.language_code_, get_json_object_field_force(from, "language_code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getExternalLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.link_, get_json_object_field_force(from, "link")));
+ TRY_STATUS(from_json(to.allow_write_access_, get_json_object_field_force(from, "allow_write_access")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getExternalLinkInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.link_, get_json_object_field_force(from, "link")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getFavoriteStickers &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getFileDownloadedPrefixSize &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getFileExtension &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.mime_type_, get_json_object_field_force(from, "mime_type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getFileMimeType &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_name_, get_json_object_field_force(from, "file_name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getForumTopicDefaultIcons &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getGameHighScores &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getGroupCall &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getGroupCallInviteLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.can_self_unmute_, get_json_object_field_force(from, "can_self_unmute")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getGroupCallStreamSegment &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.time_offset_, get_json_object_field_force(from, "time_offset")));
+ TRY_STATUS(from_json(to.scale_, get_json_object_field_force(from, "scale")));
+ TRY_STATUS(from_json(to.channel_id_, get_json_object_field_force(from, "channel_id")));
+ TRY_STATUS(from_json(to.video_quality_, get_json_object_field_force(from, "video_quality")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getGroupCallStreams &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getGroupsInCommon &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.offset_chat_id_, get_json_object_field_force(from, "offset_chat_id")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getImportedContactCount &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getInactiveSupergroupChats &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getInlineGameHighScores &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id")));
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getInlineQueryResults &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id")));
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.user_location_, get_json_object_field_force(from, "user_location")));
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getInstalledStickerSets &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getInternalLinkType &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.link_, get_json_object_field_force(from, "link")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getJsonString &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.json_value_, get_json_object_field_force(from, "json_value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getJsonValue &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.json_, get_json_object_field_force(from, "json")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getLanguagePackInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getLanguagePackString &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.language_pack_database_path_, get_json_object_field_force(from, "language_pack_database_path")));
+ TRY_STATUS(from_json(to.localization_target_, get_json_object_field_force(from, "localization_target")));
+ TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id")));
+ TRY_STATUS(from_json(to.key_, get_json_object_field_force(from, "key")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getLanguagePackStrings &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id")));
+ TRY_STATUS(from_json(to.keys_, get_json_object_field_force(from, "keys")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getLocalizationTargetInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.only_local_, get_json_object_field_force(from, "only_local")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getLogStream &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getLogTagVerbosityLevel &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.tag_, get_json_object_field_force(from, "tag")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getLogTags &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getLogVerbosityLevel &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getLoginUrl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.button_id_, get_json_object_field_force(from, "button_id")));
+ TRY_STATUS(from_json(to.allow_write_access_, get_json_object_field_force(from, "allow_write_access")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getLoginUrlInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.button_id_, get_json_object_field_force(from, "button_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMapThumbnailFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ TRY_STATUS(from_json(to.zoom_, get_json_object_field_force(from, "zoom")));
+ TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width")));
+ TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height")));
+ TRY_STATUS(from_json(to.scale_, get_json_object_field_force(from, "scale")));
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMarkdownText &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMe &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getMenuButton &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageAddedReactions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.reaction_type_, get_json_object_field_force(from, "reaction_type")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageAvailableReactions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.row_size_, get_json_object_field_force(from, "row_size")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageEmbeddingCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.for_album_, get_json_object_field_force(from, "for_album")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageFileType &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.message_file_head_, get_json_object_field_force(from, "message_file_head")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageImportConfirmationText &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.media_timestamp_, get_json_object_field_force(from, "media_timestamp")));
+ TRY_STATUS(from_json(to.for_album_, get_json_object_field_force(from, "for_album")));
+ TRY_STATUS(from_json(to.in_message_thread_, get_json_object_field_force(from, "in_message_thread")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageLinkInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageLocally &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessagePublicForwards &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageStatistics &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.is_dark_, get_json_object_field_force(from, "is_dark")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageThread &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageThreadHistory &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessageViewers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getNetworkStatistics &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.only_current_, get_json_object_field_force(from, "only_current")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getOption &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPassportAuthorizationForm &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id")));
+ TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope")));
+ TRY_STATUS(from_json(to.public_key_, get_json_object_field_force(from, "public_key")));
+ TRY_STATUS(from_json(to.nonce_, get_json_object_field_force(from, "nonce")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPassportAuthorizationFormAvailableElements &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.autorization_form_id_, get_json_object_field_force(from, "autorization_form_id")));
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPassportElement &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPasswordState &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getPaymentForm &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.input_invoice_, get_json_object_field_force(from, "input_invoice")));
+ TRY_STATUS(from_json(to.theme_, get_json_object_field_force(from, "theme")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPaymentReceipt &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPhoneNumberInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.phone_number_prefix_, get_json_object_field_force(from, "phone_number_prefix")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPhoneNumberInfoSync &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.language_code_, get_json_object_field_force(from, "language_code")));
+ TRY_STATUS(from_json(to.phone_number_prefix_, get_json_object_field_force(from, "phone_number_prefix")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPollVoters &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.option_id_, get_json_object_field_force(from, "option_id")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPreferredCountryLanguage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.country_code_, get_json_object_field_force(from, "country_code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPremiumFeatures &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.source_, get_json_object_field_force(from, "source")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPremiumLimit &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.limit_type_, get_json_object_field_force(from, "limit_type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPremiumState &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getPremiumStickerExamples &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getPremiumStickers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getProxies &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getProxyLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.proxy_id_, get_json_object_field_force(from, "proxy_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getPushReceiverId &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.payload_, get_json_object_field_force(from, "payload")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getRecentEmojiStatuses &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getRecentInlineBots &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getRecentStickers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.is_attached_, get_json_object_field_force(from, "is_attached")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getRecentlyOpenedChats &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getRecentlyVisitedTMeUrls &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.referrer_, get_json_object_field_force(from, "referrer")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getRecommendedChatFilters &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getRecoveryEmailAddress &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getRemoteFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.remote_file_id_, get_json_object_field_force(from, "remote_file_id")));
+ TRY_STATUS(from_json(to.file_type_, get_json_object_field_force(from, "file_type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getRepliedMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getSavedAnimations &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getSavedNotificationSound &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.notification_sound_id_, get_json_object_field_force(from, "notification_sound_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getSavedNotificationSounds &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getSavedOrderInfo &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getScopeNotificationSettings &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getSecretChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.secret_chat_id_, get_json_object_field_force(from, "secret_chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getStatisticalGraph &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token")));
+ TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getStickerEmojis &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getStickerSet &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.set_id_, get_json_object_field_force(from, "set_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getStickers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type")));
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getStorageStatistics &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_limit_, get_json_object_field_force(from, "chat_limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getStorageStatisticsFast &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getSuggestedFileName &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ TRY_STATUS(from_json(to.directory_, get_json_object_field_force(from, "directory")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getSuggestedStickerSetName &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getSuitableDiscussionChats &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getSupergroup &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getSupergroupFullInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getSupergroupMembers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getSupportUser &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getTemporaryPasswordState &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getTextEntities &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getThemeParametersJsonString &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.theme_, get_json_object_field_force(from, "theme")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getThemedEmojiStatuses &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::getTopChats &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.category_, get_json_object_field_force(from, "category")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getTrendingStickerSets &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getUser &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getUserFullInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getUserPrivacySettingRules &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.setting_, get_json_object_field_force(from, "setting")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getUserProfilePhotos &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getUserSupportInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getVideoChatAvailableParticipants &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getVideoChatRtmpUrl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getWebAppUrl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id")));
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ TRY_STATUS(from_json(to.theme_, get_json_object_field_force(from, "theme")));
+ TRY_STATUS(from_json(to.application_name_, get_json_object_field_force(from, "application_name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getWebPageInstantView &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ TRY_STATUS(from_json(to.force_full_, get_json_object_field_force(from, "force_full")));
+ return Status::OK();
+}
+
+Status from_json(td_api::getWebPagePreview &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ return Status::OK();
+}
+
+Status from_json(td_api::hideSuggestedAction &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.action_, get_json_object_field_force(from, "action")));
+ return Status::OK();
+}
+
+Status from_json(td_api::importContacts &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.contacts_, get_json_object_field_force(from, "contacts")));
+ return Status::OK();
+}
+
+Status from_json(td_api::importMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_file_, get_json_object_field_force(from, "message_file")));
+ TRY_STATUS(from_json(to.attached_files_, get_json_object_field_force(from, "attached_files")));
+ return Status::OK();
+}
+
+Status from_json(td_api::inviteGroupCallParticipants &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::joinChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::joinChatByInviteLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link")));
+ return Status::OK();
+}
+
+Status from_json(td_api::joinGroupCall &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.participant_id_, get_json_object_field_force(from, "participant_id")));
+ TRY_STATUS(from_json(to.audio_source_id_, get_json_object_field_force(from, "audio_source_id")));
+ TRY_STATUS(from_json(to.payload_, get_json_object_field_force(from, "payload")));
+ TRY_STATUS(from_json(to.is_muted_, get_json_object_field_force(from, "is_muted")));
+ TRY_STATUS(from_json(to.is_my_video_enabled_, get_json_object_field_force(from, "is_my_video_enabled")));
+ TRY_STATUS(from_json(to.invite_hash_, get_json_object_field_force(from, "invite_hash")));
+ return Status::OK();
+}
+
+Status from_json(td_api::leaveChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::leaveGroupCall &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::loadChats &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::loadGroupCallParticipants &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::logOut &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::openChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::openMessageContent &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::openWebApp &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id")));
+ TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url")));
+ TRY_STATUS(from_json(to.theme_, get_json_object_field_force(from, "theme")));
+ TRY_STATUS(from_json(to.application_name_, get_json_object_field_force(from, "application_name")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::optimizeStorage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.size_, get_json_object_field_force(from, "size")));
+ TRY_STATUS(from_json(to.ttl_, get_json_object_field_force(from, "ttl")));
+ TRY_STATUS(from_json(to.count_, get_json_object_field_force(from, "count")));
+ TRY_STATUS(from_json(to.immunity_delay_, get_json_object_field_force(from, "immunity_delay")));
+ TRY_STATUS(from_json(to.file_types_, get_json_object_field_force(from, "file_types")));
+ TRY_STATUS(from_json(to.chat_ids_, get_json_object_field_force(from, "chat_ids")));
+ TRY_STATUS(from_json(to.exclude_chat_ids_, get_json_object_field_force(from, "exclude_chat_ids")));
+ TRY_STATUS(from_json(to.return_deleted_file_statistics_, get_json_object_field_force(from, "return_deleted_file_statistics")));
+ TRY_STATUS(from_json(to.chat_limit_, get_json_object_field_force(from, "chat_limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::parseMarkdown &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ return Status::OK();
+}
+
+Status from_json(td_api::parseTextEntities &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ TRY_STATUS(from_json(to.parse_mode_, get_json_object_field_force(from, "parse_mode")));
+ return Status::OK();
+}
+
+Status from_json(td_api::pinChatMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.disable_notification_, get_json_object_field_force(from, "disable_notification")));
+ TRY_STATUS(from_json(to.only_for_self_, get_json_object_field_force(from, "only_for_self")));
+ return Status::OK();
+}
+
+Status from_json(td_api::pingProxy &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.proxy_id_, get_json_object_field_force(from, "proxy_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::preliminaryUploadFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_, get_json_object_field_force(from, "file")));
+ TRY_STATUS(from_json(to.file_type_, get_json_object_field_force(from, "file_type")));
+ TRY_STATUS(from_json(to.priority_, get_json_object_field_force(from, "priority")));
+ return Status::OK();
+}
+
+Status from_json(td_api::processChatJoinRequest &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.approve_, get_json_object_field_force(from, "approve")));
+ return Status::OK();
+}
+
+Status from_json(td_api::processChatJoinRequests &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link")));
+ TRY_STATUS(from_json(to.approve_, get_json_object_field_force(from, "approve")));
+ return Status::OK();
+}
+
+Status from_json(td_api::processPushNotification &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.payload_, get_json_object_field_force(from, "payload")));
+ return Status::OK();
+}
+
+Status from_json(td_api::rateSpeechRecognition &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.is_good_, get_json_object_field_force(from, "is_good")));
+ return Status::OK();
+}
+
+Status from_json(td_api::readAllChatMentions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::readAllChatReactions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::readAllMessageThreadMentions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::readAllMessageThreadReactions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::readFilePart &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.count_, get_json_object_field_force(from, "count")));
+ return Status::OK();
+}
+
+Status from_json(td_api::recognizeSpeech &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::recoverAuthenticationPassword &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.recovery_code_, get_json_object_field_force(from, "recovery_code")));
+ TRY_STATUS(from_json(to.new_password_, get_json_object_field_force(from, "new_password")));
+ TRY_STATUS(from_json(to.new_hint_, get_json_object_field_force(from, "new_hint")));
+ return Status::OK();
+}
+
+Status from_json(td_api::recoverPassword &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.recovery_code_, get_json_object_field_force(from, "recovery_code")));
+ TRY_STATUS(from_json(to.new_password_, get_json_object_field_force(from, "new_password")));
+ TRY_STATUS(from_json(to.new_hint_, get_json_object_field_force(from, "new_hint")));
+ return Status::OK();
+}
+
+Status from_json(td_api::registerDevice &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.device_token_, get_json_object_field_force(from, "device_token")));
+ TRY_STATUS(from_json(to.other_user_ids_, get_json_object_field_force(from, "other_user_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::registerUser &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.first_name_, get_json_object_field_force(from, "first_name")));
+ TRY_STATUS(from_json(to.last_name_, get_json_object_field_force(from, "last_name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeAllFilesFromDownloads &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.only_active_, get_json_object_field_force(from, "only_active")));
+ TRY_STATUS(from_json(to.only_completed_, get_json_object_field_force(from, "only_completed")));
+ TRY_STATUS(from_json(to.delete_from_cache_, get_json_object_field_force(from, "delete_from_cache")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeBackground &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.background_id_, get_json_object_field_force(from, "background_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeChatActionBar &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeContacts &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeFavoriteSticker &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeFileFromDownloads &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ TRY_STATUS(from_json(to.delete_from_cache_, get_json_object_field_force(from, "delete_from_cache")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeMessageReaction &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.reaction_type_, get_json_object_field_force(from, "reaction_type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeNotification &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.notification_group_id_, get_json_object_field_force(from, "notification_group_id")));
+ TRY_STATUS(from_json(to.notification_id_, get_json_object_field_force(from, "notification_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeNotificationGroup &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.notification_group_id_, get_json_object_field_force(from, "notification_group_id")));
+ TRY_STATUS(from_json(to.max_notification_id_, get_json_object_field_force(from, "max_notification_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeProxy &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.proxy_id_, get_json_object_field_force(from, "proxy_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeRecentHashtag &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.hashtag_, get_json_object_field_force(from, "hashtag")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeRecentSticker &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.is_attached_, get_json_object_field_force(from, "is_attached")));
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeRecentlyFoundChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeSavedAnimation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.animation_, get_json_object_field_force(from, "animation")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeSavedNotificationSound &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.notification_sound_id_, get_json_object_field_force(from, "notification_sound_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeStickerFromSet &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ return Status::OK();
+}
+
+Status from_json(td_api::removeTopChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.category_, get_json_object_field_force(from, "category")));
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::reorderActiveUsernames &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.usernames_, get_json_object_field_force(from, "usernames")));
+ return Status::OK();
+}
+
+Status from_json(td_api::reorderChatFilters &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_filter_ids_, get_json_object_field_force(from, "chat_filter_ids")));
+ TRY_STATUS(from_json(to.main_chat_list_position_, get_json_object_field_force(from, "main_chat_list_position")));
+ return Status::OK();
+}
+
+Status from_json(td_api::reorderInstalledStickerSets &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type")));
+ TRY_STATUS(from_json(to.sticker_set_ids_, get_json_object_field_force(from, "sticker_set_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::reorderSupergroupActiveUsernames &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.usernames_, get_json_object_field_force(from, "usernames")));
+ return Status::OK();
+}
+
+Status from_json(td_api::replacePrimaryChatInviteLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::replaceVideoChatRtmpUrl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::reportChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids")));
+ TRY_STATUS(from_json(to.reason_, get_json_object_field_force(from, "reason")));
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ return Status::OK();
+}
+
+Status from_json(td_api::reportChatPhoto &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ TRY_STATUS(from_json(to.reason_, get_json_object_field_force(from, "reason")));
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ return Status::OK();
+}
+
+Status from_json(td_api::reportMessageReactions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.sender_id_, get_json_object_field_force(from, "sender_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::reportSupergroupSpam &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::requestAuthenticationPasswordRecovery &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::requestPasswordRecovery &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::requestQrCodeAuthentication &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.other_user_ids_, get_json_object_field_force(from, "other_user_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::resendAuthenticationCode &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::resendChangePhoneNumberCode &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::resendEmailAddressVerificationCode &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::resendLoginEmailAddressCode &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::resendMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::resendPhoneNumberConfirmationCode &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::resendPhoneNumberVerificationCode &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::resendRecoveryEmailAddressCode &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::resetAllNotificationSettings &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::resetBackgrounds &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::resetNetworkStatistics &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::resetPassword &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::revokeChatInviteLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link")));
+ return Status::OK();
+}
+
+Status from_json(td_api::revokeGroupCallInviteLink &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::saveApplicationLogEvent &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchBackground &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchCallMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ TRY_STATUS(from_json(to.only_missed_, get_json_object_field_force(from, "only_missed")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchChatMembers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchChatMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.sender_id_, get_json_object_field_force(from, "sender_id")));
+ TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchChatRecentLocationMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchChats &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchChatsNearby &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchChatsOnServer &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchContacts &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchEmojis &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ TRY_STATUS(from_json(to.exact_match_, get_json_object_field_force(from, "exact_match")));
+ TRY_STATUS(from_json(to.input_language_codes_, get_json_object_field_force(from, "input_language_codes")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchFileDownloads &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.only_active_, get_json_object_field_force(from, "only_active")));
+ TRY_STATUS(from_json(to.only_completed_, get_json_object_field_force(from, "only_completed")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchHashtags &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.prefix_, get_json_object_field_force(from, "prefix")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchInstalledStickerSets &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type")));
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list")));
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.offset_date_, get_json_object_field_force(from, "offset_date")));
+ TRY_STATUS(from_json(to.offset_chat_id_, get_json_object_field_force(from, "offset_chat_id")));
+ TRY_STATUS(from_json(to.offset_message_id_, get_json_object_field_force(from, "offset_message_id")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ TRY_STATUS(from_json(to.min_date_, get_json_object_field_force(from, "min_date")));
+ TRY_STATUS(from_json(to.max_date_, get_json_object_field_force(from, "max_date")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchOutgoingDocumentMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchPublicChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchPublicChats &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchSecretMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchStickerSet &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchStickerSets &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchStickers &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji")));
+ TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit")));
+ return Status::OK();
+}
+
+Status from_json(td_api::searchUserByPhoneNumber &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendBotStartMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id")));
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.parameter_, get_json_object_field_force(from, "parameter")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendCallDebugInformation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id")));
+ TRY_STATUS(from_json(to.debug_information_, get_json_object_field_force(from, "debug_information")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendCallLog &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id")));
+ TRY_STATUS(from_json(to.log_file_, get_json_object_field_force(from, "log_file")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendCallRating &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id")));
+ TRY_STATUS(from_json(to.rating_, get_json_object_field_force(from, "rating")));
+ TRY_STATUS(from_json(to.comment_, get_json_object_field_force(from, "comment")));
+ TRY_STATUS(from_json(to.problems_, get_json_object_field_force(from, "problems")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendCallSignalingData &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id")));
+ TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendChatAction &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ TRY_STATUS(from_json(to.action_, get_json_object_field_force(from, "action")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendChatScreenshotTakenNotification &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendCustomRequest &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.method_, get_json_object_field_force(from, "method")));
+ TRY_STATUS(from_json(to.parameters_, get_json_object_field_force(from, "parameters")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendEmailAddressVerificationCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.email_address_, get_json_object_field_force(from, "email_address")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendInlineQueryResultMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id")));
+ TRY_STATUS(from_json(to.options_, get_json_object_field_force(from, "options")));
+ TRY_STATUS(from_json(to.query_id_, get_json_object_field_force(from, "query_id")));
+ TRY_STATUS(from_json(to.result_id_, get_json_object_field_force(from, "result_id")));
+ TRY_STATUS(from_json(to.hide_via_bot_, get_json_object_field_force(from, "hide_via_bot")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id")));
+ TRY_STATUS(from_json(to.options_, get_json_object_field_force(from, "options")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendMessageAlbum &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id")));
+ TRY_STATUS(from_json(to.options_, get_json_object_field_force(from, "options")));
+ TRY_STATUS(from_json(to.input_message_contents_, get_json_object_field_force(from, "input_message_contents")));
+ TRY_STATUS(from_json(to.only_preview_, get_json_object_field_force(from, "only_preview")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendPassportAuthorizationForm &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.autorization_form_id_, get_json_object_field_force(from, "autorization_form_id")));
+ TRY_STATUS(from_json(to.types_, get_json_object_field_force(from, "types")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendPaymentForm &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.input_invoice_, get_json_object_field_force(from, "input_invoice")));
+ TRY_STATUS(from_json(to.payment_form_id_, get_json_object_field_force(from, "payment_form_id")));
+ TRY_STATUS(from_json(to.order_info_id_, get_json_object_field_force(from, "order_info_id")));
+ TRY_STATUS(from_json(to.shipping_option_id_, get_json_object_field_force(from, "shipping_option_id")));
+ TRY_STATUS(from_json(to.credentials_, get_json_object_field_force(from, "credentials")));
+ TRY_STATUS(from_json(to.tip_amount_, get_json_object_field_force(from, "tip_amount")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendPhoneNumberConfirmationCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.hash_, get_json_object_field_force(from, "hash")));
+ TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number")));
+ TRY_STATUS(from_json(to.settings_, get_json_object_field_force(from, "settings")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendPhoneNumberVerificationCode &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number")));
+ TRY_STATUS(from_json(to.settings_, get_json_object_field_force(from, "settings")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sendWebAppData &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id")));
+ TRY_STATUS(from_json(to.button_text_, get_json_object_field_force(from, "button_text")));
+ TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setAccountTtl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.ttl_, get_json_object_field_force(from, "ttl")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setAlarm &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.seconds_, get_json_object_field_force(from, "seconds")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setAuthenticationEmailAddress &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.email_address_, get_json_object_field_force(from, "email_address")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setAuthenticationPhoneNumber &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number")));
+ TRY_STATUS(from_json(to.settings_, get_json_object_field_force(from, "settings")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setAutoDownloadSettings &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.settings_, get_json_object_field_force(from, "settings")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setBackground &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.background_, get_json_object_field_force(from, "background")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ TRY_STATUS(from_json(to.for_dark_theme_, get_json_object_field_force(from, "for_dark_theme")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setBio &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bio_, get_json_object_field_force(from, "bio")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setBotUpdatesStatus &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.pending_update_count_, get_json_object_field_force(from, "pending_update_count")));
+ TRY_STATUS(from_json(to.error_message_, get_json_object_field_force(from, "error_message")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatAvailableReactions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.available_reactions_, get_json_object_field_force(from, "available_reactions")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatClientData &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.client_data_, get_json_object_field_force(from, "client_data")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatDescription &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatDiscussionGroup &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.discussion_chat_id_, get_json_object_field_force(from, "discussion_chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatDraftMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ TRY_STATUS(from_json(to.draft_message_, get_json_object_field_force(from, "draft_message")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatLocation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatMemberStatus &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.member_id_, get_json_object_field_force(from, "member_id")));
+ TRY_STATUS(from_json(to.status_, get_json_object_field_force(from, "status")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatMessageSender &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_sender_id_, get_json_object_field_force(from, "message_sender_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatMessageTtl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.ttl_, get_json_object_field_force(from, "ttl")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatNotificationSettings &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.notification_settings_, get_json_object_field_force(from, "notification_settings")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatPermissions &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.permissions_, get_json_object_field_force(from, "permissions")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatPhoto &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.photo_, get_json_object_field_force(from, "photo")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatSlowModeDelay &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.slow_mode_delay_, get_json_object_field_force(from, "slow_mode_delay")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatTheme &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.theme_name_, get_json_object_field_force(from, "theme_name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setChatTitle &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setCommands &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope")));
+ TRY_STATUS(from_json(to.language_code_, get_json_object_field_force(from, "language_code")));
+ TRY_STATUS(from_json(to.commands_, get_json_object_field_force(from, "commands")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setCustomLanguagePack &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.info_, get_json_object_field_force(from, "info")));
+ TRY_STATUS(from_json(to.strings_, get_json_object_field_force(from, "strings")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setCustomLanguagePackString &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id")));
+ TRY_STATUS(from_json(to.new_string_, get_json_object_field_force(from, "new_string")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setDatabaseEncryptionKey &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.new_encryption_key_, get_json_object_field_force(from, "new_encryption_key")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setDefaultChannelAdministratorRights &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.default_channel_administrator_rights_, get_json_object_field_force(from, "default_channel_administrator_rights")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setDefaultGroupAdministratorRights &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.default_group_administrator_rights_, get_json_object_field_force(from, "default_group_administrator_rights")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setDefaultReactionType &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.reaction_type_, get_json_object_field_force(from, "reaction_type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setEmojiStatus &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.emoji_status_, get_json_object_field_force(from, "emoji_status")));
+ TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setFileGenerationProgress &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.generation_id_, get_json_object_field_force(from, "generation_id")));
+ TRY_STATUS(from_json(to.expected_size_, get_json_object_field_force(from, "expected_size")));
+ TRY_STATUS(from_json(to.local_prefix_size_, get_json_object_field_force(from, "local_prefix_size")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setGameScore &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.edit_message_, get_json_object_field_force(from, "edit_message")));
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.score_, get_json_object_field_force(from, "score")));
+ TRY_STATUS(from_json(to.force_, get_json_object_field_force(from, "force")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setGroupCallParticipantIsSpeaking &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.audio_source_, get_json_object_field_force(from, "audio_source")));
+ TRY_STATUS(from_json(to.is_speaking_, get_json_object_field_force(from, "is_speaking")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setGroupCallParticipantVolumeLevel &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.participant_id_, get_json_object_field_force(from, "participant_id")));
+ TRY_STATUS(from_json(to.volume_level_, get_json_object_field_force(from, "volume_level")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setGroupCallTitle &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setInactiveSessionTtl &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.inactive_session_ttl_days_, get_json_object_field_force(from, "inactive_session_ttl_days")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setInlineGameScore &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id")));
+ TRY_STATUS(from_json(to.edit_message_, get_json_object_field_force(from, "edit_message")));
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.score_, get_json_object_field_force(from, "score")));
+ TRY_STATUS(from_json(to.force_, get_json_object_field_force(from, "force")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setLocation &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setLogStream &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.log_stream_, get_json_object_field_force(from, "log_stream")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setLogTagVerbosityLevel &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.tag_, get_json_object_field_force(from, "tag")));
+ TRY_STATUS(from_json(to.new_verbosity_level_, get_json_object_field_force(from, "new_verbosity_level")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setLogVerbosityLevel &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.new_verbosity_level_, get_json_object_field_force(from, "new_verbosity_level")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setLoginEmailAddress &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.new_login_email_address_, get_json_object_field_force(from, "new_login_email_address")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setMenuButton &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.menu_button_, get_json_object_field_force(from, "menu_button")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setName &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.first_name_, get_json_object_field_force(from, "first_name")));
+ TRY_STATUS(from_json(to.last_name_, get_json_object_field_force(from, "last_name")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setNetworkType &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setOption &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setPassportElement &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.element_, get_json_object_field_force(from, "element")));
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setPassportElementErrors &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.errors_, get_json_object_field_force(from, "errors")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setPassword &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.old_password_, get_json_object_field_force(from, "old_password")));
+ TRY_STATUS(from_json(to.new_password_, get_json_object_field_force(from, "new_password")));
+ TRY_STATUS(from_json(to.new_hint_, get_json_object_field_force(from, "new_hint")));
+ TRY_STATUS(from_json(to.set_recovery_email_address_, get_json_object_field_force(from, "set_recovery_email_address")));
+ TRY_STATUS(from_json(to.new_recovery_email_address_, get_json_object_field_force(from, "new_recovery_email_address")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setPinnedChats &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list")));
+ TRY_STATUS(from_json(to.chat_ids_, get_json_object_field_force(from, "chat_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setPollAnswer &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.option_ids_, get_json_object_field_force(from, "option_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setProfilePhoto &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.photo_, get_json_object_field_force(from, "photo")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setRecoveryEmailAddress &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ TRY_STATUS(from_json(to.new_recovery_email_address_, get_json_object_field_force(from, "new_recovery_email_address")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setScopeNotificationSettings &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope")));
+ TRY_STATUS(from_json(to.notification_settings_, get_json_object_field_force(from, "notification_settings")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setStickerPositionInSet &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ TRY_STATUS(from_json(to.position_, get_json_object_field_force(from, "position")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setStickerSetThumbnail &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name")));
+ TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setSupergroupStickerSet &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.sticker_set_id_, get_json_object_field_force(from, "sticker_set_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setSupergroupUsername &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setTdlibParameters &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.use_test_dc_, get_json_object_field_force(from, "use_test_dc")));
+ TRY_STATUS(from_json(to.database_directory_, get_json_object_field_force(from, "database_directory")));
+ TRY_STATUS(from_json(to.files_directory_, get_json_object_field_force(from, "files_directory")));
+ TRY_STATUS(from_json_bytes(to.database_encryption_key_, get_json_object_field_force(from, "database_encryption_key")));
+ TRY_STATUS(from_json(to.use_file_database_, get_json_object_field_force(from, "use_file_database")));
+ TRY_STATUS(from_json(to.use_chat_info_database_, get_json_object_field_force(from, "use_chat_info_database")));
+ TRY_STATUS(from_json(to.use_message_database_, get_json_object_field_force(from, "use_message_database")));
+ TRY_STATUS(from_json(to.use_secret_chats_, get_json_object_field_force(from, "use_secret_chats")));
+ TRY_STATUS(from_json(to.api_id_, get_json_object_field_force(from, "api_id")));
+ TRY_STATUS(from_json(to.api_hash_, get_json_object_field_force(from, "api_hash")));
+ TRY_STATUS(from_json(to.system_language_code_, get_json_object_field_force(from, "system_language_code")));
+ TRY_STATUS(from_json(to.device_model_, get_json_object_field_force(from, "device_model")));
+ TRY_STATUS(from_json(to.system_version_, get_json_object_field_force(from, "system_version")));
+ TRY_STATUS(from_json(to.application_version_, get_json_object_field_force(from, "application_version")));
+ TRY_STATUS(from_json(to.enable_storage_optimizer_, get_json_object_field_force(from, "enable_storage_optimizer")));
+ TRY_STATUS(from_json(to.ignore_file_names_, get_json_object_field_force(from, "ignore_file_names")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setUserPrivacySettingRules &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.setting_, get_json_object_field_force(from, "setting")));
+ TRY_STATUS(from_json(to.rules_, get_json_object_field_force(from, "rules")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setUserSupportInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.message_, get_json_object_field_force(from, "message")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setUsername &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username")));
+ return Status::OK();
+}
+
+Status from_json(td_api::setVideoChatDefaultParticipant &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.default_participant_id_, get_json_object_field_force(from, "default_participant_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::sharePhoneNumber &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::startGroupCallRecording &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title")));
+ TRY_STATUS(from_json(to.record_video_, get_json_object_field_force(from, "record_video")));
+ TRY_STATUS(from_json(to.use_portrait_orientation_, get_json_object_field_force(from, "use_portrait_orientation")));
+ return Status::OK();
+}
+
+Status from_json(td_api::startGroupCallScreenSharing &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.audio_source_id_, get_json_object_field_force(from, "audio_source_id")));
+ TRY_STATUS(from_json(to.payload_, get_json_object_field_force(from, "payload")));
+ return Status::OK();
+}
+
+Status from_json(td_api::startScheduledGroupCall &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::stopPoll &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup")));
+ return Status::OK();
+}
+
+Status from_json(td_api::synchronizeLanguagePack &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::terminateAllOtherSessions &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::terminateSession &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.session_id_, get_json_object_field_force(from, "session_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testCallBytes &to, JsonObject &from) {
+ TRY_STATUS(from_json_bytes(to.x_, get_json_object_field_force(from, "x")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testCallEmpty &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::testCallString &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testCallVectorInt &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testCallVectorIntObject &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testCallVectorString &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testCallVectorStringObject &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testGetDifference &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::testNetwork &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::testProxy &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.server_, get_json_object_field_force(from, "server")));
+ TRY_STATUS(from_json(to.port_, get_json_object_field_force(from, "port")));
+ TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type")));
+ TRY_STATUS(from_json(to.dc_id_, get_json_object_field_force(from, "dc_id")));
+ TRY_STATUS(from_json(to.timeout_, get_json_object_field_force(from, "timeout")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testReturnError &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.error_, get_json_object_field_force(from, "error")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testSquareInt &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x")));
+ return Status::OK();
+}
+
+Status from_json(td_api::testUseUpdate &to, JsonObject &from) {
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleAllDownloadsArePaused &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.are_paused_, get_json_object_field_force(from, "are_paused")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleBotIsAddedToAttachmentMenu &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id")));
+ TRY_STATUS(from_json(to.is_added_, get_json_object_field_force(from, "is_added")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleChatDefaultDisableNotification &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.default_disable_notification_, get_json_object_field_force(from, "default_disable_notification")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleChatHasProtectedContent &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.has_protected_content_, get_json_object_field_force(from, "has_protected_content")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleChatIsMarkedAsUnread &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.is_marked_as_unread_, get_json_object_field_force(from, "is_marked_as_unread")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleChatIsPinned &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list")));
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.is_pinned_, get_json_object_field_force(from, "is_pinned")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleDownloadIsPaused &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id")));
+ TRY_STATUS(from_json(to.is_paused_, get_json_object_field_force(from, "is_paused")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleForumTopicIsClosed &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ TRY_STATUS(from_json(to.is_closed_, get_json_object_field_force(from, "is_closed")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleGroupCallEnabledStartNotification &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.enabled_start_notification_, get_json_object_field_force(from, "enabled_start_notification")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleGroupCallIsMyVideoEnabled &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.is_my_video_enabled_, get_json_object_field_force(from, "is_my_video_enabled")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleGroupCallIsMyVideoPaused &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.is_my_video_paused_, get_json_object_field_force(from, "is_my_video_paused")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleGroupCallMuteNewParticipants &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.mute_new_participants_, get_json_object_field_force(from, "mute_new_participants")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleGroupCallParticipantIsHandRaised &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.participant_id_, get_json_object_field_force(from, "participant_id")));
+ TRY_STATUS(from_json(to.is_hand_raised_, get_json_object_field_force(from, "is_hand_raised")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleGroupCallParticipantIsMuted &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.participant_id_, get_json_object_field_force(from, "participant_id")));
+ TRY_STATUS(from_json(to.is_muted_, get_json_object_field_force(from, "is_muted")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleGroupCallScreenSharingIsPaused &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id")));
+ TRY_STATUS(from_json(to.is_paused_, get_json_object_field_force(from, "is_paused")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleMessageSenderIsBlocked &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sender_id_, get_json_object_field_force(from, "sender_id")));
+ TRY_STATUS(from_json(to.is_blocked_, get_json_object_field_force(from, "is_blocked")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleSessionCanAcceptCalls &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.session_id_, get_json_object_field_force(from, "session_id")));
+ TRY_STATUS(from_json(to.can_accept_calls_, get_json_object_field_force(from, "can_accept_calls")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleSessionCanAcceptSecretChats &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.session_id_, get_json_object_field_force(from, "session_id")));
+ TRY_STATUS(from_json(to.can_accept_secret_chats_, get_json_object_field_force(from, "can_accept_secret_chats")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleSupergroupIsAllHistoryAvailable &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.is_all_history_available_, get_json_object_field_force(from, "is_all_history_available")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleSupergroupIsBroadcastGroup &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleSupergroupIsForum &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.is_forum_, get_json_object_field_force(from, "is_forum")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleSupergroupJoinByRequest &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.join_by_request_, get_json_object_field_force(from, "join_by_request")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleSupergroupJoinToSendMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.join_to_send_messages_, get_json_object_field_force(from, "join_to_send_messages")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleSupergroupSignMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.sign_messages_, get_json_object_field_force(from, "sign_messages")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleSupergroupUsernameIsActive &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id")));
+ TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username")));
+ TRY_STATUS(from_json(to.is_active_, get_json_object_field_force(from, "is_active")));
+ return Status::OK();
+}
+
+Status from_json(td_api::toggleUsernameIsActive &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username")));
+ TRY_STATUS(from_json(to.is_active_, get_json_object_field_force(from, "is_active")));
+ return Status::OK();
+}
+
+Status from_json(td_api::transferChatOwnership &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password")));
+ return Status::OK();
+}
+
+Status from_json(td_api::translateText &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text")));
+ TRY_STATUS(from_json(to.from_language_code_, get_json_object_field_force(from, "from_language_code")));
+ TRY_STATUS(from_json(to.to_language_code_, get_json_object_field_force(from, "to_language_code")));
+ return Status::OK();
+}
+
+Status from_json(td_api::unpinAllChatMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::unpinAllMessageThreadMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::unpinChatMessage &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::upgradeBasicGroupChatToSupergroupChat &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ return Status::OK();
+}
+
+Status from_json(td_api::uploadStickerFile &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id")));
+ TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker")));
+ return Status::OK();
+}
+
+Status from_json(td_api::validateOrderInfo &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.input_invoice_, get_json_object_field_force(from, "input_invoice")));
+ TRY_STATUS(from_json(to.order_info_, get_json_object_field_force(from, "order_info")));
+ TRY_STATUS(from_json(to.allow_save_, get_json_object_field_force(from, "allow_save")));
+ return Status::OK();
+}
+
+Status from_json(td_api::viewMessages &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id")));
+ TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id")));
+ TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids")));
+ TRY_STATUS(from_json(to.force_read_, get_json_object_field_force(from, "force_read")));
+ return Status::OK();
+}
+
+Status from_json(td_api::viewPremiumFeature &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.feature_, get_json_object_field_force(from, "feature")));
+ return Status::OK();
+}
+
+Status from_json(td_api::viewTrendingStickerSets &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.sticker_set_ids_, get_json_object_field_force(from, "sticker_set_ids")));
+ return Status::OK();
+}
+
+Status from_json(td_api::writeGeneratedFilePart &to, JsonObject &from) {
+ TRY_STATUS(from_json(to.generation_id_, get_json_object_field_force(from, "generation_id")));
+ TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset")));
+ TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data")));
+ return Status::OK();
+}
+
+void to_json(JsonValueScope &jv, const td_api::accountTtl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "accountTtl");
+ jo("days", object.days_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::addedReaction &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "addedReaction");
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ if (object.sender_id_) {
+ jo("sender_id", ToJson(*object.sender_id_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::addedReactions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "addedReactions");
+ jo("total_count", object.total_count_);
+ jo("reactions", ToJson(object.reactions_));
+ jo("next_offset", object.next_offset_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::address &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "address");
+ jo("country_code", object.country_code_);
+ jo("state", object.state_);
+ jo("city", object.city_);
+ jo("street_line1", object.street_line1_);
+ jo("street_line2", object.street_line2_);
+ jo("postal_code", object.postal_code_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::animatedChatPhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "animatedChatPhoto");
+ jo("length", object.length_);
+ if (object.file_) {
+ jo("file", ToJson(*object.file_));
+ }
+ jo("main_frame_timestamp", object.main_frame_timestamp_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::animatedEmoji &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "animatedEmoji");
+ if (object.sticker_) {
+ jo("sticker", ToJson(*object.sticker_));
+ }
+ jo("sticker_width", object.sticker_width_);
+ jo("sticker_height", object.sticker_height_);
+ jo("fitzpatrick_type", object.fitzpatrick_type_);
+ if (object.sound_) {
+ jo("sound", ToJson(*object.sound_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::animation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "animation");
+ jo("duration", object.duration_);
+ jo("width", object.width_);
+ jo("height", object.height_);
+ jo("file_name", object.file_name_);
+ jo("mime_type", object.mime_type_);
+ jo("has_stickers", JsonBool{object.has_stickers_});
+ if (object.minithumbnail_) {
+ jo("minithumbnail", ToJson(*object.minithumbnail_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::animations &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "animations");
+ jo("animations", ToJson(object.animations_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::attachmentMenuBot &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "attachmentMenuBot");
+ jo("bot_user_id", object.bot_user_id_);
+ jo("supports_self_chat", JsonBool{object.supports_self_chat_});
+ jo("supports_user_chats", JsonBool{object.supports_user_chats_});
+ jo("supports_bot_chats", JsonBool{object.supports_bot_chats_});
+ jo("supports_group_chats", JsonBool{object.supports_group_chats_});
+ jo("supports_channel_chats", JsonBool{object.supports_channel_chats_});
+ jo("supports_settings", JsonBool{object.supports_settings_});
+ jo("name", object.name_);
+ if (object.name_color_) {
+ jo("name_color", ToJson(*object.name_color_));
+ }
+ if (object.default_icon_) {
+ jo("default_icon", ToJson(*object.default_icon_));
+ }
+ if (object.ios_static_icon_) {
+ jo("ios_static_icon", ToJson(*object.ios_static_icon_));
+ }
+ if (object.ios_animated_icon_) {
+ jo("ios_animated_icon", ToJson(*object.ios_animated_icon_));
+ }
+ if (object.android_icon_) {
+ jo("android_icon", ToJson(*object.android_icon_));
+ }
+ if (object.macos_icon_) {
+ jo("macos_icon", ToJson(*object.macos_icon_));
+ }
+ if (object.icon_color_) {
+ jo("icon_color", ToJson(*object.icon_color_));
+ }
+ if (object.web_app_placeholder_) {
+ jo("web_app_placeholder", ToJson(*object.web_app_placeholder_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::attachmentMenuBotColor &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "attachmentMenuBotColor");
+ jo("light_color", object.light_color_);
+ jo("dark_color", object.dark_color_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::audio &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "audio");
+ jo("duration", object.duration_);
+ jo("title", object.title_);
+ jo("performer", object.performer_);
+ jo("file_name", object.file_name_);
+ jo("mime_type", object.mime_type_);
+ if (object.album_cover_minithumbnail_) {
+ jo("album_cover_minithumbnail", ToJson(*object.album_cover_minithumbnail_));
+ }
+ if (object.album_cover_thumbnail_) {
+ jo("album_cover_thumbnail", ToJson(*object.album_cover_thumbnail_));
+ }
+ jo("external_album_covers", ToJson(object.external_album_covers_));
+ if (object.audio_) {
+ jo("audio", ToJson(*object.audio_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authenticationCodeInfo");
+ jo("phone_number", object.phone_number_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ if (object.next_type_) {
+ jo("next_type", ToJson(*object.next_type_));
+ }
+ jo("timeout", object.timeout_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::AuthenticationCodeType &object) {
+ td_api::downcast_call(const_cast<td_api::AuthenticationCodeType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeTelegramMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authenticationCodeTypeTelegramMessage");
+ jo("length", object.length_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeSms &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authenticationCodeTypeSms");
+ jo("length", object.length_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeCall &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authenticationCodeTypeCall");
+ jo("length", object.length_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeFlashCall &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authenticationCodeTypeFlashCall");
+ jo("pattern", object.pattern_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeMissedCall &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authenticationCodeTypeMissedCall");
+ jo("phone_number_prefix", object.phone_number_prefix_);
+ jo("length", object.length_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::AuthorizationState &object) {
+ td_api::downcast_call(const_cast<td_api::AuthorizationState &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitTdlibParameters &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateWaitTdlibParameters");
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitPhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateWaitPhoneNumber");
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitEmailAddress &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateWaitEmailAddress");
+ jo("allow_apple_id", JsonBool{object.allow_apple_id_});
+ jo("allow_google_id", JsonBool{object.allow_google_id_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitEmailCode &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateWaitEmailCode");
+ jo("allow_apple_id", JsonBool{object.allow_apple_id_});
+ jo("allow_google_id", JsonBool{object.allow_google_id_});
+ if (object.code_info_) {
+ jo("code_info", ToJson(*object.code_info_));
+ }
+ jo("next_phone_number_authorization_date", object.next_phone_number_authorization_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitCode &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateWaitCode");
+ if (object.code_info_) {
+ jo("code_info", ToJson(*object.code_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitOtherDeviceConfirmation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateWaitOtherDeviceConfirmation");
+ jo("link", object.link_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitRegistration &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateWaitRegistration");
+ if (object.terms_of_service_) {
+ jo("terms_of_service", ToJson(*object.terms_of_service_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitPassword &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateWaitPassword");
+ jo("password_hint", object.password_hint_);
+ jo("has_recovery_email_address", JsonBool{object.has_recovery_email_address_});
+ jo("recovery_email_address_pattern", object.recovery_email_address_pattern_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateReady &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateReady");
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateLoggingOut &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateLoggingOut");
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateClosing &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateClosing");
+}
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateClosed &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "authorizationStateClosed");
+}
+
+void to_json(JsonValueScope &jv, const td_api::autoDownloadSettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "autoDownloadSettings");
+ jo("is_auto_download_enabled", JsonBool{object.is_auto_download_enabled_});
+ jo("max_photo_file_size", object.max_photo_file_size_);
+ jo("max_video_file_size", object.max_video_file_size_);
+ jo("max_other_file_size", object.max_other_file_size_);
+ jo("video_upload_bitrate", object.video_upload_bitrate_);
+ jo("preload_large_videos", JsonBool{object.preload_large_videos_});
+ jo("preload_next_audio", JsonBool{object.preload_next_audio_});
+ jo("use_less_data_for_calls", JsonBool{object.use_less_data_for_calls_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::autoDownloadSettingsPresets &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "autoDownloadSettingsPresets");
+ if (object.low_) {
+ jo("low", ToJson(*object.low_));
+ }
+ if (object.medium_) {
+ jo("medium", ToJson(*object.medium_));
+ }
+ if (object.high_) {
+ jo("high", ToJson(*object.high_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::availableReaction &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "availableReaction");
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("needs_premium", JsonBool{object.needs_premium_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::availableReactions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "availableReactions");
+ jo("top_reactions", ToJson(object.top_reactions_));
+ jo("recent_reactions", ToJson(object.recent_reactions_));
+ jo("popular_reactions", ToJson(object.popular_reactions_));
+ jo("allow_custom_emoji", JsonBool{object.allow_custom_emoji_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::background &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "background");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("is_default", JsonBool{object.is_default_});
+ jo("is_dark", JsonBool{object.is_dark_});
+ jo("name", object.name_);
+ if (object.document_) {
+ jo("document", ToJson(*object.document_));
+ }
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::BackgroundFill &object) {
+ td_api::downcast_call(const_cast<td_api::BackgroundFill &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::backgroundFillSolid &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "backgroundFillSolid");
+ jo("color", object.color_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::backgroundFillGradient &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "backgroundFillGradient");
+ jo("top_color", object.top_color_);
+ jo("bottom_color", object.bottom_color_);
+ jo("rotation_angle", object.rotation_angle_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::backgroundFillFreeformGradient &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "backgroundFillFreeformGradient");
+ jo("colors", ToJson(object.colors_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::BackgroundType &object) {
+ td_api::downcast_call(const_cast<td_api::BackgroundType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::backgroundTypeWallpaper &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "backgroundTypeWallpaper");
+ jo("is_blurred", JsonBool{object.is_blurred_});
+ jo("is_moving", JsonBool{object.is_moving_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::backgroundTypePattern &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "backgroundTypePattern");
+ if (object.fill_) {
+ jo("fill", ToJson(*object.fill_));
+ }
+ jo("intensity", object.intensity_);
+ jo("is_inverted", JsonBool{object.is_inverted_});
+ jo("is_moving", JsonBool{object.is_moving_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::backgroundTypeFill &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "backgroundTypeFill");
+ if (object.fill_) {
+ jo("fill", ToJson(*object.fill_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::backgrounds &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "backgrounds");
+ jo("backgrounds", ToJson(object.backgrounds_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::bankCardActionOpenUrl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "bankCardActionOpenUrl");
+ jo("text", object.text_);
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::bankCardInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "bankCardInfo");
+ jo("title", object.title_);
+ jo("actions", ToJson(object.actions_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::basicGroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "basicGroup");
+ jo("id", object.id_);
+ jo("member_count", object.member_count_);
+ if (object.status_) {
+ jo("status", ToJson(*object.status_));
+ }
+ jo("is_active", JsonBool{object.is_active_});
+ jo("upgraded_to_supergroup_id", object.upgraded_to_supergroup_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::basicGroupFullInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "basicGroupFullInfo");
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("description", object.description_);
+ jo("creator_user_id", object.creator_user_id_);
+ jo("members", ToJson(object.members_));
+ if (object.invite_link_) {
+ jo("invite_link", ToJson(*object.invite_link_));
+ }
+ jo("bot_commands", ToJson(object.bot_commands_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::botCommand &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "botCommand");
+ jo("command", object.command_);
+ jo("description", object.description_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::botCommands &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "botCommands");
+ jo("bot_user_id", object.bot_user_id_);
+ jo("commands", ToJson(object.commands_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::botInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "botInfo");
+ jo("share_text", object.share_text_);
+ jo("description", object.description_);
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+ if (object.menu_button_) {
+ jo("menu_button", ToJson(*object.menu_button_));
+ }
+ jo("commands", ToJson(object.commands_));
+ if (object.default_group_administrator_rights_) {
+ jo("default_group_administrator_rights", ToJson(*object.default_group_administrator_rights_));
+ }
+ if (object.default_channel_administrator_rights_) {
+ jo("default_channel_administrator_rights", ToJson(*object.default_channel_administrator_rights_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::botMenuButton &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "botMenuButton");
+ jo("text", object.text_);
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::call &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "call");
+ jo("id", object.id_);
+ jo("user_id", object.user_id_);
+ jo("is_outgoing", JsonBool{object.is_outgoing_});
+ jo("is_video", JsonBool{object.is_video_});
+ if (object.state_) {
+ jo("state", ToJson(*object.state_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::CallDiscardReason &object) {
+ td_api::downcast_call(const_cast<td_api::CallDiscardReason &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::callDiscardReasonEmpty &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callDiscardReasonEmpty");
+}
+
+void to_json(JsonValueScope &jv, const td_api::callDiscardReasonMissed &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callDiscardReasonMissed");
+}
+
+void to_json(JsonValueScope &jv, const td_api::callDiscardReasonDeclined &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callDiscardReasonDeclined");
+}
+
+void to_json(JsonValueScope &jv, const td_api::callDiscardReasonDisconnected &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callDiscardReasonDisconnected");
+}
+
+void to_json(JsonValueScope &jv, const td_api::callDiscardReasonHungUp &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callDiscardReasonHungUp");
+}
+
+void to_json(JsonValueScope &jv, const td_api::callId &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callId");
+ jo("id", object.id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::callProtocol &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callProtocol");
+ jo("udp_p2p", JsonBool{object.udp_p2p_});
+ jo("udp_reflector", JsonBool{object.udp_reflector_});
+ jo("min_layer", object.min_layer_);
+ jo("max_layer", object.max_layer_);
+ jo("library_versions", ToJson(object.library_versions_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::callServer &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callServer");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("ip_address", object.ip_address_);
+ jo("ipv6_address", object.ipv6_address_);
+ jo("port", object.port_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::CallServerType &object) {
+ td_api::downcast_call(const_cast<td_api::CallServerType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::callServerTypeTelegramReflector &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callServerTypeTelegramReflector");
+ jo("peer_tag", base64_encode(object.peer_tag_));
+ jo("is_tcp", JsonBool{object.is_tcp_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::callServerTypeWebrtc &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callServerTypeWebrtc");
+ jo("username", object.username_);
+ jo("password", object.password_);
+ jo("supports_turn", JsonBool{object.supports_turn_});
+ jo("supports_stun", JsonBool{object.supports_stun_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::CallState &object) {
+ td_api::downcast_call(const_cast<td_api::CallState &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::callStatePending &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callStatePending");
+ jo("is_created", JsonBool{object.is_created_});
+ jo("is_received", JsonBool{object.is_received_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::callStateExchangingKeys &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callStateExchangingKeys");
+}
+
+void to_json(JsonValueScope &jv, const td_api::callStateReady &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callStateReady");
+ if (object.protocol_) {
+ jo("protocol", ToJson(*object.protocol_));
+ }
+ jo("servers", ToJson(object.servers_));
+ jo("config", object.config_);
+ jo("encryption_key", base64_encode(object.encryption_key_));
+ jo("emojis", ToJson(object.emojis_));
+ jo("allow_p2p", JsonBool{object.allow_p2p_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::callStateHangingUp &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callStateHangingUp");
+}
+
+void to_json(JsonValueScope &jv, const td_api::callStateDiscarded &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callStateDiscarded");
+ if (object.reason_) {
+ jo("reason", ToJson(*object.reason_));
+ }
+ jo("need_rating", JsonBool{object.need_rating_});
+ jo("need_debug_information", JsonBool{object.need_debug_information_});
+ jo("need_log", JsonBool{object.need_log_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::callStateError &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callStateError");
+ if (object.error_) {
+ jo("error", ToJson(*object.error_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::callbackQueryAnswer &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callbackQueryAnswer");
+ jo("text", object.text_);
+ jo("show_alert", JsonBool{object.show_alert_});
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::CallbackQueryPayload &object) {
+ td_api::downcast_call(const_cast<td_api::CallbackQueryPayload &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadData &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callbackQueryPayloadData");
+ jo("data", base64_encode(object.data_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadDataWithPassword &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callbackQueryPayloadDataWithPassword");
+ jo("password", object.password_);
+ jo("data", base64_encode(object.data_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadGame &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "callbackQueryPayloadGame");
+ jo("game_short_name", object.game_short_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::CanTransferOwnershipResult &object) {
+ td_api::downcast_call(const_cast<td_api::CanTransferOwnershipResult &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultOk &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "canTransferOwnershipResultOk");
+}
+
+void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultPasswordNeeded &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "canTransferOwnershipResultPasswordNeeded");
+}
+
+void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultPasswordTooFresh &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "canTransferOwnershipResultPasswordTooFresh");
+ jo("retry_after", object.retry_after_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultSessionTooFresh &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "canTransferOwnershipResultSessionTooFresh");
+ jo("retry_after", object.retry_after_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chat");
+ jo("id", object.id_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("title", object.title_);
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ if (object.permissions_) {
+ jo("permissions", ToJson(*object.permissions_));
+ }
+ if (object.last_message_) {
+ jo("last_message", ToJson(*object.last_message_));
+ }
+ jo("positions", ToJson(object.positions_));
+ if (object.message_sender_id_) {
+ jo("message_sender_id", ToJson(*object.message_sender_id_));
+ }
+ jo("has_protected_content", JsonBool{object.has_protected_content_});
+ jo("is_marked_as_unread", JsonBool{object.is_marked_as_unread_});
+ jo("is_blocked", JsonBool{object.is_blocked_});
+ jo("has_scheduled_messages", JsonBool{object.has_scheduled_messages_});
+ jo("can_be_deleted_only_for_self", JsonBool{object.can_be_deleted_only_for_self_});
+ jo("can_be_deleted_for_all_users", JsonBool{object.can_be_deleted_for_all_users_});
+ jo("can_be_reported", JsonBool{object.can_be_reported_});
+ jo("default_disable_notification", JsonBool{object.default_disable_notification_});
+ jo("unread_count", object.unread_count_);
+ jo("last_read_inbox_message_id", object.last_read_inbox_message_id_);
+ jo("last_read_outbox_message_id", object.last_read_outbox_message_id_);
+ jo("unread_mention_count", object.unread_mention_count_);
+ jo("unread_reaction_count", object.unread_reaction_count_);
+ if (object.notification_settings_) {
+ jo("notification_settings", ToJson(*object.notification_settings_));
+ }
+ if (object.available_reactions_) {
+ jo("available_reactions", ToJson(*object.available_reactions_));
+ }
+ jo("message_ttl", object.message_ttl_);
+ jo("theme_name", object.theme_name_);
+ if (object.action_bar_) {
+ jo("action_bar", ToJson(*object.action_bar_));
+ }
+ if (object.video_chat_) {
+ jo("video_chat", ToJson(*object.video_chat_));
+ }
+ if (object.pending_join_requests_) {
+ jo("pending_join_requests", ToJson(*object.pending_join_requests_));
+ }
+ jo("reply_markup_message_id", object.reply_markup_message_id_);
+ if (object.draft_message_) {
+ jo("draft_message", ToJson(*object.draft_message_));
+ }
+ jo("client_data", object.client_data_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::ChatAction &object) {
+ td_api::downcast_call(const_cast<td_api::ChatAction &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionTyping &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionTyping");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVideo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionRecordingVideo");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVideo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionUploadingVideo");
+ jo("progress", object.progress_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVoiceNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionRecordingVoiceNote");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVoiceNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionUploadingVoiceNote");
+ jo("progress", object.progress_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionUploadingPhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionUploadingPhoto");
+ jo("progress", object.progress_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionUploadingDocument &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionUploadingDocument");
+ jo("progress", object.progress_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionChoosingSticker &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionChoosingSticker");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionChoosingLocation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionChoosingLocation");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionChoosingContact &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionChoosingContact");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionStartPlayingGame &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionStartPlayingGame");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVideoNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionRecordingVideoNote");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVideoNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionUploadingVideoNote");
+ jo("progress", object.progress_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionWatchingAnimations &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionWatchingAnimations");
+ jo("emoji", object.emoji_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionCancel &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionCancel");
+}
+
+void to_json(JsonValueScope &jv, const td_api::ChatActionBar &object) {
+ td_api::downcast_call(const_cast<td_api::ChatActionBar &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarReportSpam &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionBarReportSpam");
+ jo("can_unarchive", JsonBool{object.can_unarchive_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarReportUnrelatedLocation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionBarReportUnrelatedLocation");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarInviteMembers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionBarInviteMembers");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarReportAddBlock &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionBarReportAddBlock");
+ jo("can_unarchive", JsonBool{object.can_unarchive_});
+ jo("distance", object.distance_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarAddContact &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionBarAddContact");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarSharePhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionBarSharePhoneNumber");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarJoinRequest &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatActionBarJoinRequest");
+ jo("title", object.title_);
+ jo("is_channel", JsonBool{object.is_channel_});
+ jo("request_date", object.request_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatAdministrator &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatAdministrator");
+ jo("user_id", object.user_id_);
+ jo("custom_title", object.custom_title_);
+ jo("is_owner", JsonBool{object.is_owner_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatAdministratorRights &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatAdministratorRights");
+ jo("can_manage_chat", JsonBool{object.can_manage_chat_});
+ jo("can_change_info", JsonBool{object.can_change_info_});
+ jo("can_post_messages", JsonBool{object.can_post_messages_});
+ jo("can_edit_messages", JsonBool{object.can_edit_messages_});
+ jo("can_delete_messages", JsonBool{object.can_delete_messages_});
+ jo("can_invite_users", JsonBool{object.can_invite_users_});
+ jo("can_restrict_members", JsonBool{object.can_restrict_members_});
+ jo("can_pin_messages", JsonBool{object.can_pin_messages_});
+ jo("can_manage_topics", JsonBool{object.can_manage_topics_});
+ jo("can_promote_members", JsonBool{object.can_promote_members_});
+ jo("can_manage_video_chats", JsonBool{object.can_manage_video_chats_});
+ jo("is_anonymous", JsonBool{object.is_anonymous_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatAdministrators &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatAdministrators");
+ jo("administrators", ToJson(object.administrators_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::ChatAvailableReactions &object) {
+ td_api::downcast_call(const_cast<td_api::ChatAvailableReactions &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatAvailableReactionsAll &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatAvailableReactionsAll");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatAvailableReactionsSome &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatAvailableReactionsSome");
+ jo("reactions", ToJson(object.reactions_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEvent &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEvent");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("date", object.date_);
+ if (object.member_id_) {
+ jo("member_id", ToJson(*object.member_id_));
+ }
+ if (object.action_) {
+ jo("action", ToJson(*object.action_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::ChatEventAction &object) {
+ td_api::downcast_call(const_cast<td_api::ChatEventAction &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMessageEdited &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMessageEdited");
+ if (object.old_message_) {
+ jo("old_message", ToJson(*object.old_message_));
+ }
+ if (object.new_message_) {
+ jo("new_message", ToJson(*object.new_message_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMessageDeleted &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMessageDeleted");
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMessagePinned &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMessagePinned");
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMessageUnpinned &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMessageUnpinned");
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventPollStopped &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventPollStopped");
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoined &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMemberJoined");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoinedByInviteLink &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMemberJoinedByInviteLink");
+ if (object.invite_link_) {
+ jo("invite_link", ToJson(*object.invite_link_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoinedByRequest &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMemberJoinedByRequest");
+ jo("approver_user_id", object.approver_user_id_);
+ if (object.invite_link_) {
+ jo("invite_link", ToJson(*object.invite_link_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberInvited &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMemberInvited");
+ jo("user_id", object.user_id_);
+ if (object.status_) {
+ jo("status", ToJson(*object.status_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberLeft &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMemberLeft");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberPromoted &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMemberPromoted");
+ jo("user_id", object.user_id_);
+ if (object.old_status_) {
+ jo("old_status", ToJson(*object.old_status_));
+ }
+ if (object.new_status_) {
+ jo("new_status", ToJson(*object.new_status_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberRestricted &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMemberRestricted");
+ if (object.member_id_) {
+ jo("member_id", ToJson(*object.member_id_));
+ }
+ if (object.old_status_) {
+ jo("old_status", ToJson(*object.old_status_));
+ }
+ if (object.new_status_) {
+ jo("new_status", ToJson(*object.new_status_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventAvailableReactionsChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventAvailableReactionsChanged");
+ if (object.old_available_reactions_) {
+ jo("old_available_reactions", ToJson(*object.old_available_reactions_));
+ }
+ if (object.new_available_reactions_) {
+ jo("new_available_reactions", ToJson(*object.new_available_reactions_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventDescriptionChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventDescriptionChanged");
+ jo("old_description", object.old_description_);
+ jo("new_description", object.new_description_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventLinkedChatChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventLinkedChatChanged");
+ jo("old_linked_chat_id", object.old_linked_chat_id_);
+ jo("new_linked_chat_id", object.new_linked_chat_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventLocationChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventLocationChanged");
+ if (object.old_location_) {
+ jo("old_location", ToJson(*object.old_location_));
+ }
+ if (object.new_location_) {
+ jo("new_location", ToJson(*object.new_location_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMessageTtlChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventMessageTtlChanged");
+ jo("old_message_ttl", object.old_message_ttl_);
+ jo("new_message_ttl", object.new_message_ttl_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventPermissionsChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventPermissionsChanged");
+ if (object.old_permissions_) {
+ jo("old_permissions", ToJson(*object.old_permissions_));
+ }
+ if (object.new_permissions_) {
+ jo("new_permissions", ToJson(*object.new_permissions_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventPhotoChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventPhotoChanged");
+ if (object.old_photo_) {
+ jo("old_photo", ToJson(*object.old_photo_));
+ }
+ if (object.new_photo_) {
+ jo("new_photo", ToJson(*object.new_photo_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventSlowModeDelayChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventSlowModeDelayChanged");
+ jo("old_slow_mode_delay", object.old_slow_mode_delay_);
+ jo("new_slow_mode_delay", object.new_slow_mode_delay_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventStickerSetChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventStickerSetChanged");
+ jo("old_sticker_set_id", ToJson(JsonInt64{object.old_sticker_set_id_}));
+ jo("new_sticker_set_id", ToJson(JsonInt64{object.new_sticker_set_id_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventTitleChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventTitleChanged");
+ jo("old_title", object.old_title_);
+ jo("new_title", object.new_title_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventUsernameChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventUsernameChanged");
+ jo("old_username", object.old_username_);
+ jo("new_username", object.new_username_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventActiveUsernamesChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventActiveUsernamesChanged");
+ jo("old_usernames", ToJson(object.old_usernames_));
+ jo("new_usernames", ToJson(object.new_usernames_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventHasProtectedContentToggled &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventHasProtectedContentToggled");
+ jo("has_protected_content", JsonBool{object.has_protected_content_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventInvitesToggled &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventInvitesToggled");
+ jo("can_invite_users", JsonBool{object.can_invite_users_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventIsAllHistoryAvailableToggled &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventIsAllHistoryAvailableToggled");
+ jo("is_all_history_available", JsonBool{object.is_all_history_available_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventSignMessagesToggled &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventSignMessagesToggled");
+ jo("sign_messages", JsonBool{object.sign_messages_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkEdited &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventInviteLinkEdited");
+ if (object.old_invite_link_) {
+ jo("old_invite_link", ToJson(*object.old_invite_link_));
+ }
+ if (object.new_invite_link_) {
+ jo("new_invite_link", ToJson(*object.new_invite_link_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkRevoked &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventInviteLinkRevoked");
+ if (object.invite_link_) {
+ jo("invite_link", ToJson(*object.invite_link_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkDeleted &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventInviteLinkDeleted");
+ if (object.invite_link_) {
+ jo("invite_link", ToJson(*object.invite_link_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatCreated &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventVideoChatCreated");
+ jo("group_call_id", object.group_call_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatEnded &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventVideoChatEnded");
+ jo("group_call_id", object.group_call_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatMuteNewParticipantsToggled &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventVideoChatMuteNewParticipantsToggled");
+ jo("mute_new_participants", JsonBool{object.mute_new_participants_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatParticipantIsMutedToggled &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventVideoChatParticipantIsMutedToggled");
+ if (object.participant_id_) {
+ jo("participant_id", ToJson(*object.participant_id_));
+ }
+ jo("is_muted", JsonBool{object.is_muted_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatParticipantVolumeLevelChanged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventVideoChatParticipantVolumeLevelChanged");
+ if (object.participant_id_) {
+ jo("participant_id", ToJson(*object.participant_id_));
+ }
+ jo("volume_level", object.volume_level_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventIsForumToggled &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventIsForumToggled");
+ jo("is_forum", JsonBool{object.is_forum_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicCreated &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventForumTopicCreated");
+ if (object.topic_info_) {
+ jo("topic_info", ToJson(*object.topic_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicEdited &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventForumTopicEdited");
+ if (object.old_topic_info_) {
+ jo("old_topic_info", ToJson(*object.old_topic_info_));
+ }
+ if (object.new_topic_info_) {
+ jo("new_topic_info", ToJson(*object.new_topic_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicToggleIsClosed &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventForumTopicToggleIsClosed");
+ if (object.topic_info_) {
+ jo("topic_info", ToJson(*object.topic_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicDeleted &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventForumTopicDeleted");
+ if (object.topic_info_) {
+ jo("topic_info", ToJson(*object.topic_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicPinned &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEventForumTopicPinned");
+ if (object.old_topic_info_) {
+ jo("old_topic_info", ToJson(*object.old_topic_info_));
+ }
+ if (object.new_topic_info_) {
+ jo("new_topic_info", ToJson(*object.new_topic_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatEvents &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatEvents");
+ jo("events", ToJson(object.events_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatFilter &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatFilter");
+ jo("title", object.title_);
+ jo("icon_name", object.icon_name_);
+ jo("pinned_chat_ids", ToJson(object.pinned_chat_ids_));
+ jo("included_chat_ids", ToJson(object.included_chat_ids_));
+ jo("excluded_chat_ids", ToJson(object.excluded_chat_ids_));
+ jo("exclude_muted", JsonBool{object.exclude_muted_});
+ jo("exclude_read", JsonBool{object.exclude_read_});
+ jo("exclude_archived", JsonBool{object.exclude_archived_});
+ jo("include_contacts", JsonBool{object.include_contacts_});
+ jo("include_non_contacts", JsonBool{object.include_non_contacts_});
+ jo("include_bots", JsonBool{object.include_bots_});
+ jo("include_groups", JsonBool{object.include_groups_});
+ jo("include_channels", JsonBool{object.include_channels_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatFilterInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatFilterInfo");
+ jo("id", object.id_);
+ jo("title", object.title_);
+ jo("icon_name", object.icon_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLink &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatInviteLink");
+ jo("invite_link", object.invite_link_);
+ jo("name", object.name_);
+ jo("creator_user_id", object.creator_user_id_);
+ jo("date", object.date_);
+ jo("edit_date", object.edit_date_);
+ jo("expiration_date", object.expiration_date_);
+ jo("member_limit", object.member_limit_);
+ jo("member_count", object.member_count_);
+ jo("pending_join_request_count", object.pending_join_request_count_);
+ jo("creates_join_request", JsonBool{object.creates_join_request_});
+ jo("is_primary", JsonBool{object.is_primary_});
+ jo("is_revoked", JsonBool{object.is_revoked_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinkCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatInviteLinkCount");
+ jo("user_id", object.user_id_);
+ jo("invite_link_count", object.invite_link_count_);
+ jo("revoked_invite_link_count", object.revoked_invite_link_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinkCounts &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatInviteLinkCounts");
+ jo("invite_link_counts", ToJson(object.invite_link_counts_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinkInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatInviteLinkInfo");
+ jo("chat_id", object.chat_id_);
+ jo("accessible_for", object.accessible_for_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("title", object.title_);
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("description", object.description_);
+ jo("member_count", object.member_count_);
+ jo("member_user_ids", ToJson(object.member_user_ids_));
+ jo("creates_join_request", JsonBool{object.creates_join_request_});
+ jo("is_public", JsonBool{object.is_public_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinkMember &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatInviteLinkMember");
+ jo("user_id", object.user_id_);
+ jo("joined_chat_date", object.joined_chat_date_);
+ jo("approver_user_id", object.approver_user_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinkMembers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatInviteLinkMembers");
+ jo("total_count", object.total_count_);
+ jo("members", ToJson(object.members_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinks &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatInviteLinks");
+ jo("total_count", object.total_count_);
+ jo("invite_links", ToJson(object.invite_links_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatJoinRequest &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatJoinRequest");
+ jo("user_id", object.user_id_);
+ jo("date", object.date_);
+ jo("bio", object.bio_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatJoinRequests &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatJoinRequests");
+ jo("total_count", object.total_count_);
+ jo("requests", ToJson(object.requests_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatJoinRequestsInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatJoinRequestsInfo");
+ jo("total_count", object.total_count_);
+ jo("user_ids", ToJson(object.user_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::ChatList &object) {
+ td_api::downcast_call(const_cast<td_api::ChatList &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatListMain &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatListMain");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatListArchive &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatListArchive");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatListFilter &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatListFilter");
+ jo("chat_filter_id", object.chat_filter_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatLists &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatLists");
+ jo("chat_lists", ToJson(object.chat_lists_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatLocation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatLocation");
+ if (object.location_) {
+ jo("location", ToJson(*object.location_));
+ }
+ jo("address", object.address_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatMember &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatMember");
+ if (object.member_id_) {
+ jo("member_id", ToJson(*object.member_id_));
+ }
+ jo("inviter_user_id", object.inviter_user_id_);
+ jo("joined_chat_date", object.joined_chat_date_);
+ if (object.status_) {
+ jo("status", ToJson(*object.status_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::ChatMemberStatus &object) {
+ td_api::downcast_call(const_cast<td_api::ChatMemberStatus &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusCreator &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatMemberStatusCreator");
+ jo("custom_title", object.custom_title_);
+ jo("is_anonymous", JsonBool{object.is_anonymous_});
+ jo("is_member", JsonBool{object.is_member_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusAdministrator &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatMemberStatusAdministrator");
+ jo("custom_title", object.custom_title_);
+ jo("can_be_edited", JsonBool{object.can_be_edited_});
+ if (object.rights_) {
+ jo("rights", ToJson(*object.rights_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusMember &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatMemberStatusMember");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusRestricted &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatMemberStatusRestricted");
+ jo("is_member", JsonBool{object.is_member_});
+ jo("restricted_until_date", object.restricted_until_date_);
+ if (object.permissions_) {
+ jo("permissions", ToJson(*object.permissions_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusLeft &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatMemberStatusLeft");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusBanned &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatMemberStatusBanned");
+ jo("banned_until_date", object.banned_until_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatMembers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatMembers");
+ jo("total_count", object.total_count_);
+ jo("members", ToJson(object.members_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatMessageSender &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatMessageSender");
+ if (object.sender_) {
+ jo("sender", ToJson(*object.sender_));
+ }
+ jo("needs_premium", JsonBool{object.needs_premium_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatMessageSenders &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatMessageSenders");
+ jo("senders", ToJson(object.senders_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatNearby &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatNearby");
+ jo("chat_id", object.chat_id_);
+ jo("distance", object.distance_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatNotificationSettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatNotificationSettings");
+ jo("use_default_mute_for", JsonBool{object.use_default_mute_for_});
+ jo("mute_for", object.mute_for_);
+ jo("use_default_sound", JsonBool{object.use_default_sound_});
+ jo("sound_id", ToJson(JsonInt64{object.sound_id_}));
+ jo("use_default_show_preview", JsonBool{object.use_default_show_preview_});
+ jo("show_preview", JsonBool{object.show_preview_});
+ jo("use_default_disable_pinned_message_notifications", JsonBool{object.use_default_disable_pinned_message_notifications_});
+ jo("disable_pinned_message_notifications", JsonBool{object.disable_pinned_message_notifications_});
+ jo("use_default_disable_mention_notifications", JsonBool{object.use_default_disable_mention_notifications_});
+ jo("disable_mention_notifications", JsonBool{object.disable_mention_notifications_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatPermissions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatPermissions");
+ jo("can_send_messages", JsonBool{object.can_send_messages_});
+ jo("can_send_media_messages", JsonBool{object.can_send_media_messages_});
+ jo("can_send_polls", JsonBool{object.can_send_polls_});
+ jo("can_send_other_messages", JsonBool{object.can_send_other_messages_});
+ jo("can_add_web_page_previews", JsonBool{object.can_add_web_page_previews_});
+ jo("can_change_info", JsonBool{object.can_change_info_});
+ jo("can_invite_users", JsonBool{object.can_invite_users_});
+ jo("can_pin_messages", JsonBool{object.can_pin_messages_});
+ jo("can_manage_topics", JsonBool{object.can_manage_topics_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatPhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatPhoto");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("added_date", object.added_date_);
+ if (object.minithumbnail_) {
+ jo("minithumbnail", ToJson(*object.minithumbnail_));
+ }
+ jo("sizes", ToJson(object.sizes_));
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+ if (object.small_animation_) {
+ jo("small_animation", ToJson(*object.small_animation_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatPhotoInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatPhotoInfo");
+ if (object.small_) {
+ jo("small", ToJson(*object.small_));
+ }
+ if (object.big_) {
+ jo("big", ToJson(*object.big_));
+ }
+ if (object.minithumbnail_) {
+ jo("minithumbnail", ToJson(*object.minithumbnail_));
+ }
+ jo("has_animation", JsonBool{object.has_animation_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatPhotos &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatPhotos");
+ jo("total_count", object.total_count_);
+ jo("photos", ToJson(object.photos_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatPosition &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatPosition");
+ if (object.list_) {
+ jo("list", ToJson(*object.list_));
+ }
+ jo("order", ToJson(JsonInt64{object.order_}));
+ jo("is_pinned", JsonBool{object.is_pinned_});
+ if (object.source_) {
+ jo("source", ToJson(*object.source_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::ChatSource &object) {
+ td_api::downcast_call(const_cast<td_api::ChatSource &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatSourceMtprotoProxy &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatSourceMtprotoProxy");
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatSourcePublicServiceAnnouncement &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatSourcePublicServiceAnnouncement");
+ jo("type", object.type_);
+ jo("text", object.text_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::ChatStatistics &object) {
+ td_api::downcast_call(const_cast<td_api::ChatStatistics &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsSupergroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatStatisticsSupergroup");
+ if (object.period_) {
+ jo("period", ToJson(*object.period_));
+ }
+ if (object.member_count_) {
+ jo("member_count", ToJson(*object.member_count_));
+ }
+ if (object.message_count_) {
+ jo("message_count", ToJson(*object.message_count_));
+ }
+ if (object.viewer_count_) {
+ jo("viewer_count", ToJson(*object.viewer_count_));
+ }
+ if (object.sender_count_) {
+ jo("sender_count", ToJson(*object.sender_count_));
+ }
+ if (object.member_count_graph_) {
+ jo("member_count_graph", ToJson(*object.member_count_graph_));
+ }
+ if (object.join_graph_) {
+ jo("join_graph", ToJson(*object.join_graph_));
+ }
+ if (object.join_by_source_graph_) {
+ jo("join_by_source_graph", ToJson(*object.join_by_source_graph_));
+ }
+ if (object.language_graph_) {
+ jo("language_graph", ToJson(*object.language_graph_));
+ }
+ if (object.message_content_graph_) {
+ jo("message_content_graph", ToJson(*object.message_content_graph_));
+ }
+ if (object.action_graph_) {
+ jo("action_graph", ToJson(*object.action_graph_));
+ }
+ if (object.day_graph_) {
+ jo("day_graph", ToJson(*object.day_graph_));
+ }
+ if (object.week_graph_) {
+ jo("week_graph", ToJson(*object.week_graph_));
+ }
+ jo("top_senders", ToJson(object.top_senders_));
+ jo("top_administrators", ToJson(object.top_administrators_));
+ jo("top_inviters", ToJson(object.top_inviters_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsChannel &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatStatisticsChannel");
+ if (object.period_) {
+ jo("period", ToJson(*object.period_));
+ }
+ if (object.member_count_) {
+ jo("member_count", ToJson(*object.member_count_));
+ }
+ if (object.mean_view_count_) {
+ jo("mean_view_count", ToJson(*object.mean_view_count_));
+ }
+ if (object.mean_share_count_) {
+ jo("mean_share_count", ToJson(*object.mean_share_count_));
+ }
+ jo("enabled_notifications_percentage", object.enabled_notifications_percentage_);
+ if (object.member_count_graph_) {
+ jo("member_count_graph", ToJson(*object.member_count_graph_));
+ }
+ if (object.join_graph_) {
+ jo("join_graph", ToJson(*object.join_graph_));
+ }
+ if (object.mute_graph_) {
+ jo("mute_graph", ToJson(*object.mute_graph_));
+ }
+ if (object.view_count_by_hour_graph_) {
+ jo("view_count_by_hour_graph", ToJson(*object.view_count_by_hour_graph_));
+ }
+ if (object.view_count_by_source_graph_) {
+ jo("view_count_by_source_graph", ToJson(*object.view_count_by_source_graph_));
+ }
+ if (object.join_by_source_graph_) {
+ jo("join_by_source_graph", ToJson(*object.join_by_source_graph_));
+ }
+ if (object.language_graph_) {
+ jo("language_graph", ToJson(*object.language_graph_));
+ }
+ if (object.message_interaction_graph_) {
+ jo("message_interaction_graph", ToJson(*object.message_interaction_graph_));
+ }
+ if (object.instant_view_interaction_graph_) {
+ jo("instant_view_interaction_graph", ToJson(*object.instant_view_interaction_graph_));
+ }
+ jo("recent_message_interactions", ToJson(object.recent_message_interactions_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsAdministratorActionsInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatStatisticsAdministratorActionsInfo");
+ jo("user_id", object.user_id_);
+ jo("deleted_message_count", object.deleted_message_count_);
+ jo("banned_user_count", object.banned_user_count_);
+ jo("restricted_user_count", object.restricted_user_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsInviterInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatStatisticsInviterInfo");
+ jo("user_id", object.user_id_);
+ jo("added_member_count", object.added_member_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsMessageInteractionInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatStatisticsMessageInteractionInfo");
+ jo("message_id", object.message_id_);
+ jo("view_count", object.view_count_);
+ jo("forward_count", object.forward_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsMessageSenderInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatStatisticsMessageSenderInfo");
+ jo("user_id", object.user_id_);
+ jo("sent_message_count", object.sent_message_count_);
+ jo("average_character_count", object.average_character_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatTheme &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatTheme");
+ jo("name", object.name_);
+ if (object.light_settings_) {
+ jo("light_settings", ToJson(*object.light_settings_));
+ }
+ if (object.dark_settings_) {
+ jo("dark_settings", ToJson(*object.dark_settings_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::ChatType &object) {
+ td_api::downcast_call(const_cast<td_api::ChatType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatTypePrivate &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatTypePrivate");
+ jo("user_id", object.user_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatTypeBasicGroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatTypeBasicGroup");
+ jo("basic_group_id", object.basic_group_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatTypeSupergroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatTypeSupergroup");
+ jo("supergroup_id", object.supergroup_id_);
+ jo("is_channel", JsonBool{object.is_channel_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatTypeSecret &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatTypeSecret");
+ jo("secret_chat_id", object.secret_chat_id_);
+ jo("user_id", object.user_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::chats &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chats");
+ jo("total_count", object.total_count_);
+ jo("chat_ids", ToJson(object.chat_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::chatsNearby &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "chatsNearby");
+ jo("users_nearby", ToJson(object.users_nearby_));
+ jo("supergroups_nearby", ToJson(object.supergroups_nearby_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::CheckChatUsernameResult &object) {
+ td_api::downcast_call(const_cast<td_api::CheckChatUsernameResult &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultOk &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "checkChatUsernameResultOk");
+}
+
+void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultUsernameInvalid &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "checkChatUsernameResultUsernameInvalid");
+}
+
+void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultUsernameOccupied &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "checkChatUsernameResultUsernameOccupied");
+}
+
+void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultPublicChatsTooMuch &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "checkChatUsernameResultPublicChatsTooMuch");
+}
+
+void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultPublicGroupsUnavailable &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "checkChatUsernameResultPublicGroupsUnavailable");
+}
+
+void to_json(JsonValueScope &jv, const td_api::CheckStickerSetNameResult &object) {
+ td_api::downcast_call(const_cast<td_api::CheckStickerSetNameResult &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultOk &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "checkStickerSetNameResultOk");
+}
+
+void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultNameInvalid &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "checkStickerSetNameResultNameInvalid");
+}
+
+void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultNameOccupied &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "checkStickerSetNameResultNameOccupied");
+}
+
+void to_json(JsonValueScope &jv, const td_api::closedVectorPath &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "closedVectorPath");
+ jo("commands", ToJson(object.commands_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::connectedWebsite &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "connectedWebsite");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("domain_name", object.domain_name_);
+ jo("bot_user_id", object.bot_user_id_);
+ jo("browser", object.browser_);
+ jo("platform", object.platform_);
+ jo("log_in_date", object.log_in_date_);
+ jo("last_active_date", object.last_active_date_);
+ jo("ip", object.ip_);
+ jo("location", object.location_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::connectedWebsites &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "connectedWebsites");
+ jo("websites", ToJson(object.websites_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::ConnectionState &object) {
+ td_api::downcast_call(const_cast<td_api::ConnectionState &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::connectionStateWaitingForNetwork &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "connectionStateWaitingForNetwork");
+}
+
+void to_json(JsonValueScope &jv, const td_api::connectionStateConnectingToProxy &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "connectionStateConnectingToProxy");
+}
+
+void to_json(JsonValueScope &jv, const td_api::connectionStateConnecting &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "connectionStateConnecting");
+}
+
+void to_json(JsonValueScope &jv, const td_api::connectionStateUpdating &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "connectionStateUpdating");
+}
+
+void to_json(JsonValueScope &jv, const td_api::connectionStateReady &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "connectionStateReady");
+}
+
+void to_json(JsonValueScope &jv, const td_api::contact &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "contact");
+ jo("phone_number", object.phone_number_);
+ jo("first_name", object.first_name_);
+ jo("last_name", object.last_name_);
+ jo("vcard", object.vcard_);
+ jo("user_id", object.user_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::count &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "count");
+ jo("count", object.count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::countries &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "countries");
+ jo("countries", ToJson(object.countries_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::countryInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "countryInfo");
+ jo("country_code", object.country_code_);
+ jo("name", object.name_);
+ jo("english_name", object.english_name_);
+ jo("is_hidden", JsonBool{object.is_hidden_});
+ jo("calling_codes", ToJson(object.calling_codes_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::customRequestResult &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "customRequestResult");
+ jo("result", object.result_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::databaseStatistics &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "databaseStatistics");
+ jo("statistics", object.statistics_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::date &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "date");
+ jo("day", object.day_);
+ jo("month", object.month_);
+ jo("year", object.year_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::dateRange &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "dateRange");
+ jo("start_date", object.start_date_);
+ jo("end_date", object.end_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::datedFile &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "datedFile");
+ if (object.file_) {
+ jo("file", ToJson(*object.file_));
+ }
+ jo("date", object.date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::deepLinkInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "deepLinkInfo");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("need_update_application", JsonBool{object.need_update_application_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::DiceStickers &object) {
+ td_api::downcast_call(const_cast<td_api::DiceStickers &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::diceStickersRegular &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "diceStickersRegular");
+ if (object.sticker_) {
+ jo("sticker", ToJson(*object.sticker_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::diceStickersSlotMachine &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "diceStickersSlotMachine");
+ if (object.background_) {
+ jo("background", ToJson(*object.background_));
+ }
+ if (object.lever_) {
+ jo("lever", ToJson(*object.lever_));
+ }
+ if (object.left_reel_) {
+ jo("left_reel", ToJson(*object.left_reel_));
+ }
+ if (object.center_reel_) {
+ jo("center_reel", ToJson(*object.center_reel_));
+ }
+ if (object.right_reel_) {
+ jo("right_reel", ToJson(*object.right_reel_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::document &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "document");
+ jo("file_name", object.file_name_);
+ jo("mime_type", object.mime_type_);
+ if (object.minithumbnail_) {
+ jo("minithumbnail", ToJson(*object.minithumbnail_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ if (object.document_) {
+ jo("document", ToJson(*object.document_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::downloadedFileCounts &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "downloadedFileCounts");
+ jo("active_count", object.active_count_);
+ jo("paused_count", object.paused_count_);
+ jo("completed_count", object.completed_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::draftMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "draftMessage");
+ jo("reply_to_message_id", object.reply_to_message_id_);
+ jo("date", object.date_);
+ if (object.input_message_text_) {
+ jo("input_message_text", ToJson(*object.input_message_text_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::emailAddressAuthenticationCodeInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "emailAddressAuthenticationCodeInfo");
+ jo("email_address_pattern", object.email_address_pattern_);
+ jo("length", object.length_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::emojiReaction &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "emojiReaction");
+ jo("emoji", object.emoji_);
+ jo("title", object.title_);
+ jo("is_active", JsonBool{object.is_active_});
+ if (object.static_icon_) {
+ jo("static_icon", ToJson(*object.static_icon_));
+ }
+ if (object.appear_animation_) {
+ jo("appear_animation", ToJson(*object.appear_animation_));
+ }
+ if (object.select_animation_) {
+ jo("select_animation", ToJson(*object.select_animation_));
+ }
+ if (object.activate_animation_) {
+ jo("activate_animation", ToJson(*object.activate_animation_));
+ }
+ if (object.effect_animation_) {
+ jo("effect_animation", ToJson(*object.effect_animation_));
+ }
+ if (object.around_animation_) {
+ jo("around_animation", ToJson(*object.around_animation_));
+ }
+ if (object.center_animation_) {
+ jo("center_animation", ToJson(*object.center_animation_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::emojiStatus &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "emojiStatus");
+ jo("custom_emoji_id", ToJson(JsonInt64{object.custom_emoji_id_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::emojiStatuses &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "emojiStatuses");
+ jo("emoji_statuses", ToJson(object.emoji_statuses_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::emojis &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "emojis");
+ jo("emojis", ToJson(object.emojis_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::encryptedCredentials &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "encryptedCredentials");
+ jo("data", base64_encode(object.data_));
+ jo("hash", base64_encode(object.hash_));
+ jo("secret", base64_encode(object.secret_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::encryptedPassportElement &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "encryptedPassportElement");
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("data", base64_encode(object.data_));
+ if (object.front_side_) {
+ jo("front_side", ToJson(*object.front_side_));
+ }
+ if (object.reverse_side_) {
+ jo("reverse_side", ToJson(*object.reverse_side_));
+ }
+ if (object.selfie_) {
+ jo("selfie", ToJson(*object.selfie_));
+ }
+ jo("translation", ToJson(object.translation_));
+ jo("files", ToJson(object.files_));
+ jo("value", object.value_);
+ jo("hash", object.hash_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::error &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "error");
+ jo("code", object.code_);
+ jo("message", object.message_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::file &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "file");
+ jo("id", object.id_);
+ jo("size", object.size_);
+ jo("expected_size", object.expected_size_);
+ if (object.local_) {
+ jo("local", ToJson(*object.local_));
+ }
+ if (object.remote_) {
+ jo("remote", ToJson(*object.remote_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileDownload &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileDownload");
+ jo("file_id", object.file_id_);
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+ jo("add_date", object.add_date_);
+ jo("complete_date", object.complete_date_);
+ jo("is_paused", JsonBool{object.is_paused_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileDownloadedPrefixSize &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileDownloadedPrefixSize");
+ jo("size", object.size_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::filePart &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "filePart");
+ jo("data", base64_encode(object.data_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::FileType &object) {
+ td_api::downcast_call(const_cast<td_api::FileType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeNone &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeNone");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeAnimation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeAnimation");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeAudio &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeAudio");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeDocument &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeDocument");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeNotificationSound &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeNotificationSound");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypePhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypePhoto");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeProfilePhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeProfilePhoto");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeSecret &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeSecret");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeSecretThumbnail &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeSecretThumbnail");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeSecure &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeSecure");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeSticker &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeSticker");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeThumbnail &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeThumbnail");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeUnknown &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeUnknown");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeVideo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeVideo");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeVideoNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeVideoNote");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeVoiceNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeVoiceNote");
+}
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeWallpaper &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "fileTypeWallpaper");
+}
+
+void to_json(JsonValueScope &jv, const td_api::formattedText &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "formattedText");
+ jo("text", object.text_);
+ jo("entities", ToJson(object.entities_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::forumTopicIcon &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "forumTopicIcon");
+ jo("color", object.color_);
+ jo("custom_emoji_id", ToJson(JsonInt64{object.custom_emoji_id_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::forumTopicInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "forumTopicInfo");
+ jo("message_thread_id", object.message_thread_id_);
+ jo("name", object.name_);
+ if (object.icon_) {
+ jo("icon", ToJson(*object.icon_));
+ }
+ jo("creation_date", object.creation_date_);
+ if (object.creator_id_) {
+ jo("creator_id", ToJson(*object.creator_id_));
+ }
+ jo("is_outgoing", JsonBool{object.is_outgoing_});
+ jo("is_closed", JsonBool{object.is_closed_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::foundFileDownloads &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "foundFileDownloads");
+ if (object.total_counts_) {
+ jo("total_counts", ToJson(*object.total_counts_));
+ }
+ jo("files", ToJson(object.files_));
+ jo("next_offset", object.next_offset_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::foundMessages &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "foundMessages");
+ jo("total_count", object.total_count_);
+ jo("messages", ToJson(object.messages_));
+ jo("next_offset", object.next_offset_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::game &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "game");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("short_name", object.short_name_);
+ jo("title", object.title_);
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("description", object.description_);
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::gameHighScore &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "gameHighScore");
+ jo("position", object.position_);
+ jo("user_id", object.user_id_);
+ jo("score", object.score_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::gameHighScores &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "gameHighScores");
+ jo("scores", ToJson(object.scores_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::groupCall &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "groupCall");
+ jo("id", object.id_);
+ jo("title", object.title_);
+ jo("scheduled_start_date", object.scheduled_start_date_);
+ jo("enabled_start_notification", JsonBool{object.enabled_start_notification_});
+ jo("is_active", JsonBool{object.is_active_});
+ jo("is_rtmp_stream", JsonBool{object.is_rtmp_stream_});
+ jo("is_joined", JsonBool{object.is_joined_});
+ jo("need_rejoin", JsonBool{object.need_rejoin_});
+ jo("can_be_managed", JsonBool{object.can_be_managed_});
+ jo("participant_count", object.participant_count_);
+ jo("has_hidden_listeners", JsonBool{object.has_hidden_listeners_});
+ jo("loaded_all_participants", JsonBool{object.loaded_all_participants_});
+ jo("recent_speakers", ToJson(object.recent_speakers_));
+ jo("is_my_video_enabled", JsonBool{object.is_my_video_enabled_});
+ jo("is_my_video_paused", JsonBool{object.is_my_video_paused_});
+ jo("can_enable_video", JsonBool{object.can_enable_video_});
+ jo("mute_new_participants", JsonBool{object.mute_new_participants_});
+ jo("can_toggle_mute_new_participants", JsonBool{object.can_toggle_mute_new_participants_});
+ jo("record_duration", object.record_duration_);
+ jo("is_video_recorded", JsonBool{object.is_video_recorded_});
+ jo("duration", object.duration_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::groupCallId &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "groupCallId");
+ jo("id", object.id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::groupCallParticipant &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "groupCallParticipant");
+ if (object.participant_id_) {
+ jo("participant_id", ToJson(*object.participant_id_));
+ }
+ jo("audio_source_id", object.audio_source_id_);
+ jo("screen_sharing_audio_source_id", object.screen_sharing_audio_source_id_);
+ if (object.video_info_) {
+ jo("video_info", ToJson(*object.video_info_));
+ }
+ if (object.screen_sharing_video_info_) {
+ jo("screen_sharing_video_info", ToJson(*object.screen_sharing_video_info_));
+ }
+ jo("bio", object.bio_);
+ jo("is_current_user", JsonBool{object.is_current_user_});
+ jo("is_speaking", JsonBool{object.is_speaking_});
+ jo("is_hand_raised", JsonBool{object.is_hand_raised_});
+ jo("can_be_muted_for_all_users", JsonBool{object.can_be_muted_for_all_users_});
+ jo("can_be_unmuted_for_all_users", JsonBool{object.can_be_unmuted_for_all_users_});
+ jo("can_be_muted_for_current_user", JsonBool{object.can_be_muted_for_current_user_});
+ jo("can_be_unmuted_for_current_user", JsonBool{object.can_be_unmuted_for_current_user_});
+ jo("is_muted_for_all_users", JsonBool{object.is_muted_for_all_users_});
+ jo("is_muted_for_current_user", JsonBool{object.is_muted_for_current_user_});
+ jo("can_unmute_self", JsonBool{object.can_unmute_self_});
+ jo("volume_level", object.volume_level_);
+ jo("order", object.order_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::groupCallParticipantVideoInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "groupCallParticipantVideoInfo");
+ jo("source_groups", ToJson(object.source_groups_));
+ jo("endpoint_id", object.endpoint_id_);
+ jo("is_paused", JsonBool{object.is_paused_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::groupCallRecentSpeaker &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "groupCallRecentSpeaker");
+ if (object.participant_id_) {
+ jo("participant_id", ToJson(*object.participant_id_));
+ }
+ jo("is_speaking", JsonBool{object.is_speaking_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::groupCallStream &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "groupCallStream");
+ jo("channel_id", object.channel_id_);
+ jo("scale", object.scale_);
+ jo("time_offset", object.time_offset_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::groupCallStreams &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "groupCallStreams");
+ jo("streams", ToJson(object.streams_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::groupCallVideoSourceGroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "groupCallVideoSourceGroup");
+ jo("semantics", object.semantics_);
+ jo("source_ids", ToJson(object.source_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::hashtags &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "hashtags");
+ jo("hashtags", ToJson(object.hashtags_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::httpUrl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "httpUrl");
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::identityDocument &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "identityDocument");
+ jo("number", object.number_);
+ if (object.expiry_date_) {
+ jo("expiry_date", ToJson(*object.expiry_date_));
+ }
+ if (object.front_side_) {
+ jo("front_side", ToJson(*object.front_side_));
+ }
+ if (object.reverse_side_) {
+ jo("reverse_side", ToJson(*object.reverse_side_));
+ }
+ if (object.selfie_) {
+ jo("selfie", ToJson(*object.selfie_));
+ }
+ jo("translation", ToJson(object.translation_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::importedContacts &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "importedContacts");
+ jo("user_ids", ToJson(object.user_ids_));
+ jo("importer_count", ToJson(object.importer_count_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButton &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineKeyboardButton");
+ jo("text", object.text_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::InlineKeyboardButtonType &object) {
+ td_api::downcast_call(const_cast<td_api::InlineKeyboardButtonType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeUrl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineKeyboardButtonTypeUrl");
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeLoginUrl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineKeyboardButtonTypeLoginUrl");
+ jo("url", object.url_);
+ jo("id", object.id_);
+ jo("forward_text", object.forward_text_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeWebApp &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineKeyboardButtonTypeWebApp");
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallback &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineKeyboardButtonTypeCallback");
+ jo("data", base64_encode(object.data_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallbackWithPassword &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineKeyboardButtonTypeCallbackWithPassword");
+ jo("data", base64_encode(object.data_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallbackGame &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineKeyboardButtonTypeCallbackGame");
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeSwitchInline &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineKeyboardButtonTypeSwitchInline");
+ jo("query", object.query_);
+ jo("in_current_chat", JsonBool{object.in_current_chat_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeBuy &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineKeyboardButtonTypeBuy");
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeUser &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineKeyboardButtonTypeUser");
+ jo("user_id", object.user_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::InlineQueryResult &object) {
+ td_api::downcast_call(const_cast<td_api::InlineQueryResult &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultArticle &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultArticle");
+ jo("id", object.id_);
+ jo("url", object.url_);
+ jo("hide_url", JsonBool{object.hide_url_});
+ jo("title", object.title_);
+ jo("description", object.description_);
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultContact &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultContact");
+ jo("id", object.id_);
+ if (object.contact_) {
+ jo("contact", ToJson(*object.contact_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultLocation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultLocation");
+ jo("id", object.id_);
+ if (object.location_) {
+ jo("location", ToJson(*object.location_));
+ }
+ jo("title", object.title_);
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVenue &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultVenue");
+ jo("id", object.id_);
+ if (object.venue_) {
+ jo("venue", ToJson(*object.venue_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultGame &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultGame");
+ jo("id", object.id_);
+ if (object.game_) {
+ jo("game", ToJson(*object.game_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultAnimation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultAnimation");
+ jo("id", object.id_);
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+ jo("title", object.title_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultAudio &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultAudio");
+ jo("id", object.id_);
+ if (object.audio_) {
+ jo("audio", ToJson(*object.audio_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultDocument &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultDocument");
+ jo("id", object.id_);
+ if (object.document_) {
+ jo("document", ToJson(*object.document_));
+ }
+ jo("title", object.title_);
+ jo("description", object.description_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultPhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultPhoto");
+ jo("id", object.id_);
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("title", object.title_);
+ jo("description", object.description_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultSticker &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultSticker");
+ jo("id", object.id_);
+ if (object.sticker_) {
+ jo("sticker", ToJson(*object.sticker_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVideo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultVideo");
+ jo("id", object.id_);
+ if (object.video_) {
+ jo("video", ToJson(*object.video_));
+ }
+ jo("title", object.title_);
+ jo("description", object.description_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVoiceNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResultVoiceNote");
+ jo("id", object.id_);
+ if (object.voice_note_) {
+ jo("voice_note", ToJson(*object.voice_note_));
+ }
+ jo("title", object.title_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResults &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inlineQueryResults");
+ jo("inline_query_id", ToJson(JsonInt64{object.inline_query_id_}));
+ jo("next_offset", object.next_offset_);
+ jo("results", ToJson(object.results_));
+ jo("switch_pm_text", object.switch_pm_text_);
+ jo("switch_pm_parameter", object.switch_pm_parameter_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::InputFile &object) {
+ td_api::downcast_call(const_cast<td_api::InputFile &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputFileId &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputFileId");
+ jo("id", object.id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputFileRemote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputFileRemote");
+ jo("id", object.id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputFileLocal &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputFileLocal");
+ jo("path", object.path_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputFileGenerated &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputFileGenerated");
+ jo("original_path", object.original_path_);
+ jo("conversion", object.conversion_);
+ jo("expected_size", object.expected_size_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::InputMessageContent &object) {
+ td_api::downcast_call(const_cast<td_api::InputMessageContent &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageText &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageText");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("disable_web_page_preview", JsonBool{object.disable_web_page_preview_});
+ jo("clear_draft", JsonBool{object.clear_draft_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageAnimation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageAnimation");
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ jo("added_sticker_file_ids", ToJson(object.added_sticker_file_ids_));
+ jo("duration", object.duration_);
+ jo("width", object.width_);
+ jo("height", object.height_);
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageAudio &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageAudio");
+ if (object.audio_) {
+ jo("audio", ToJson(*object.audio_));
+ }
+ if (object.album_cover_thumbnail_) {
+ jo("album_cover_thumbnail", ToJson(*object.album_cover_thumbnail_));
+ }
+ jo("duration", object.duration_);
+ jo("title", object.title_);
+ jo("performer", object.performer_);
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageDocument &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageDocument");
+ if (object.document_) {
+ jo("document", ToJson(*object.document_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ jo("disable_content_type_detection", JsonBool{object.disable_content_type_detection_});
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessagePhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessagePhoto");
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ jo("added_sticker_file_ids", ToJson(object.added_sticker_file_ids_));
+ jo("width", object.width_);
+ jo("height", object.height_);
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("ttl", object.ttl_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageSticker &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageSticker");
+ if (object.sticker_) {
+ jo("sticker", ToJson(*object.sticker_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ jo("width", object.width_);
+ jo("height", object.height_);
+ jo("emoji", object.emoji_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageVideo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageVideo");
+ if (object.video_) {
+ jo("video", ToJson(*object.video_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ jo("added_sticker_file_ids", ToJson(object.added_sticker_file_ids_));
+ jo("duration", object.duration_);
+ jo("width", object.width_);
+ jo("height", object.height_);
+ jo("supports_streaming", JsonBool{object.supports_streaming_});
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("ttl", object.ttl_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageVideoNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageVideoNote");
+ if (object.video_note_) {
+ jo("video_note", ToJson(*object.video_note_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ jo("duration", object.duration_);
+ jo("length", object.length_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageVoiceNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageVoiceNote");
+ if (object.voice_note_) {
+ jo("voice_note", ToJson(*object.voice_note_));
+ }
+ jo("duration", object.duration_);
+ jo("waveform", base64_encode(object.waveform_));
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageLocation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageLocation");
+ if (object.location_) {
+ jo("location", ToJson(*object.location_));
+ }
+ jo("live_period", object.live_period_);
+ jo("heading", object.heading_);
+ jo("proximity_alert_radius", object.proximity_alert_radius_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageVenue &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageVenue");
+ if (object.venue_) {
+ jo("venue", ToJson(*object.venue_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageContact &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageContact");
+ if (object.contact_) {
+ jo("contact", ToJson(*object.contact_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageDice &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageDice");
+ jo("emoji", object.emoji_);
+ jo("clear_draft", JsonBool{object.clear_draft_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageGame &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageGame");
+ jo("bot_user_id", object.bot_user_id_);
+ jo("game_short_name", object.game_short_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageInvoice &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageInvoice");
+ if (object.invoice_) {
+ jo("invoice", ToJson(*object.invoice_));
+ }
+ jo("title", object.title_);
+ jo("description", object.description_);
+ jo("photo_url", object.photo_url_);
+ jo("photo_size", object.photo_size_);
+ jo("photo_width", object.photo_width_);
+ jo("photo_height", object.photo_height_);
+ jo("payload", base64_encode(object.payload_));
+ jo("provider_token", object.provider_token_);
+ jo("provider_data", object.provider_data_);
+ jo("start_parameter", object.start_parameter_);
+ if (object.extended_media_content_) {
+ jo("extended_media_content", ToJson(*object.extended_media_content_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessagePoll &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessagePoll");
+ jo("question", object.question_);
+ jo("options", ToJson(object.options_));
+ jo("is_anonymous", JsonBool{object.is_anonymous_});
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("open_period", object.open_period_);
+ jo("close_date", object.close_date_);
+ jo("is_closed", JsonBool{object.is_closed_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageForwarded &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputMessageForwarded");
+ jo("from_chat_id", object.from_chat_id_);
+ jo("message_id", object.message_id_);
+ jo("in_game_share", JsonBool{object.in_game_share_});
+ if (object.copy_options_) {
+ jo("copy_options", ToJson(*object.copy_options_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::inputThumbnail &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "inputThumbnail");
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ jo("width", object.width_);
+ jo("height", object.height_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::InternalLinkType &object) {
+ td_api::downcast_call(const_cast<td_api::InternalLinkType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeActiveSessions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeActiveSessions");
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeAttachmentMenuBot &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeAttachmentMenuBot");
+ if (object.target_chat_) {
+ jo("target_chat", ToJson(*object.target_chat_));
+ }
+ jo("bot_username", object.bot_username_);
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeAuthenticationCode &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeAuthenticationCode");
+ jo("code", object.code_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBackground &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeBackground");
+ jo("background_name", object.background_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotStart &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeBotStart");
+ jo("bot_username", object.bot_username_);
+ jo("start_parameter", object.start_parameter_);
+ jo("autostart", JsonBool{object.autostart_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotStartInGroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeBotStartInGroup");
+ jo("bot_username", object.bot_username_);
+ jo("start_parameter", object.start_parameter_);
+ if (object.administrator_rights_) {
+ jo("administrator_rights", ToJson(*object.administrator_rights_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotAddToChannel &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeBotAddToChannel");
+ jo("bot_username", object.bot_username_);
+ if (object.administrator_rights_) {
+ jo("administrator_rights", ToJson(*object.administrator_rights_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeChangePhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeChangePhoneNumber");
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeChatInvite &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeChatInvite");
+ jo("invite_link", object.invite_link_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeFilterSettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeFilterSettings");
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeGame &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeGame");
+ jo("bot_username", object.bot_username_);
+ jo("game_short_name", object.game_short_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeInstantView &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeInstantView");
+ jo("url", object.url_);
+ jo("fallback_url", object.fallback_url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeInvoice &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeInvoice");
+ jo("invoice_name", object.invoice_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeLanguagePack &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeLanguagePack");
+ jo("language_pack_id", object.language_pack_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeLanguageSettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeLanguageSettings");
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeMessage");
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeMessageDraft &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeMessageDraft");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("contains_link", JsonBool{object.contains_link_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypePassportDataRequest &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypePassportDataRequest");
+ jo("bot_user_id", object.bot_user_id_);
+ jo("scope", object.scope_);
+ jo("public_key", object.public_key_);
+ jo("nonce", object.nonce_);
+ jo("callback_url", object.callback_url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypePhoneNumberConfirmation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypePhoneNumberConfirmation");
+ jo("hash", object.hash_);
+ jo("phone_number", object.phone_number_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypePremiumFeatures &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypePremiumFeatures");
+ jo("referrer", object.referrer_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypePrivacyAndSecuritySettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypePrivacyAndSecuritySettings");
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeProxy &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeProxy");
+ jo("server", object.server_);
+ jo("port", object.port_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypePublicChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypePublicChat");
+ jo("chat_username", object.chat_username_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeQrCodeAuthentication &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeQrCodeAuthentication");
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeRestorePurchases &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeRestorePurchases");
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeSettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeSettings");
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeStickerSet &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeStickerSet");
+ jo("sticker_set_name", object.sticker_set_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeTheme &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeTheme");
+ jo("theme_name", object.theme_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeThemeSettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeThemeSettings");
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUnknownDeepLink &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeUnknownDeepLink");
+ jo("link", object.link_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUnsupportedProxy &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeUnsupportedProxy");
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUserPhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeUserPhoneNumber");
+ jo("phone_number", object.phone_number_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeVideoChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "internalLinkTypeVideoChat");
+ jo("chat_username", object.chat_username_);
+ jo("invite_hash", object.invite_hash_);
+ jo("is_live_stream", JsonBool{object.is_live_stream_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::invoice &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "invoice");
+ jo("currency", object.currency_);
+ jo("price_parts", ToJson(object.price_parts_));
+ jo("max_tip_amount", object.max_tip_amount_);
+ jo("suggested_tip_amounts", ToJson(object.suggested_tip_amounts_));
+ jo("recurring_payment_terms_of_service_url", object.recurring_payment_terms_of_service_url_);
+ jo("is_test", JsonBool{object.is_test_});
+ jo("need_name", JsonBool{object.need_name_});
+ jo("need_phone_number", JsonBool{object.need_phone_number_});
+ jo("need_email_address", JsonBool{object.need_email_address_});
+ jo("need_shipping_address", JsonBool{object.need_shipping_address_});
+ jo("send_phone_number_to_provider", JsonBool{object.send_phone_number_to_provider_});
+ jo("send_email_address_to_provider", JsonBool{object.send_email_address_to_provider_});
+ jo("is_flexible", JsonBool{object.is_flexible_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::jsonObjectMember &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "jsonObjectMember");
+ jo("key", object.key_);
+ if (object.value_) {
+ jo("value", ToJson(*object.value_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::JsonValue &object) {
+ td_api::downcast_call(const_cast<td_api::JsonValue &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueNull &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "jsonValueNull");
+}
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueBoolean &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "jsonValueBoolean");
+ jo("value", JsonBool{object.value_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "jsonValueNumber");
+ jo("value", object.value_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueString &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "jsonValueString");
+ jo("value", object.value_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueArray &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "jsonValueArray");
+ jo("values", ToJson(object.values_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueObject &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "jsonValueObject");
+ jo("members", ToJson(object.members_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButton &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "keyboardButton");
+ jo("text", object.text_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::KeyboardButtonType &object) {
+ td_api::downcast_call(const_cast<td_api::KeyboardButtonType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeText &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "keyboardButtonTypeText");
+}
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestPhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "keyboardButtonTypeRequestPhoneNumber");
+}
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestLocation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "keyboardButtonTypeRequestLocation");
+}
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestPoll &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "keyboardButtonTypeRequestPoll");
+ jo("force_regular", JsonBool{object.force_regular_});
+ jo("force_quiz", JsonBool{object.force_quiz_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeWebApp &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "keyboardButtonTypeWebApp");
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::labeledPricePart &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "labeledPricePart");
+ jo("label", object.label_);
+ jo("amount", object.amount_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::languagePackInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "languagePackInfo");
+ jo("id", object.id_);
+ jo("base_language_pack_id", object.base_language_pack_id_);
+ jo("name", object.name_);
+ jo("native_name", object.native_name_);
+ jo("plural_code", object.plural_code_);
+ jo("is_official", JsonBool{object.is_official_});
+ jo("is_rtl", JsonBool{object.is_rtl_});
+ jo("is_beta", JsonBool{object.is_beta_});
+ jo("is_installed", JsonBool{object.is_installed_});
+ jo("total_string_count", object.total_string_count_);
+ jo("translated_string_count", object.translated_string_count_);
+ jo("local_string_count", object.local_string_count_);
+ jo("translation_url", object.translation_url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::languagePackString &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "languagePackString");
+ jo("key", object.key_);
+ if (object.value_) {
+ jo("value", ToJson(*object.value_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::LanguagePackStringValue &object) {
+ td_api::downcast_call(const_cast<td_api::LanguagePackStringValue &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::languagePackStringValueOrdinary &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "languagePackStringValueOrdinary");
+ jo("value", object.value_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::languagePackStringValuePluralized &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "languagePackStringValuePluralized");
+ jo("zero_value", object.zero_value_);
+ jo("one_value", object.one_value_);
+ jo("two_value", object.two_value_);
+ jo("few_value", object.few_value_);
+ jo("many_value", object.many_value_);
+ jo("other_value", object.other_value_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::languagePackStringValueDeleted &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "languagePackStringValueDeleted");
+}
+
+void to_json(JsonValueScope &jv, const td_api::languagePackStrings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "languagePackStrings");
+ jo("strings", ToJson(object.strings_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::localFile &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "localFile");
+ jo("path", object.path_);
+ jo("can_be_downloaded", JsonBool{object.can_be_downloaded_});
+ jo("can_be_deleted", JsonBool{object.can_be_deleted_});
+ jo("is_downloading_active", JsonBool{object.is_downloading_active_});
+ jo("is_downloading_completed", JsonBool{object.is_downloading_completed_});
+ jo("download_offset", object.download_offset_);
+ jo("downloaded_prefix_size", object.downloaded_prefix_size_);
+ jo("downloaded_size", object.downloaded_size_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::localizationTargetInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "localizationTargetInfo");
+ jo("language_packs", ToJson(object.language_packs_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::location &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "location");
+ jo("latitude", object.latitude_);
+ jo("longitude", object.longitude_);
+ jo("horizontal_accuracy", object.horizontal_accuracy_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::LogStream &object) {
+ td_api::downcast_call(const_cast<td_api::LogStream &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::logStreamDefault &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "logStreamDefault");
+}
+
+void to_json(JsonValueScope &jv, const td_api::logStreamFile &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "logStreamFile");
+ jo("path", object.path_);
+ jo("max_file_size", object.max_file_size_);
+ jo("redirect_stderr", JsonBool{object.redirect_stderr_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::logStreamEmpty &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "logStreamEmpty");
+}
+
+void to_json(JsonValueScope &jv, const td_api::logTags &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "logTags");
+ jo("tags", ToJson(object.tags_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::logVerbosityLevel &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "logVerbosityLevel");
+ jo("verbosity_level", object.verbosity_level_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::LoginUrlInfo &object) {
+ td_api::downcast_call(const_cast<td_api::LoginUrlInfo &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::loginUrlInfoOpen &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "loginUrlInfoOpen");
+ jo("url", object.url_);
+ jo("skip_confirm", JsonBool{object.skip_confirm_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::loginUrlInfoRequestConfirmation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "loginUrlInfoRequestConfirmation");
+ jo("url", object.url_);
+ jo("domain", object.domain_);
+ jo("bot_user_id", object.bot_user_id_);
+ jo("request_write_access", JsonBool{object.request_write_access_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::MaskPoint &object) {
+ td_api::downcast_call(const_cast<td_api::MaskPoint &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::maskPointForehead &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "maskPointForehead");
+}
+
+void to_json(JsonValueScope &jv, const td_api::maskPointEyes &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "maskPointEyes");
+}
+
+void to_json(JsonValueScope &jv, const td_api::maskPointMouth &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "maskPointMouth");
+}
+
+void to_json(JsonValueScope &jv, const td_api::maskPointChin &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "maskPointChin");
+}
+
+void to_json(JsonValueScope &jv, const td_api::maskPosition &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "maskPosition");
+ if (object.point_) {
+ jo("point", ToJson(*object.point_));
+ }
+ jo("x_shift", object.x_shift_);
+ jo("y_shift", object.y_shift_);
+ jo("scale", object.scale_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::message &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "message");
+ jo("id", object.id_);
+ if (object.sender_id_) {
+ jo("sender_id", ToJson(*object.sender_id_));
+ }
+ jo("chat_id", object.chat_id_);
+ if (object.sending_state_) {
+ jo("sending_state", ToJson(*object.sending_state_));
+ }
+ if (object.scheduling_state_) {
+ jo("scheduling_state", ToJson(*object.scheduling_state_));
+ }
+ jo("is_outgoing", JsonBool{object.is_outgoing_});
+ jo("is_pinned", JsonBool{object.is_pinned_});
+ jo("can_be_edited", JsonBool{object.can_be_edited_});
+ jo("can_be_forwarded", JsonBool{object.can_be_forwarded_});
+ jo("can_be_saved", JsonBool{object.can_be_saved_});
+ jo("can_be_deleted_only_for_self", JsonBool{object.can_be_deleted_only_for_self_});
+ jo("can_be_deleted_for_all_users", JsonBool{object.can_be_deleted_for_all_users_});
+ jo("can_get_added_reactions", JsonBool{object.can_get_added_reactions_});
+ jo("can_get_statistics", JsonBool{object.can_get_statistics_});
+ jo("can_get_message_thread", JsonBool{object.can_get_message_thread_});
+ jo("can_get_viewers", JsonBool{object.can_get_viewers_});
+ jo("can_get_media_timestamp_links", JsonBool{object.can_get_media_timestamp_links_});
+ jo("can_report_reactions", JsonBool{object.can_report_reactions_});
+ jo("has_timestamped_media", JsonBool{object.has_timestamped_media_});
+ jo("is_channel_post", JsonBool{object.is_channel_post_});
+ jo("is_topic_message", JsonBool{object.is_topic_message_});
+ jo("contains_unread_mention", JsonBool{object.contains_unread_mention_});
+ jo("date", object.date_);
+ jo("edit_date", object.edit_date_);
+ if (object.forward_info_) {
+ jo("forward_info", ToJson(*object.forward_info_));
+ }
+ if (object.interaction_info_) {
+ jo("interaction_info", ToJson(*object.interaction_info_));
+ }
+ jo("unread_reactions", ToJson(object.unread_reactions_));
+ jo("reply_in_chat_id", object.reply_in_chat_id_);
+ jo("reply_to_message_id", object.reply_to_message_id_);
+ jo("message_thread_id", object.message_thread_id_);
+ jo("ttl", object.ttl_);
+ jo("ttl_expires_in", object.ttl_expires_in_);
+ jo("via_bot_user_id", object.via_bot_user_id_);
+ jo("author_signature", object.author_signature_);
+ jo("media_album_id", ToJson(JsonInt64{object.media_album_id_}));
+ jo("restriction_reason", object.restriction_reason_);
+ if (object.content_) {
+ jo("content", ToJson(*object.content_));
+ }
+ if (object.reply_markup_) {
+ jo("reply_markup", ToJson(*object.reply_markup_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageCalendar &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageCalendar");
+ jo("total_count", object.total_count_);
+ jo("days", ToJson(object.days_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageCalendarDay &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageCalendarDay");
+ jo("total_count", object.total_count_);
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::MessageContent &object) {
+ td_api::downcast_call(const_cast<td_api::MessageContent &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageText &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageText");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ if (object.web_page_) {
+ jo("web_page", ToJson(*object.web_page_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageAnimation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageAnimation");
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("is_secret", JsonBool{object.is_secret_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageAudio &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageAudio");
+ if (object.audio_) {
+ jo("audio", ToJson(*object.audio_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageDocument &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageDocument");
+ if (object.document_) {
+ jo("document", ToJson(*object.document_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messagePhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messagePhoto");
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("is_secret", JsonBool{object.is_secret_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageExpiredPhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageExpiredPhoto");
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageSticker &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageSticker");
+ if (object.sticker_) {
+ jo("sticker", ToJson(*object.sticker_));
+ }
+ jo("is_premium", JsonBool{object.is_premium_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageVideo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageVideo");
+ if (object.video_) {
+ jo("video", ToJson(*object.video_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("is_secret", JsonBool{object.is_secret_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageExpiredVideo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageExpiredVideo");
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageVideoNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageVideoNote");
+ if (object.video_note_) {
+ jo("video_note", ToJson(*object.video_note_));
+ }
+ jo("is_viewed", JsonBool{object.is_viewed_});
+ jo("is_secret", JsonBool{object.is_secret_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageVoiceNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageVoiceNote");
+ if (object.voice_note_) {
+ jo("voice_note", ToJson(*object.voice_note_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("is_listened", JsonBool{object.is_listened_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageLocation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageLocation");
+ if (object.location_) {
+ jo("location", ToJson(*object.location_));
+ }
+ jo("live_period", object.live_period_);
+ jo("expires_in", object.expires_in_);
+ jo("heading", object.heading_);
+ jo("proximity_alert_radius", object.proximity_alert_radius_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageVenue &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageVenue");
+ if (object.venue_) {
+ jo("venue", ToJson(*object.venue_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageContact &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageContact");
+ if (object.contact_) {
+ jo("contact", ToJson(*object.contact_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageAnimatedEmoji &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageAnimatedEmoji");
+ if (object.animated_emoji_) {
+ jo("animated_emoji", ToJson(*object.animated_emoji_));
+ }
+ jo("emoji", object.emoji_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageDice &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageDice");
+ if (object.initial_state_) {
+ jo("initial_state", ToJson(*object.initial_state_));
+ }
+ if (object.final_state_) {
+ jo("final_state", ToJson(*object.final_state_));
+ }
+ jo("emoji", object.emoji_);
+ jo("value", object.value_);
+ jo("success_animation_frame_number", object.success_animation_frame_number_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageGame &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageGame");
+ if (object.game_) {
+ jo("game", ToJson(*object.game_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messagePoll &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messagePoll");
+ if (object.poll_) {
+ jo("poll", ToJson(*object.poll_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageInvoice &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageInvoice");
+ jo("title", object.title_);
+ if (object.description_) {
+ jo("description", ToJson(*object.description_));
+ }
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("currency", object.currency_);
+ jo("total_amount", object.total_amount_);
+ jo("start_parameter", object.start_parameter_);
+ jo("is_test", JsonBool{object.is_test_});
+ jo("need_shipping_address", JsonBool{object.need_shipping_address_});
+ jo("receipt_message_id", object.receipt_message_id_);
+ if (object.extended_media_) {
+ jo("extended_media", ToJson(*object.extended_media_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageCall &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageCall");
+ jo("is_video", JsonBool{object.is_video_});
+ if (object.discard_reason_) {
+ jo("discard_reason", ToJson(*object.discard_reason_));
+ }
+ jo("duration", object.duration_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageVideoChatScheduled &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageVideoChatScheduled");
+ jo("group_call_id", object.group_call_id_);
+ jo("start_date", object.start_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageVideoChatStarted &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageVideoChatStarted");
+ jo("group_call_id", object.group_call_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageVideoChatEnded &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageVideoChatEnded");
+ jo("duration", object.duration_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageInviteVideoChatParticipants &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageInviteVideoChatParticipants");
+ jo("group_call_id", object.group_call_id_);
+ jo("user_ids", ToJson(object.user_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageBasicGroupChatCreate &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageBasicGroupChatCreate");
+ jo("title", object.title_);
+ jo("member_user_ids", ToJson(object.member_user_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageSupergroupChatCreate &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageSupergroupChatCreate");
+ jo("title", object.title_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatChangeTitle &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatChangeTitle");
+ jo("title", object.title_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatChangePhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatChangePhoto");
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatDeletePhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatDeletePhoto");
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatAddMembers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatAddMembers");
+ jo("member_user_ids", ToJson(object.member_user_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatJoinByLink &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatJoinByLink");
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatJoinByRequest &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatJoinByRequest");
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatDeleteMember &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatDeleteMember");
+ jo("user_id", object.user_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatUpgradeTo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatUpgradeTo");
+ jo("supergroup_id", object.supergroup_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatUpgradeFrom &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatUpgradeFrom");
+ jo("title", object.title_);
+ jo("basic_group_id", object.basic_group_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messagePinMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messagePinMessage");
+ jo("message_id", object.message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageScreenshotTaken &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageScreenshotTaken");
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatSetTheme &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatSetTheme");
+ jo("theme_name", object.theme_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageChatSetTtl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageChatSetTtl");
+ jo("ttl", object.ttl_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageForumTopicCreated &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageForumTopicCreated");
+ jo("name", object.name_);
+ if (object.icon_) {
+ jo("icon", ToJson(*object.icon_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageForumTopicEdited &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageForumTopicEdited");
+ jo("name", object.name_);
+ jo("edit_icon_custom_emoji_id", JsonBool{object.edit_icon_custom_emoji_id_});
+ jo("icon_custom_emoji_id", ToJson(JsonInt64{object.icon_custom_emoji_id_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageForumTopicIsClosedToggled &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageForumTopicIsClosedToggled");
+ jo("is_closed", JsonBool{object.is_closed_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageCustomServiceAction &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageCustomServiceAction");
+ jo("text", object.text_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageGameScore &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageGameScore");
+ jo("game_message_id", object.game_message_id_);
+ jo("game_id", ToJson(JsonInt64{object.game_id_}));
+ jo("score", object.score_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messagePaymentSuccessful &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messagePaymentSuccessful");
+ jo("invoice_chat_id", object.invoice_chat_id_);
+ jo("invoice_message_id", object.invoice_message_id_);
+ jo("currency", object.currency_);
+ jo("total_amount", object.total_amount_);
+ jo("is_recurring", JsonBool{object.is_recurring_});
+ jo("is_first_recurring", JsonBool{object.is_first_recurring_});
+ jo("invoice_name", object.invoice_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messagePaymentSuccessfulBot &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messagePaymentSuccessfulBot");
+ jo("currency", object.currency_);
+ jo("total_amount", object.total_amount_);
+ jo("is_recurring", JsonBool{object.is_recurring_});
+ jo("is_first_recurring", JsonBool{object.is_first_recurring_});
+ jo("invoice_payload", base64_encode(object.invoice_payload_));
+ jo("shipping_option_id", object.shipping_option_id_);
+ if (object.order_info_) {
+ jo("order_info", ToJson(*object.order_info_));
+ }
+ jo("telegram_payment_charge_id", object.telegram_payment_charge_id_);
+ jo("provider_payment_charge_id", object.provider_payment_charge_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageGiftedPremium &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageGiftedPremium");
+ jo("currency", object.currency_);
+ jo("amount", object.amount_);
+ jo("month_count", object.month_count_);
+ if (object.sticker_) {
+ jo("sticker", ToJson(*object.sticker_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageContactRegistered &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageContactRegistered");
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageWebsiteConnected &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageWebsiteConnected");
+ jo("domain_name", object.domain_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageWebAppDataSent &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageWebAppDataSent");
+ jo("button_text", object.button_text_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageWebAppDataReceived &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageWebAppDataReceived");
+ jo("button_text", object.button_text_);
+ jo("data", object.data_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messagePassportDataSent &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messagePassportDataSent");
+ jo("types", ToJson(object.types_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::messagePassportDataReceived &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messagePassportDataReceived");
+ jo("elements", ToJson(object.elements_));
+ if (object.credentials_) {
+ jo("credentials", ToJson(*object.credentials_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageProximityAlertTriggered &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageProximityAlertTriggered");
+ if (object.traveler_id_) {
+ jo("traveler_id", ToJson(*object.traveler_id_));
+ }
+ if (object.watcher_id_) {
+ jo("watcher_id", ToJson(*object.watcher_id_));
+ }
+ jo("distance", object.distance_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageUnsupported &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageUnsupported");
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageCopyOptions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageCopyOptions");
+ jo("send_copy", JsonBool{object.send_copy_});
+ jo("replace_caption", JsonBool{object.replace_caption_});
+ if (object.new_caption_) {
+ jo("new_caption", ToJson(*object.new_caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::MessageExtendedMedia &object) {
+ td_api::downcast_call(const_cast<td_api::MessageExtendedMedia &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaPreview &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageExtendedMediaPreview");
+ jo("width", object.width_);
+ jo("height", object.height_);
+ jo("duration", object.duration_);
+ if (object.minithumbnail_) {
+ jo("minithumbnail", ToJson(*object.minithumbnail_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaPhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageExtendedMediaPhoto");
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaVideo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageExtendedMediaVideo");
+ if (object.video_) {
+ jo("video", ToJson(*object.video_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaUnsupported &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageExtendedMediaUnsupported");
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::MessageFileType &object) {
+ td_api::downcast_call(const_cast<td_api::MessageFileType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageFileTypePrivate &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageFileTypePrivate");
+ jo("name", object.name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageFileTypeGroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageFileTypeGroup");
+ jo("title", object.title_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageFileTypeUnknown &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageFileTypeUnknown");
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageForwardInfo");
+ if (object.origin_) {
+ jo("origin", ToJson(*object.origin_));
+ }
+ jo("date", object.date_);
+ jo("public_service_announcement_type", object.public_service_announcement_type_);
+ jo("from_chat_id", object.from_chat_id_);
+ jo("from_message_id", object.from_message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::MessageForwardOrigin &object) {
+ td_api::downcast_call(const_cast<td_api::MessageForwardOrigin &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardOriginUser &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageForwardOriginUser");
+ jo("sender_user_id", object.sender_user_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardOriginChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageForwardOriginChat");
+ jo("sender_chat_id", object.sender_chat_id_);
+ jo("author_signature", object.author_signature_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardOriginHiddenUser &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageForwardOriginHiddenUser");
+ jo("sender_name", object.sender_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardOriginChannel &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageForwardOriginChannel");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+ jo("author_signature", object.author_signature_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardOriginMessageImport &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageForwardOriginMessageImport");
+ jo("sender_name", object.sender_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageInteractionInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageInteractionInfo");
+ jo("view_count", object.view_count_);
+ jo("forward_count", object.forward_count_);
+ if (object.reply_info_) {
+ jo("reply_info", ToJson(*object.reply_info_));
+ }
+ jo("reactions", ToJson(object.reactions_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageLink &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageLink");
+ jo("link", object.link_);
+ jo("is_public", JsonBool{object.is_public_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageLinkInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageLinkInfo");
+ jo("is_public", JsonBool{object.is_public_});
+ jo("chat_id", object.chat_id_);
+ jo("message_thread_id", object.message_thread_id_);
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+ jo("media_timestamp", object.media_timestamp_);
+ jo("for_album", JsonBool{object.for_album_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::messagePosition &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messagePosition");
+ jo("position", object.position_);
+ jo("message_id", object.message_id_);
+ jo("date", object.date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messagePositions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messagePositions");
+ jo("total_count", object.total_count_);
+ jo("positions", ToJson(object.positions_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageReaction &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageReaction");
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("total_count", object.total_count_);
+ jo("is_chosen", JsonBool{object.is_chosen_});
+ jo("recent_sender_ids", ToJson(object.recent_sender_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageReplyInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageReplyInfo");
+ jo("reply_count", object.reply_count_);
+ jo("recent_replier_ids", ToJson(object.recent_replier_ids_));
+ jo("last_read_inbox_message_id", object.last_read_inbox_message_id_);
+ jo("last_read_outbox_message_id", object.last_read_outbox_message_id_);
+ jo("last_message_id", object.last_message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::MessageSchedulingState &object) {
+ td_api::downcast_call(const_cast<td_api::MessageSchedulingState &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageSchedulingStateSendAtDate &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageSchedulingStateSendAtDate");
+ jo("send_date", object.send_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageSchedulingStateSendWhenOnline &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageSchedulingStateSendWhenOnline");
+}
+
+void to_json(JsonValueScope &jv, const td_api::MessageSender &object) {
+ td_api::downcast_call(const_cast<td_api::MessageSender &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageSenderUser &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageSenderUser");
+ jo("user_id", object.user_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageSenderChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageSenderChat");
+ jo("chat_id", object.chat_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageSenders &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageSenders");
+ jo("total_count", object.total_count_);
+ jo("senders", ToJson(object.senders_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::MessageSendingState &object) {
+ td_api::downcast_call(const_cast<td_api::MessageSendingState &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageSendingStatePending &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageSendingStatePending");
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageSendingStateFailed &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageSendingStateFailed");
+ jo("error_code", object.error_code_);
+ jo("error_message", object.error_message_);
+ jo("can_retry", JsonBool{object.can_retry_});
+ jo("need_another_sender", JsonBool{object.need_another_sender_});
+ jo("retry_after", object.retry_after_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageStatistics &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageStatistics");
+ if (object.message_interaction_graph_) {
+ jo("message_interaction_graph", ToJson(*object.message_interaction_graph_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messageThreadInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messageThreadInfo");
+ jo("chat_id", object.chat_id_);
+ jo("message_thread_id", object.message_thread_id_);
+ if (object.reply_info_) {
+ jo("reply_info", ToJson(*object.reply_info_));
+ }
+ jo("unread_message_count", object.unread_message_count_);
+ jo("messages", ToJson(object.messages_));
+ if (object.draft_message_) {
+ jo("draft_message", ToJson(*object.draft_message_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::messages &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "messages");
+ jo("total_count", object.total_count_);
+ jo("messages", ToJson(object.messages_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::minithumbnail &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "minithumbnail");
+ jo("width", object.width_);
+ jo("height", object.height_);
+ jo("data", base64_encode(object.data_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::networkStatistics &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "networkStatistics");
+ jo("since_date", object.since_date_);
+ jo("entries", ToJson(object.entries_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::NetworkStatisticsEntry &object) {
+ td_api::downcast_call(const_cast<td_api::NetworkStatisticsEntry &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::networkStatisticsEntryFile &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "networkStatisticsEntryFile");
+ if (object.file_type_) {
+ jo("file_type", ToJson(*object.file_type_));
+ }
+ if (object.network_type_) {
+ jo("network_type", ToJson(*object.network_type_));
+ }
+ jo("sent_bytes", object.sent_bytes_);
+ jo("received_bytes", object.received_bytes_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::networkStatisticsEntryCall &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "networkStatisticsEntryCall");
+ if (object.network_type_) {
+ jo("network_type", ToJson(*object.network_type_));
+ }
+ jo("sent_bytes", object.sent_bytes_);
+ jo("received_bytes", object.received_bytes_);
+ jo("duration", object.duration_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::NetworkType &object) {
+ td_api::downcast_call(const_cast<td_api::NetworkType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::networkTypeNone &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "networkTypeNone");
+}
+
+void to_json(JsonValueScope &jv, const td_api::networkTypeMobile &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "networkTypeMobile");
+}
+
+void to_json(JsonValueScope &jv, const td_api::networkTypeMobileRoaming &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "networkTypeMobileRoaming");
+}
+
+void to_json(JsonValueScope &jv, const td_api::networkTypeWiFi &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "networkTypeWiFi");
+}
+
+void to_json(JsonValueScope &jv, const td_api::networkTypeOther &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "networkTypeOther");
+}
+
+void to_json(JsonValueScope &jv, const td_api::notification &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notification");
+ jo("id", object.id_);
+ jo("date", object.date_);
+ jo("is_silent", JsonBool{object.is_silent_});
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationGroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationGroup");
+ jo("id", object.id_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("chat_id", object.chat_id_);
+ jo("total_count", object.total_count_);
+ jo("notifications", ToJson(object.notifications_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::NotificationGroupType &object) {
+ td_api::downcast_call(const_cast<td_api::NotificationGroupType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeMessages &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationGroupTypeMessages");
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeMentions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationGroupTypeMentions");
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeSecretChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationGroupTypeSecretChat");
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeCalls &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationGroupTypeCalls");
+}
+
+void to_json(JsonValueScope &jv, const td_api::NotificationSettingsScope &object) {
+ td_api::downcast_call(const_cast<td_api::NotificationSettingsScope &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopePrivateChats &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationSettingsScopePrivateChats");
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopeGroupChats &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationSettingsScopeGroupChats");
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopeChannelChats &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationSettingsScopeChannelChats");
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationSound &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationSound");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("duration", object.duration_);
+ jo("date", object.date_);
+ jo("title", object.title_);
+ jo("data", object.data_);
+ if (object.sound_) {
+ jo("sound", ToJson(*object.sound_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationSounds &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationSounds");
+ jo("notification_sounds", ToJson(object.notification_sounds_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::NotificationType &object) {
+ td_api::downcast_call(const_cast<td_api::NotificationType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationTypeNewMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationTypeNewMessage");
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+ jo("show_preview", JsonBool{object.show_preview_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationTypeNewSecretChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationTypeNewSecretChat");
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationTypeNewCall &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationTypeNewCall");
+ jo("call_id", object.call_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::notificationTypeNewPushMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "notificationTypeNewPushMessage");
+ jo("message_id", object.message_id_);
+ if (object.sender_id_) {
+ jo("sender_id", ToJson(*object.sender_id_));
+ }
+ jo("sender_name", object.sender_name_);
+ jo("is_outgoing", JsonBool{object.is_outgoing_});
+ if (object.content_) {
+ jo("content", ToJson(*object.content_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::ok &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "ok");
+}
+
+void to_json(JsonValueScope &jv, const td_api::OptionValue &object) {
+ td_api::downcast_call(const_cast<td_api::OptionValue &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::optionValueBoolean &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "optionValueBoolean");
+ jo("value", JsonBool{object.value_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::optionValueEmpty &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "optionValueEmpty");
+}
+
+void to_json(JsonValueScope &jv, const td_api::optionValueInteger &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "optionValueInteger");
+ jo("value", ToJson(JsonInt64{object.value_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::optionValueString &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "optionValueString");
+ jo("value", object.value_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::orderInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "orderInfo");
+ jo("name", object.name_);
+ jo("phone_number", object.phone_number_);
+ jo("email_address", object.email_address_);
+ if (object.shipping_address_) {
+ jo("shipping_address", ToJson(*object.shipping_address_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::PageBlock &object) {
+ td_api::downcast_call(const_cast<td_api::PageBlock &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockTitle &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockTitle");
+ if (object.title_) {
+ jo("title", ToJson(*object.title_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockSubtitle &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockSubtitle");
+ if (object.subtitle_) {
+ jo("subtitle", ToJson(*object.subtitle_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockAuthorDate &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockAuthorDate");
+ if (object.author_) {
+ jo("author", ToJson(*object.author_));
+ }
+ jo("publish_date", object.publish_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockHeader &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockHeader");
+ if (object.header_) {
+ jo("header", ToJson(*object.header_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockSubheader &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockSubheader");
+ if (object.subheader_) {
+ jo("subheader", ToJson(*object.subheader_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockKicker &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockKicker");
+ if (object.kicker_) {
+ jo("kicker", ToJson(*object.kicker_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockParagraph &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockParagraph");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockPreformatted &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockPreformatted");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("language", object.language_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockFooter &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockFooter");
+ if (object.footer_) {
+ jo("footer", ToJson(*object.footer_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockDivider &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockDivider");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockAnchor &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockAnchor");
+ jo("name", object.name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockList &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockList");
+ jo("items", ToJson(object.items_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockBlockQuote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockBlockQuote");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ if (object.credit_) {
+ jo("credit", ToJson(*object.credit_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockPullQuote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockPullQuote");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ if (object.credit_) {
+ jo("credit", ToJson(*object.credit_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockAnimation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockAnimation");
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("need_autoplay", JsonBool{object.need_autoplay_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockAudio &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockAudio");
+ if (object.audio_) {
+ jo("audio", ToJson(*object.audio_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockPhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockPhoto");
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockVideo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockVideo");
+ if (object.video_) {
+ jo("video", ToJson(*object.video_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("need_autoplay", JsonBool{object.need_autoplay_});
+ jo("is_looped", JsonBool{object.is_looped_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockVoiceNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockVoiceNote");
+ if (object.voice_note_) {
+ jo("voice_note", ToJson(*object.voice_note_));
+ }
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockCover &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockCover");
+ if (object.cover_) {
+ jo("cover", ToJson(*object.cover_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockEmbedded &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockEmbedded");
+ jo("url", object.url_);
+ jo("html", object.html_);
+ if (object.poster_photo_) {
+ jo("poster_photo", ToJson(*object.poster_photo_));
+ }
+ jo("width", object.width_);
+ jo("height", object.height_);
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("is_full_width", JsonBool{object.is_full_width_});
+ jo("allow_scrolling", JsonBool{object.allow_scrolling_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockEmbeddedPost &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockEmbeddedPost");
+ jo("url", object.url_);
+ jo("author", object.author_);
+ if (object.author_photo_) {
+ jo("author_photo", ToJson(*object.author_photo_));
+ }
+ jo("date", object.date_);
+ jo("page_blocks", ToJson(object.page_blocks_));
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockCollage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockCollage");
+ jo("page_blocks", ToJson(object.page_blocks_));
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockSlideshow &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockSlideshow");
+ jo("page_blocks", ToJson(object.page_blocks_));
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockChatLink &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockChatLink");
+ jo("title", object.title_);
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("username", object.username_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockTable &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockTable");
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+ jo("cells", ToJson(object.cells_));
+ jo("is_bordered", JsonBool{object.is_bordered_});
+ jo("is_striped", JsonBool{object.is_striped_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockDetails &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockDetails");
+ if (object.header_) {
+ jo("header", ToJson(*object.header_));
+ }
+ jo("page_blocks", ToJson(object.page_blocks_));
+ jo("is_open", JsonBool{object.is_open_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockRelatedArticles &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockRelatedArticles");
+ if (object.header_) {
+ jo("header", ToJson(*object.header_));
+ }
+ jo("articles", ToJson(object.articles_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockMap &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockMap");
+ if (object.location_) {
+ jo("location", ToJson(*object.location_));
+ }
+ jo("zoom", object.zoom_);
+ jo("width", object.width_);
+ jo("height", object.height_);
+ if (object.caption_) {
+ jo("caption", ToJson(*object.caption_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockCaption &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockCaption");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ if (object.credit_) {
+ jo("credit", ToJson(*object.credit_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::PageBlockHorizontalAlignment &object) {
+ td_api::downcast_call(const_cast<td_api::PageBlockHorizontalAlignment &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentLeft &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockHorizontalAlignmentLeft");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentCenter &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockHorizontalAlignmentCenter");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentRight &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockHorizontalAlignmentRight");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockListItem &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockListItem");
+ jo("label", object.label_);
+ jo("page_blocks", ToJson(object.page_blocks_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockRelatedArticle &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockRelatedArticle");
+ jo("url", object.url_);
+ jo("title", object.title_);
+ jo("description", object.description_);
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("author", object.author_);
+ jo("publish_date", object.publish_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockTableCell &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockTableCell");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("is_header", JsonBool{object.is_header_});
+ jo("colspan", object.colspan_);
+ jo("rowspan", object.rowspan_);
+ if (object.align_) {
+ jo("align", ToJson(*object.align_));
+ }
+ if (object.valign_) {
+ jo("valign", ToJson(*object.valign_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::PageBlockVerticalAlignment &object) {
+ td_api::downcast_call(const_cast<td_api::PageBlockVerticalAlignment &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentTop &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockVerticalAlignmentTop");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentMiddle &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockVerticalAlignmentMiddle");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentBottom &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pageBlockVerticalAlignmentBottom");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportAuthorizationForm &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportAuthorizationForm");
+ jo("id", object.id_);
+ jo("required_elements", ToJson(object.required_elements_));
+ jo("privacy_policy_url", object.privacy_policy_url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::PassportElement &object) {
+ td_api::downcast_call(const_cast<td_api::PassportElement &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementPersonalDetails &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementPersonalDetails");
+ if (object.personal_details_) {
+ jo("personal_details", ToJson(*object.personal_details_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementPassport &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementPassport");
+ if (object.passport_) {
+ jo("passport", ToJson(*object.passport_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementDriverLicense &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementDriverLicense");
+ if (object.driver_license_) {
+ jo("driver_license", ToJson(*object.driver_license_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementIdentityCard &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementIdentityCard");
+ if (object.identity_card_) {
+ jo("identity_card", ToJson(*object.identity_card_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementInternalPassport &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementInternalPassport");
+ if (object.internal_passport_) {
+ jo("internal_passport", ToJson(*object.internal_passport_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementAddress &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementAddress");
+ if (object.address_) {
+ jo("address", ToJson(*object.address_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementUtilityBill &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementUtilityBill");
+ if (object.utility_bill_) {
+ jo("utility_bill", ToJson(*object.utility_bill_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementBankStatement &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementBankStatement");
+ if (object.bank_statement_) {
+ jo("bank_statement", ToJson(*object.bank_statement_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementRentalAgreement &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementRentalAgreement");
+ if (object.rental_agreement_) {
+ jo("rental_agreement", ToJson(*object.rental_agreement_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementPassportRegistration &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementPassportRegistration");
+ if (object.passport_registration_) {
+ jo("passport_registration", ToJson(*object.passport_registration_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTemporaryRegistration &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTemporaryRegistration");
+ if (object.temporary_registration_) {
+ jo("temporary_registration", ToJson(*object.temporary_registration_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementPhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementPhoneNumber");
+ jo("phone_number", object.phone_number_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementEmailAddress &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementEmailAddress");
+ jo("email_address", object.email_address_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementError &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementError");
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("message", object.message_);
+ if (object.source_) {
+ jo("source", ToJson(*object.source_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::PassportElementErrorSource &object) {
+ td_api::downcast_call(const_cast<td_api::PassportElementErrorSource &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceUnspecified &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementErrorSourceUnspecified");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceDataField &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementErrorSourceDataField");
+ jo("field_name", object.field_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFrontSide &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementErrorSourceFrontSide");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceReverseSide &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementErrorSourceReverseSide");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceSelfie &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementErrorSourceSelfie");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceTranslationFile &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementErrorSourceTranslationFile");
+ jo("file_index", object.file_index_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceTranslationFiles &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementErrorSourceTranslationFiles");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFile &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementErrorSourceFile");
+ jo("file_index", object.file_index_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFiles &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementErrorSourceFiles");
+}
+
+void to_json(JsonValueScope &jv, const td_api::PassportElementType &object) {
+ td_api::downcast_call(const_cast<td_api::PassportElementType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypePersonalDetails &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypePersonalDetails");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypePassport &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypePassport");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeDriverLicense &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypeDriverLicense");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeIdentityCard &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypeIdentityCard");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeInternalPassport &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypeInternalPassport");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeAddress &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypeAddress");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeUtilityBill &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypeUtilityBill");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeBankStatement &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypeBankStatement");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeRentalAgreement &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypeRentalAgreement");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypePassportRegistration &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypePassportRegistration");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeTemporaryRegistration &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypeTemporaryRegistration");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypePhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypePhoneNumber");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeEmailAddress &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementTypeEmailAddress");
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElements &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElements");
+ jo("elements", ToJson(object.elements_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportElementsWithErrors &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportElementsWithErrors");
+ jo("elements", ToJson(object.elements_));
+ jo("errors", ToJson(object.errors_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportRequiredElement &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportRequiredElement");
+ jo("suitable_elements", ToJson(object.suitable_elements_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::passportSuitableElement &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passportSuitableElement");
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("is_selfie_required", JsonBool{object.is_selfie_required_});
+ jo("is_translation_required", JsonBool{object.is_translation_required_});
+ jo("is_native_name_required", JsonBool{object.is_native_name_required_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::passwordState &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "passwordState");
+ jo("has_password", JsonBool{object.has_password_});
+ jo("password_hint", object.password_hint_);
+ jo("has_recovery_email_address", JsonBool{object.has_recovery_email_address_});
+ jo("has_passport_data", JsonBool{object.has_passport_data_});
+ if (object.recovery_email_address_code_info_) {
+ jo("recovery_email_address_code_info", ToJson(*object.recovery_email_address_code_info_));
+ }
+ jo("login_email_address_pattern", object.login_email_address_pattern_);
+ jo("pending_reset_date", object.pending_reset_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::paymentForm &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "paymentForm");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ if (object.invoice_) {
+ jo("invoice", ToJson(*object.invoice_));
+ }
+ jo("seller_bot_user_id", object.seller_bot_user_id_);
+ jo("payment_provider_user_id", object.payment_provider_user_id_);
+ if (object.payment_provider_) {
+ jo("payment_provider", ToJson(*object.payment_provider_));
+ }
+ jo("additional_payment_options", ToJson(object.additional_payment_options_));
+ if (object.saved_order_info_) {
+ jo("saved_order_info", ToJson(*object.saved_order_info_));
+ }
+ jo("saved_credentials", ToJson(object.saved_credentials_));
+ jo("can_save_credentials", JsonBool{object.can_save_credentials_});
+ jo("need_password", JsonBool{object.need_password_});
+ jo("product_title", object.product_title_);
+ if (object.product_description_) {
+ jo("product_description", ToJson(*object.product_description_));
+ }
+ if (object.product_photo_) {
+ jo("product_photo", ToJson(*object.product_photo_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::paymentOption &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "paymentOption");
+ jo("title", object.title_);
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::PaymentProvider &object) {
+ td_api::downcast_call(const_cast<td_api::PaymentProvider &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::paymentProviderSmartGlocal &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "paymentProviderSmartGlocal");
+ jo("public_token", object.public_token_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::paymentProviderStripe &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "paymentProviderStripe");
+ jo("publishable_key", object.publishable_key_);
+ jo("need_country", JsonBool{object.need_country_});
+ jo("need_postal_code", JsonBool{object.need_postal_code_});
+ jo("need_cardholder_name", JsonBool{object.need_cardholder_name_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::paymentProviderOther &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "paymentProviderOther");
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::paymentReceipt &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "paymentReceipt");
+ jo("title", object.title_);
+ if (object.description_) {
+ jo("description", ToJson(*object.description_));
+ }
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("date", object.date_);
+ jo("seller_bot_user_id", object.seller_bot_user_id_);
+ jo("payment_provider_user_id", object.payment_provider_user_id_);
+ if (object.invoice_) {
+ jo("invoice", ToJson(*object.invoice_));
+ }
+ if (object.order_info_) {
+ jo("order_info", ToJson(*object.order_info_));
+ }
+ if (object.shipping_option_) {
+ jo("shipping_option", ToJson(*object.shipping_option_));
+ }
+ jo("credentials_title", object.credentials_title_);
+ jo("tip_amount", object.tip_amount_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::paymentResult &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "paymentResult");
+ jo("success", JsonBool{object.success_});
+ jo("verification_url", object.verification_url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::personalDetails &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "personalDetails");
+ jo("first_name", object.first_name_);
+ jo("middle_name", object.middle_name_);
+ jo("last_name", object.last_name_);
+ jo("native_first_name", object.native_first_name_);
+ jo("native_middle_name", object.native_middle_name_);
+ jo("native_last_name", object.native_last_name_);
+ if (object.birthdate_) {
+ jo("birthdate", ToJson(*object.birthdate_));
+ }
+ jo("gender", object.gender_);
+ jo("country_code", object.country_code_);
+ jo("residence_country_code", object.residence_country_code_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::personalDocument &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "personalDocument");
+ jo("files", ToJson(object.files_));
+ jo("translation", ToJson(object.translation_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::phoneNumberInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "phoneNumberInfo");
+ if (object.country_) {
+ jo("country", ToJson(*object.country_));
+ }
+ jo("country_calling_code", object.country_calling_code_);
+ jo("formatted_phone_number", object.formatted_phone_number_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::photo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "photo");
+ jo("has_stickers", JsonBool{object.has_stickers_});
+ if (object.minithumbnail_) {
+ jo("minithumbnail", ToJson(*object.minithumbnail_));
+ }
+ jo("sizes", ToJson(object.sizes_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::photoSize &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "photoSize");
+ jo("type", object.type_);
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("width", object.width_);
+ jo("height", object.height_);
+ jo("progressive_sizes", ToJson(object.progressive_sizes_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::point &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "point");
+ jo("x", object.x_);
+ jo("y", object.y_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::poll &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "poll");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("question", object.question_);
+ jo("options", ToJson(object.options_));
+ jo("total_voter_count", object.total_voter_count_);
+ jo("recent_voter_user_ids", ToJson(object.recent_voter_user_ids_));
+ jo("is_anonymous", JsonBool{object.is_anonymous_});
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("open_period", object.open_period_);
+ jo("close_date", object.close_date_);
+ jo("is_closed", JsonBool{object.is_closed_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pollOption &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pollOption");
+ jo("text", object.text_);
+ jo("voter_count", object.voter_count_);
+ jo("vote_percentage", object.vote_percentage_);
+ jo("is_chosen", JsonBool{object.is_chosen_});
+ jo("is_being_chosen", JsonBool{object.is_being_chosen_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::PollType &object) {
+ td_api::downcast_call(const_cast<td_api::PollType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::pollTypeRegular &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pollTypeRegular");
+ jo("allow_multiple_answers", JsonBool{object.allow_multiple_answers_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pollTypeQuiz &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pollTypeQuiz");
+ jo("correct_option_id", object.correct_option_id_);
+ if (object.explanation_) {
+ jo("explanation", ToJson(*object.explanation_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::PremiumFeature &object) {
+ td_api::downcast_call(const_cast<td_api::PremiumFeature &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureIncreasedLimits &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureIncreasedLimits");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureIncreasedUploadFileSize &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureIncreasedUploadFileSize");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureImprovedDownloadSpeed &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureImprovedDownloadSpeed");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureVoiceRecognition &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureVoiceRecognition");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureDisabledAds &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureDisabledAds");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureUniqueReactions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureUniqueReactions");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureUniqueStickers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureUniqueStickers");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureCustomEmoji &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureCustomEmoji");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureAdvancedChatManagement &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureAdvancedChatManagement");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureProfileBadge &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureProfileBadge");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureEmojiStatus &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureEmojiStatus");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureAnimatedProfilePhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureAnimatedProfilePhoto");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureForumTopicIcon &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureForumTopicIcon");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureAppIcons &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatureAppIcons");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeaturePromotionAnimation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeaturePromotionAnimation");
+ if (object.feature_) {
+ jo("feature", ToJson(*object.feature_));
+ }
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatures &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumFeatures");
+ jo("features", ToJson(object.features_));
+ jo("limits", ToJson(object.limits_));
+ if (object.payment_link_) {
+ jo("payment_link", ToJson(*object.payment_link_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimit &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimit");
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("default_value", object.default_value_);
+ jo("premium_value", object.premium_value_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::PremiumLimitType &object) {
+ td_api::downcast_call(const_cast<td_api::PremiumLimitType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeSupergroupCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimitTypeSupergroupCount");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypePinnedChatCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimitTypePinnedChatCount");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeCreatedPublicChatCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimitTypeCreatedPublicChatCount");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeSavedAnimationCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimitTypeSavedAnimationCount");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeFavoriteStickerCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimitTypeFavoriteStickerCount");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeChatFilterCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimitTypeChatFilterCount");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeChatFilterChosenChatCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimitTypeChatFilterChosenChatCount");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypePinnedArchivedChatCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimitTypePinnedArchivedChatCount");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeCaptionLength &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimitTypeCaptionLength");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeBioLength &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumLimitTypeBioLength");
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumPaymentOption &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumPaymentOption");
+ jo("currency", object.currency_);
+ jo("amount", object.amount_);
+ jo("discount_percentage", object.discount_percentage_);
+ jo("month_count", object.month_count_);
+ jo("store_product_id", object.store_product_id_);
+ if (object.payment_link_) {
+ jo("payment_link", ToJson(*object.payment_link_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::premiumState &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "premiumState");
+ if (object.state_) {
+ jo("state", ToJson(*object.state_));
+ }
+ jo("payment_options", ToJson(object.payment_options_));
+ jo("animations", ToJson(object.animations_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::profilePhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "profilePhoto");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ if (object.small_) {
+ jo("small", ToJson(*object.small_));
+ }
+ if (object.big_) {
+ jo("big", ToJson(*object.big_));
+ }
+ if (object.minithumbnail_) {
+ jo("minithumbnail", ToJson(*object.minithumbnail_));
+ }
+ jo("has_animation", JsonBool{object.has_animation_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::proxies &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "proxies");
+ jo("proxies", ToJson(object.proxies_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::proxy &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "proxy");
+ jo("id", object.id_);
+ jo("server", object.server_);
+ jo("port", object.port_);
+ jo("last_used_date", object.last_used_date_);
+ jo("is_enabled", JsonBool{object.is_enabled_});
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::ProxyType &object) {
+ td_api::downcast_call(const_cast<td_api::ProxyType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::proxyTypeSocks5 &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "proxyTypeSocks5");
+ jo("username", object.username_);
+ jo("password", object.password_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::proxyTypeHttp &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "proxyTypeHttp");
+ jo("username", object.username_);
+ jo("password", object.password_);
+ jo("http_only", JsonBool{object.http_only_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::proxyTypeMtproto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "proxyTypeMtproto");
+ jo("secret", object.secret_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::PushMessageContent &object) {
+ td_api::downcast_call(const_cast<td_api::PushMessageContent &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentHidden &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentHidden");
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentAnimation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentAnimation");
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+ jo("caption", object.caption_);
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentAudio &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentAudio");
+ if (object.audio_) {
+ jo("audio", ToJson(*object.audio_));
+ }
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentContact &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentContact");
+ jo("name", object.name_);
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentContactRegistered &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentContactRegistered");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentDocument &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentDocument");
+ if (object.document_) {
+ jo("document", ToJson(*object.document_));
+ }
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentGame &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentGame");
+ jo("title", object.title_);
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentGameScore &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentGameScore");
+ jo("title", object.title_);
+ jo("score", object.score_);
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentInvoice &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentInvoice");
+ jo("price", object.price_);
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentLocation &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentLocation");
+ jo("is_live", JsonBool{object.is_live_});
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentPhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentPhoto");
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("caption", object.caption_);
+ jo("is_secret", JsonBool{object.is_secret_});
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentPoll &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentPoll");
+ jo("question", object.question_);
+ jo("is_regular", JsonBool{object.is_regular_});
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentScreenshotTaken &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentScreenshotTaken");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentSticker &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentSticker");
+ if (object.sticker_) {
+ jo("sticker", ToJson(*object.sticker_));
+ }
+ jo("emoji", object.emoji_);
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentText &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentText");
+ jo("text", object.text_);
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentVideo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentVideo");
+ if (object.video_) {
+ jo("video", ToJson(*object.video_));
+ }
+ jo("caption", object.caption_);
+ jo("is_secret", JsonBool{object.is_secret_});
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentVideoNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentVideoNote");
+ if (object.video_note_) {
+ jo("video_note", ToJson(*object.video_note_));
+ }
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentVoiceNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentVoiceNote");
+ if (object.voice_note_) {
+ jo("voice_note", ToJson(*object.voice_note_));
+ }
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentBasicGroupChatCreate &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentBasicGroupChatCreate");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatAddMembers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentChatAddMembers");
+ jo("member_name", object.member_name_);
+ jo("is_current_user", JsonBool{object.is_current_user_});
+ jo("is_returned", JsonBool{object.is_returned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatChangePhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentChatChangePhoto");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatChangeTitle &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentChatChangeTitle");
+ jo("title", object.title_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatSetTheme &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentChatSetTheme");
+ jo("theme_name", object.theme_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatDeleteMember &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentChatDeleteMember");
+ jo("member_name", object.member_name_);
+ jo("is_current_user", JsonBool{object.is_current_user_});
+ jo("is_left", JsonBool{object.is_left_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatJoinByLink &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentChatJoinByLink");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatJoinByRequest &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentChatJoinByRequest");
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentRecurringPayment &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentRecurringPayment");
+ jo("amount", object.amount_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentMessageForwards &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentMessageForwards");
+ jo("total_count", object.total_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentMediaAlbum &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushMessageContentMediaAlbum");
+ jo("total_count", object.total_count_);
+ jo("has_photos", JsonBool{object.has_photos_});
+ jo("has_videos", JsonBool{object.has_videos_});
+ jo("has_audios", JsonBool{object.has_audios_});
+ jo("has_documents", JsonBool{object.has_documents_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::pushReceiverId &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "pushReceiverId");
+ jo("id", ToJson(JsonInt64{object.id_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::ReactionType &object) {
+ td_api::downcast_call(const_cast<td_api::ReactionType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::reactionTypeEmoji &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "reactionTypeEmoji");
+ jo("emoji", object.emoji_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::reactionTypeCustomEmoji &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "reactionTypeCustomEmoji");
+ jo("custom_emoji_id", ToJson(JsonInt64{object.custom_emoji_id_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::recommendedChatFilter &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "recommendedChatFilter");
+ if (object.filter_) {
+ jo("filter", ToJson(*object.filter_));
+ }
+ jo("description", object.description_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::recommendedChatFilters &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "recommendedChatFilters");
+ jo("chat_filters", ToJson(object.chat_filters_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::recoveryEmailAddress &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "recoveryEmailAddress");
+ jo("recovery_email_address", object.recovery_email_address_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::remoteFile &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "remoteFile");
+ jo("id", object.id_);
+ jo("unique_id", object.unique_id_);
+ jo("is_uploading_active", JsonBool{object.is_uploading_active_});
+ jo("is_uploading_completed", JsonBool{object.is_uploading_completed_});
+ jo("uploaded_size", object.uploaded_size_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::ReplyMarkup &object) {
+ td_api::downcast_call(const_cast<td_api::ReplyMarkup &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::replyMarkupRemoveKeyboard &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "replyMarkupRemoveKeyboard");
+ jo("is_personal", JsonBool{object.is_personal_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::replyMarkupForceReply &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "replyMarkupForceReply");
+ jo("is_personal", JsonBool{object.is_personal_});
+ jo("input_field_placeholder", object.input_field_placeholder_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::replyMarkupShowKeyboard &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "replyMarkupShowKeyboard");
+ jo("rows", ToJson(object.rows_));
+ jo("resize_keyboard", JsonBool{object.resize_keyboard_});
+ jo("one_time", JsonBool{object.one_time_});
+ jo("is_personal", JsonBool{object.is_personal_});
+ jo("input_field_placeholder", object.input_field_placeholder_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::replyMarkupInlineKeyboard &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "replyMarkupInlineKeyboard");
+ jo("rows", ToJson(object.rows_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::ResetPasswordResult &object) {
+ td_api::downcast_call(const_cast<td_api::ResetPasswordResult &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::resetPasswordResultOk &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "resetPasswordResultOk");
+}
+
+void to_json(JsonValueScope &jv, const td_api::resetPasswordResultPending &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "resetPasswordResultPending");
+ jo("pending_reset_date", object.pending_reset_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::resetPasswordResultDeclined &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "resetPasswordResultDeclined");
+ jo("retry_date", object.retry_date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::RichText &object) {
+ td_api::downcast_call(const_cast<td_api::RichText &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextPlain &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextPlain");
+ jo("text", object.text_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextBold &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextBold");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextItalic &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextItalic");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextUnderline &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextUnderline");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextStrikethrough &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextStrikethrough");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextFixed &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextFixed");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextUrl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextUrl");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("url", object.url_);
+ jo("is_cached", JsonBool{object.is_cached_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextEmailAddress &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextEmailAddress");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("email_address", object.email_address_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextSubscript &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextSubscript");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextSuperscript &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextSuperscript");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextMarked &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextMarked");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextPhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextPhoneNumber");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("phone_number", object.phone_number_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextIcon &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextIcon");
+ if (object.document_) {
+ jo("document", ToJson(*object.document_));
+ }
+ jo("width", object.width_);
+ jo("height", object.height_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextReference &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextReference");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("anchor_name", object.anchor_name_);
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextAnchor &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextAnchor");
+ jo("name", object.name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTextAnchorLink &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTextAnchorLink");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("anchor_name", object.anchor_name_);
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::richTexts &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "richTexts");
+ jo("texts", ToJson(object.texts_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::rtmpUrl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "rtmpUrl");
+ jo("url", object.url_);
+ jo("stream_key", object.stream_key_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::savedCredentials &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "savedCredentials");
+ jo("id", object.id_);
+ jo("title", object.title_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::scopeNotificationSettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "scopeNotificationSettings");
+ jo("mute_for", object.mute_for_);
+ jo("sound_id", ToJson(JsonInt64{object.sound_id_}));
+ jo("show_preview", JsonBool{object.show_preview_});
+ jo("disable_pinned_message_notifications", JsonBool{object.disable_pinned_message_notifications_});
+ jo("disable_mention_notifications", JsonBool{object.disable_mention_notifications_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::seconds &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "seconds");
+ jo("seconds", object.seconds_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::secretChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "secretChat");
+ jo("id", object.id_);
+ jo("user_id", object.user_id_);
+ if (object.state_) {
+ jo("state", ToJson(*object.state_));
+ }
+ jo("is_outbound", JsonBool{object.is_outbound_});
+ jo("key_hash", base64_encode(object.key_hash_));
+ jo("layer", object.layer_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::SecretChatState &object) {
+ td_api::downcast_call(const_cast<td_api::SecretChatState &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::secretChatStatePending &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "secretChatStatePending");
+}
+
+void to_json(JsonValueScope &jv, const td_api::secretChatStateReady &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "secretChatStateReady");
+}
+
+void to_json(JsonValueScope &jv, const td_api::secretChatStateClosed &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "secretChatStateClosed");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sentWebAppMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sentWebAppMessage");
+ jo("inline_message_id", object.inline_message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::session &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "session");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("is_current", JsonBool{object.is_current_});
+ jo("is_password_pending", JsonBool{object.is_password_pending_});
+ jo("can_accept_secret_chats", JsonBool{object.can_accept_secret_chats_});
+ jo("can_accept_calls", JsonBool{object.can_accept_calls_});
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("api_id", object.api_id_);
+ jo("application_name", object.application_name_);
+ jo("application_version", object.application_version_);
+ jo("is_official_application", JsonBool{object.is_official_application_});
+ jo("device_model", object.device_model_);
+ jo("platform", object.platform_);
+ jo("system_version", object.system_version_);
+ jo("log_in_date", object.log_in_date_);
+ jo("last_active_date", object.last_active_date_);
+ jo("ip", object.ip_);
+ jo("country", object.country_);
+ jo("region", object.region_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::SessionType &object) {
+ td_api::downcast_call(const_cast<td_api::SessionType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeAndroid &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeAndroid");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeApple &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeApple");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeBrave &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeBrave");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeChrome &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeChrome");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeEdge &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeEdge");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeFirefox &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeFirefox");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeIpad &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeIpad");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeIphone &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeIphone");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeLinux &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeLinux");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeMac &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeMac");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeOpera &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeOpera");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeSafari &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeSafari");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeUbuntu &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeUbuntu");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeUnknown &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeUnknown");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeVivaldi &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeVivaldi");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeWindows &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeWindows");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeXbox &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessionTypeXbox");
+}
+
+void to_json(JsonValueScope &jv, const td_api::sessions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sessions");
+ jo("sessions", ToJson(object.sessions_));
+ jo("inactive_session_ttl_days", object.inactive_session_ttl_days_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::shippingOption &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "shippingOption");
+ jo("id", object.id_);
+ jo("title", object.title_);
+ jo("price_parts", ToJson(object.price_parts_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::SpeechRecognitionResult &object) {
+ td_api::downcast_call(const_cast<td_api::SpeechRecognitionResult &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultPending &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "speechRecognitionResultPending");
+ jo("partial_text", object.partial_text_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultText &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "speechRecognitionResultText");
+ jo("text", object.text_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultError &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "speechRecognitionResultError");
+ if (object.error_) {
+ jo("error", ToJson(*object.error_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::sponsoredMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sponsoredMessage");
+ jo("message_id", object.message_id_);
+ jo("is_recommended", JsonBool{object.is_recommended_});
+ jo("sponsor_chat_id", object.sponsor_chat_id_);
+ if (object.sponsor_chat_info_) {
+ jo("sponsor_chat_info", ToJson(*object.sponsor_chat_info_));
+ }
+ jo("show_chat_photo", JsonBool{object.show_chat_photo_});
+ if (object.link_) {
+ jo("link", ToJson(*object.link_));
+ }
+ if (object.content_) {
+ jo("content", ToJson(*object.content_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::sponsoredMessages &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sponsoredMessages");
+ jo("messages", ToJson(object.messages_));
+ jo("messages_between", object.messages_between_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::StatisticalGraph &object) {
+ td_api::downcast_call(const_cast<td_api::StatisticalGraph &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::statisticalGraphData &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "statisticalGraphData");
+ jo("json_data", object.json_data_);
+ jo("zoom_token", object.zoom_token_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::statisticalGraphAsync &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "statisticalGraphAsync");
+ jo("token", object.token_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::statisticalGraphError &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "statisticalGraphError");
+ jo("error_message", object.error_message_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::statisticalValue &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "statisticalValue");
+ jo("value", object.value_);
+ jo("previous_value", object.previous_value_);
+ jo("growth_rate_percentage", object.growth_rate_percentage_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::sticker &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "sticker");
+ jo("set_id", ToJson(JsonInt64{object.set_id_}));
+ jo("width", object.width_);
+ jo("height", object.height_);
+ jo("emoji", object.emoji_);
+ if (object.format_) {
+ jo("format", ToJson(*object.format_));
+ }
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ if (object.mask_position_) {
+ jo("mask_position", ToJson(*object.mask_position_));
+ }
+ jo("custom_emoji_id", ToJson(JsonInt64{object.custom_emoji_id_}));
+ jo("outline", ToJson(object.outline_));
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ jo("is_premium", JsonBool{object.is_premium_});
+ if (object.premium_animation_) {
+ jo("premium_animation", ToJson(*object.premium_animation_));
+ }
+ if (object.sticker_) {
+ jo("sticker", ToJson(*object.sticker_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::StickerFormat &object) {
+ td_api::downcast_call(const_cast<td_api::StickerFormat &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::stickerFormatWebp &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "stickerFormatWebp");
+}
+
+void to_json(JsonValueScope &jv, const td_api::stickerFormatTgs &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "stickerFormatTgs");
+}
+
+void to_json(JsonValueScope &jv, const td_api::stickerFormatWebm &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "stickerFormatWebm");
+}
+
+void to_json(JsonValueScope &jv, const td_api::stickerSet &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "stickerSet");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("title", object.title_);
+ jo("name", object.name_);
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ jo("thumbnail_outline", ToJson(object.thumbnail_outline_));
+ jo("is_installed", JsonBool{object.is_installed_});
+ jo("is_archived", JsonBool{object.is_archived_});
+ jo("is_official", JsonBool{object.is_official_});
+ if (object.sticker_format_) {
+ jo("sticker_format", ToJson(*object.sticker_format_));
+ }
+ if (object.sticker_type_) {
+ jo("sticker_type", ToJson(*object.sticker_type_));
+ }
+ jo("is_viewed", JsonBool{object.is_viewed_});
+ jo("stickers", ToJson(object.stickers_));
+ jo("emojis", ToJson(object.emojis_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::stickerSetInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "stickerSetInfo");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("title", object.title_);
+ jo("name", object.name_);
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ jo("thumbnail_outline", ToJson(object.thumbnail_outline_));
+ jo("is_installed", JsonBool{object.is_installed_});
+ jo("is_archived", JsonBool{object.is_archived_});
+ jo("is_official", JsonBool{object.is_official_});
+ if (object.sticker_format_) {
+ jo("sticker_format", ToJson(*object.sticker_format_));
+ }
+ if (object.sticker_type_) {
+ jo("sticker_type", ToJson(*object.sticker_type_));
+ }
+ jo("is_viewed", JsonBool{object.is_viewed_});
+ jo("size", object.size_);
+ jo("covers", ToJson(object.covers_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::stickerSets &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "stickerSets");
+ jo("total_count", object.total_count_);
+ jo("sets", ToJson(object.sets_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::StickerType &object) {
+ td_api::downcast_call(const_cast<td_api::StickerType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::stickerTypeRegular &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "stickerTypeRegular");
+}
+
+void to_json(JsonValueScope &jv, const td_api::stickerTypeMask &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "stickerTypeMask");
+}
+
+void to_json(JsonValueScope &jv, const td_api::stickerTypeCustomEmoji &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "stickerTypeCustomEmoji");
+}
+
+void to_json(JsonValueScope &jv, const td_api::stickers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "stickers");
+ jo("stickers", ToJson(object.stickers_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::storageStatistics &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "storageStatistics");
+ jo("size", object.size_);
+ jo("count", object.count_);
+ jo("by_chat", ToJson(object.by_chat_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::storageStatisticsByChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "storageStatisticsByChat");
+ jo("chat_id", object.chat_id_);
+ jo("size", object.size_);
+ jo("count", object.count_);
+ jo("by_file_type", ToJson(object.by_file_type_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::storageStatisticsByFileType &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "storageStatisticsByFileType");
+ if (object.file_type_) {
+ jo("file_type", ToJson(*object.file_type_));
+ }
+ jo("size", object.size_);
+ jo("count", object.count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::storageStatisticsFast &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "storageStatisticsFast");
+ jo("files_size", object.files_size_);
+ jo("file_count", object.file_count_);
+ jo("database_size", object.database_size_);
+ jo("language_pack_database_size", object.language_pack_database_size_);
+ jo("log_size", object.log_size_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::SuggestedAction &object) {
+ td_api::downcast_call(const_cast<td_api::SuggestedAction &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionEnableArchiveAndMuteNewChats &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "suggestedActionEnableArchiveAndMuteNewChats");
+}
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionCheckPassword &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "suggestedActionCheckPassword");
+}
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionCheckPhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "suggestedActionCheckPhoneNumber");
+}
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionViewChecksHint &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "suggestedActionViewChecksHint");
+}
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionConvertToBroadcastGroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "suggestedActionConvertToBroadcastGroup");
+ jo("supergroup_id", object.supergroup_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionSetPassword &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "suggestedActionSetPassword");
+ jo("authorization_delay", object.authorization_delay_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::supergroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "supergroup");
+ jo("id", object.id_);
+ if (object.usernames_) {
+ jo("usernames", ToJson(*object.usernames_));
+ }
+ jo("date", object.date_);
+ if (object.status_) {
+ jo("status", ToJson(*object.status_));
+ }
+ jo("member_count", object.member_count_);
+ jo("has_linked_chat", JsonBool{object.has_linked_chat_});
+ jo("has_location", JsonBool{object.has_location_});
+ jo("sign_messages", JsonBool{object.sign_messages_});
+ jo("join_to_send_messages", JsonBool{object.join_to_send_messages_});
+ jo("join_by_request", JsonBool{object.join_by_request_});
+ jo("is_slow_mode_enabled", JsonBool{object.is_slow_mode_enabled_});
+ jo("is_channel", JsonBool{object.is_channel_});
+ jo("is_broadcast_group", JsonBool{object.is_broadcast_group_});
+ jo("is_forum", JsonBool{object.is_forum_});
+ jo("is_verified", JsonBool{object.is_verified_});
+ jo("restriction_reason", object.restriction_reason_);
+ jo("is_scam", JsonBool{object.is_scam_});
+ jo("is_fake", JsonBool{object.is_fake_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::supergroupFullInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "supergroupFullInfo");
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("description", object.description_);
+ jo("member_count", object.member_count_);
+ jo("administrator_count", object.administrator_count_);
+ jo("restricted_count", object.restricted_count_);
+ jo("banned_count", object.banned_count_);
+ jo("linked_chat_id", object.linked_chat_id_);
+ jo("slow_mode_delay", object.slow_mode_delay_);
+ jo("slow_mode_delay_expires_in", object.slow_mode_delay_expires_in_);
+ jo("can_get_members", JsonBool{object.can_get_members_});
+ jo("can_set_username", JsonBool{object.can_set_username_});
+ jo("can_set_sticker_set", JsonBool{object.can_set_sticker_set_});
+ jo("can_set_location", JsonBool{object.can_set_location_});
+ jo("can_get_statistics", JsonBool{object.can_get_statistics_});
+ jo("is_all_history_available", JsonBool{object.is_all_history_available_});
+ jo("sticker_set_id", ToJson(JsonInt64{object.sticker_set_id_}));
+ if (object.location_) {
+ jo("location", ToJson(*object.location_));
+ }
+ if (object.invite_link_) {
+ jo("invite_link", ToJson(*object.invite_link_));
+ }
+ jo("bot_commands", ToJson(object.bot_commands_));
+ jo("upgraded_from_basic_group_id", object.upgraded_from_basic_group_id_);
+ jo("upgraded_from_max_message_id", object.upgraded_from_max_message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "tMeUrl");
+ jo("url", object.url_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::TMeUrlType &object) {
+ td_api::downcast_call(const_cast<td_api::TMeUrlType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeUser &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "tMeUrlTypeUser");
+ jo("user_id", object.user_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeSupergroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "tMeUrlTypeSupergroup");
+ jo("supergroup_id", object.supergroup_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeChatInvite &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "tMeUrlTypeChatInvite");
+ if (object.info_) {
+ jo("info", ToJson(*object.info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeStickerSet &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "tMeUrlTypeStickerSet");
+ jo("sticker_set_id", ToJson(JsonInt64{object.sticker_set_id_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrls &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "tMeUrls");
+ jo("urls", ToJson(object.urls_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::TargetChat &object) {
+ td_api::downcast_call(const_cast<td_api::TargetChat &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::targetChatCurrent &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "targetChatCurrent");
+}
+
+void to_json(JsonValueScope &jv, const td_api::targetChatChosen &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "targetChatChosen");
+ jo("allow_user_chats", JsonBool{object.allow_user_chats_});
+ jo("allow_bot_chats", JsonBool{object.allow_bot_chats_});
+ jo("allow_group_chats", JsonBool{object.allow_group_chats_});
+ jo("allow_channel_chats", JsonBool{object.allow_channel_chats_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::targetChatInternalLink &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "targetChatInternalLink");
+ if (object.link_) {
+ jo("link", ToJson(*object.link_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::temporaryPasswordState &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "temporaryPasswordState");
+ jo("has_password", JsonBool{object.has_password_});
+ jo("valid_for", object.valid_for_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::termsOfService &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "termsOfService");
+ if (object.text_) {
+ jo("text", ToJson(*object.text_));
+ }
+ jo("min_user_age", object.min_user_age_);
+ jo("show_popup", JsonBool{object.show_popup_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::testBytes &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "testBytes");
+ jo("value", base64_encode(object.value_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::testInt &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "testInt");
+ jo("value", object.value_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::testString &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "testString");
+ jo("value", object.value_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::testVectorInt &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "testVectorInt");
+ jo("value", ToJson(object.value_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::testVectorIntObject &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "testVectorIntObject");
+ jo("value", ToJson(object.value_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::testVectorString &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "testVectorString");
+ jo("value", ToJson(object.value_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::testVectorStringObject &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "testVectorStringObject");
+ jo("value", ToJson(object.value_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::text &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "text");
+ jo("text", object.text_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntities &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntities");
+ jo("entities", ToJson(object.entities_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntity &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntity");
+ jo("offset", object.offset_);
+ jo("length", object.length_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::TextEntityType &object) {
+ td_api::downcast_call(const_cast<td_api::TextEntityType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeMention &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeMention");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeHashtag &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeHashtag");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeCashtag &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeCashtag");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeBotCommand &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeBotCommand");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeUrl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeUrl");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeEmailAddress &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeEmailAddress");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypePhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypePhoneNumber");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeBankCardNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeBankCardNumber");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeBold &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeBold");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeItalic &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeItalic");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeUnderline &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeUnderline");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeStrikethrough &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeStrikethrough");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeSpoiler &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeSpoiler");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeCode &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeCode");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypePre &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypePre");
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypePreCode &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypePreCode");
+ jo("language", object.language_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeTextUrl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeTextUrl");
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeMentionName &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeMentionName");
+ jo("user_id", object.user_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeCustomEmoji &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeCustomEmoji");
+ jo("custom_emoji_id", ToJson(JsonInt64{object.custom_emoji_id_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeMediaTimestamp &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "textEntityTypeMediaTimestamp");
+ jo("media_timestamp", object.media_timestamp_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::themeSettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "themeSettings");
+ jo("accent_color", object.accent_color_);
+ if (object.background_) {
+ jo("background", ToJson(*object.background_));
+ }
+ if (object.outgoing_message_fill_) {
+ jo("outgoing_message_fill", ToJson(*object.outgoing_message_fill_));
+ }
+ jo("animate_outgoing_message_fill", JsonBool{object.animate_outgoing_message_fill_});
+ jo("outgoing_message_accent_color", object.outgoing_message_accent_color_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::thumbnail &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "thumbnail");
+ if (object.format_) {
+ jo("format", ToJson(*object.format_));
+ }
+ jo("width", object.width_);
+ jo("height", object.height_);
+ if (object.file_) {
+ jo("file", ToJson(*object.file_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::ThumbnailFormat &object) {
+ td_api::downcast_call(const_cast<td_api::ThumbnailFormat &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatJpeg &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "thumbnailFormatJpeg");
+}
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatGif &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "thumbnailFormatGif");
+}
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatMpeg4 &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "thumbnailFormatMpeg4");
+}
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatPng &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "thumbnailFormatPng");
+}
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatTgs &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "thumbnailFormatTgs");
+}
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatWebm &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "thumbnailFormatWebm");
+}
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatWebp &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "thumbnailFormatWebp");
+}
+
+void to_json(JsonValueScope &jv, const td_api::trendingStickerSets &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "trendingStickerSets");
+ jo("total_count", object.total_count_);
+ jo("sets", ToJson(object.sets_));
+ jo("is_premium", JsonBool{object.is_premium_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::unreadReaction &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "unreadReaction");
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ if (object.sender_id_) {
+ jo("sender_id", ToJson(*object.sender_id_));
+ }
+ jo("is_big", JsonBool{object.is_big_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::Update &object) {
+ td_api::downcast_call(const_cast<td_api::Update &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateAuthorizationState &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateAuthorizationState");
+ if (object.authorization_state_) {
+ jo("authorization_state", ToJson(*object.authorization_state_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewMessage");
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageSendAcknowledged &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageSendAcknowledged");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageSendSucceeded &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageSendSucceeded");
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+ jo("old_message_id", object.old_message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageSendFailed &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageSendFailed");
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+ jo("old_message_id", object.old_message_id_);
+ jo("error_code", object.error_code_);
+ jo("error_message", object.error_message_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageContent &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageContent");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+ if (object.new_content_) {
+ jo("new_content", ToJson(*object.new_content_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageEdited &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageEdited");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+ jo("edit_date", object.edit_date_);
+ if (object.reply_markup_) {
+ jo("reply_markup", ToJson(*object.reply_markup_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageIsPinned &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageIsPinned");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+ jo("is_pinned", JsonBool{object.is_pinned_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageInteractionInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageInteractionInfo");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+ if (object.interaction_info_) {
+ jo("interaction_info", ToJson(*object.interaction_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageContentOpened &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageContentOpened");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageMentionRead &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageMentionRead");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+ jo("unread_mention_count", object.unread_mention_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageUnreadReactions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageUnreadReactions");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+ jo("unread_reactions", ToJson(object.unread_reactions_));
+ jo("unread_reaction_count", object.unread_reaction_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageLiveLocationViewed &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateMessageLiveLocationViewed");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewChat");
+ if (object.chat_) {
+ jo("chat", ToJson(*object.chat_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatTitle &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatTitle");
+ jo("chat_id", object.chat_id_);
+ jo("title", object.title_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatPhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatPhoto");
+ jo("chat_id", object.chat_id_);
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatPermissions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatPermissions");
+ jo("chat_id", object.chat_id_);
+ if (object.permissions_) {
+ jo("permissions", ToJson(*object.permissions_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatLastMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatLastMessage");
+ jo("chat_id", object.chat_id_);
+ if (object.last_message_) {
+ jo("last_message", ToJson(*object.last_message_));
+ }
+ jo("positions", ToJson(object.positions_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatPosition &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatPosition");
+ jo("chat_id", object.chat_id_);
+ if (object.position_) {
+ jo("position", ToJson(*object.position_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatReadInbox &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatReadInbox");
+ jo("chat_id", object.chat_id_);
+ jo("last_read_inbox_message_id", object.last_read_inbox_message_id_);
+ jo("unread_count", object.unread_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatReadOutbox &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatReadOutbox");
+ jo("chat_id", object.chat_id_);
+ jo("last_read_outbox_message_id", object.last_read_outbox_message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatActionBar &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatActionBar");
+ jo("chat_id", object.chat_id_);
+ if (object.action_bar_) {
+ jo("action_bar", ToJson(*object.action_bar_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatAvailableReactions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatAvailableReactions");
+ jo("chat_id", object.chat_id_);
+ if (object.available_reactions_) {
+ jo("available_reactions", ToJson(*object.available_reactions_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatDraftMessage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatDraftMessage");
+ jo("chat_id", object.chat_id_);
+ if (object.draft_message_) {
+ jo("draft_message", ToJson(*object.draft_message_));
+ }
+ jo("positions", ToJson(object.positions_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatMessageSender &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatMessageSender");
+ jo("chat_id", object.chat_id_);
+ if (object.message_sender_id_) {
+ jo("message_sender_id", ToJson(*object.message_sender_id_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatMessageTtl &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatMessageTtl");
+ jo("chat_id", object.chat_id_);
+ jo("message_ttl", object.message_ttl_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatNotificationSettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatNotificationSettings");
+ jo("chat_id", object.chat_id_);
+ if (object.notification_settings_) {
+ jo("notification_settings", ToJson(*object.notification_settings_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatPendingJoinRequests &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatPendingJoinRequests");
+ jo("chat_id", object.chat_id_);
+ if (object.pending_join_requests_) {
+ jo("pending_join_requests", ToJson(*object.pending_join_requests_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatReplyMarkup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatReplyMarkup");
+ jo("chat_id", object.chat_id_);
+ jo("reply_markup_message_id", object.reply_markup_message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatTheme &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatTheme");
+ jo("chat_id", object.chat_id_);
+ jo("theme_name", object.theme_name_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatUnreadMentionCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatUnreadMentionCount");
+ jo("chat_id", object.chat_id_);
+ jo("unread_mention_count", object.unread_mention_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatUnreadReactionCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatUnreadReactionCount");
+ jo("chat_id", object.chat_id_);
+ jo("unread_reaction_count", object.unread_reaction_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatVideoChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatVideoChat");
+ jo("chat_id", object.chat_id_);
+ if (object.video_chat_) {
+ jo("video_chat", ToJson(*object.video_chat_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatDefaultDisableNotification &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatDefaultDisableNotification");
+ jo("chat_id", object.chat_id_);
+ jo("default_disable_notification", JsonBool{object.default_disable_notification_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatHasProtectedContent &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatHasProtectedContent");
+ jo("chat_id", object.chat_id_);
+ jo("has_protected_content", JsonBool{object.has_protected_content_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatHasScheduledMessages &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatHasScheduledMessages");
+ jo("chat_id", object.chat_id_);
+ jo("has_scheduled_messages", JsonBool{object.has_scheduled_messages_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatIsBlocked &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatIsBlocked");
+ jo("chat_id", object.chat_id_);
+ jo("is_blocked", JsonBool{object.is_blocked_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatIsMarkedAsUnread &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatIsMarkedAsUnread");
+ jo("chat_id", object.chat_id_);
+ jo("is_marked_as_unread", JsonBool{object.is_marked_as_unread_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatFilters &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatFilters");
+ jo("chat_filters", ToJson(object.chat_filters_));
+ jo("main_chat_list_position", object.main_chat_list_position_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatOnlineMemberCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatOnlineMemberCount");
+ jo("chat_id", object.chat_id_);
+ jo("online_member_count", object.online_member_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateForumTopicInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateForumTopicInfo");
+ jo("chat_id", object.chat_id_);
+ if (object.info_) {
+ jo("info", ToJson(*object.info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateScopeNotificationSettings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateScopeNotificationSettings");
+ if (object.scope_) {
+ jo("scope", ToJson(*object.scope_));
+ }
+ if (object.notification_settings_) {
+ jo("notification_settings", ToJson(*object.notification_settings_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNotification &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNotification");
+ jo("notification_group_id", object.notification_group_id_);
+ if (object.notification_) {
+ jo("notification", ToJson(*object.notification_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNotificationGroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNotificationGroup");
+ jo("notification_group_id", object.notification_group_id_);
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("chat_id", object.chat_id_);
+ jo("notification_settings_chat_id", object.notification_settings_chat_id_);
+ jo("notification_sound_id", ToJson(JsonInt64{object.notification_sound_id_}));
+ jo("total_count", object.total_count_);
+ jo("added_notifications", ToJson(object.added_notifications_));
+ jo("removed_notification_ids", ToJson(object.removed_notification_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateActiveNotifications &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateActiveNotifications");
+ jo("groups", ToJson(object.groups_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateHavePendingNotifications &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateHavePendingNotifications");
+ jo("have_delayed_notifications", JsonBool{object.have_delayed_notifications_});
+ jo("have_unreceived_notifications", JsonBool{object.have_unreceived_notifications_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateDeleteMessages &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateDeleteMessages");
+ jo("chat_id", object.chat_id_);
+ jo("message_ids", ToJson(object.message_ids_));
+ jo("is_permanent", JsonBool{object.is_permanent_});
+ jo("from_cache", JsonBool{object.from_cache_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatAction &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatAction");
+ jo("chat_id", object.chat_id_);
+ jo("message_thread_id", object.message_thread_id_);
+ if (object.sender_id_) {
+ jo("sender_id", ToJson(*object.sender_id_));
+ }
+ if (object.action_) {
+ jo("action", ToJson(*object.action_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateUserStatus &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateUserStatus");
+ jo("user_id", object.user_id_);
+ if (object.status_) {
+ jo("status", ToJson(*object.status_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateUser &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateUser");
+ if (object.user_) {
+ jo("user", ToJson(*object.user_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateBasicGroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateBasicGroup");
+ if (object.basic_group_) {
+ jo("basic_group", ToJson(*object.basic_group_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateSupergroup &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateSupergroup");
+ if (object.supergroup_) {
+ jo("supergroup", ToJson(*object.supergroup_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateSecretChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateSecretChat");
+ if (object.secret_chat_) {
+ jo("secret_chat", ToJson(*object.secret_chat_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateUserFullInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateUserFullInfo");
+ jo("user_id", object.user_id_);
+ if (object.user_full_info_) {
+ jo("user_full_info", ToJson(*object.user_full_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateBasicGroupFullInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateBasicGroupFullInfo");
+ jo("basic_group_id", object.basic_group_id_);
+ if (object.basic_group_full_info_) {
+ jo("basic_group_full_info", ToJson(*object.basic_group_full_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateSupergroupFullInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateSupergroupFullInfo");
+ jo("supergroup_id", object.supergroup_id_);
+ if (object.supergroup_full_info_) {
+ jo("supergroup_full_info", ToJson(*object.supergroup_full_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateServiceNotification &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateServiceNotification");
+ jo("type", object.type_);
+ if (object.content_) {
+ jo("content", ToJson(*object.content_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateFile &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateFile");
+ if (object.file_) {
+ jo("file", ToJson(*object.file_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateFileGenerationStart &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateFileGenerationStart");
+ jo("generation_id", ToJson(JsonInt64{object.generation_id_}));
+ jo("original_path", object.original_path_);
+ jo("destination_path", object.destination_path_);
+ jo("conversion", object.conversion_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateFileGenerationStop &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateFileGenerationStop");
+ jo("generation_id", ToJson(JsonInt64{object.generation_id_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateFileDownloads &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateFileDownloads");
+ jo("total_size", object.total_size_);
+ jo("total_count", object.total_count_);
+ jo("downloaded_size", object.downloaded_size_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateFileAddedToDownloads &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateFileAddedToDownloads");
+ if (object.file_download_) {
+ jo("file_download", ToJson(*object.file_download_));
+ }
+ if (object.counts_) {
+ jo("counts", ToJson(*object.counts_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateFileDownload &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateFileDownload");
+ jo("file_id", object.file_id_);
+ jo("complete_date", object.complete_date_);
+ jo("is_paused", JsonBool{object.is_paused_});
+ if (object.counts_) {
+ jo("counts", ToJson(*object.counts_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateFileRemovedFromDownloads &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateFileRemovedFromDownloads");
+ jo("file_id", object.file_id_);
+ if (object.counts_) {
+ jo("counts", ToJson(*object.counts_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateCall &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateCall");
+ if (object.call_) {
+ jo("call", ToJson(*object.call_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateGroupCall &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateGroupCall");
+ if (object.group_call_) {
+ jo("group_call", ToJson(*object.group_call_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateGroupCallParticipant &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateGroupCallParticipant");
+ jo("group_call_id", object.group_call_id_);
+ if (object.participant_) {
+ jo("participant", ToJson(*object.participant_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewCallSignalingData &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewCallSignalingData");
+ jo("call_id", object.call_id_);
+ jo("data", base64_encode(object.data_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateUserPrivacySettingRules &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateUserPrivacySettingRules");
+ if (object.setting_) {
+ jo("setting", ToJson(*object.setting_));
+ }
+ if (object.rules_) {
+ jo("rules", ToJson(*object.rules_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateUnreadMessageCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateUnreadMessageCount");
+ if (object.chat_list_) {
+ jo("chat_list", ToJson(*object.chat_list_));
+ }
+ jo("unread_count", object.unread_count_);
+ jo("unread_unmuted_count", object.unread_unmuted_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateUnreadChatCount &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateUnreadChatCount");
+ if (object.chat_list_) {
+ jo("chat_list", ToJson(*object.chat_list_));
+ }
+ jo("total_count", object.total_count_);
+ jo("unread_count", object.unread_count_);
+ jo("unread_unmuted_count", object.unread_unmuted_count_);
+ jo("marked_as_unread_count", object.marked_as_unread_count_);
+ jo("marked_as_unread_unmuted_count", object.marked_as_unread_unmuted_count_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateOption &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateOption");
+ jo("name", object.name_);
+ if (object.value_) {
+ jo("value", ToJson(*object.value_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateStickerSet &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateStickerSet");
+ if (object.sticker_set_) {
+ jo("sticker_set", ToJson(*object.sticker_set_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateInstalledStickerSets &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateInstalledStickerSets");
+ if (object.sticker_type_) {
+ jo("sticker_type", ToJson(*object.sticker_type_));
+ }
+ jo("sticker_set_ids", ToJson(JsonVectorInt64{object.sticker_set_ids_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateTrendingStickerSets &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateTrendingStickerSets");
+ if (object.sticker_type_) {
+ jo("sticker_type", ToJson(*object.sticker_type_));
+ }
+ if (object.sticker_sets_) {
+ jo("sticker_sets", ToJson(*object.sticker_sets_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateRecentStickers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateRecentStickers");
+ jo("is_attached", JsonBool{object.is_attached_});
+ jo("sticker_ids", ToJson(object.sticker_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateFavoriteStickers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateFavoriteStickers");
+ jo("sticker_ids", ToJson(object.sticker_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateSavedAnimations &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateSavedAnimations");
+ jo("animation_ids", ToJson(object.animation_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateSavedNotificationSounds &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateSavedNotificationSounds");
+ jo("notification_sound_ids", ToJson(JsonVectorInt64{object.notification_sound_ids_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateSelectedBackground &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateSelectedBackground");
+ jo("for_dark_theme", JsonBool{object.for_dark_theme_});
+ if (object.background_) {
+ jo("background", ToJson(*object.background_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatThemes &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatThemes");
+ jo("chat_themes", ToJson(object.chat_themes_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateLanguagePackStrings &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateLanguagePackStrings");
+ jo("localization_target", object.localization_target_);
+ jo("language_pack_id", object.language_pack_id_);
+ jo("strings", ToJson(object.strings_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateConnectionState &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateConnectionState");
+ if (object.state_) {
+ jo("state", ToJson(*object.state_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateTermsOfService &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateTermsOfService");
+ jo("terms_of_service_id", object.terms_of_service_id_);
+ if (object.terms_of_service_) {
+ jo("terms_of_service", ToJson(*object.terms_of_service_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateUsersNearby &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateUsersNearby");
+ jo("users_nearby", ToJson(object.users_nearby_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateAttachmentMenuBots &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateAttachmentMenuBots");
+ jo("bots", ToJson(object.bots_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateWebAppMessageSent &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateWebAppMessageSent");
+ jo("web_app_launch_id", ToJson(JsonInt64{object.web_app_launch_id_}));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateActiveEmojiReactions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateActiveEmojiReactions");
+ jo("emojis", ToJson(object.emojis_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateDefaultReactionType &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateDefaultReactionType");
+ if (object.reaction_type_) {
+ jo("reaction_type", ToJson(*object.reaction_type_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateDiceEmojis &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateDiceEmojis");
+ jo("emojis", ToJson(object.emojis_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateAnimatedEmojiMessageClicked &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateAnimatedEmojiMessageClicked");
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+ if (object.sticker_) {
+ jo("sticker", ToJson(*object.sticker_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateAnimationSearchParameters &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateAnimationSearchParameters");
+ jo("provider", object.provider_);
+ jo("emojis", ToJson(object.emojis_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateSuggestedActions &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateSuggestedActions");
+ jo("added_actions", ToJson(object.added_actions_));
+ jo("removed_actions", ToJson(object.removed_actions_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewInlineQuery &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewInlineQuery");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("sender_user_id", object.sender_user_id_);
+ if (object.user_location_) {
+ jo("user_location", ToJson(*object.user_location_));
+ }
+ if (object.chat_type_) {
+ jo("chat_type", ToJson(*object.chat_type_));
+ }
+ jo("query", object.query_);
+ jo("offset", object.offset_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewChosenInlineResult &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewChosenInlineResult");
+ jo("sender_user_id", object.sender_user_id_);
+ if (object.user_location_) {
+ jo("user_location", ToJson(*object.user_location_));
+ }
+ jo("query", object.query_);
+ jo("result_id", object.result_id_);
+ jo("inline_message_id", object.inline_message_id_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewCallbackQuery &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewCallbackQuery");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("sender_user_id", object.sender_user_id_);
+ jo("chat_id", object.chat_id_);
+ jo("message_id", object.message_id_);
+ jo("chat_instance", ToJson(JsonInt64{object.chat_instance_}));
+ if (object.payload_) {
+ jo("payload", ToJson(*object.payload_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewInlineCallbackQuery &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewInlineCallbackQuery");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("sender_user_id", object.sender_user_id_);
+ jo("inline_message_id", object.inline_message_id_);
+ jo("chat_instance", ToJson(JsonInt64{object.chat_instance_}));
+ if (object.payload_) {
+ jo("payload", ToJson(*object.payload_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewShippingQuery &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewShippingQuery");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("sender_user_id", object.sender_user_id_);
+ jo("invoice_payload", object.invoice_payload_);
+ if (object.shipping_address_) {
+ jo("shipping_address", ToJson(*object.shipping_address_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewPreCheckoutQuery &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewPreCheckoutQuery");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("sender_user_id", object.sender_user_id_);
+ jo("currency", object.currency_);
+ jo("total_amount", object.total_amount_);
+ jo("invoice_payload", base64_encode(object.invoice_payload_));
+ jo("shipping_option_id", object.shipping_option_id_);
+ if (object.order_info_) {
+ jo("order_info", ToJson(*object.order_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewCustomEvent &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewCustomEvent");
+ jo("event", object.event_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewCustomQuery &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewCustomQuery");
+ jo("id", ToJson(JsonInt64{object.id_}));
+ jo("data", object.data_);
+ jo("timeout", object.timeout_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::updatePoll &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updatePoll");
+ if (object.poll_) {
+ jo("poll", ToJson(*object.poll_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updatePollAnswer &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updatePollAnswer");
+ jo("poll_id", ToJson(JsonInt64{object.poll_id_}));
+ jo("user_id", object.user_id_);
+ jo("option_ids", ToJson(object.option_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateChatMember &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateChatMember");
+ jo("chat_id", object.chat_id_);
+ jo("actor_user_id", object.actor_user_id_);
+ jo("date", object.date_);
+ if (object.invite_link_) {
+ jo("invite_link", ToJson(*object.invite_link_));
+ }
+ if (object.old_chat_member_) {
+ jo("old_chat_member", ToJson(*object.old_chat_member_));
+ }
+ if (object.new_chat_member_) {
+ jo("new_chat_member", ToJson(*object.new_chat_member_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updateNewChatJoinRequest &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updateNewChatJoinRequest");
+ jo("chat_id", object.chat_id_);
+ if (object.request_) {
+ jo("request", ToJson(*object.request_));
+ }
+ if (object.invite_link_) {
+ jo("invite_link", ToJson(*object.invite_link_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::updates &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "updates");
+ jo("updates", ToJson(object.updates_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::user &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "user");
+ jo("id", object.id_);
+ jo("first_name", object.first_name_);
+ jo("last_name", object.last_name_);
+ if (object.usernames_) {
+ jo("usernames", ToJson(*object.usernames_));
+ }
+ jo("phone_number", object.phone_number_);
+ if (object.status_) {
+ jo("status", ToJson(*object.status_));
+ }
+ if (object.profile_photo_) {
+ jo("profile_photo", ToJson(*object.profile_photo_));
+ }
+ if (object.emoji_status_) {
+ jo("emoji_status", ToJson(*object.emoji_status_));
+ }
+ jo("is_contact", JsonBool{object.is_contact_});
+ jo("is_mutual_contact", JsonBool{object.is_mutual_contact_});
+ jo("is_verified", JsonBool{object.is_verified_});
+ jo("is_premium", JsonBool{object.is_premium_});
+ jo("is_support", JsonBool{object.is_support_});
+ jo("restriction_reason", object.restriction_reason_);
+ jo("is_scam", JsonBool{object.is_scam_});
+ jo("is_fake", JsonBool{object.is_fake_});
+ jo("have_access", JsonBool{object.have_access_});
+ if (object.type_) {
+ jo("type", ToJson(*object.type_));
+ }
+ jo("language_code", object.language_code_);
+ jo("added_to_attachment_menu", JsonBool{object.added_to_attachment_menu_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::userFullInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userFullInfo");
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("is_blocked", JsonBool{object.is_blocked_});
+ jo("can_be_called", JsonBool{object.can_be_called_});
+ jo("supports_video_calls", JsonBool{object.supports_video_calls_});
+ jo("has_private_calls", JsonBool{object.has_private_calls_});
+ jo("has_private_forwards", JsonBool{object.has_private_forwards_});
+ jo("has_restricted_voice_and_video_note_messages", JsonBool{object.has_restricted_voice_and_video_note_messages_});
+ jo("need_phone_number_privacy_exception", JsonBool{object.need_phone_number_privacy_exception_});
+ if (object.bio_) {
+ jo("bio", ToJson(*object.bio_));
+ }
+ jo("premium_gift_options", ToJson(object.premium_gift_options_));
+ jo("group_in_common_count", object.group_in_common_count_);
+ if (object.bot_info_) {
+ jo("bot_info", ToJson(*object.bot_info_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::UserPrivacySetting &object) {
+ td_api::downcast_call(const_cast<td_api::UserPrivacySetting &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowStatus &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingShowStatus");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowProfilePhoto &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingShowProfilePhoto");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowLinkInForwardedMessages &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingShowLinkInForwardedMessages");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowPhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingShowPhoneNumber");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowChatInvites &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingAllowChatInvites");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowCalls &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingAllowCalls");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowPeerToPeerCalls &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingAllowPeerToPeerCalls");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowFindingByPhoneNumber &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingAllowFindingByPhoneNumber");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages");
+}
+
+void to_json(JsonValueScope &jv, const td_api::UserPrivacySettingRule &object) {
+ td_api::downcast_call(const_cast<td_api::UserPrivacySettingRule &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowAll &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingRuleAllowAll");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowContacts &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingRuleAllowContacts");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowUsers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingRuleAllowUsers");
+ jo("user_ids", ToJson(object.user_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowChatMembers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingRuleAllowChatMembers");
+ jo("chat_ids", ToJson(object.chat_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictAll &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingRuleRestrictAll");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictContacts &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingRuleRestrictContacts");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictUsers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingRuleRestrictUsers");
+ jo("user_ids", ToJson(object.user_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictChatMembers &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingRuleRestrictChatMembers");
+ jo("chat_ids", ToJson(object.chat_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRules &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userPrivacySettingRules");
+ jo("rules", ToJson(object.rules_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::UserStatus &object) {
+ td_api::downcast_call(const_cast<td_api::UserStatus &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::userStatusEmpty &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userStatusEmpty");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userStatusOnline &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userStatusOnline");
+ jo("expires", object.expires_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::userStatusOffline &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userStatusOffline");
+ jo("was_online", object.was_online_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::userStatusRecently &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userStatusRecently");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userStatusLastWeek &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userStatusLastWeek");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userStatusLastMonth &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userStatusLastMonth");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userSupportInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userSupportInfo");
+ if (object.message_) {
+ jo("message", ToJson(*object.message_));
+ }
+ jo("author", object.author_);
+ jo("date", object.date_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::UserType &object) {
+ td_api::downcast_call(const_cast<td_api::UserType &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::userTypeRegular &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userTypeRegular");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userTypeDeleted &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userTypeDeleted");
+}
+
+void to_json(JsonValueScope &jv, const td_api::userTypeBot &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userTypeBot");
+ jo("can_join_groups", JsonBool{object.can_join_groups_});
+ jo("can_read_all_group_messages", JsonBool{object.can_read_all_group_messages_});
+ jo("is_inline", JsonBool{object.is_inline_});
+ jo("inline_query_placeholder", object.inline_query_placeholder_);
+ jo("need_location", JsonBool{object.need_location_});
+ jo("can_be_added_to_attachment_menu", JsonBool{object.can_be_added_to_attachment_menu_});
+}
+
+void to_json(JsonValueScope &jv, const td_api::userTypeUnknown &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "userTypeUnknown");
+}
+
+void to_json(JsonValueScope &jv, const td_api::usernames &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "usernames");
+ jo("active_usernames", ToJson(object.active_usernames_));
+ jo("disabled_usernames", ToJson(object.disabled_usernames_));
+ jo("editable_username", object.editable_username_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::users &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "users");
+ jo("total_count", object.total_count_);
+ jo("user_ids", ToJson(object.user_ids_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::validatedOrderInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "validatedOrderInfo");
+ jo("order_info_id", object.order_info_id_);
+ jo("shipping_options", ToJson(object.shipping_options_));
+}
+
+void to_json(JsonValueScope &jv, const td_api::VectorPathCommand &object) {
+ td_api::downcast_call(const_cast<td_api::VectorPathCommand &>(object), [&jv](const auto &object) { to_json(jv, object); });
+}
+
+void to_json(JsonValueScope &jv, const td_api::vectorPathCommandLine &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "vectorPathCommandLine");
+ if (object.end_point_) {
+ jo("end_point", ToJson(*object.end_point_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::vectorPathCommandCubicBezierCurve &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "vectorPathCommandCubicBezierCurve");
+ if (object.start_control_point_) {
+ jo("start_control_point", ToJson(*object.start_control_point_));
+ }
+ if (object.end_control_point_) {
+ jo("end_control_point", ToJson(*object.end_control_point_));
+ }
+ if (object.end_point_) {
+ jo("end_point", ToJson(*object.end_point_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::venue &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "venue");
+ if (object.location_) {
+ jo("location", ToJson(*object.location_));
+ }
+ jo("title", object.title_);
+ jo("address", object.address_);
+ jo("provider", object.provider_);
+ jo("id", object.id_);
+ jo("type", object.type_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::video &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "video");
+ jo("duration", object.duration_);
+ jo("width", object.width_);
+ jo("height", object.height_);
+ jo("file_name", object.file_name_);
+ jo("mime_type", object.mime_type_);
+ jo("has_stickers", JsonBool{object.has_stickers_});
+ jo("supports_streaming", JsonBool{object.supports_streaming_});
+ if (object.minithumbnail_) {
+ jo("minithumbnail", ToJson(*object.minithumbnail_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ if (object.video_) {
+ jo("video", ToJson(*object.video_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::videoChat &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "videoChat");
+ jo("group_call_id", object.group_call_id_);
+ jo("has_participants", JsonBool{object.has_participants_});
+ if (object.default_participant_id_) {
+ jo("default_participant_id", ToJson(*object.default_participant_id_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::videoNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "videoNote");
+ jo("duration", object.duration_);
+ jo("waveform", base64_encode(object.waveform_));
+ jo("length", object.length_);
+ if (object.minithumbnail_) {
+ jo("minithumbnail", ToJson(*object.minithumbnail_));
+ }
+ if (object.thumbnail_) {
+ jo("thumbnail", ToJson(*object.thumbnail_));
+ }
+ if (object.speech_recognition_result_) {
+ jo("speech_recognition_result", ToJson(*object.speech_recognition_result_));
+ }
+ if (object.video_) {
+ jo("video", ToJson(*object.video_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::voiceNote &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "voiceNote");
+ jo("duration", object.duration_);
+ jo("waveform", base64_encode(object.waveform_));
+ jo("mime_type", object.mime_type_);
+ if (object.speech_recognition_result_) {
+ jo("speech_recognition_result", ToJson(*object.speech_recognition_result_));
+ }
+ if (object.voice_) {
+ jo("voice", ToJson(*object.voice_));
+ }
+}
+
+void to_json(JsonValueScope &jv, const td_api::webAppInfo &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "webAppInfo");
+ jo("launch_id", ToJson(JsonInt64{object.launch_id_}));
+ jo("url", object.url_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::webPage &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "webPage");
+ jo("url", object.url_);
+ jo("display_url", object.display_url_);
+ jo("type", object.type_);
+ jo("site_name", object.site_name_);
+ jo("title", object.title_);
+ if (object.description_) {
+ jo("description", ToJson(*object.description_));
+ }
+ if (object.photo_) {
+ jo("photo", ToJson(*object.photo_));
+ }
+ jo("embed_url", object.embed_url_);
+ jo("embed_type", object.embed_type_);
+ jo("embed_width", object.embed_width_);
+ jo("embed_height", object.embed_height_);
+ jo("duration", object.duration_);
+ jo("author", object.author_);
+ if (object.animation_) {
+ jo("animation", ToJson(*object.animation_));
+ }
+ if (object.audio_) {
+ jo("audio", ToJson(*object.audio_));
+ }
+ if (object.document_) {
+ jo("document", ToJson(*object.document_));
+ }
+ if (object.sticker_) {
+ jo("sticker", ToJson(*object.sticker_));
+ }
+ if (object.video_) {
+ jo("video", ToJson(*object.video_));
+ }
+ if (object.video_note_) {
+ jo("video_note", ToJson(*object.video_note_));
+ }
+ if (object.voice_note_) {
+ jo("voice_note", ToJson(*object.voice_note_));
+ }
+ jo("instant_view_version", object.instant_view_version_);
+}
+
+void to_json(JsonValueScope &jv, const td_api::webPageInstantView &object) {
+ auto jo = jv.enter_object();
+ jo("@type", "webPageInstantView");
+ jo("page_blocks", ToJson(object.page_blocks_));
+ jo("view_count", object.view_count_);
+ jo("version", object.version_);
+ jo("is_rtl", JsonBool{object.is_rtl_});
+ jo("is_full", JsonBool{object.is_full_});
+ if (object.feedback_link_) {
+ jo("feedback_link", ToJson(*object.feedback_link_));
+ }
+}
+
+} // namespace td_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.h b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.h
new file mode 100644
index 0000000000..5da241eeec
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.h
@@ -0,0 +1,4122 @@
+#pragma once
+
+#include "td/telegram/td_api.h"
+
+#include "td/utils/JsonBuilder.h"
+#include "td/utils/Status.h"
+
+namespace td {
+namespace td_api {
+
+void to_json(JsonValueScope &jv, const tl_object_ptr<Object> &value);
+
+Status from_json(tl_object_ptr<Function> &to, td::JsonValue from);
+
+void to_json(JsonValueScope &jv, const Object &object);
+
+void to_json(JsonValueScope &jv, const Function &object);
+
+Result<int32> tl_constructor_from_string(td_api::BackgroundFill *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::BackgroundType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::BotCommandScope *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::CallProblem *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::CallbackQueryPayload *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::ChatAction *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::ChatAvailableReactions *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::ChatList *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::ChatMemberStatus *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::ChatMembersFilter *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::ChatReportReason *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::DeviceToken *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::EmailAddressAuthentication *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::FileType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::GroupCallVideoQuality *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::InlineKeyboardButtonType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::InputBackground *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::InputChatPhoto *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::InputCredentials *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::InputFile *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::InputInlineQueryResult *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::InputInvoice *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::InputMessageContent *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::InputPassportElement *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::InputPassportElementErrorSource *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::JsonValue *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::KeyboardButtonType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::LanguagePackStringValue *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::LogStream *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::MaskPoint *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::MessageSchedulingState *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::MessageSender *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::NetworkStatisticsEntry *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::NetworkType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::NotificationSettingsScope *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::OptionValue *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::PassportElementType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::PollType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::PremiumFeature *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::PremiumLimitType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::PremiumSource *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::ProxyType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::PublicChatType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::ReactionType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::ReplyMarkup *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::SearchMessagesFilter *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::StickerFormat *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::StickerType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::StorePaymentPurpose *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::SuggestedAction *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::SupergroupMembersFilter *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::TextEntityType *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::TextParseMode *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::TopChatCategory *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::UserPrivacySetting *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::UserPrivacySettingRule *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::Object *object, const std::string &str);
+
+Result<int32> tl_constructor_from_string(td_api::Function *object, const std::string &str);
+
+Status from_json(td_api::accountTtl &to, JsonObject &from);
+
+Status from_json(td_api::address &to, JsonObject &from);
+
+Status from_json(td_api::autoDownloadSettings &to, JsonObject &from);
+
+Status from_json(td_api::backgroundFillSolid &to, JsonObject &from);
+
+Status from_json(td_api::backgroundFillGradient &to, JsonObject &from);
+
+Status from_json(td_api::backgroundFillFreeformGradient &to, JsonObject &from);
+
+Status from_json(td_api::backgroundTypeWallpaper &to, JsonObject &from);
+
+Status from_json(td_api::backgroundTypePattern &to, JsonObject &from);
+
+Status from_json(td_api::backgroundTypeFill &to, JsonObject &from);
+
+Status from_json(td_api::botCommand &to, JsonObject &from);
+
+Status from_json(td_api::botCommandScopeDefault &to, JsonObject &from);
+
+Status from_json(td_api::botCommandScopeAllPrivateChats &to, JsonObject &from);
+
+Status from_json(td_api::botCommandScopeAllGroupChats &to, JsonObject &from);
+
+Status from_json(td_api::botCommandScopeAllChatAdministrators &to, JsonObject &from);
+
+Status from_json(td_api::botCommandScopeChat &to, JsonObject &from);
+
+Status from_json(td_api::botCommandScopeChatAdministrators &to, JsonObject &from);
+
+Status from_json(td_api::botCommandScopeChatMember &to, JsonObject &from);
+
+Status from_json(td_api::botMenuButton &to, JsonObject &from);
+
+Status from_json(td_api::callProblemEcho &to, JsonObject &from);
+
+Status from_json(td_api::callProblemNoise &to, JsonObject &from);
+
+Status from_json(td_api::callProblemInterruptions &to, JsonObject &from);
+
+Status from_json(td_api::callProblemDistortedSpeech &to, JsonObject &from);
+
+Status from_json(td_api::callProblemSilentLocal &to, JsonObject &from);
+
+Status from_json(td_api::callProblemSilentRemote &to, JsonObject &from);
+
+Status from_json(td_api::callProblemDropped &to, JsonObject &from);
+
+Status from_json(td_api::callProblemDistortedVideo &to, JsonObject &from);
+
+Status from_json(td_api::callProblemPixelatedVideo &to, JsonObject &from);
+
+Status from_json(td_api::callProtocol &to, JsonObject &from);
+
+Status from_json(td_api::callbackQueryPayloadData &to, JsonObject &from);
+
+Status from_json(td_api::callbackQueryPayloadDataWithPassword &to, JsonObject &from);
+
+Status from_json(td_api::callbackQueryPayloadGame &to, JsonObject &from);
+
+Status from_json(td_api::chatActionTyping &to, JsonObject &from);
+
+Status from_json(td_api::chatActionRecordingVideo &to, JsonObject &from);
+
+Status from_json(td_api::chatActionUploadingVideo &to, JsonObject &from);
+
+Status from_json(td_api::chatActionRecordingVoiceNote &to, JsonObject &from);
+
+Status from_json(td_api::chatActionUploadingVoiceNote &to, JsonObject &from);
+
+Status from_json(td_api::chatActionUploadingPhoto &to, JsonObject &from);
+
+Status from_json(td_api::chatActionUploadingDocument &to, JsonObject &from);
+
+Status from_json(td_api::chatActionChoosingSticker &to, JsonObject &from);
+
+Status from_json(td_api::chatActionChoosingLocation &to, JsonObject &from);
+
+Status from_json(td_api::chatActionChoosingContact &to, JsonObject &from);
+
+Status from_json(td_api::chatActionStartPlayingGame &to, JsonObject &from);
+
+Status from_json(td_api::chatActionRecordingVideoNote &to, JsonObject &from);
+
+Status from_json(td_api::chatActionUploadingVideoNote &to, JsonObject &from);
+
+Status from_json(td_api::chatActionWatchingAnimations &to, JsonObject &from);
+
+Status from_json(td_api::chatActionCancel &to, JsonObject &from);
+
+Status from_json(td_api::chatAdministratorRights &to, JsonObject &from);
+
+Status from_json(td_api::chatAvailableReactionsAll &to, JsonObject &from);
+
+Status from_json(td_api::chatAvailableReactionsSome &to, JsonObject &from);
+
+Status from_json(td_api::chatEventLogFilters &to, JsonObject &from);
+
+Status from_json(td_api::chatFilter &to, JsonObject &from);
+
+Status from_json(td_api::chatInviteLinkMember &to, JsonObject &from);
+
+Status from_json(td_api::chatJoinRequest &to, JsonObject &from);
+
+Status from_json(td_api::chatListMain &to, JsonObject &from);
+
+Status from_json(td_api::chatListArchive &to, JsonObject &from);
+
+Status from_json(td_api::chatListFilter &to, JsonObject &from);
+
+Status from_json(td_api::chatLocation &to, JsonObject &from);
+
+Status from_json(td_api::chatMemberStatusCreator &to, JsonObject &from);
+
+Status from_json(td_api::chatMemberStatusAdministrator &to, JsonObject &from);
+
+Status from_json(td_api::chatMemberStatusMember &to, JsonObject &from);
+
+Status from_json(td_api::chatMemberStatusRestricted &to, JsonObject &from);
+
+Status from_json(td_api::chatMemberStatusLeft &to, JsonObject &from);
+
+Status from_json(td_api::chatMemberStatusBanned &to, JsonObject &from);
+
+Status from_json(td_api::chatMembersFilterContacts &to, JsonObject &from);
+
+Status from_json(td_api::chatMembersFilterAdministrators &to, JsonObject &from);
+
+Status from_json(td_api::chatMembersFilterMembers &to, JsonObject &from);
+
+Status from_json(td_api::chatMembersFilterMention &to, JsonObject &from);
+
+Status from_json(td_api::chatMembersFilterRestricted &to, JsonObject &from);
+
+Status from_json(td_api::chatMembersFilterBanned &to, JsonObject &from);
+
+Status from_json(td_api::chatMembersFilterBots &to, JsonObject &from);
+
+Status from_json(td_api::chatNotificationSettings &to, JsonObject &from);
+
+Status from_json(td_api::chatPermissions &to, JsonObject &from);
+
+Status from_json(td_api::chatReportReasonSpam &to, JsonObject &from);
+
+Status from_json(td_api::chatReportReasonViolence &to, JsonObject &from);
+
+Status from_json(td_api::chatReportReasonPornography &to, JsonObject &from);
+
+Status from_json(td_api::chatReportReasonChildAbuse &to, JsonObject &from);
+
+Status from_json(td_api::chatReportReasonCopyright &to, JsonObject &from);
+
+Status from_json(td_api::chatReportReasonUnrelatedLocation &to, JsonObject &from);
+
+Status from_json(td_api::chatReportReasonFake &to, JsonObject &from);
+
+Status from_json(td_api::chatReportReasonIllegalDrugs &to, JsonObject &from);
+
+Status from_json(td_api::chatReportReasonPersonalDetails &to, JsonObject &from);
+
+Status from_json(td_api::chatReportReasonCustom &to, JsonObject &from);
+
+Status from_json(td_api::contact &to, JsonObject &from);
+
+Status from_json(td_api::date &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenFirebaseCloudMessaging &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenApplePush &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenApplePushVoIP &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenWindowsPush &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenMicrosoftPush &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenMicrosoftPushVoIP &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenWebPush &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenSimplePush &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenUbuntuPush &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenBlackBerryPush &to, JsonObject &from);
+
+Status from_json(td_api::deviceTokenTizenPush &to, JsonObject &from);
+
+Status from_json(td_api::draftMessage &to, JsonObject &from);
+
+Status from_json(td_api::emailAddressAuthenticationCode &to, JsonObject &from);
+
+Status from_json(td_api::emailAddressAuthenticationAppleId &to, JsonObject &from);
+
+Status from_json(td_api::emailAddressAuthenticationGoogleId &to, JsonObject &from);
+
+Status from_json(td_api::emojiStatus &to, JsonObject &from);
+
+Status from_json(td_api::error &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeNone &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeAnimation &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeAudio &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeDocument &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeNotificationSound &to, JsonObject &from);
+
+Status from_json(td_api::fileTypePhoto &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeProfilePhoto &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeSecret &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeSecretThumbnail &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeSecure &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeSticker &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeThumbnail &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeUnknown &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeVideo &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeVideoNote &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeVoiceNote &to, JsonObject &from);
+
+Status from_json(td_api::fileTypeWallpaper &to, JsonObject &from);
+
+Status from_json(td_api::formattedText &to, JsonObject &from);
+
+Status from_json(td_api::forumTopicIcon &to, JsonObject &from);
+
+Status from_json(td_api::groupCallVideoQualityThumbnail &to, JsonObject &from);
+
+Status from_json(td_api::groupCallVideoQualityMedium &to, JsonObject &from);
+
+Status from_json(td_api::groupCallVideoQualityFull &to, JsonObject &from);
+
+Status from_json(td_api::inlineKeyboardButton &to, JsonObject &from);
+
+Status from_json(td_api::inlineKeyboardButtonTypeUrl &to, JsonObject &from);
+
+Status from_json(td_api::inlineKeyboardButtonTypeLoginUrl &to, JsonObject &from);
+
+Status from_json(td_api::inlineKeyboardButtonTypeWebApp &to, JsonObject &from);
+
+Status from_json(td_api::inlineKeyboardButtonTypeCallback &to, JsonObject &from);
+
+Status from_json(td_api::inlineKeyboardButtonTypeCallbackWithPassword &to, JsonObject &from);
+
+Status from_json(td_api::inlineKeyboardButtonTypeCallbackGame &to, JsonObject &from);
+
+Status from_json(td_api::inlineKeyboardButtonTypeSwitchInline &to, JsonObject &from);
+
+Status from_json(td_api::inlineKeyboardButtonTypeBuy &to, JsonObject &from);
+
+Status from_json(td_api::inlineKeyboardButtonTypeUser &to, JsonObject &from);
+
+Status from_json(td_api::inputBackgroundLocal &to, JsonObject &from);
+
+Status from_json(td_api::inputBackgroundRemote &to, JsonObject &from);
+
+Status from_json(td_api::inputChatPhotoPrevious &to, JsonObject &from);
+
+Status from_json(td_api::inputChatPhotoStatic &to, JsonObject &from);
+
+Status from_json(td_api::inputChatPhotoAnimation &to, JsonObject &from);
+
+Status from_json(td_api::inputCredentialsSaved &to, JsonObject &from);
+
+Status from_json(td_api::inputCredentialsNew &to, JsonObject &from);
+
+Status from_json(td_api::inputCredentialsApplePay &to, JsonObject &from);
+
+Status from_json(td_api::inputCredentialsGooglePay &to, JsonObject &from);
+
+Status from_json(td_api::inputFileId &to, JsonObject &from);
+
+Status from_json(td_api::inputFileRemote &to, JsonObject &from);
+
+Status from_json(td_api::inputFileLocal &to, JsonObject &from);
+
+Status from_json(td_api::inputFileGenerated &to, JsonObject &from);
+
+Status from_json(td_api::inputIdentityDocument &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultAnimation &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultArticle &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultAudio &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultContact &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultDocument &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultGame &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultLocation &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultPhoto &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultSticker &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultVenue &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultVideo &to, JsonObject &from);
+
+Status from_json(td_api::inputInlineQueryResultVoiceNote &to, JsonObject &from);
+
+Status from_json(td_api::inputInvoiceMessage &to, JsonObject &from);
+
+Status from_json(td_api::inputInvoiceName &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageText &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageAnimation &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageAudio &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageDocument &to, JsonObject &from);
+
+Status from_json(td_api::inputMessagePhoto &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageSticker &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageVideo &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageVideoNote &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageVoiceNote &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageLocation &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageVenue &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageContact &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageDice &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageGame &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageInvoice &to, JsonObject &from);
+
+Status from_json(td_api::inputMessagePoll &to, JsonObject &from);
+
+Status from_json(td_api::inputMessageForwarded &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementPersonalDetails &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementPassport &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementDriverLicense &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementIdentityCard &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementInternalPassport &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementAddress &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementUtilityBill &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementBankStatement &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementRentalAgreement &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementPassportRegistration &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementTemporaryRegistration &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementPhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementEmailAddress &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementError &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementErrorSourceUnspecified &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementErrorSourceDataField &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementErrorSourceFrontSide &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementErrorSourceReverseSide &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementErrorSourceSelfie &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementErrorSourceTranslationFile &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementErrorSourceTranslationFiles &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementErrorSourceFile &to, JsonObject &from);
+
+Status from_json(td_api::inputPassportElementErrorSourceFiles &to, JsonObject &from);
+
+Status from_json(td_api::inputPersonalDocument &to, JsonObject &from);
+
+Status from_json(td_api::inputSticker &to, JsonObject &from);
+
+Status from_json(td_api::inputThumbnail &to, JsonObject &from);
+
+Status from_json(td_api::invoice &to, JsonObject &from);
+
+Status from_json(td_api::jsonObjectMember &to, JsonObject &from);
+
+Status from_json(td_api::jsonValueNull &to, JsonObject &from);
+
+Status from_json(td_api::jsonValueBoolean &to, JsonObject &from);
+
+Status from_json(td_api::jsonValueNumber &to, JsonObject &from);
+
+Status from_json(td_api::jsonValueString &to, JsonObject &from);
+
+Status from_json(td_api::jsonValueArray &to, JsonObject &from);
+
+Status from_json(td_api::jsonValueObject &to, JsonObject &from);
+
+Status from_json(td_api::keyboardButton &to, JsonObject &from);
+
+Status from_json(td_api::keyboardButtonTypeText &to, JsonObject &from);
+
+Status from_json(td_api::keyboardButtonTypeRequestPhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::keyboardButtonTypeRequestLocation &to, JsonObject &from);
+
+Status from_json(td_api::keyboardButtonTypeRequestPoll &to, JsonObject &from);
+
+Status from_json(td_api::keyboardButtonTypeWebApp &to, JsonObject &from);
+
+Status from_json(td_api::labeledPricePart &to, JsonObject &from);
+
+Status from_json(td_api::languagePackInfo &to, JsonObject &from);
+
+Status from_json(td_api::languagePackString &to, JsonObject &from);
+
+Status from_json(td_api::languagePackStringValueOrdinary &to, JsonObject &from);
+
+Status from_json(td_api::languagePackStringValuePluralized &to, JsonObject &from);
+
+Status from_json(td_api::languagePackStringValueDeleted &to, JsonObject &from);
+
+Status from_json(td_api::location &to, JsonObject &from);
+
+Status from_json(td_api::logStreamDefault &to, JsonObject &from);
+
+Status from_json(td_api::logStreamFile &to, JsonObject &from);
+
+Status from_json(td_api::logStreamEmpty &to, JsonObject &from);
+
+Status from_json(td_api::maskPointForehead &to, JsonObject &from);
+
+Status from_json(td_api::maskPointEyes &to, JsonObject &from);
+
+Status from_json(td_api::maskPointMouth &to, JsonObject &from);
+
+Status from_json(td_api::maskPointChin &to, JsonObject &from);
+
+Status from_json(td_api::maskPosition &to, JsonObject &from);
+
+Status from_json(td_api::messageCopyOptions &to, JsonObject &from);
+
+Status from_json(td_api::messageSchedulingStateSendAtDate &to, JsonObject &from);
+
+Status from_json(td_api::messageSchedulingStateSendWhenOnline &to, JsonObject &from);
+
+Status from_json(td_api::messageSendOptions &to, JsonObject &from);
+
+Status from_json(td_api::messageSenderUser &to, JsonObject &from);
+
+Status from_json(td_api::messageSenderChat &to, JsonObject &from);
+
+Status from_json(td_api::networkStatisticsEntryFile &to, JsonObject &from);
+
+Status from_json(td_api::networkStatisticsEntryCall &to, JsonObject &from);
+
+Status from_json(td_api::networkTypeNone &to, JsonObject &from);
+
+Status from_json(td_api::networkTypeMobile &to, JsonObject &from);
+
+Status from_json(td_api::networkTypeMobileRoaming &to, JsonObject &from);
+
+Status from_json(td_api::networkTypeWiFi &to, JsonObject &from);
+
+Status from_json(td_api::networkTypeOther &to, JsonObject &from);
+
+Status from_json(td_api::notificationSettingsScopePrivateChats &to, JsonObject &from);
+
+Status from_json(td_api::notificationSettingsScopeGroupChats &to, JsonObject &from);
+
+Status from_json(td_api::notificationSettingsScopeChannelChats &to, JsonObject &from);
+
+Status from_json(td_api::optionValueBoolean &to, JsonObject &from);
+
+Status from_json(td_api::optionValueEmpty &to, JsonObject &from);
+
+Status from_json(td_api::optionValueInteger &to, JsonObject &from);
+
+Status from_json(td_api::optionValueString &to, JsonObject &from);
+
+Status from_json(td_api::orderInfo &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypePersonalDetails &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypePassport &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypeDriverLicense &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypeIdentityCard &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypeInternalPassport &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypeAddress &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypeUtilityBill &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypeBankStatement &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypeRentalAgreement &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypePassportRegistration &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypeTemporaryRegistration &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypePhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::passportElementTypeEmailAddress &to, JsonObject &from);
+
+Status from_json(td_api::personalDetails &to, JsonObject &from);
+
+Status from_json(td_api::phoneNumberAuthenticationSettings &to, JsonObject &from);
+
+Status from_json(td_api::pollTypeRegular &to, JsonObject &from);
+
+Status from_json(td_api::pollTypeQuiz &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureIncreasedLimits &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureIncreasedUploadFileSize &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureImprovedDownloadSpeed &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureVoiceRecognition &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureDisabledAds &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureUniqueReactions &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureUniqueStickers &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureCustomEmoji &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureAdvancedChatManagement &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureProfileBadge &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureEmojiStatus &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureAnimatedProfilePhoto &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureForumTopicIcon &to, JsonObject &from);
+
+Status from_json(td_api::premiumFeatureAppIcons &to, JsonObject &from);
+
+Status from_json(td_api::premiumLimitTypeSupergroupCount &to, JsonObject &from);
+
+Status from_json(td_api::premiumLimitTypePinnedChatCount &to, JsonObject &from);
+
+Status from_json(td_api::premiumLimitTypeCreatedPublicChatCount &to, JsonObject &from);
+
+Status from_json(td_api::premiumLimitTypeSavedAnimationCount &to, JsonObject &from);
+
+Status from_json(td_api::premiumLimitTypeFavoriteStickerCount &to, JsonObject &from);
+
+Status from_json(td_api::premiumLimitTypeChatFilterCount &to, JsonObject &from);
+
+Status from_json(td_api::premiumLimitTypeChatFilterChosenChatCount &to, JsonObject &from);
+
+Status from_json(td_api::premiumLimitTypePinnedArchivedChatCount &to, JsonObject &from);
+
+Status from_json(td_api::premiumLimitTypeCaptionLength &to, JsonObject &from);
+
+Status from_json(td_api::premiumLimitTypeBioLength &to, JsonObject &from);
+
+Status from_json(td_api::premiumSourceLimitExceeded &to, JsonObject &from);
+
+Status from_json(td_api::premiumSourceFeature &to, JsonObject &from);
+
+Status from_json(td_api::premiumSourceLink &to, JsonObject &from);
+
+Status from_json(td_api::premiumSourceSettings &to, JsonObject &from);
+
+Status from_json(td_api::proxyTypeSocks5 &to, JsonObject &from);
+
+Status from_json(td_api::proxyTypeHttp &to, JsonObject &from);
+
+Status from_json(td_api::proxyTypeMtproto &to, JsonObject &from);
+
+Status from_json(td_api::publicChatTypeHasUsername &to, JsonObject &from);
+
+Status from_json(td_api::publicChatTypeIsLocationBased &to, JsonObject &from);
+
+Status from_json(td_api::reactionTypeEmoji &to, JsonObject &from);
+
+Status from_json(td_api::reactionTypeCustomEmoji &to, JsonObject &from);
+
+Status from_json(td_api::replyMarkupRemoveKeyboard &to, JsonObject &from);
+
+Status from_json(td_api::replyMarkupForceReply &to, JsonObject &from);
+
+Status from_json(td_api::replyMarkupShowKeyboard &to, JsonObject &from);
+
+Status from_json(td_api::replyMarkupInlineKeyboard &to, JsonObject &from);
+
+Status from_json(td_api::scopeNotificationSettings &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterEmpty &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterAnimation &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterAudio &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterDocument &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterPhoto &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterVideo &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterVoiceNote &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterPhotoAndVideo &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterUrl &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterChatPhoto &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterVideoNote &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterVoiceAndVideoNote &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterMention &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterUnreadMention &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterUnreadReaction &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterFailedToSend &to, JsonObject &from);
+
+Status from_json(td_api::searchMessagesFilterPinned &to, JsonObject &from);
+
+Status from_json(td_api::shippingOption &to, JsonObject &from);
+
+Status from_json(td_api::stickerFormatWebp &to, JsonObject &from);
+
+Status from_json(td_api::stickerFormatTgs &to, JsonObject &from);
+
+Status from_json(td_api::stickerFormatWebm &to, JsonObject &from);
+
+Status from_json(td_api::stickerTypeRegular &to, JsonObject &from);
+
+Status from_json(td_api::stickerTypeMask &to, JsonObject &from);
+
+Status from_json(td_api::stickerTypeCustomEmoji &to, JsonObject &from);
+
+Status from_json(td_api::storePaymentPurposePremiumSubscription &to, JsonObject &from);
+
+Status from_json(td_api::storePaymentPurposeGiftedPremium &to, JsonObject &from);
+
+Status from_json(td_api::suggestedActionEnableArchiveAndMuteNewChats &to, JsonObject &from);
+
+Status from_json(td_api::suggestedActionCheckPassword &to, JsonObject &from);
+
+Status from_json(td_api::suggestedActionCheckPhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::suggestedActionViewChecksHint &to, JsonObject &from);
+
+Status from_json(td_api::suggestedActionConvertToBroadcastGroup &to, JsonObject &from);
+
+Status from_json(td_api::suggestedActionSetPassword &to, JsonObject &from);
+
+Status from_json(td_api::supergroupMembersFilterRecent &to, JsonObject &from);
+
+Status from_json(td_api::supergroupMembersFilterContacts &to, JsonObject &from);
+
+Status from_json(td_api::supergroupMembersFilterAdministrators &to, JsonObject &from);
+
+Status from_json(td_api::supergroupMembersFilterSearch &to, JsonObject &from);
+
+Status from_json(td_api::supergroupMembersFilterRestricted &to, JsonObject &from);
+
+Status from_json(td_api::supergroupMembersFilterBanned &to, JsonObject &from);
+
+Status from_json(td_api::supergroupMembersFilterMention &to, JsonObject &from);
+
+Status from_json(td_api::supergroupMembersFilterBots &to, JsonObject &from);
+
+Status from_json(td_api::testInt &to, JsonObject &from);
+
+Status from_json(td_api::testString &to, JsonObject &from);
+
+Status from_json(td_api::textEntity &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeMention &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeHashtag &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeCashtag &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeBotCommand &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeUrl &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeEmailAddress &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypePhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeBankCardNumber &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeBold &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeItalic &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeUnderline &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeStrikethrough &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeSpoiler &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeCode &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypePre &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypePreCode &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeTextUrl &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeMentionName &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeCustomEmoji &to, JsonObject &from);
+
+Status from_json(td_api::textEntityTypeMediaTimestamp &to, JsonObject &from);
+
+Status from_json(td_api::textParseModeMarkdown &to, JsonObject &from);
+
+Status from_json(td_api::textParseModeHTML &to, JsonObject &from);
+
+Status from_json(td_api::themeParameters &to, JsonObject &from);
+
+Status from_json(td_api::topChatCategoryUsers &to, JsonObject &from);
+
+Status from_json(td_api::topChatCategoryBots &to, JsonObject &from);
+
+Status from_json(td_api::topChatCategoryGroups &to, JsonObject &from);
+
+Status from_json(td_api::topChatCategoryChannels &to, JsonObject &from);
+
+Status from_json(td_api::topChatCategoryInlineBots &to, JsonObject &from);
+
+Status from_json(td_api::topChatCategoryCalls &to, JsonObject &from);
+
+Status from_json(td_api::topChatCategoryForwardChats &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingShowStatus &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingShowProfilePhoto &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingShowLinkInForwardedMessages &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingShowPhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingAllowChatInvites &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingAllowCalls &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingAllowPeerToPeerCalls &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingAllowFindingByPhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingRuleAllowAll &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingRuleAllowContacts &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingRuleAllowUsers &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingRuleAllowChatMembers &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingRuleRestrictAll &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingRuleRestrictContacts &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingRuleRestrictUsers &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingRuleRestrictChatMembers &to, JsonObject &from);
+
+Status from_json(td_api::userPrivacySettingRules &to, JsonObject &from);
+
+Status from_json(td_api::venue &to, JsonObject &from);
+
+Status from_json(td_api::acceptCall &to, JsonObject &from);
+
+Status from_json(td_api::acceptTermsOfService &to, JsonObject &from);
+
+Status from_json(td_api::addChatMember &to, JsonObject &from);
+
+Status from_json(td_api::addChatMembers &to, JsonObject &from);
+
+Status from_json(td_api::addChatToList &to, JsonObject &from);
+
+Status from_json(td_api::addContact &to, JsonObject &from);
+
+Status from_json(td_api::addCustomServerLanguagePack &to, JsonObject &from);
+
+Status from_json(td_api::addFavoriteSticker &to, JsonObject &from);
+
+Status from_json(td_api::addFileToDownloads &to, JsonObject &from);
+
+Status from_json(td_api::addLocalMessage &to, JsonObject &from);
+
+Status from_json(td_api::addLogMessage &to, JsonObject &from);
+
+Status from_json(td_api::addMessageReaction &to, JsonObject &from);
+
+Status from_json(td_api::addNetworkStatistics &to, JsonObject &from);
+
+Status from_json(td_api::addProxy &to, JsonObject &from);
+
+Status from_json(td_api::addRecentSticker &to, JsonObject &from);
+
+Status from_json(td_api::addRecentlyFoundChat &to, JsonObject &from);
+
+Status from_json(td_api::addSavedAnimation &to, JsonObject &from);
+
+Status from_json(td_api::addSavedNotificationSound &to, JsonObject &from);
+
+Status from_json(td_api::addStickerToSet &to, JsonObject &from);
+
+Status from_json(td_api::answerCallbackQuery &to, JsonObject &from);
+
+Status from_json(td_api::answerCustomQuery &to, JsonObject &from);
+
+Status from_json(td_api::answerInlineQuery &to, JsonObject &from);
+
+Status from_json(td_api::answerPreCheckoutQuery &to, JsonObject &from);
+
+Status from_json(td_api::answerShippingQuery &to, JsonObject &from);
+
+Status from_json(td_api::answerWebAppQuery &to, JsonObject &from);
+
+Status from_json(td_api::assignAppStoreTransaction &to, JsonObject &from);
+
+Status from_json(td_api::assignGooglePlayTransaction &to, JsonObject &from);
+
+Status from_json(td_api::banChatMember &to, JsonObject &from);
+
+Status from_json(td_api::blockMessageSenderFromReplies &to, JsonObject &from);
+
+Status from_json(td_api::canPurchasePremium &to, JsonObject &from);
+
+Status from_json(td_api::canTransferOwnership &to, JsonObject &from);
+
+Status from_json(td_api::cancelDownloadFile &to, JsonObject &from);
+
+Status from_json(td_api::cancelPasswordReset &to, JsonObject &from);
+
+Status from_json(td_api::cancelPreliminaryUploadFile &to, JsonObject &from);
+
+Status from_json(td_api::changeImportedContacts &to, JsonObject &from);
+
+Status from_json(td_api::changePhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::changeStickerSet &to, JsonObject &from);
+
+Status from_json(td_api::checkAuthenticationBotToken &to, JsonObject &from);
+
+Status from_json(td_api::checkAuthenticationCode &to, JsonObject &from);
+
+Status from_json(td_api::checkAuthenticationEmailCode &to, JsonObject &from);
+
+Status from_json(td_api::checkAuthenticationPassword &to, JsonObject &from);
+
+Status from_json(td_api::checkAuthenticationPasswordRecoveryCode &to, JsonObject &from);
+
+Status from_json(td_api::checkChangePhoneNumberCode &to, JsonObject &from);
+
+Status from_json(td_api::checkChatInviteLink &to, JsonObject &from);
+
+Status from_json(td_api::checkChatUsername &to, JsonObject &from);
+
+Status from_json(td_api::checkCreatedPublicChatsLimit &to, JsonObject &from);
+
+Status from_json(td_api::checkEmailAddressVerificationCode &to, JsonObject &from);
+
+Status from_json(td_api::checkLoginEmailAddressCode &to, JsonObject &from);
+
+Status from_json(td_api::checkPasswordRecoveryCode &to, JsonObject &from);
+
+Status from_json(td_api::checkPhoneNumberConfirmationCode &to, JsonObject &from);
+
+Status from_json(td_api::checkPhoneNumberVerificationCode &to, JsonObject &from);
+
+Status from_json(td_api::checkRecoveryEmailAddressCode &to, JsonObject &from);
+
+Status from_json(td_api::checkStickerSetName &to, JsonObject &from);
+
+Status from_json(td_api::cleanFileName &to, JsonObject &from);
+
+Status from_json(td_api::clearAllDraftMessages &to, JsonObject &from);
+
+Status from_json(td_api::clearImportedContacts &to, JsonObject &from);
+
+Status from_json(td_api::clearRecentEmojiStatuses &to, JsonObject &from);
+
+Status from_json(td_api::clearRecentReactions &to, JsonObject &from);
+
+Status from_json(td_api::clearRecentStickers &to, JsonObject &from);
+
+Status from_json(td_api::clearRecentlyFoundChats &to, JsonObject &from);
+
+Status from_json(td_api::clickAnimatedEmojiMessage &to, JsonObject &from);
+
+Status from_json(td_api::clickPremiumSubscriptionButton &to, JsonObject &from);
+
+Status from_json(td_api::close &to, JsonObject &from);
+
+Status from_json(td_api::closeChat &to, JsonObject &from);
+
+Status from_json(td_api::closeSecretChat &to, JsonObject &from);
+
+Status from_json(td_api::closeWebApp &to, JsonObject &from);
+
+Status from_json(td_api::confirmQrCodeAuthentication &to, JsonObject &from);
+
+Status from_json(td_api::createBasicGroupChat &to, JsonObject &from);
+
+Status from_json(td_api::createCall &to, JsonObject &from);
+
+Status from_json(td_api::createChatFilter &to, JsonObject &from);
+
+Status from_json(td_api::createChatInviteLink &to, JsonObject &from);
+
+Status from_json(td_api::createForumTopic &to, JsonObject &from);
+
+Status from_json(td_api::createInvoiceLink &to, JsonObject &from);
+
+Status from_json(td_api::createNewBasicGroupChat &to, JsonObject &from);
+
+Status from_json(td_api::createNewSecretChat &to, JsonObject &from);
+
+Status from_json(td_api::createNewStickerSet &to, JsonObject &from);
+
+Status from_json(td_api::createNewSupergroupChat &to, JsonObject &from);
+
+Status from_json(td_api::createPrivateChat &to, JsonObject &from);
+
+Status from_json(td_api::createSecretChat &to, JsonObject &from);
+
+Status from_json(td_api::createSupergroupChat &to, JsonObject &from);
+
+Status from_json(td_api::createTemporaryPassword &to, JsonObject &from);
+
+Status from_json(td_api::createVideoChat &to, JsonObject &from);
+
+Status from_json(td_api::deleteAccount &to, JsonObject &from);
+
+Status from_json(td_api::deleteAllCallMessages &to, JsonObject &from);
+
+Status from_json(td_api::deleteAllRevokedChatInviteLinks &to, JsonObject &from);
+
+Status from_json(td_api::deleteChat &to, JsonObject &from);
+
+Status from_json(td_api::deleteChatFilter &to, JsonObject &from);
+
+Status from_json(td_api::deleteChatHistory &to, JsonObject &from);
+
+Status from_json(td_api::deleteChatMessagesByDate &to, JsonObject &from);
+
+Status from_json(td_api::deleteChatMessagesBySender &to, JsonObject &from);
+
+Status from_json(td_api::deleteChatReplyMarkup &to, JsonObject &from);
+
+Status from_json(td_api::deleteCommands &to, JsonObject &from);
+
+Status from_json(td_api::deleteFile &to, JsonObject &from);
+
+Status from_json(td_api::deleteForumTopic &to, JsonObject &from);
+
+Status from_json(td_api::deleteLanguagePack &to, JsonObject &from);
+
+Status from_json(td_api::deleteMessages &to, JsonObject &from);
+
+Status from_json(td_api::deletePassportElement &to, JsonObject &from);
+
+Status from_json(td_api::deleteProfilePhoto &to, JsonObject &from);
+
+Status from_json(td_api::deleteRevokedChatInviteLink &to, JsonObject &from);
+
+Status from_json(td_api::deleteSavedCredentials &to, JsonObject &from);
+
+Status from_json(td_api::deleteSavedOrderInfo &to, JsonObject &from);
+
+Status from_json(td_api::destroy &to, JsonObject &from);
+
+Status from_json(td_api::disableAllSupergroupUsernames &to, JsonObject &from);
+
+Status from_json(td_api::disableProxy &to, JsonObject &from);
+
+Status from_json(td_api::discardCall &to, JsonObject &from);
+
+Status from_json(td_api::disconnectAllWebsites &to, JsonObject &from);
+
+Status from_json(td_api::disconnectWebsite &to, JsonObject &from);
+
+Status from_json(td_api::downloadFile &to, JsonObject &from);
+
+Status from_json(td_api::editChatFilter &to, JsonObject &from);
+
+Status from_json(td_api::editChatInviteLink &to, JsonObject &from);
+
+Status from_json(td_api::editCustomLanguagePackInfo &to, JsonObject &from);
+
+Status from_json(td_api::editForumTopic &to, JsonObject &from);
+
+Status from_json(td_api::editInlineMessageCaption &to, JsonObject &from);
+
+Status from_json(td_api::editInlineMessageLiveLocation &to, JsonObject &from);
+
+Status from_json(td_api::editInlineMessageMedia &to, JsonObject &from);
+
+Status from_json(td_api::editInlineMessageReplyMarkup &to, JsonObject &from);
+
+Status from_json(td_api::editInlineMessageText &to, JsonObject &from);
+
+Status from_json(td_api::editMessageCaption &to, JsonObject &from);
+
+Status from_json(td_api::editMessageLiveLocation &to, JsonObject &from);
+
+Status from_json(td_api::editMessageMedia &to, JsonObject &from);
+
+Status from_json(td_api::editMessageReplyMarkup &to, JsonObject &from);
+
+Status from_json(td_api::editMessageSchedulingState &to, JsonObject &from);
+
+Status from_json(td_api::editMessageText &to, JsonObject &from);
+
+Status from_json(td_api::editProxy &to, JsonObject &from);
+
+Status from_json(td_api::enableProxy &to, JsonObject &from);
+
+Status from_json(td_api::endGroupCall &to, JsonObject &from);
+
+Status from_json(td_api::endGroupCallRecording &to, JsonObject &from);
+
+Status from_json(td_api::endGroupCallScreenSharing &to, JsonObject &from);
+
+Status from_json(td_api::finishFileGeneration &to, JsonObject &from);
+
+Status from_json(td_api::forwardMessages &to, JsonObject &from);
+
+Status from_json(td_api::getAccountTtl &to, JsonObject &from);
+
+Status from_json(td_api::getActiveLiveLocationMessages &to, JsonObject &from);
+
+Status from_json(td_api::getActiveSessions &to, JsonObject &from);
+
+Status from_json(td_api::getAllPassportElements &to, JsonObject &from);
+
+Status from_json(td_api::getAnimatedEmoji &to, JsonObject &from);
+
+Status from_json(td_api::getApplicationConfig &to, JsonObject &from);
+
+Status from_json(td_api::getApplicationDownloadLink &to, JsonObject &from);
+
+Status from_json(td_api::getArchivedStickerSets &to, JsonObject &from);
+
+Status from_json(td_api::getAttachedStickerSets &to, JsonObject &from);
+
+Status from_json(td_api::getAttachmentMenuBot &to, JsonObject &from);
+
+Status from_json(td_api::getAuthorizationState &to, JsonObject &from);
+
+Status from_json(td_api::getAutoDownloadSettingsPresets &to, JsonObject &from);
+
+Status from_json(td_api::getBackgroundUrl &to, JsonObject &from);
+
+Status from_json(td_api::getBackgrounds &to, JsonObject &from);
+
+Status from_json(td_api::getBankCardInfo &to, JsonObject &from);
+
+Status from_json(td_api::getBasicGroup &to, JsonObject &from);
+
+Status from_json(td_api::getBasicGroupFullInfo &to, JsonObject &from);
+
+Status from_json(td_api::getBlockedMessageSenders &to, JsonObject &from);
+
+Status from_json(td_api::getCallbackQueryAnswer &to, JsonObject &from);
+
+Status from_json(td_api::getCallbackQueryMessage &to, JsonObject &from);
+
+Status from_json(td_api::getChat &to, JsonObject &from);
+
+Status from_json(td_api::getChatAdministrators &to, JsonObject &from);
+
+Status from_json(td_api::getChatAvailableMessageSenders &to, JsonObject &from);
+
+Status from_json(td_api::getChatEventLog &to, JsonObject &from);
+
+Status from_json(td_api::getChatFilter &to, JsonObject &from);
+
+Status from_json(td_api::getChatFilterDefaultIconName &to, JsonObject &from);
+
+Status from_json(td_api::getChatHistory &to, JsonObject &from);
+
+Status from_json(td_api::getChatInviteLink &to, JsonObject &from);
+
+Status from_json(td_api::getChatInviteLinkCounts &to, JsonObject &from);
+
+Status from_json(td_api::getChatInviteLinkMembers &to, JsonObject &from);
+
+Status from_json(td_api::getChatInviteLinks &to, JsonObject &from);
+
+Status from_json(td_api::getChatJoinRequests &to, JsonObject &from);
+
+Status from_json(td_api::getChatListsToAddChat &to, JsonObject &from);
+
+Status from_json(td_api::getChatMember &to, JsonObject &from);
+
+Status from_json(td_api::getChatMessageByDate &to, JsonObject &from);
+
+Status from_json(td_api::getChatMessageCalendar &to, JsonObject &from);
+
+Status from_json(td_api::getChatMessageCount &to, JsonObject &from);
+
+Status from_json(td_api::getChatMessagePosition &to, JsonObject &from);
+
+Status from_json(td_api::getChatNotificationSettingsExceptions &to, JsonObject &from);
+
+Status from_json(td_api::getChatPinnedMessage &to, JsonObject &from);
+
+Status from_json(td_api::getChatScheduledMessages &to, JsonObject &from);
+
+Status from_json(td_api::getChatSparseMessagePositions &to, JsonObject &from);
+
+Status from_json(td_api::getChatSponsoredMessages &to, JsonObject &from);
+
+Status from_json(td_api::getChatStatistics &to, JsonObject &from);
+
+Status from_json(td_api::getChats &to, JsonObject &from);
+
+Status from_json(td_api::getCommands &to, JsonObject &from);
+
+Status from_json(td_api::getConnectedWebsites &to, JsonObject &from);
+
+Status from_json(td_api::getContacts &to, JsonObject &from);
+
+Status from_json(td_api::getCountries &to, JsonObject &from);
+
+Status from_json(td_api::getCountryCode &to, JsonObject &from);
+
+Status from_json(td_api::getCreatedPublicChats &to, JsonObject &from);
+
+Status from_json(td_api::getCurrentState &to, JsonObject &from);
+
+Status from_json(td_api::getCustomEmojiReactionAnimations &to, JsonObject &from);
+
+Status from_json(td_api::getCustomEmojiStickers &to, JsonObject &from);
+
+Status from_json(td_api::getDatabaseStatistics &to, JsonObject &from);
+
+Status from_json(td_api::getDeepLinkInfo &to, JsonObject &from);
+
+Status from_json(td_api::getDefaultEmojiStatuses &to, JsonObject &from);
+
+Status from_json(td_api::getEmojiReaction &to, JsonObject &from);
+
+Status from_json(td_api::getEmojiSuggestionsUrl &to, JsonObject &from);
+
+Status from_json(td_api::getExternalLink &to, JsonObject &from);
+
+Status from_json(td_api::getExternalLinkInfo &to, JsonObject &from);
+
+Status from_json(td_api::getFavoriteStickers &to, JsonObject &from);
+
+Status from_json(td_api::getFile &to, JsonObject &from);
+
+Status from_json(td_api::getFileDownloadedPrefixSize &to, JsonObject &from);
+
+Status from_json(td_api::getFileExtension &to, JsonObject &from);
+
+Status from_json(td_api::getFileMimeType &to, JsonObject &from);
+
+Status from_json(td_api::getForumTopicDefaultIcons &to, JsonObject &from);
+
+Status from_json(td_api::getGameHighScores &to, JsonObject &from);
+
+Status from_json(td_api::getGroupCall &to, JsonObject &from);
+
+Status from_json(td_api::getGroupCallInviteLink &to, JsonObject &from);
+
+Status from_json(td_api::getGroupCallStreamSegment &to, JsonObject &from);
+
+Status from_json(td_api::getGroupCallStreams &to, JsonObject &from);
+
+Status from_json(td_api::getGroupsInCommon &to, JsonObject &from);
+
+Status from_json(td_api::getImportedContactCount &to, JsonObject &from);
+
+Status from_json(td_api::getInactiveSupergroupChats &to, JsonObject &from);
+
+Status from_json(td_api::getInlineGameHighScores &to, JsonObject &from);
+
+Status from_json(td_api::getInlineQueryResults &to, JsonObject &from);
+
+Status from_json(td_api::getInstalledStickerSets &to, JsonObject &from);
+
+Status from_json(td_api::getInternalLinkType &to, JsonObject &from);
+
+Status from_json(td_api::getJsonString &to, JsonObject &from);
+
+Status from_json(td_api::getJsonValue &to, JsonObject &from);
+
+Status from_json(td_api::getLanguagePackInfo &to, JsonObject &from);
+
+Status from_json(td_api::getLanguagePackString &to, JsonObject &from);
+
+Status from_json(td_api::getLanguagePackStrings &to, JsonObject &from);
+
+Status from_json(td_api::getLocalizationTargetInfo &to, JsonObject &from);
+
+Status from_json(td_api::getLogStream &to, JsonObject &from);
+
+Status from_json(td_api::getLogTagVerbosityLevel &to, JsonObject &from);
+
+Status from_json(td_api::getLogTags &to, JsonObject &from);
+
+Status from_json(td_api::getLogVerbosityLevel &to, JsonObject &from);
+
+Status from_json(td_api::getLoginUrl &to, JsonObject &from);
+
+Status from_json(td_api::getLoginUrlInfo &to, JsonObject &from);
+
+Status from_json(td_api::getMapThumbnailFile &to, JsonObject &from);
+
+Status from_json(td_api::getMarkdownText &to, JsonObject &from);
+
+Status from_json(td_api::getMe &to, JsonObject &from);
+
+Status from_json(td_api::getMenuButton &to, JsonObject &from);
+
+Status from_json(td_api::getMessage &to, JsonObject &from);
+
+Status from_json(td_api::getMessageAddedReactions &to, JsonObject &from);
+
+Status from_json(td_api::getMessageAvailableReactions &to, JsonObject &from);
+
+Status from_json(td_api::getMessageEmbeddingCode &to, JsonObject &from);
+
+Status from_json(td_api::getMessageFileType &to, JsonObject &from);
+
+Status from_json(td_api::getMessageImportConfirmationText &to, JsonObject &from);
+
+Status from_json(td_api::getMessageLink &to, JsonObject &from);
+
+Status from_json(td_api::getMessageLinkInfo &to, JsonObject &from);
+
+Status from_json(td_api::getMessageLocally &to, JsonObject &from);
+
+Status from_json(td_api::getMessagePublicForwards &to, JsonObject &from);
+
+Status from_json(td_api::getMessageStatistics &to, JsonObject &from);
+
+Status from_json(td_api::getMessageThread &to, JsonObject &from);
+
+Status from_json(td_api::getMessageThreadHistory &to, JsonObject &from);
+
+Status from_json(td_api::getMessageViewers &to, JsonObject &from);
+
+Status from_json(td_api::getMessages &to, JsonObject &from);
+
+Status from_json(td_api::getNetworkStatistics &to, JsonObject &from);
+
+Status from_json(td_api::getOption &to, JsonObject &from);
+
+Status from_json(td_api::getPassportAuthorizationForm &to, JsonObject &from);
+
+Status from_json(td_api::getPassportAuthorizationFormAvailableElements &to, JsonObject &from);
+
+Status from_json(td_api::getPassportElement &to, JsonObject &from);
+
+Status from_json(td_api::getPasswordState &to, JsonObject &from);
+
+Status from_json(td_api::getPaymentForm &to, JsonObject &from);
+
+Status from_json(td_api::getPaymentReceipt &to, JsonObject &from);
+
+Status from_json(td_api::getPhoneNumberInfo &to, JsonObject &from);
+
+Status from_json(td_api::getPhoneNumberInfoSync &to, JsonObject &from);
+
+Status from_json(td_api::getPollVoters &to, JsonObject &from);
+
+Status from_json(td_api::getPreferredCountryLanguage &to, JsonObject &from);
+
+Status from_json(td_api::getPremiumFeatures &to, JsonObject &from);
+
+Status from_json(td_api::getPremiumLimit &to, JsonObject &from);
+
+Status from_json(td_api::getPremiumState &to, JsonObject &from);
+
+Status from_json(td_api::getPremiumStickerExamples &to, JsonObject &from);
+
+Status from_json(td_api::getPremiumStickers &to, JsonObject &from);
+
+Status from_json(td_api::getProxies &to, JsonObject &from);
+
+Status from_json(td_api::getProxyLink &to, JsonObject &from);
+
+Status from_json(td_api::getPushReceiverId &to, JsonObject &from);
+
+Status from_json(td_api::getRecentEmojiStatuses &to, JsonObject &from);
+
+Status from_json(td_api::getRecentInlineBots &to, JsonObject &from);
+
+Status from_json(td_api::getRecentStickers &to, JsonObject &from);
+
+Status from_json(td_api::getRecentlyOpenedChats &to, JsonObject &from);
+
+Status from_json(td_api::getRecentlyVisitedTMeUrls &to, JsonObject &from);
+
+Status from_json(td_api::getRecommendedChatFilters &to, JsonObject &from);
+
+Status from_json(td_api::getRecoveryEmailAddress &to, JsonObject &from);
+
+Status from_json(td_api::getRemoteFile &to, JsonObject &from);
+
+Status from_json(td_api::getRepliedMessage &to, JsonObject &from);
+
+Status from_json(td_api::getSavedAnimations &to, JsonObject &from);
+
+Status from_json(td_api::getSavedNotificationSound &to, JsonObject &from);
+
+Status from_json(td_api::getSavedNotificationSounds &to, JsonObject &from);
+
+Status from_json(td_api::getSavedOrderInfo &to, JsonObject &from);
+
+Status from_json(td_api::getScopeNotificationSettings &to, JsonObject &from);
+
+Status from_json(td_api::getSecretChat &to, JsonObject &from);
+
+Status from_json(td_api::getStatisticalGraph &to, JsonObject &from);
+
+Status from_json(td_api::getStickerEmojis &to, JsonObject &from);
+
+Status from_json(td_api::getStickerSet &to, JsonObject &from);
+
+Status from_json(td_api::getStickers &to, JsonObject &from);
+
+Status from_json(td_api::getStorageStatistics &to, JsonObject &from);
+
+Status from_json(td_api::getStorageStatisticsFast &to, JsonObject &from);
+
+Status from_json(td_api::getSuggestedFileName &to, JsonObject &from);
+
+Status from_json(td_api::getSuggestedStickerSetName &to, JsonObject &from);
+
+Status from_json(td_api::getSuitableDiscussionChats &to, JsonObject &from);
+
+Status from_json(td_api::getSupergroup &to, JsonObject &from);
+
+Status from_json(td_api::getSupergroupFullInfo &to, JsonObject &from);
+
+Status from_json(td_api::getSupergroupMembers &to, JsonObject &from);
+
+Status from_json(td_api::getSupportUser &to, JsonObject &from);
+
+Status from_json(td_api::getTemporaryPasswordState &to, JsonObject &from);
+
+Status from_json(td_api::getTextEntities &to, JsonObject &from);
+
+Status from_json(td_api::getThemeParametersJsonString &to, JsonObject &from);
+
+Status from_json(td_api::getThemedEmojiStatuses &to, JsonObject &from);
+
+Status from_json(td_api::getTopChats &to, JsonObject &from);
+
+Status from_json(td_api::getTrendingStickerSets &to, JsonObject &from);
+
+Status from_json(td_api::getUser &to, JsonObject &from);
+
+Status from_json(td_api::getUserFullInfo &to, JsonObject &from);
+
+Status from_json(td_api::getUserPrivacySettingRules &to, JsonObject &from);
+
+Status from_json(td_api::getUserProfilePhotos &to, JsonObject &from);
+
+Status from_json(td_api::getUserSupportInfo &to, JsonObject &from);
+
+Status from_json(td_api::getVideoChatAvailableParticipants &to, JsonObject &from);
+
+Status from_json(td_api::getVideoChatRtmpUrl &to, JsonObject &from);
+
+Status from_json(td_api::getWebAppUrl &to, JsonObject &from);
+
+Status from_json(td_api::getWebPageInstantView &to, JsonObject &from);
+
+Status from_json(td_api::getWebPagePreview &to, JsonObject &from);
+
+Status from_json(td_api::hideSuggestedAction &to, JsonObject &from);
+
+Status from_json(td_api::importContacts &to, JsonObject &from);
+
+Status from_json(td_api::importMessages &to, JsonObject &from);
+
+Status from_json(td_api::inviteGroupCallParticipants &to, JsonObject &from);
+
+Status from_json(td_api::joinChat &to, JsonObject &from);
+
+Status from_json(td_api::joinChatByInviteLink &to, JsonObject &from);
+
+Status from_json(td_api::joinGroupCall &to, JsonObject &from);
+
+Status from_json(td_api::leaveChat &to, JsonObject &from);
+
+Status from_json(td_api::leaveGroupCall &to, JsonObject &from);
+
+Status from_json(td_api::loadChats &to, JsonObject &from);
+
+Status from_json(td_api::loadGroupCallParticipants &to, JsonObject &from);
+
+Status from_json(td_api::logOut &to, JsonObject &from);
+
+Status from_json(td_api::openChat &to, JsonObject &from);
+
+Status from_json(td_api::openMessageContent &to, JsonObject &from);
+
+Status from_json(td_api::openWebApp &to, JsonObject &from);
+
+Status from_json(td_api::optimizeStorage &to, JsonObject &from);
+
+Status from_json(td_api::parseMarkdown &to, JsonObject &from);
+
+Status from_json(td_api::parseTextEntities &to, JsonObject &from);
+
+Status from_json(td_api::pinChatMessage &to, JsonObject &from);
+
+Status from_json(td_api::pingProxy &to, JsonObject &from);
+
+Status from_json(td_api::preliminaryUploadFile &to, JsonObject &from);
+
+Status from_json(td_api::processChatJoinRequest &to, JsonObject &from);
+
+Status from_json(td_api::processChatJoinRequests &to, JsonObject &from);
+
+Status from_json(td_api::processPushNotification &to, JsonObject &from);
+
+Status from_json(td_api::rateSpeechRecognition &to, JsonObject &from);
+
+Status from_json(td_api::readAllChatMentions &to, JsonObject &from);
+
+Status from_json(td_api::readAllChatReactions &to, JsonObject &from);
+
+Status from_json(td_api::readAllMessageThreadMentions &to, JsonObject &from);
+
+Status from_json(td_api::readAllMessageThreadReactions &to, JsonObject &from);
+
+Status from_json(td_api::readFilePart &to, JsonObject &from);
+
+Status from_json(td_api::recognizeSpeech &to, JsonObject &from);
+
+Status from_json(td_api::recoverAuthenticationPassword &to, JsonObject &from);
+
+Status from_json(td_api::recoverPassword &to, JsonObject &from);
+
+Status from_json(td_api::registerDevice &to, JsonObject &from);
+
+Status from_json(td_api::registerUser &to, JsonObject &from);
+
+Status from_json(td_api::removeAllFilesFromDownloads &to, JsonObject &from);
+
+Status from_json(td_api::removeBackground &to, JsonObject &from);
+
+Status from_json(td_api::removeChatActionBar &to, JsonObject &from);
+
+Status from_json(td_api::removeContacts &to, JsonObject &from);
+
+Status from_json(td_api::removeFavoriteSticker &to, JsonObject &from);
+
+Status from_json(td_api::removeFileFromDownloads &to, JsonObject &from);
+
+Status from_json(td_api::removeMessageReaction &to, JsonObject &from);
+
+Status from_json(td_api::removeNotification &to, JsonObject &from);
+
+Status from_json(td_api::removeNotificationGroup &to, JsonObject &from);
+
+Status from_json(td_api::removeProxy &to, JsonObject &from);
+
+Status from_json(td_api::removeRecentHashtag &to, JsonObject &from);
+
+Status from_json(td_api::removeRecentSticker &to, JsonObject &from);
+
+Status from_json(td_api::removeRecentlyFoundChat &to, JsonObject &from);
+
+Status from_json(td_api::removeSavedAnimation &to, JsonObject &from);
+
+Status from_json(td_api::removeSavedNotificationSound &to, JsonObject &from);
+
+Status from_json(td_api::removeStickerFromSet &to, JsonObject &from);
+
+Status from_json(td_api::removeTopChat &to, JsonObject &from);
+
+Status from_json(td_api::reorderActiveUsernames &to, JsonObject &from);
+
+Status from_json(td_api::reorderChatFilters &to, JsonObject &from);
+
+Status from_json(td_api::reorderInstalledStickerSets &to, JsonObject &from);
+
+Status from_json(td_api::reorderSupergroupActiveUsernames &to, JsonObject &from);
+
+Status from_json(td_api::replacePrimaryChatInviteLink &to, JsonObject &from);
+
+Status from_json(td_api::replaceVideoChatRtmpUrl &to, JsonObject &from);
+
+Status from_json(td_api::reportChat &to, JsonObject &from);
+
+Status from_json(td_api::reportChatPhoto &to, JsonObject &from);
+
+Status from_json(td_api::reportMessageReactions &to, JsonObject &from);
+
+Status from_json(td_api::reportSupergroupSpam &to, JsonObject &from);
+
+Status from_json(td_api::requestAuthenticationPasswordRecovery &to, JsonObject &from);
+
+Status from_json(td_api::requestPasswordRecovery &to, JsonObject &from);
+
+Status from_json(td_api::requestQrCodeAuthentication &to, JsonObject &from);
+
+Status from_json(td_api::resendAuthenticationCode &to, JsonObject &from);
+
+Status from_json(td_api::resendChangePhoneNumberCode &to, JsonObject &from);
+
+Status from_json(td_api::resendEmailAddressVerificationCode &to, JsonObject &from);
+
+Status from_json(td_api::resendLoginEmailAddressCode &to, JsonObject &from);
+
+Status from_json(td_api::resendMessages &to, JsonObject &from);
+
+Status from_json(td_api::resendPhoneNumberConfirmationCode &to, JsonObject &from);
+
+Status from_json(td_api::resendPhoneNumberVerificationCode &to, JsonObject &from);
+
+Status from_json(td_api::resendRecoveryEmailAddressCode &to, JsonObject &from);
+
+Status from_json(td_api::resetAllNotificationSettings &to, JsonObject &from);
+
+Status from_json(td_api::resetBackgrounds &to, JsonObject &from);
+
+Status from_json(td_api::resetNetworkStatistics &to, JsonObject &from);
+
+Status from_json(td_api::resetPassword &to, JsonObject &from);
+
+Status from_json(td_api::revokeChatInviteLink &to, JsonObject &from);
+
+Status from_json(td_api::revokeGroupCallInviteLink &to, JsonObject &from);
+
+Status from_json(td_api::saveApplicationLogEvent &to, JsonObject &from);
+
+Status from_json(td_api::searchBackground &to, JsonObject &from);
+
+Status from_json(td_api::searchCallMessages &to, JsonObject &from);
+
+Status from_json(td_api::searchChatMembers &to, JsonObject &from);
+
+Status from_json(td_api::searchChatMessages &to, JsonObject &from);
+
+Status from_json(td_api::searchChatRecentLocationMessages &to, JsonObject &from);
+
+Status from_json(td_api::searchChats &to, JsonObject &from);
+
+Status from_json(td_api::searchChatsNearby &to, JsonObject &from);
+
+Status from_json(td_api::searchChatsOnServer &to, JsonObject &from);
+
+Status from_json(td_api::searchContacts &to, JsonObject &from);
+
+Status from_json(td_api::searchEmojis &to, JsonObject &from);
+
+Status from_json(td_api::searchFileDownloads &to, JsonObject &from);
+
+Status from_json(td_api::searchHashtags &to, JsonObject &from);
+
+Status from_json(td_api::searchInstalledStickerSets &to, JsonObject &from);
+
+Status from_json(td_api::searchMessages &to, JsonObject &from);
+
+Status from_json(td_api::searchOutgoingDocumentMessages &to, JsonObject &from);
+
+Status from_json(td_api::searchPublicChat &to, JsonObject &from);
+
+Status from_json(td_api::searchPublicChats &to, JsonObject &from);
+
+Status from_json(td_api::searchSecretMessages &to, JsonObject &from);
+
+Status from_json(td_api::searchStickerSet &to, JsonObject &from);
+
+Status from_json(td_api::searchStickerSets &to, JsonObject &from);
+
+Status from_json(td_api::searchStickers &to, JsonObject &from);
+
+Status from_json(td_api::searchUserByPhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::sendBotStartMessage &to, JsonObject &from);
+
+Status from_json(td_api::sendCallDebugInformation &to, JsonObject &from);
+
+Status from_json(td_api::sendCallLog &to, JsonObject &from);
+
+Status from_json(td_api::sendCallRating &to, JsonObject &from);
+
+Status from_json(td_api::sendCallSignalingData &to, JsonObject &from);
+
+Status from_json(td_api::sendChatAction &to, JsonObject &from);
+
+Status from_json(td_api::sendChatScreenshotTakenNotification &to, JsonObject &from);
+
+Status from_json(td_api::sendCustomRequest &to, JsonObject &from);
+
+Status from_json(td_api::sendEmailAddressVerificationCode &to, JsonObject &from);
+
+Status from_json(td_api::sendInlineQueryResultMessage &to, JsonObject &from);
+
+Status from_json(td_api::sendMessage &to, JsonObject &from);
+
+Status from_json(td_api::sendMessageAlbum &to, JsonObject &from);
+
+Status from_json(td_api::sendPassportAuthorizationForm &to, JsonObject &from);
+
+Status from_json(td_api::sendPaymentForm &to, JsonObject &from);
+
+Status from_json(td_api::sendPhoneNumberConfirmationCode &to, JsonObject &from);
+
+Status from_json(td_api::sendPhoneNumberVerificationCode &to, JsonObject &from);
+
+Status from_json(td_api::sendWebAppData &to, JsonObject &from);
+
+Status from_json(td_api::setAccountTtl &to, JsonObject &from);
+
+Status from_json(td_api::setAlarm &to, JsonObject &from);
+
+Status from_json(td_api::setAuthenticationEmailAddress &to, JsonObject &from);
+
+Status from_json(td_api::setAuthenticationPhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::setAutoDownloadSettings &to, JsonObject &from);
+
+Status from_json(td_api::setBackground &to, JsonObject &from);
+
+Status from_json(td_api::setBio &to, JsonObject &from);
+
+Status from_json(td_api::setBotUpdatesStatus &to, JsonObject &from);
+
+Status from_json(td_api::setChatAvailableReactions &to, JsonObject &from);
+
+Status from_json(td_api::setChatClientData &to, JsonObject &from);
+
+Status from_json(td_api::setChatDescription &to, JsonObject &from);
+
+Status from_json(td_api::setChatDiscussionGroup &to, JsonObject &from);
+
+Status from_json(td_api::setChatDraftMessage &to, JsonObject &from);
+
+Status from_json(td_api::setChatLocation &to, JsonObject &from);
+
+Status from_json(td_api::setChatMemberStatus &to, JsonObject &from);
+
+Status from_json(td_api::setChatMessageSender &to, JsonObject &from);
+
+Status from_json(td_api::setChatMessageTtl &to, JsonObject &from);
+
+Status from_json(td_api::setChatNotificationSettings &to, JsonObject &from);
+
+Status from_json(td_api::setChatPermissions &to, JsonObject &from);
+
+Status from_json(td_api::setChatPhoto &to, JsonObject &from);
+
+Status from_json(td_api::setChatSlowModeDelay &to, JsonObject &from);
+
+Status from_json(td_api::setChatTheme &to, JsonObject &from);
+
+Status from_json(td_api::setChatTitle &to, JsonObject &from);
+
+Status from_json(td_api::setCommands &to, JsonObject &from);
+
+Status from_json(td_api::setCustomLanguagePack &to, JsonObject &from);
+
+Status from_json(td_api::setCustomLanguagePackString &to, JsonObject &from);
+
+Status from_json(td_api::setDatabaseEncryptionKey &to, JsonObject &from);
+
+Status from_json(td_api::setDefaultChannelAdministratorRights &to, JsonObject &from);
+
+Status from_json(td_api::setDefaultGroupAdministratorRights &to, JsonObject &from);
+
+Status from_json(td_api::setDefaultReactionType &to, JsonObject &from);
+
+Status from_json(td_api::setEmojiStatus &to, JsonObject &from);
+
+Status from_json(td_api::setFileGenerationProgress &to, JsonObject &from);
+
+Status from_json(td_api::setGameScore &to, JsonObject &from);
+
+Status from_json(td_api::setGroupCallParticipantIsSpeaking &to, JsonObject &from);
+
+Status from_json(td_api::setGroupCallParticipantVolumeLevel &to, JsonObject &from);
+
+Status from_json(td_api::setGroupCallTitle &to, JsonObject &from);
+
+Status from_json(td_api::setInactiveSessionTtl &to, JsonObject &from);
+
+Status from_json(td_api::setInlineGameScore &to, JsonObject &from);
+
+Status from_json(td_api::setLocation &to, JsonObject &from);
+
+Status from_json(td_api::setLogStream &to, JsonObject &from);
+
+Status from_json(td_api::setLogTagVerbosityLevel &to, JsonObject &from);
+
+Status from_json(td_api::setLogVerbosityLevel &to, JsonObject &from);
+
+Status from_json(td_api::setLoginEmailAddress &to, JsonObject &from);
+
+Status from_json(td_api::setMenuButton &to, JsonObject &from);
+
+Status from_json(td_api::setName &to, JsonObject &from);
+
+Status from_json(td_api::setNetworkType &to, JsonObject &from);
+
+Status from_json(td_api::setOption &to, JsonObject &from);
+
+Status from_json(td_api::setPassportElement &to, JsonObject &from);
+
+Status from_json(td_api::setPassportElementErrors &to, JsonObject &from);
+
+Status from_json(td_api::setPassword &to, JsonObject &from);
+
+Status from_json(td_api::setPinnedChats &to, JsonObject &from);
+
+Status from_json(td_api::setPollAnswer &to, JsonObject &from);
+
+Status from_json(td_api::setProfilePhoto &to, JsonObject &from);
+
+Status from_json(td_api::setRecoveryEmailAddress &to, JsonObject &from);
+
+Status from_json(td_api::setScopeNotificationSettings &to, JsonObject &from);
+
+Status from_json(td_api::setStickerPositionInSet &to, JsonObject &from);
+
+Status from_json(td_api::setStickerSetThumbnail &to, JsonObject &from);
+
+Status from_json(td_api::setSupergroupStickerSet &to, JsonObject &from);
+
+Status from_json(td_api::setSupergroupUsername &to, JsonObject &from);
+
+Status from_json(td_api::setTdlibParameters &to, JsonObject &from);
+
+Status from_json(td_api::setUserPrivacySettingRules &to, JsonObject &from);
+
+Status from_json(td_api::setUserSupportInfo &to, JsonObject &from);
+
+Status from_json(td_api::setUsername &to, JsonObject &from);
+
+Status from_json(td_api::setVideoChatDefaultParticipant &to, JsonObject &from);
+
+Status from_json(td_api::sharePhoneNumber &to, JsonObject &from);
+
+Status from_json(td_api::startGroupCallRecording &to, JsonObject &from);
+
+Status from_json(td_api::startGroupCallScreenSharing &to, JsonObject &from);
+
+Status from_json(td_api::startScheduledGroupCall &to, JsonObject &from);
+
+Status from_json(td_api::stopPoll &to, JsonObject &from);
+
+Status from_json(td_api::synchronizeLanguagePack &to, JsonObject &from);
+
+Status from_json(td_api::terminateAllOtherSessions &to, JsonObject &from);
+
+Status from_json(td_api::terminateSession &to, JsonObject &from);
+
+Status from_json(td_api::testCallBytes &to, JsonObject &from);
+
+Status from_json(td_api::testCallEmpty &to, JsonObject &from);
+
+Status from_json(td_api::testCallString &to, JsonObject &from);
+
+Status from_json(td_api::testCallVectorInt &to, JsonObject &from);
+
+Status from_json(td_api::testCallVectorIntObject &to, JsonObject &from);
+
+Status from_json(td_api::testCallVectorString &to, JsonObject &from);
+
+Status from_json(td_api::testCallVectorStringObject &to, JsonObject &from);
+
+Status from_json(td_api::testGetDifference &to, JsonObject &from);
+
+Status from_json(td_api::testNetwork &to, JsonObject &from);
+
+Status from_json(td_api::testProxy &to, JsonObject &from);
+
+Status from_json(td_api::testReturnError &to, JsonObject &from);
+
+Status from_json(td_api::testSquareInt &to, JsonObject &from);
+
+Status from_json(td_api::testUseUpdate &to, JsonObject &from);
+
+Status from_json(td_api::toggleAllDownloadsArePaused &to, JsonObject &from);
+
+Status from_json(td_api::toggleBotIsAddedToAttachmentMenu &to, JsonObject &from);
+
+Status from_json(td_api::toggleChatDefaultDisableNotification &to, JsonObject &from);
+
+Status from_json(td_api::toggleChatHasProtectedContent &to, JsonObject &from);
+
+Status from_json(td_api::toggleChatIsMarkedAsUnread &to, JsonObject &from);
+
+Status from_json(td_api::toggleChatIsPinned &to, JsonObject &from);
+
+Status from_json(td_api::toggleDownloadIsPaused &to, JsonObject &from);
+
+Status from_json(td_api::toggleForumTopicIsClosed &to, JsonObject &from);
+
+Status from_json(td_api::toggleGroupCallEnabledStartNotification &to, JsonObject &from);
+
+Status from_json(td_api::toggleGroupCallIsMyVideoEnabled &to, JsonObject &from);
+
+Status from_json(td_api::toggleGroupCallIsMyVideoPaused &to, JsonObject &from);
+
+Status from_json(td_api::toggleGroupCallMuteNewParticipants &to, JsonObject &from);
+
+Status from_json(td_api::toggleGroupCallParticipantIsHandRaised &to, JsonObject &from);
+
+Status from_json(td_api::toggleGroupCallParticipantIsMuted &to, JsonObject &from);
+
+Status from_json(td_api::toggleGroupCallScreenSharingIsPaused &to, JsonObject &from);
+
+Status from_json(td_api::toggleMessageSenderIsBlocked &to, JsonObject &from);
+
+Status from_json(td_api::toggleSessionCanAcceptCalls &to, JsonObject &from);
+
+Status from_json(td_api::toggleSessionCanAcceptSecretChats &to, JsonObject &from);
+
+Status from_json(td_api::toggleSupergroupIsAllHistoryAvailable &to, JsonObject &from);
+
+Status from_json(td_api::toggleSupergroupIsBroadcastGroup &to, JsonObject &from);
+
+Status from_json(td_api::toggleSupergroupIsForum &to, JsonObject &from);
+
+Status from_json(td_api::toggleSupergroupJoinByRequest &to, JsonObject &from);
+
+Status from_json(td_api::toggleSupergroupJoinToSendMessages &to, JsonObject &from);
+
+Status from_json(td_api::toggleSupergroupSignMessages &to, JsonObject &from);
+
+Status from_json(td_api::toggleSupergroupUsernameIsActive &to, JsonObject &from);
+
+Status from_json(td_api::toggleUsernameIsActive &to, JsonObject &from);
+
+Status from_json(td_api::transferChatOwnership &to, JsonObject &from);
+
+Status from_json(td_api::translateText &to, JsonObject &from);
+
+Status from_json(td_api::unpinAllChatMessages &to, JsonObject &from);
+
+Status from_json(td_api::unpinAllMessageThreadMessages &to, JsonObject &from);
+
+Status from_json(td_api::unpinChatMessage &to, JsonObject &from);
+
+Status from_json(td_api::upgradeBasicGroupChatToSupergroupChat &to, JsonObject &from);
+
+Status from_json(td_api::uploadStickerFile &to, JsonObject &from);
+
+Status from_json(td_api::validateOrderInfo &to, JsonObject &from);
+
+Status from_json(td_api::viewMessages &to, JsonObject &from);
+
+Status from_json(td_api::viewPremiumFeature &to, JsonObject &from);
+
+Status from_json(td_api::viewTrendingStickerSets &to, JsonObject &from);
+
+Status from_json(td_api::writeGeneratedFilePart &to, JsonObject &from);
+
+void to_json(JsonValueScope &jv, const td_api::accountTtl &object);
+
+void to_json(JsonValueScope &jv, const td_api::addedReaction &object);
+
+void to_json(JsonValueScope &jv, const td_api::addedReactions &object);
+
+void to_json(JsonValueScope &jv, const td_api::address &object);
+
+void to_json(JsonValueScope &jv, const td_api::animatedChatPhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::animatedEmoji &object);
+
+void to_json(JsonValueScope &jv, const td_api::animation &object);
+
+void to_json(JsonValueScope &jv, const td_api::animations &object);
+
+void to_json(JsonValueScope &jv, const td_api::attachmentMenuBot &object);
+
+void to_json(JsonValueScope &jv, const td_api::attachmentMenuBotColor &object);
+
+void to_json(JsonValueScope &jv, const td_api::audio &object);
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::AuthenticationCodeType &object);
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeTelegramMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeSms &object);
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeCall &object);
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeFlashCall &object);
+
+void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeMissedCall &object);
+
+void to_json(JsonValueScope &jv, const td_api::AuthorizationState &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitTdlibParameters &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitPhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitEmailAddress &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitEmailCode &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitCode &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitOtherDeviceConfirmation &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitRegistration &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitPassword &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateReady &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateLoggingOut &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateClosing &object);
+
+void to_json(JsonValueScope &jv, const td_api::authorizationStateClosed &object);
+
+void to_json(JsonValueScope &jv, const td_api::autoDownloadSettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::autoDownloadSettingsPresets &object);
+
+void to_json(JsonValueScope &jv, const td_api::availableReaction &object);
+
+void to_json(JsonValueScope &jv, const td_api::availableReactions &object);
+
+void to_json(JsonValueScope &jv, const td_api::background &object);
+
+void to_json(JsonValueScope &jv, const td_api::BackgroundFill &object);
+
+void to_json(JsonValueScope &jv, const td_api::backgroundFillSolid &object);
+
+void to_json(JsonValueScope &jv, const td_api::backgroundFillGradient &object);
+
+void to_json(JsonValueScope &jv, const td_api::backgroundFillFreeformGradient &object);
+
+void to_json(JsonValueScope &jv, const td_api::BackgroundType &object);
+
+void to_json(JsonValueScope &jv, const td_api::backgroundTypeWallpaper &object);
+
+void to_json(JsonValueScope &jv, const td_api::backgroundTypePattern &object);
+
+void to_json(JsonValueScope &jv, const td_api::backgroundTypeFill &object);
+
+void to_json(JsonValueScope &jv, const td_api::backgrounds &object);
+
+void to_json(JsonValueScope &jv, const td_api::bankCardActionOpenUrl &object);
+
+void to_json(JsonValueScope &jv, const td_api::bankCardInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::basicGroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::basicGroupFullInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::botCommand &object);
+
+void to_json(JsonValueScope &jv, const td_api::botCommands &object);
+
+void to_json(JsonValueScope &jv, const td_api::botInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::botMenuButton &object);
+
+void to_json(JsonValueScope &jv, const td_api::call &object);
+
+void to_json(JsonValueScope &jv, const td_api::CallDiscardReason &object);
+
+void to_json(JsonValueScope &jv, const td_api::callDiscardReasonEmpty &object);
+
+void to_json(JsonValueScope &jv, const td_api::callDiscardReasonMissed &object);
+
+void to_json(JsonValueScope &jv, const td_api::callDiscardReasonDeclined &object);
+
+void to_json(JsonValueScope &jv, const td_api::callDiscardReasonDisconnected &object);
+
+void to_json(JsonValueScope &jv, const td_api::callDiscardReasonHungUp &object);
+
+void to_json(JsonValueScope &jv, const td_api::callId &object);
+
+void to_json(JsonValueScope &jv, const td_api::callProtocol &object);
+
+void to_json(JsonValueScope &jv, const td_api::callServer &object);
+
+void to_json(JsonValueScope &jv, const td_api::CallServerType &object);
+
+void to_json(JsonValueScope &jv, const td_api::callServerTypeTelegramReflector &object);
+
+void to_json(JsonValueScope &jv, const td_api::callServerTypeWebrtc &object);
+
+void to_json(JsonValueScope &jv, const td_api::CallState &object);
+
+void to_json(JsonValueScope &jv, const td_api::callStatePending &object);
+
+void to_json(JsonValueScope &jv, const td_api::callStateExchangingKeys &object);
+
+void to_json(JsonValueScope &jv, const td_api::callStateReady &object);
+
+void to_json(JsonValueScope &jv, const td_api::callStateHangingUp &object);
+
+void to_json(JsonValueScope &jv, const td_api::callStateDiscarded &object);
+
+void to_json(JsonValueScope &jv, const td_api::callStateError &object);
+
+void to_json(JsonValueScope &jv, const td_api::callbackQueryAnswer &object);
+
+void to_json(JsonValueScope &jv, const td_api::CallbackQueryPayload &object);
+
+void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadData &object);
+
+void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadDataWithPassword &object);
+
+void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadGame &object);
+
+void to_json(JsonValueScope &jv, const td_api::CanTransferOwnershipResult &object);
+
+void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultOk &object);
+
+void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultPasswordNeeded &object);
+
+void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultPasswordTooFresh &object);
+
+void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultSessionTooFresh &object);
+
+void to_json(JsonValueScope &jv, const td_api::chat &object);
+
+void to_json(JsonValueScope &jv, const td_api::ChatAction &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionTyping &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVideo &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVideo &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVoiceNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVoiceNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionUploadingPhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionUploadingDocument &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionChoosingSticker &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionChoosingLocation &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionChoosingContact &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionStartPlayingGame &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVideoNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVideoNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionWatchingAnimations &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionCancel &object);
+
+void to_json(JsonValueScope &jv, const td_api::ChatActionBar &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarReportSpam &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarReportUnrelatedLocation &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarInviteMembers &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarReportAddBlock &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarAddContact &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarSharePhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatActionBarJoinRequest &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatAdministrator &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatAdministratorRights &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatAdministrators &object);
+
+void to_json(JsonValueScope &jv, const td_api::ChatAvailableReactions &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatAvailableReactionsAll &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatAvailableReactionsSome &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEvent &object);
+
+void to_json(JsonValueScope &jv, const td_api::ChatEventAction &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMessageEdited &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMessageDeleted &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMessagePinned &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMessageUnpinned &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventPollStopped &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoined &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoinedByInviteLink &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoinedByRequest &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberInvited &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberLeft &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberPromoted &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMemberRestricted &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventAvailableReactionsChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventDescriptionChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventLinkedChatChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventLocationChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventMessageTtlChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventPermissionsChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventPhotoChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventSlowModeDelayChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventStickerSetChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventTitleChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventUsernameChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventActiveUsernamesChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventHasProtectedContentToggled &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventInvitesToggled &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventIsAllHistoryAvailableToggled &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventSignMessagesToggled &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkEdited &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkRevoked &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkDeleted &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatCreated &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatEnded &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatMuteNewParticipantsToggled &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatParticipantIsMutedToggled &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatParticipantVolumeLevelChanged &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventIsForumToggled &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicCreated &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicEdited &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicToggleIsClosed &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicDeleted &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicPinned &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatEvents &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatFilter &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatFilterInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLink &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinkCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinkCounts &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinkInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinkMember &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinkMembers &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatInviteLinks &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatJoinRequest &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatJoinRequests &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatJoinRequestsInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::ChatList &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatListMain &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatListArchive &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatListFilter &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatLists &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatLocation &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatMember &object);
+
+void to_json(JsonValueScope &jv, const td_api::ChatMemberStatus &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusCreator &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusAdministrator &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusMember &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusRestricted &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusLeft &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatMemberStatusBanned &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatMembers &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatMessageSender &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatMessageSenders &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatNearby &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatNotificationSettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatPermissions &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatPhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatPhotoInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatPhotos &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatPosition &object);
+
+void to_json(JsonValueScope &jv, const td_api::ChatSource &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatSourceMtprotoProxy &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatSourcePublicServiceAnnouncement &object);
+
+void to_json(JsonValueScope &jv, const td_api::ChatStatistics &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsSupergroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsChannel &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsAdministratorActionsInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsInviterInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsMessageInteractionInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatStatisticsMessageSenderInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatTheme &object);
+
+void to_json(JsonValueScope &jv, const td_api::ChatType &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatTypePrivate &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatTypeBasicGroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatTypeSupergroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatTypeSecret &object);
+
+void to_json(JsonValueScope &jv, const td_api::chats &object);
+
+void to_json(JsonValueScope &jv, const td_api::chatsNearby &object);
+
+void to_json(JsonValueScope &jv, const td_api::CheckChatUsernameResult &object);
+
+void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultOk &object);
+
+void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultUsernameInvalid &object);
+
+void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultUsernameOccupied &object);
+
+void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultPublicChatsTooMuch &object);
+
+void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultPublicGroupsUnavailable &object);
+
+void to_json(JsonValueScope &jv, const td_api::CheckStickerSetNameResult &object);
+
+void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultOk &object);
+
+void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultNameInvalid &object);
+
+void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultNameOccupied &object);
+
+void to_json(JsonValueScope &jv, const td_api::closedVectorPath &object);
+
+void to_json(JsonValueScope &jv, const td_api::connectedWebsite &object);
+
+void to_json(JsonValueScope &jv, const td_api::connectedWebsites &object);
+
+void to_json(JsonValueScope &jv, const td_api::ConnectionState &object);
+
+void to_json(JsonValueScope &jv, const td_api::connectionStateWaitingForNetwork &object);
+
+void to_json(JsonValueScope &jv, const td_api::connectionStateConnectingToProxy &object);
+
+void to_json(JsonValueScope &jv, const td_api::connectionStateConnecting &object);
+
+void to_json(JsonValueScope &jv, const td_api::connectionStateUpdating &object);
+
+void to_json(JsonValueScope &jv, const td_api::connectionStateReady &object);
+
+void to_json(JsonValueScope &jv, const td_api::contact &object);
+
+void to_json(JsonValueScope &jv, const td_api::count &object);
+
+void to_json(JsonValueScope &jv, const td_api::countries &object);
+
+void to_json(JsonValueScope &jv, const td_api::countryInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::customRequestResult &object);
+
+void to_json(JsonValueScope &jv, const td_api::databaseStatistics &object);
+
+void to_json(JsonValueScope &jv, const td_api::date &object);
+
+void to_json(JsonValueScope &jv, const td_api::dateRange &object);
+
+void to_json(JsonValueScope &jv, const td_api::datedFile &object);
+
+void to_json(JsonValueScope &jv, const td_api::deepLinkInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::DiceStickers &object);
+
+void to_json(JsonValueScope &jv, const td_api::diceStickersRegular &object);
+
+void to_json(JsonValueScope &jv, const td_api::diceStickersSlotMachine &object);
+
+void to_json(JsonValueScope &jv, const td_api::document &object);
+
+void to_json(JsonValueScope &jv, const td_api::downloadedFileCounts &object);
+
+void to_json(JsonValueScope &jv, const td_api::draftMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::emailAddressAuthenticationCodeInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::emojiReaction &object);
+
+void to_json(JsonValueScope &jv, const td_api::emojiStatus &object);
+
+void to_json(JsonValueScope &jv, const td_api::emojiStatuses &object);
+
+void to_json(JsonValueScope &jv, const td_api::emojis &object);
+
+void to_json(JsonValueScope &jv, const td_api::encryptedCredentials &object);
+
+void to_json(JsonValueScope &jv, const td_api::encryptedPassportElement &object);
+
+void to_json(JsonValueScope &jv, const td_api::error &object);
+
+void to_json(JsonValueScope &jv, const td_api::file &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileDownload &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileDownloadedPrefixSize &object);
+
+void to_json(JsonValueScope &jv, const td_api::filePart &object);
+
+void to_json(JsonValueScope &jv, const td_api::FileType &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeNone &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeAnimation &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeAudio &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeDocument &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeNotificationSound &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypePhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeProfilePhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeSecret &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeSecretThumbnail &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeSecure &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeSticker &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeThumbnail &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeUnknown &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeVideo &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeVideoNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeVoiceNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::fileTypeWallpaper &object);
+
+void to_json(JsonValueScope &jv, const td_api::formattedText &object);
+
+void to_json(JsonValueScope &jv, const td_api::forumTopicIcon &object);
+
+void to_json(JsonValueScope &jv, const td_api::forumTopicInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::foundFileDownloads &object);
+
+void to_json(JsonValueScope &jv, const td_api::foundMessages &object);
+
+void to_json(JsonValueScope &jv, const td_api::game &object);
+
+void to_json(JsonValueScope &jv, const td_api::gameHighScore &object);
+
+void to_json(JsonValueScope &jv, const td_api::gameHighScores &object);
+
+void to_json(JsonValueScope &jv, const td_api::groupCall &object);
+
+void to_json(JsonValueScope &jv, const td_api::groupCallId &object);
+
+void to_json(JsonValueScope &jv, const td_api::groupCallParticipant &object);
+
+void to_json(JsonValueScope &jv, const td_api::groupCallParticipantVideoInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::groupCallRecentSpeaker &object);
+
+void to_json(JsonValueScope &jv, const td_api::groupCallStream &object);
+
+void to_json(JsonValueScope &jv, const td_api::groupCallStreams &object);
+
+void to_json(JsonValueScope &jv, const td_api::groupCallVideoSourceGroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::hashtags &object);
+
+void to_json(JsonValueScope &jv, const td_api::httpUrl &object);
+
+void to_json(JsonValueScope &jv, const td_api::identityDocument &object);
+
+void to_json(JsonValueScope &jv, const td_api::importedContacts &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButton &object);
+
+void to_json(JsonValueScope &jv, const td_api::InlineKeyboardButtonType &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeUrl &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeLoginUrl &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeWebApp &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallback &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallbackWithPassword &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallbackGame &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeSwitchInline &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeBuy &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeUser &object);
+
+void to_json(JsonValueScope &jv, const td_api::InlineQueryResult &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultArticle &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultContact &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultLocation &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVenue &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultGame &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultAnimation &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultAudio &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultDocument &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultPhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultSticker &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVideo &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVoiceNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::inlineQueryResults &object);
+
+void to_json(JsonValueScope &jv, const td_api::InputFile &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputFileId &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputFileRemote &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputFileLocal &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputFileGenerated &object);
+
+void to_json(JsonValueScope &jv, const td_api::InputMessageContent &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageText &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageAnimation &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageAudio &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageDocument &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessagePhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageSticker &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageVideo &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageVideoNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageVoiceNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageLocation &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageVenue &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageContact &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageDice &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageGame &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageInvoice &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessagePoll &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputMessageForwarded &object);
+
+void to_json(JsonValueScope &jv, const td_api::inputThumbnail &object);
+
+void to_json(JsonValueScope &jv, const td_api::InternalLinkType &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeActiveSessions &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeAttachmentMenuBot &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeAuthenticationCode &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBackground &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotStart &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotStartInGroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotAddToChannel &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeChangePhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeChatInvite &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeFilterSettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeGame &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeInstantView &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeInvoice &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeLanguagePack &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeLanguageSettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeMessageDraft &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypePassportDataRequest &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypePhoneNumberConfirmation &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypePremiumFeatures &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypePrivacyAndSecuritySettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeProxy &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypePublicChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeQrCodeAuthentication &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeRestorePurchases &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeSettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeStickerSet &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeTheme &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeThemeSettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUnknownDeepLink &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUnsupportedProxy &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUserPhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::internalLinkTypeVideoChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::invoice &object);
+
+void to_json(JsonValueScope &jv, const td_api::jsonObjectMember &object);
+
+void to_json(JsonValueScope &jv, const td_api::JsonValue &object);
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueNull &object);
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueBoolean &object);
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueString &object);
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueArray &object);
+
+void to_json(JsonValueScope &jv, const td_api::jsonValueObject &object);
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButton &object);
+
+void to_json(JsonValueScope &jv, const td_api::KeyboardButtonType &object);
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeText &object);
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestPhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestLocation &object);
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestPoll &object);
+
+void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeWebApp &object);
+
+void to_json(JsonValueScope &jv, const td_api::labeledPricePart &object);
+
+void to_json(JsonValueScope &jv, const td_api::languagePackInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::languagePackString &object);
+
+void to_json(JsonValueScope &jv, const td_api::LanguagePackStringValue &object);
+
+void to_json(JsonValueScope &jv, const td_api::languagePackStringValueOrdinary &object);
+
+void to_json(JsonValueScope &jv, const td_api::languagePackStringValuePluralized &object);
+
+void to_json(JsonValueScope &jv, const td_api::languagePackStringValueDeleted &object);
+
+void to_json(JsonValueScope &jv, const td_api::languagePackStrings &object);
+
+void to_json(JsonValueScope &jv, const td_api::localFile &object);
+
+void to_json(JsonValueScope &jv, const td_api::localizationTargetInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::location &object);
+
+void to_json(JsonValueScope &jv, const td_api::LogStream &object);
+
+void to_json(JsonValueScope &jv, const td_api::logStreamDefault &object);
+
+void to_json(JsonValueScope &jv, const td_api::logStreamFile &object);
+
+void to_json(JsonValueScope &jv, const td_api::logStreamEmpty &object);
+
+void to_json(JsonValueScope &jv, const td_api::logTags &object);
+
+void to_json(JsonValueScope &jv, const td_api::logVerbosityLevel &object);
+
+void to_json(JsonValueScope &jv, const td_api::LoginUrlInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::loginUrlInfoOpen &object);
+
+void to_json(JsonValueScope &jv, const td_api::loginUrlInfoRequestConfirmation &object);
+
+void to_json(JsonValueScope &jv, const td_api::MaskPoint &object);
+
+void to_json(JsonValueScope &jv, const td_api::maskPointForehead &object);
+
+void to_json(JsonValueScope &jv, const td_api::maskPointEyes &object);
+
+void to_json(JsonValueScope &jv, const td_api::maskPointMouth &object);
+
+void to_json(JsonValueScope &jv, const td_api::maskPointChin &object);
+
+void to_json(JsonValueScope &jv, const td_api::maskPosition &object);
+
+void to_json(JsonValueScope &jv, const td_api::message &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageCalendar &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageCalendarDay &object);
+
+void to_json(JsonValueScope &jv, const td_api::MessageContent &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageText &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageAnimation &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageAudio &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageDocument &object);
+
+void to_json(JsonValueScope &jv, const td_api::messagePhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageExpiredPhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageSticker &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageVideo &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageExpiredVideo &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageVideoNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageVoiceNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageLocation &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageVenue &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageContact &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageAnimatedEmoji &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageDice &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageGame &object);
+
+void to_json(JsonValueScope &jv, const td_api::messagePoll &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageInvoice &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageCall &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageVideoChatScheduled &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageVideoChatStarted &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageVideoChatEnded &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageInviteVideoChatParticipants &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageBasicGroupChatCreate &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageSupergroupChatCreate &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatChangeTitle &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatChangePhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatDeletePhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatAddMembers &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatJoinByLink &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatJoinByRequest &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatDeleteMember &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatUpgradeTo &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatUpgradeFrom &object);
+
+void to_json(JsonValueScope &jv, const td_api::messagePinMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageScreenshotTaken &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatSetTheme &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageChatSetTtl &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageForumTopicCreated &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageForumTopicEdited &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageForumTopicIsClosedToggled &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageCustomServiceAction &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageGameScore &object);
+
+void to_json(JsonValueScope &jv, const td_api::messagePaymentSuccessful &object);
+
+void to_json(JsonValueScope &jv, const td_api::messagePaymentSuccessfulBot &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageGiftedPremium &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageContactRegistered &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageWebsiteConnected &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageWebAppDataSent &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageWebAppDataReceived &object);
+
+void to_json(JsonValueScope &jv, const td_api::messagePassportDataSent &object);
+
+void to_json(JsonValueScope &jv, const td_api::messagePassportDataReceived &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageProximityAlertTriggered &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageUnsupported &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageCopyOptions &object);
+
+void to_json(JsonValueScope &jv, const td_api::MessageExtendedMedia &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaPreview &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaPhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaVideo &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaUnsupported &object);
+
+void to_json(JsonValueScope &jv, const td_api::MessageFileType &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageFileTypePrivate &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageFileTypeGroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageFileTypeUnknown &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::MessageForwardOrigin &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardOriginUser &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardOriginChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardOriginHiddenUser &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardOriginChannel &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageForwardOriginMessageImport &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageInteractionInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageLink &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageLinkInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::messagePosition &object);
+
+void to_json(JsonValueScope &jv, const td_api::messagePositions &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageReaction &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageReplyInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::MessageSchedulingState &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageSchedulingStateSendAtDate &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageSchedulingStateSendWhenOnline &object);
+
+void to_json(JsonValueScope &jv, const td_api::MessageSender &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageSenderUser &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageSenderChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageSenders &object);
+
+void to_json(JsonValueScope &jv, const td_api::MessageSendingState &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageSendingStatePending &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageSendingStateFailed &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageStatistics &object);
+
+void to_json(JsonValueScope &jv, const td_api::messageThreadInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::messages &object);
+
+void to_json(JsonValueScope &jv, const td_api::minithumbnail &object);
+
+void to_json(JsonValueScope &jv, const td_api::networkStatistics &object);
+
+void to_json(JsonValueScope &jv, const td_api::NetworkStatisticsEntry &object);
+
+void to_json(JsonValueScope &jv, const td_api::networkStatisticsEntryFile &object);
+
+void to_json(JsonValueScope &jv, const td_api::networkStatisticsEntryCall &object);
+
+void to_json(JsonValueScope &jv, const td_api::NetworkType &object);
+
+void to_json(JsonValueScope &jv, const td_api::networkTypeNone &object);
+
+void to_json(JsonValueScope &jv, const td_api::networkTypeMobile &object);
+
+void to_json(JsonValueScope &jv, const td_api::networkTypeMobileRoaming &object);
+
+void to_json(JsonValueScope &jv, const td_api::networkTypeWiFi &object);
+
+void to_json(JsonValueScope &jv, const td_api::networkTypeOther &object);
+
+void to_json(JsonValueScope &jv, const td_api::notification &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationGroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::NotificationGroupType &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeMessages &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeMentions &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeSecretChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeCalls &object);
+
+void to_json(JsonValueScope &jv, const td_api::NotificationSettingsScope &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopePrivateChats &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopeGroupChats &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopeChannelChats &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationSound &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationSounds &object);
+
+void to_json(JsonValueScope &jv, const td_api::NotificationType &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationTypeNewMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationTypeNewSecretChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationTypeNewCall &object);
+
+void to_json(JsonValueScope &jv, const td_api::notificationTypeNewPushMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::ok &object);
+
+void to_json(JsonValueScope &jv, const td_api::OptionValue &object);
+
+void to_json(JsonValueScope &jv, const td_api::optionValueBoolean &object);
+
+void to_json(JsonValueScope &jv, const td_api::optionValueEmpty &object);
+
+void to_json(JsonValueScope &jv, const td_api::optionValueInteger &object);
+
+void to_json(JsonValueScope &jv, const td_api::optionValueString &object);
+
+void to_json(JsonValueScope &jv, const td_api::orderInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::PageBlock &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockTitle &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockSubtitle &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockAuthorDate &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockHeader &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockSubheader &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockKicker &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockParagraph &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockPreformatted &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockFooter &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockDivider &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockAnchor &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockList &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockBlockQuote &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockPullQuote &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockAnimation &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockAudio &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockPhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockVideo &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockVoiceNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockCover &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockEmbedded &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockEmbeddedPost &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockCollage &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockSlideshow &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockChatLink &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockTable &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockDetails &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockRelatedArticles &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockMap &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockCaption &object);
+
+void to_json(JsonValueScope &jv, const td_api::PageBlockHorizontalAlignment &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentLeft &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentCenter &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentRight &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockListItem &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockRelatedArticle &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockTableCell &object);
+
+void to_json(JsonValueScope &jv, const td_api::PageBlockVerticalAlignment &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentTop &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentMiddle &object);
+
+void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentBottom &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportAuthorizationForm &object);
+
+void to_json(JsonValueScope &jv, const td_api::PassportElement &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementPersonalDetails &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementPassport &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementDriverLicense &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementIdentityCard &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementInternalPassport &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementAddress &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementUtilityBill &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementBankStatement &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementRentalAgreement &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementPassportRegistration &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTemporaryRegistration &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementPhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementEmailAddress &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementError &object);
+
+void to_json(JsonValueScope &jv, const td_api::PassportElementErrorSource &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceUnspecified &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceDataField &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFrontSide &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceReverseSide &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceSelfie &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceTranslationFile &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceTranslationFiles &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFile &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFiles &object);
+
+void to_json(JsonValueScope &jv, const td_api::PassportElementType &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypePersonalDetails &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypePassport &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeDriverLicense &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeIdentityCard &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeInternalPassport &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeAddress &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeUtilityBill &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeBankStatement &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeRentalAgreement &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypePassportRegistration &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeTemporaryRegistration &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypePhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementTypeEmailAddress &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElements &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportElementsWithErrors &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportRequiredElement &object);
+
+void to_json(JsonValueScope &jv, const td_api::passportSuitableElement &object);
+
+void to_json(JsonValueScope &jv, const td_api::passwordState &object);
+
+void to_json(JsonValueScope &jv, const td_api::paymentForm &object);
+
+void to_json(JsonValueScope &jv, const td_api::paymentOption &object);
+
+void to_json(JsonValueScope &jv, const td_api::PaymentProvider &object);
+
+void to_json(JsonValueScope &jv, const td_api::paymentProviderSmartGlocal &object);
+
+void to_json(JsonValueScope &jv, const td_api::paymentProviderStripe &object);
+
+void to_json(JsonValueScope &jv, const td_api::paymentProviderOther &object);
+
+void to_json(JsonValueScope &jv, const td_api::paymentReceipt &object);
+
+void to_json(JsonValueScope &jv, const td_api::paymentResult &object);
+
+void to_json(JsonValueScope &jv, const td_api::personalDetails &object);
+
+void to_json(JsonValueScope &jv, const td_api::personalDocument &object);
+
+void to_json(JsonValueScope &jv, const td_api::phoneNumberInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::photo &object);
+
+void to_json(JsonValueScope &jv, const td_api::photoSize &object);
+
+void to_json(JsonValueScope &jv, const td_api::point &object);
+
+void to_json(JsonValueScope &jv, const td_api::poll &object);
+
+void to_json(JsonValueScope &jv, const td_api::pollOption &object);
+
+void to_json(JsonValueScope &jv, const td_api::PollType &object);
+
+void to_json(JsonValueScope &jv, const td_api::pollTypeRegular &object);
+
+void to_json(JsonValueScope &jv, const td_api::pollTypeQuiz &object);
+
+void to_json(JsonValueScope &jv, const td_api::PremiumFeature &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureIncreasedLimits &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureIncreasedUploadFileSize &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureImprovedDownloadSpeed &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureVoiceRecognition &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureDisabledAds &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureUniqueReactions &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureUniqueStickers &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureCustomEmoji &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureAdvancedChatManagement &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureProfileBadge &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureEmojiStatus &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureAnimatedProfilePhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureForumTopicIcon &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatureAppIcons &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeaturePromotionAnimation &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumFeatures &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimit &object);
+
+void to_json(JsonValueScope &jv, const td_api::PremiumLimitType &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeSupergroupCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypePinnedChatCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeCreatedPublicChatCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeSavedAnimationCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeFavoriteStickerCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeChatFilterCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeChatFilterChosenChatCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypePinnedArchivedChatCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeCaptionLength &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeBioLength &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumPaymentOption &object);
+
+void to_json(JsonValueScope &jv, const td_api::premiumState &object);
+
+void to_json(JsonValueScope &jv, const td_api::profilePhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::proxies &object);
+
+void to_json(JsonValueScope &jv, const td_api::proxy &object);
+
+void to_json(JsonValueScope &jv, const td_api::ProxyType &object);
+
+void to_json(JsonValueScope &jv, const td_api::proxyTypeSocks5 &object);
+
+void to_json(JsonValueScope &jv, const td_api::proxyTypeHttp &object);
+
+void to_json(JsonValueScope &jv, const td_api::proxyTypeMtproto &object);
+
+void to_json(JsonValueScope &jv, const td_api::PushMessageContent &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentHidden &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentAnimation &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentAudio &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentContact &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentContactRegistered &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentDocument &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentGame &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentGameScore &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentInvoice &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentLocation &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentPhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentPoll &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentScreenshotTaken &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentSticker &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentText &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentVideo &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentVideoNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentVoiceNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentBasicGroupChatCreate &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatAddMembers &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatChangePhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatChangeTitle &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatSetTheme &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatDeleteMember &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatJoinByLink &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatJoinByRequest &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentRecurringPayment &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentMessageForwards &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushMessageContentMediaAlbum &object);
+
+void to_json(JsonValueScope &jv, const td_api::pushReceiverId &object);
+
+void to_json(JsonValueScope &jv, const td_api::ReactionType &object);
+
+void to_json(JsonValueScope &jv, const td_api::reactionTypeEmoji &object);
+
+void to_json(JsonValueScope &jv, const td_api::reactionTypeCustomEmoji &object);
+
+void to_json(JsonValueScope &jv, const td_api::recommendedChatFilter &object);
+
+void to_json(JsonValueScope &jv, const td_api::recommendedChatFilters &object);
+
+void to_json(JsonValueScope &jv, const td_api::recoveryEmailAddress &object);
+
+void to_json(JsonValueScope &jv, const td_api::remoteFile &object);
+
+void to_json(JsonValueScope &jv, const td_api::ReplyMarkup &object);
+
+void to_json(JsonValueScope &jv, const td_api::replyMarkupRemoveKeyboard &object);
+
+void to_json(JsonValueScope &jv, const td_api::replyMarkupForceReply &object);
+
+void to_json(JsonValueScope &jv, const td_api::replyMarkupShowKeyboard &object);
+
+void to_json(JsonValueScope &jv, const td_api::replyMarkupInlineKeyboard &object);
+
+void to_json(JsonValueScope &jv, const td_api::ResetPasswordResult &object);
+
+void to_json(JsonValueScope &jv, const td_api::resetPasswordResultOk &object);
+
+void to_json(JsonValueScope &jv, const td_api::resetPasswordResultPending &object);
+
+void to_json(JsonValueScope &jv, const td_api::resetPasswordResultDeclined &object);
+
+void to_json(JsonValueScope &jv, const td_api::RichText &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextPlain &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextBold &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextItalic &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextUnderline &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextStrikethrough &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextFixed &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextUrl &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextEmailAddress &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextSubscript &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextSuperscript &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextMarked &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextPhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextIcon &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextReference &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextAnchor &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTextAnchorLink &object);
+
+void to_json(JsonValueScope &jv, const td_api::richTexts &object);
+
+void to_json(JsonValueScope &jv, const td_api::rtmpUrl &object);
+
+void to_json(JsonValueScope &jv, const td_api::savedCredentials &object);
+
+void to_json(JsonValueScope &jv, const td_api::scopeNotificationSettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::seconds &object);
+
+void to_json(JsonValueScope &jv, const td_api::secretChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::SecretChatState &object);
+
+void to_json(JsonValueScope &jv, const td_api::secretChatStatePending &object);
+
+void to_json(JsonValueScope &jv, const td_api::secretChatStateReady &object);
+
+void to_json(JsonValueScope &jv, const td_api::secretChatStateClosed &object);
+
+void to_json(JsonValueScope &jv, const td_api::sentWebAppMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::session &object);
+
+void to_json(JsonValueScope &jv, const td_api::SessionType &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeAndroid &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeApple &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeBrave &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeChrome &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeEdge &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeFirefox &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeIpad &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeIphone &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeLinux &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeMac &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeOpera &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeSafari &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeUbuntu &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeUnknown &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeVivaldi &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeWindows &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessionTypeXbox &object);
+
+void to_json(JsonValueScope &jv, const td_api::sessions &object);
+
+void to_json(JsonValueScope &jv, const td_api::shippingOption &object);
+
+void to_json(JsonValueScope &jv, const td_api::SpeechRecognitionResult &object);
+
+void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultPending &object);
+
+void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultText &object);
+
+void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultError &object);
+
+void to_json(JsonValueScope &jv, const td_api::sponsoredMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::sponsoredMessages &object);
+
+void to_json(JsonValueScope &jv, const td_api::StatisticalGraph &object);
+
+void to_json(JsonValueScope &jv, const td_api::statisticalGraphData &object);
+
+void to_json(JsonValueScope &jv, const td_api::statisticalGraphAsync &object);
+
+void to_json(JsonValueScope &jv, const td_api::statisticalGraphError &object);
+
+void to_json(JsonValueScope &jv, const td_api::statisticalValue &object);
+
+void to_json(JsonValueScope &jv, const td_api::sticker &object);
+
+void to_json(JsonValueScope &jv, const td_api::StickerFormat &object);
+
+void to_json(JsonValueScope &jv, const td_api::stickerFormatWebp &object);
+
+void to_json(JsonValueScope &jv, const td_api::stickerFormatTgs &object);
+
+void to_json(JsonValueScope &jv, const td_api::stickerFormatWebm &object);
+
+void to_json(JsonValueScope &jv, const td_api::stickerSet &object);
+
+void to_json(JsonValueScope &jv, const td_api::stickerSetInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::stickerSets &object);
+
+void to_json(JsonValueScope &jv, const td_api::StickerType &object);
+
+void to_json(JsonValueScope &jv, const td_api::stickerTypeRegular &object);
+
+void to_json(JsonValueScope &jv, const td_api::stickerTypeMask &object);
+
+void to_json(JsonValueScope &jv, const td_api::stickerTypeCustomEmoji &object);
+
+void to_json(JsonValueScope &jv, const td_api::stickers &object);
+
+void to_json(JsonValueScope &jv, const td_api::storageStatistics &object);
+
+void to_json(JsonValueScope &jv, const td_api::storageStatisticsByChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::storageStatisticsByFileType &object);
+
+void to_json(JsonValueScope &jv, const td_api::storageStatisticsFast &object);
+
+void to_json(JsonValueScope &jv, const td_api::SuggestedAction &object);
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionEnableArchiveAndMuteNewChats &object);
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionCheckPassword &object);
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionCheckPhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionViewChecksHint &object);
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionConvertToBroadcastGroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::suggestedActionSetPassword &object);
+
+void to_json(JsonValueScope &jv, const td_api::supergroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::supergroupFullInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrl &object);
+
+void to_json(JsonValueScope &jv, const td_api::TMeUrlType &object);
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeUser &object);
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeSupergroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeChatInvite &object);
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeStickerSet &object);
+
+void to_json(JsonValueScope &jv, const td_api::tMeUrls &object);
+
+void to_json(JsonValueScope &jv, const td_api::TargetChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::targetChatCurrent &object);
+
+void to_json(JsonValueScope &jv, const td_api::targetChatChosen &object);
+
+void to_json(JsonValueScope &jv, const td_api::targetChatInternalLink &object);
+
+void to_json(JsonValueScope &jv, const td_api::temporaryPasswordState &object);
+
+void to_json(JsonValueScope &jv, const td_api::termsOfService &object);
+
+void to_json(JsonValueScope &jv, const td_api::testBytes &object);
+
+void to_json(JsonValueScope &jv, const td_api::testInt &object);
+
+void to_json(JsonValueScope &jv, const td_api::testString &object);
+
+void to_json(JsonValueScope &jv, const td_api::testVectorInt &object);
+
+void to_json(JsonValueScope &jv, const td_api::testVectorIntObject &object);
+
+void to_json(JsonValueScope &jv, const td_api::testVectorString &object);
+
+void to_json(JsonValueScope &jv, const td_api::testVectorStringObject &object);
+
+void to_json(JsonValueScope &jv, const td_api::text &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntities &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntity &object);
+
+void to_json(JsonValueScope &jv, const td_api::TextEntityType &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeMention &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeHashtag &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeCashtag &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeBotCommand &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeUrl &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeEmailAddress &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypePhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeBankCardNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeBold &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeItalic &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeUnderline &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeStrikethrough &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeSpoiler &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeCode &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypePre &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypePreCode &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeTextUrl &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeMentionName &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeCustomEmoji &object);
+
+void to_json(JsonValueScope &jv, const td_api::textEntityTypeMediaTimestamp &object);
+
+void to_json(JsonValueScope &jv, const td_api::themeSettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::thumbnail &object);
+
+void to_json(JsonValueScope &jv, const td_api::ThumbnailFormat &object);
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatJpeg &object);
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatGif &object);
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatMpeg4 &object);
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatPng &object);
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatTgs &object);
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatWebm &object);
+
+void to_json(JsonValueScope &jv, const td_api::thumbnailFormatWebp &object);
+
+void to_json(JsonValueScope &jv, const td_api::trendingStickerSets &object);
+
+void to_json(JsonValueScope &jv, const td_api::unreadReaction &object);
+
+void to_json(JsonValueScope &jv, const td_api::Update &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateAuthorizationState &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageSendAcknowledged &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageSendSucceeded &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageSendFailed &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageContent &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageEdited &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageIsPinned &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageInteractionInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageContentOpened &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageMentionRead &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageUnreadReactions &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateMessageLiveLocationViewed &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatTitle &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatPhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatPermissions &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatLastMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatPosition &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatReadInbox &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatReadOutbox &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatActionBar &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatAvailableReactions &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatDraftMessage &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatMessageSender &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatMessageTtl &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatNotificationSettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatPendingJoinRequests &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatReplyMarkup &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatTheme &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatUnreadMentionCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatUnreadReactionCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatVideoChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatDefaultDisableNotification &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatHasProtectedContent &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatHasScheduledMessages &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatIsBlocked &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatIsMarkedAsUnread &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatFilters &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatOnlineMemberCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateForumTopicInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateScopeNotificationSettings &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNotification &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNotificationGroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateActiveNotifications &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateHavePendingNotifications &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateDeleteMessages &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatAction &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateUserStatus &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateUser &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateBasicGroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateSupergroup &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateSecretChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateUserFullInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateBasicGroupFullInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateSupergroupFullInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateServiceNotification &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateFile &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateFileGenerationStart &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateFileGenerationStop &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateFileDownloads &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateFileAddedToDownloads &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateFileDownload &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateFileRemovedFromDownloads &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateCall &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateGroupCall &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateGroupCallParticipant &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewCallSignalingData &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateUserPrivacySettingRules &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateUnreadMessageCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateUnreadChatCount &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateOption &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateStickerSet &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateInstalledStickerSets &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateTrendingStickerSets &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateRecentStickers &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateFavoriteStickers &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateSavedAnimations &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateSavedNotificationSounds &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateSelectedBackground &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatThemes &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateLanguagePackStrings &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateConnectionState &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateTermsOfService &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateUsersNearby &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateAttachmentMenuBots &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateWebAppMessageSent &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateActiveEmojiReactions &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateDefaultReactionType &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateDiceEmojis &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateAnimatedEmojiMessageClicked &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateAnimationSearchParameters &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateSuggestedActions &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewInlineQuery &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewChosenInlineResult &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewCallbackQuery &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewInlineCallbackQuery &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewShippingQuery &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewPreCheckoutQuery &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewCustomEvent &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewCustomQuery &object);
+
+void to_json(JsonValueScope &jv, const td_api::updatePoll &object);
+
+void to_json(JsonValueScope &jv, const td_api::updatePollAnswer &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateChatMember &object);
+
+void to_json(JsonValueScope &jv, const td_api::updateNewChatJoinRequest &object);
+
+void to_json(JsonValueScope &jv, const td_api::updates &object);
+
+void to_json(JsonValueScope &jv, const td_api::user &object);
+
+void to_json(JsonValueScope &jv, const td_api::userFullInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::UserPrivacySetting &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowStatus &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowProfilePhoto &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowLinkInForwardedMessages &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowPhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowChatInvites &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowCalls &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowPeerToPeerCalls &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowFindingByPhoneNumber &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &object);
+
+void to_json(JsonValueScope &jv, const td_api::UserPrivacySettingRule &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowAll &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowContacts &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowUsers &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowChatMembers &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictAll &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictContacts &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictUsers &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictChatMembers &object);
+
+void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRules &object);
+
+void to_json(JsonValueScope &jv, const td_api::UserStatus &object);
+
+void to_json(JsonValueScope &jv, const td_api::userStatusEmpty &object);
+
+void to_json(JsonValueScope &jv, const td_api::userStatusOnline &object);
+
+void to_json(JsonValueScope &jv, const td_api::userStatusOffline &object);
+
+void to_json(JsonValueScope &jv, const td_api::userStatusRecently &object);
+
+void to_json(JsonValueScope &jv, const td_api::userStatusLastWeek &object);
+
+void to_json(JsonValueScope &jv, const td_api::userStatusLastMonth &object);
+
+void to_json(JsonValueScope &jv, const td_api::userSupportInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::UserType &object);
+
+void to_json(JsonValueScope &jv, const td_api::userTypeRegular &object);
+
+void to_json(JsonValueScope &jv, const td_api::userTypeDeleted &object);
+
+void to_json(JsonValueScope &jv, const td_api::userTypeBot &object);
+
+void to_json(JsonValueScope &jv, const td_api::userTypeUnknown &object);
+
+void to_json(JsonValueScope &jv, const td_api::usernames &object);
+
+void to_json(JsonValueScope &jv, const td_api::users &object);
+
+void to_json(JsonValueScope &jv, const td_api::validatedOrderInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::VectorPathCommand &object);
+
+void to_json(JsonValueScope &jv, const td_api::vectorPathCommandLine &object);
+
+void to_json(JsonValueScope &jv, const td_api::vectorPathCommandCubicBezierCurve &object);
+
+void to_json(JsonValueScope &jv, const td_api::venue &object);
+
+void to_json(JsonValueScope &jv, const td_api::video &object);
+
+void to_json(JsonValueScope &jv, const td_api::videoChat &object);
+
+void to_json(JsonValueScope &jv, const td_api::videoNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::voiceNote &object);
+
+void to_json(JsonValueScope &jv, const td_api::webAppInfo &object);
+
+void to_json(JsonValueScope &jv, const td_api::webPage &object);
+
+void to_json(JsonValueScope &jv, const td_api::webPageInstantView &object);
+
+} // namespace td_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.cpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.cpp
new file mode 100644
index 0000000000..730a418a0c
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.cpp
@@ -0,0 +1,52616 @@
+#include "telegram_api.h"
+
+#include "td/tl/tl_object_parse.h"
+#include "td/tl/tl_object_store.h"
+
+#include "td/utils/common.h"
+#include "td/utils/format.h"
+#include "td/utils/logging.h"
+#include "td/utils/SliceBuilder.h"
+#include "td/utils/tl_parsers.h"
+#include "td/utils/tl_storers.h"
+#include "td/utils/TlStorerToString.h"
+
+namespace td {
+namespace telegram_api {
+
+std::string to_string(const BaseObject &value) {
+ TlStorerToString storer;
+ value.store(storer, "");
+ return storer.move_as_string();
+}
+
+object_ptr<Object> Object::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case accessPointRule::ID:
+ return accessPointRule::fetch(p);
+ case accountDaysTTL::ID:
+ return accountDaysTTL::fetch(p);
+ case attachMenuBot::ID:
+ return attachMenuBot::fetch(p);
+ case attachMenuBotIcon::ID:
+ return attachMenuBotIcon::fetch(p);
+ case attachMenuBotIconColor::ID:
+ return attachMenuBotIconColor::fetch(p);
+ case attachMenuBotsNotModified::ID:
+ return attachMenuBotsNotModified::fetch(p);
+ case attachMenuBots::ID:
+ return attachMenuBots::fetch(p);
+ case attachMenuBotsBot::ID:
+ return attachMenuBotsBot::fetch(p);
+ case attachMenuPeerTypeSameBotPM::ID:
+ return attachMenuPeerTypeSameBotPM::fetch(p);
+ case attachMenuPeerTypeBotPM::ID:
+ return attachMenuPeerTypeBotPM::fetch(p);
+ case attachMenuPeerTypePM::ID:
+ return attachMenuPeerTypePM::fetch(p);
+ case attachMenuPeerTypeChat::ID:
+ return attachMenuPeerTypeChat::fetch(p);
+ case attachMenuPeerTypeBroadcast::ID:
+ return attachMenuPeerTypeBroadcast::fetch(p);
+ case authorization::ID:
+ return authorization::fetch(p);
+ case autoDownloadSettings::ID:
+ return autoDownloadSettings::fetch(p);
+ case availableReaction::ID:
+ return availableReaction::fetch(p);
+ case bankCardOpenUrl::ID:
+ return bankCardOpenUrl::fetch(p);
+ case baseThemeClassic::ID:
+ return baseThemeClassic::fetch(p);
+ case baseThemeDay::ID:
+ return baseThemeDay::fetch(p);
+ case baseThemeNight::ID:
+ return baseThemeNight::fetch(p);
+ case baseThemeTinted::ID:
+ return baseThemeTinted::fetch(p);
+ case baseThemeArctic::ID:
+ return baseThemeArctic::fetch(p);
+ case botCommand::ID:
+ return botCommand::fetch(p);
+ case botInfo::ID:
+ return botInfo::fetch(p);
+ case botInlineMessageMediaAuto::ID:
+ return botInlineMessageMediaAuto::fetch(p);
+ case botInlineMessageText::ID:
+ return botInlineMessageText::fetch(p);
+ case botInlineMessageMediaGeo::ID:
+ return botInlineMessageMediaGeo::fetch(p);
+ case botInlineMessageMediaVenue::ID:
+ return botInlineMessageMediaVenue::fetch(p);
+ case botInlineMessageMediaContact::ID:
+ return botInlineMessageMediaContact::fetch(p);
+ case botInlineMessageMediaInvoice::ID:
+ return botInlineMessageMediaInvoice::fetch(p);
+ case botInlineResult::ID:
+ return botInlineResult::fetch(p);
+ case botInlineMediaResult::ID:
+ return botInlineMediaResult::fetch(p);
+ case botMenuButtonDefault::ID:
+ return botMenuButtonDefault::fetch(p);
+ case botMenuButtonCommands::ID:
+ return botMenuButtonCommands::fetch(p);
+ case botMenuButton::ID:
+ return botMenuButton::fetch(p);
+ case cdnConfig::ID:
+ return cdnConfig::fetch(p);
+ case cdnPublicKey::ID:
+ return cdnPublicKey::fetch(p);
+ case channelAdminLogEvent::ID:
+ return channelAdminLogEvent::fetch(p);
+ case channelAdminLogEventActionChangeTitle::ID:
+ return channelAdminLogEventActionChangeTitle::fetch(p);
+ case channelAdminLogEventActionChangeAbout::ID:
+ return channelAdminLogEventActionChangeAbout::fetch(p);
+ case channelAdminLogEventActionChangeUsername::ID:
+ return channelAdminLogEventActionChangeUsername::fetch(p);
+ case channelAdminLogEventActionChangePhoto::ID:
+ return channelAdminLogEventActionChangePhoto::fetch(p);
+ case channelAdminLogEventActionToggleInvites::ID:
+ return channelAdminLogEventActionToggleInvites::fetch(p);
+ case channelAdminLogEventActionToggleSignatures::ID:
+ return channelAdminLogEventActionToggleSignatures::fetch(p);
+ case channelAdminLogEventActionUpdatePinned::ID:
+ return channelAdminLogEventActionUpdatePinned::fetch(p);
+ case channelAdminLogEventActionEditMessage::ID:
+ return channelAdminLogEventActionEditMessage::fetch(p);
+ case channelAdminLogEventActionDeleteMessage::ID:
+ return channelAdminLogEventActionDeleteMessage::fetch(p);
+ case channelAdminLogEventActionParticipantJoin::ID:
+ return channelAdminLogEventActionParticipantJoin::fetch(p);
+ case channelAdminLogEventActionParticipantLeave::ID:
+ return channelAdminLogEventActionParticipantLeave::fetch(p);
+ case channelAdminLogEventActionParticipantInvite::ID:
+ return channelAdminLogEventActionParticipantInvite::fetch(p);
+ case channelAdminLogEventActionParticipantToggleBan::ID:
+ return channelAdminLogEventActionParticipantToggleBan::fetch(p);
+ case channelAdminLogEventActionParticipantToggleAdmin::ID:
+ return channelAdminLogEventActionParticipantToggleAdmin::fetch(p);
+ case channelAdminLogEventActionChangeStickerSet::ID:
+ return channelAdminLogEventActionChangeStickerSet::fetch(p);
+ case channelAdminLogEventActionTogglePreHistoryHidden::ID:
+ return channelAdminLogEventActionTogglePreHistoryHidden::fetch(p);
+ case channelAdminLogEventActionDefaultBannedRights::ID:
+ return channelAdminLogEventActionDefaultBannedRights::fetch(p);
+ case channelAdminLogEventActionStopPoll::ID:
+ return channelAdminLogEventActionStopPoll::fetch(p);
+ case channelAdminLogEventActionChangeLinkedChat::ID:
+ return channelAdminLogEventActionChangeLinkedChat::fetch(p);
+ case channelAdminLogEventActionChangeLocation::ID:
+ return channelAdminLogEventActionChangeLocation::fetch(p);
+ case channelAdminLogEventActionToggleSlowMode::ID:
+ return channelAdminLogEventActionToggleSlowMode::fetch(p);
+ case channelAdminLogEventActionStartGroupCall::ID:
+ return channelAdminLogEventActionStartGroupCall::fetch(p);
+ case channelAdminLogEventActionDiscardGroupCall::ID:
+ return channelAdminLogEventActionDiscardGroupCall::fetch(p);
+ case channelAdminLogEventActionParticipantMute::ID:
+ return channelAdminLogEventActionParticipantMute::fetch(p);
+ case channelAdminLogEventActionParticipantUnmute::ID:
+ return channelAdminLogEventActionParticipantUnmute::fetch(p);
+ case channelAdminLogEventActionToggleGroupCallSetting::ID:
+ return channelAdminLogEventActionToggleGroupCallSetting::fetch(p);
+ case channelAdminLogEventActionParticipantJoinByInvite::ID:
+ return channelAdminLogEventActionParticipantJoinByInvite::fetch(p);
+ case channelAdminLogEventActionExportedInviteDelete::ID:
+ return channelAdminLogEventActionExportedInviteDelete::fetch(p);
+ case channelAdminLogEventActionExportedInviteRevoke::ID:
+ return channelAdminLogEventActionExportedInviteRevoke::fetch(p);
+ case channelAdminLogEventActionExportedInviteEdit::ID:
+ return channelAdminLogEventActionExportedInviteEdit::fetch(p);
+ case channelAdminLogEventActionParticipantVolume::ID:
+ return channelAdminLogEventActionParticipantVolume::fetch(p);
+ case channelAdminLogEventActionChangeHistoryTTL::ID:
+ return channelAdminLogEventActionChangeHistoryTTL::fetch(p);
+ case channelAdminLogEventActionParticipantJoinByRequest::ID:
+ return channelAdminLogEventActionParticipantJoinByRequest::fetch(p);
+ case channelAdminLogEventActionToggleNoForwards::ID:
+ return channelAdminLogEventActionToggleNoForwards::fetch(p);
+ case channelAdminLogEventActionSendMessage::ID:
+ return channelAdminLogEventActionSendMessage::fetch(p);
+ case channelAdminLogEventActionChangeAvailableReactions::ID:
+ return channelAdminLogEventActionChangeAvailableReactions::fetch(p);
+ case channelAdminLogEventActionChangeUsernames::ID:
+ return channelAdminLogEventActionChangeUsernames::fetch(p);
+ case channelAdminLogEventActionToggleForum::ID:
+ return channelAdminLogEventActionToggleForum::fetch(p);
+ case channelAdminLogEventActionCreateTopic::ID:
+ return channelAdminLogEventActionCreateTopic::fetch(p);
+ case channelAdminLogEventActionEditTopic::ID:
+ return channelAdminLogEventActionEditTopic::fetch(p);
+ case channelAdminLogEventActionDeleteTopic::ID:
+ return channelAdminLogEventActionDeleteTopic::fetch(p);
+ case channelAdminLogEventActionPinTopic::ID:
+ return channelAdminLogEventActionPinTopic::fetch(p);
+ case channelLocationEmpty::ID:
+ return channelLocationEmpty::fetch(p);
+ case channelLocation::ID:
+ return channelLocation::fetch(p);
+ case channelParticipant::ID:
+ return channelParticipant::fetch(p);
+ case channelParticipantSelf::ID:
+ return channelParticipantSelf::fetch(p);
+ case channelParticipantCreator::ID:
+ return channelParticipantCreator::fetch(p);
+ case channelParticipantAdmin::ID:
+ return channelParticipantAdmin::fetch(p);
+ case channelParticipantBanned::ID:
+ return channelParticipantBanned::fetch(p);
+ case channelParticipantLeft::ID:
+ return channelParticipantLeft::fetch(p);
+ case chatEmpty::ID:
+ return chatEmpty::fetch(p);
+ case chat::ID:
+ return chat::fetch(p);
+ case chatForbidden::ID:
+ return chatForbidden::fetch(p);
+ case channel::ID:
+ return channel::fetch(p);
+ case channelForbidden::ID:
+ return channelForbidden::fetch(p);
+ case chatAdminRights::ID:
+ return chatAdminRights::fetch(p);
+ case chatAdminWithInvites::ID:
+ return chatAdminWithInvites::fetch(p);
+ case chatBannedRights::ID:
+ return chatBannedRights::fetch(p);
+ case chatFull::ID:
+ return chatFull::fetch(p);
+ case channelFull::ID:
+ return channelFull::fetch(p);
+ case chatInviteAlready::ID:
+ return chatInviteAlready::fetch(p);
+ case chatInvite::ID:
+ return chatInvite::fetch(p);
+ case chatInvitePeek::ID:
+ return chatInvitePeek::fetch(p);
+ case chatInviteImporter::ID:
+ return chatInviteImporter::fetch(p);
+ case chatOnlines::ID:
+ return chatOnlines::fetch(p);
+ case chatParticipant::ID:
+ return chatParticipant::fetch(p);
+ case chatParticipantCreator::ID:
+ return chatParticipantCreator::fetch(p);
+ case chatParticipantAdmin::ID:
+ return chatParticipantAdmin::fetch(p);
+ case chatParticipantsForbidden::ID:
+ return chatParticipantsForbidden::fetch(p);
+ case chatParticipants::ID:
+ return chatParticipants::fetch(p);
+ case chatPhotoEmpty::ID:
+ return chatPhotoEmpty::fetch(p);
+ case chatPhoto::ID:
+ return chatPhoto::fetch(p);
+ case chatReactionsNone::ID:
+ return chatReactionsNone::fetch(p);
+ case chatReactionsAll::ID:
+ return chatReactionsAll::fetch(p);
+ case chatReactionsSome::ID:
+ return chatReactionsSome::fetch(p);
+ case config::ID:
+ return config::fetch(p);
+ case contact::ID:
+ return contact::fetch(p);
+ case contactStatus::ID:
+ return contactStatus::fetch(p);
+ case dataJSON::ID:
+ return dataJSON::fetch(p);
+ case dcOption::ID:
+ return dcOption::fetch(p);
+ case dialog::ID:
+ return dialog::fetch(p);
+ case dialogFolder::ID:
+ return dialogFolder::fetch(p);
+ case dialogFilter::ID:
+ return dialogFilter::fetch(p);
+ case dialogFilterDefault::ID:
+ return dialogFilterDefault::fetch(p);
+ case dialogFilterSuggested::ID:
+ return dialogFilterSuggested::fetch(p);
+ case dialogPeer::ID:
+ return dialogPeer::fetch(p);
+ case dialogPeerFolder::ID:
+ return dialogPeerFolder::fetch(p);
+ case documentEmpty::ID:
+ return documentEmpty::fetch(p);
+ case document::ID:
+ return document::fetch(p);
+ case documentAttributeImageSize::ID:
+ return documentAttributeImageSize::fetch(p);
+ case documentAttributeAnimated::ID:
+ return documentAttributeAnimated::fetch(p);
+ case documentAttributeSticker::ID:
+ return documentAttributeSticker::fetch(p);
+ case documentAttributeVideo::ID:
+ return documentAttributeVideo::fetch(p);
+ case documentAttributeAudio::ID:
+ return documentAttributeAudio::fetch(p);
+ case documentAttributeFilename::ID:
+ return documentAttributeFilename::fetch(p);
+ case documentAttributeHasStickers::ID:
+ return documentAttributeHasStickers::fetch(p);
+ case documentAttributeCustomEmoji::ID:
+ return documentAttributeCustomEmoji::fetch(p);
+ case draftMessageEmpty::ID:
+ return draftMessageEmpty::fetch(p);
+ case draftMessage::ID:
+ return draftMessage::fetch(p);
+ case emojiKeyword::ID:
+ return emojiKeyword::fetch(p);
+ case emojiKeywordDeleted::ID:
+ return emojiKeywordDeleted::fetch(p);
+ case emojiKeywordsDifference::ID:
+ return emojiKeywordsDifference::fetch(p);
+ case emojiLanguage::ID:
+ return emojiLanguage::fetch(p);
+ case emojiStatusEmpty::ID:
+ return emojiStatusEmpty::fetch(p);
+ case emojiStatus::ID:
+ return emojiStatus::fetch(p);
+ case emojiStatusUntil::ID:
+ return emojiStatusUntil::fetch(p);
+ case emojiURL::ID:
+ return emojiURL::fetch(p);
+ case encryptedChatEmpty::ID:
+ return encryptedChatEmpty::fetch(p);
+ case encryptedChatWaiting::ID:
+ return encryptedChatWaiting::fetch(p);
+ case encryptedChatRequested::ID:
+ return encryptedChatRequested::fetch(p);
+ case encryptedChat::ID:
+ return encryptedChat::fetch(p);
+ case encryptedChatDiscarded::ID:
+ return encryptedChatDiscarded::fetch(p);
+ case encryptedFileEmpty::ID:
+ return encryptedFileEmpty::fetch(p);
+ case encryptedFile::ID:
+ return encryptedFile::fetch(p);
+ case encryptedMessage::ID:
+ return encryptedMessage::fetch(p);
+ case encryptedMessageService::ID:
+ return encryptedMessageService::fetch(p);
+ case error::ID:
+ return error::fetch(p);
+ case chatInviteExported::ID:
+ return chatInviteExported::fetch(p);
+ case chatInvitePublicJoinRequests::ID:
+ return chatInvitePublicJoinRequests::fetch(p);
+ case exportedMessageLink::ID:
+ return exportedMessageLink::fetch(p);
+ case fileHash::ID:
+ return fileHash::fetch(p);
+ case folder::ID:
+ return folder::fetch(p);
+ case folderPeer::ID:
+ return folderPeer::fetch(p);
+ case forumTopicDeleted::ID:
+ return forumTopicDeleted::fetch(p);
+ case forumTopic::ID:
+ return forumTopic::fetch(p);
+ case game::ID:
+ return game::fetch(p);
+ case geoPointEmpty::ID:
+ return geoPointEmpty::fetch(p);
+ case geoPoint::ID:
+ return geoPoint::fetch(p);
+ case globalPrivacySettings::ID:
+ return globalPrivacySettings::fetch(p);
+ case groupCallDiscarded::ID:
+ return groupCallDiscarded::fetch(p);
+ case groupCall::ID:
+ return groupCall::fetch(p);
+ case groupCallParticipant::ID:
+ return groupCallParticipant::fetch(p);
+ case groupCallParticipantVideo::ID:
+ return groupCallParticipantVideo::fetch(p);
+ case groupCallParticipantVideoSourceGroup::ID:
+ return groupCallParticipantVideoSourceGroup::fetch(p);
+ case groupCallStreamChannel::ID:
+ return groupCallStreamChannel::fetch(p);
+ case highScore::ID:
+ return highScore::fetch(p);
+ case importedContact::ID:
+ return importedContact::fetch(p);
+ case inlineBotSwitchPM::ID:
+ return inlineBotSwitchPM::fetch(p);
+ case inlineQueryPeerTypeSameBotPM::ID:
+ return inlineQueryPeerTypeSameBotPM::fetch(p);
+ case inlineQueryPeerTypePM::ID:
+ return inlineQueryPeerTypePM::fetch(p);
+ case inlineQueryPeerTypeChat::ID:
+ return inlineQueryPeerTypeChat::fetch(p);
+ case inlineQueryPeerTypeMegagroup::ID:
+ return inlineQueryPeerTypeMegagroup::fetch(p);
+ case inlineQueryPeerTypeBroadcast::ID:
+ return inlineQueryPeerTypeBroadcast::fetch(p);
+ case inputAppEvent::ID:
+ return inputAppEvent::fetch(p);
+ case inputBotInlineMessageID::ID:
+ return inputBotInlineMessageID::fetch(p);
+ case inputBotInlineMessageID64::ID:
+ return inputBotInlineMessageID64::fetch(p);
+ case inputChannelEmpty::ID:
+ return inputChannelEmpty::fetch(p);
+ case inputChannel::ID:
+ return inputChannel::fetch(p);
+ case inputChannelFromMessage::ID:
+ return inputChannelFromMessage::fetch(p);
+ case inputGroupCall::ID:
+ return inputGroupCall::fetch(p);
+ case inputPeerEmpty::ID:
+ return inputPeerEmpty::fetch(p);
+ case inputPeerSelf::ID:
+ return inputPeerSelf::fetch(p);
+ case inputPeerChat::ID:
+ return inputPeerChat::fetch(p);
+ case inputPeerUser::ID:
+ return inputPeerUser::fetch(p);
+ case inputPeerChannel::ID:
+ return inputPeerChannel::fetch(p);
+ case inputPeerUserFromMessage::ID:
+ return inputPeerUserFromMessage::fetch(p);
+ case inputPeerChannelFromMessage::ID:
+ return inputPeerChannelFromMessage::fetch(p);
+ case inputStickerSetEmpty::ID:
+ return inputStickerSetEmpty::fetch(p);
+ case inputStickerSetID::ID:
+ return inputStickerSetID::fetch(p);
+ case inputStickerSetShortName::ID:
+ return inputStickerSetShortName::fetch(p);
+ case inputStickerSetAnimatedEmoji::ID:
+ return inputStickerSetAnimatedEmoji::fetch(p);
+ case inputStickerSetDice::ID:
+ return inputStickerSetDice::fetch(p);
+ case inputStickerSetAnimatedEmojiAnimations::ID:
+ return inputStickerSetAnimatedEmojiAnimations::fetch(p);
+ case inputStickerSetPremiumGifts::ID:
+ return inputStickerSetPremiumGifts::fetch(p);
+ case inputStickerSetEmojiGenericAnimations::ID:
+ return inputStickerSetEmojiGenericAnimations::fetch(p);
+ case inputStickerSetEmojiDefaultStatuses::ID:
+ return inputStickerSetEmojiDefaultStatuses::fetch(p);
+ case inputStickerSetEmojiDefaultTopicIcons::ID:
+ return inputStickerSetEmojiDefaultTopicIcons::fetch(p);
+ case inputUserEmpty::ID:
+ return inputUserEmpty::fetch(p);
+ case inputUserSelf::ID:
+ return inputUserSelf::fetch(p);
+ case inputUser::ID:
+ return inputUser::fetch(p);
+ case inputUserFromMessage::ID:
+ return inputUserFromMessage::fetch(p);
+ case invoice::ID:
+ return invoice::fetch(p);
+ case ipPort::ID:
+ return ipPort::fetch(p);
+ case ipPortSecret::ID:
+ return ipPortSecret::fetch(p);
+ case jsonObjectValue::ID:
+ return jsonObjectValue::fetch(p);
+ case jsonNull::ID:
+ return jsonNull::fetch(p);
+ case jsonBool::ID:
+ return jsonBool::fetch(p);
+ case jsonNumber::ID:
+ return jsonNumber::fetch(p);
+ case jsonString::ID:
+ return jsonString::fetch(p);
+ case jsonArray::ID:
+ return jsonArray::fetch(p);
+ case jsonObject::ID:
+ return jsonObject::fetch(p);
+ case keyboardButton::ID:
+ return keyboardButton::fetch(p);
+ case keyboardButtonUrl::ID:
+ return keyboardButtonUrl::fetch(p);
+ case keyboardButtonCallback::ID:
+ return keyboardButtonCallback::fetch(p);
+ case keyboardButtonRequestPhone::ID:
+ return keyboardButtonRequestPhone::fetch(p);
+ case keyboardButtonRequestGeoLocation::ID:
+ return keyboardButtonRequestGeoLocation::fetch(p);
+ case keyboardButtonSwitchInline::ID:
+ return keyboardButtonSwitchInline::fetch(p);
+ case keyboardButtonGame::ID:
+ return keyboardButtonGame::fetch(p);
+ case keyboardButtonBuy::ID:
+ return keyboardButtonBuy::fetch(p);
+ case keyboardButtonUrlAuth::ID:
+ return keyboardButtonUrlAuth::fetch(p);
+ case inputKeyboardButtonUrlAuth::ID:
+ return inputKeyboardButtonUrlAuth::fetch(p);
+ case keyboardButtonRequestPoll::ID:
+ return keyboardButtonRequestPoll::fetch(p);
+ case inputKeyboardButtonUserProfile::ID:
+ return inputKeyboardButtonUserProfile::fetch(p);
+ case keyboardButtonUserProfile::ID:
+ return keyboardButtonUserProfile::fetch(p);
+ case keyboardButtonWebView::ID:
+ return keyboardButtonWebView::fetch(p);
+ case keyboardButtonSimpleWebView::ID:
+ return keyboardButtonSimpleWebView::fetch(p);
+ case keyboardButtonRow::ID:
+ return keyboardButtonRow::fetch(p);
+ case labeledPrice::ID:
+ return labeledPrice::fetch(p);
+ case langPackDifference::ID:
+ return langPackDifference::fetch(p);
+ case langPackLanguage::ID:
+ return langPackLanguage::fetch(p);
+ case langPackString::ID:
+ return langPackString::fetch(p);
+ case langPackStringPluralized::ID:
+ return langPackStringPluralized::fetch(p);
+ case langPackStringDeleted::ID:
+ return langPackStringDeleted::fetch(p);
+ case maskCoords::ID:
+ return maskCoords::fetch(p);
+ case messageEmpty::ID:
+ return messageEmpty::fetch(p);
+ case message::ID:
+ return message::fetch(p);
+ case messageService::ID:
+ return messageService::fetch(p);
+ case messageActionEmpty::ID:
+ return messageActionEmpty::fetch(p);
+ case messageActionChatCreate::ID:
+ return messageActionChatCreate::fetch(p);
+ case messageActionChatEditTitle::ID:
+ return messageActionChatEditTitle::fetch(p);
+ case messageActionChatEditPhoto::ID:
+ return messageActionChatEditPhoto::fetch(p);
+ case messageActionChatDeletePhoto::ID:
+ return messageActionChatDeletePhoto::fetch(p);
+ case messageActionChatAddUser::ID:
+ return messageActionChatAddUser::fetch(p);
+ case messageActionChatDeleteUser::ID:
+ return messageActionChatDeleteUser::fetch(p);
+ case messageActionChatJoinedByLink::ID:
+ return messageActionChatJoinedByLink::fetch(p);
+ case messageActionChannelCreate::ID:
+ return messageActionChannelCreate::fetch(p);
+ case messageActionChatMigrateTo::ID:
+ return messageActionChatMigrateTo::fetch(p);
+ case messageActionChannelMigrateFrom::ID:
+ return messageActionChannelMigrateFrom::fetch(p);
+ case messageActionPinMessage::ID:
+ return messageActionPinMessage::fetch(p);
+ case messageActionHistoryClear::ID:
+ return messageActionHistoryClear::fetch(p);
+ case messageActionGameScore::ID:
+ return messageActionGameScore::fetch(p);
+ case messageActionPaymentSentMe::ID:
+ return messageActionPaymentSentMe::fetch(p);
+ case messageActionPaymentSent::ID:
+ return messageActionPaymentSent::fetch(p);
+ case messageActionPhoneCall::ID:
+ return messageActionPhoneCall::fetch(p);
+ case messageActionScreenshotTaken::ID:
+ return messageActionScreenshotTaken::fetch(p);
+ case messageActionCustomAction::ID:
+ return messageActionCustomAction::fetch(p);
+ case messageActionBotAllowed::ID:
+ return messageActionBotAllowed::fetch(p);
+ case messageActionSecureValuesSentMe::ID:
+ return messageActionSecureValuesSentMe::fetch(p);
+ case messageActionSecureValuesSent::ID:
+ return messageActionSecureValuesSent::fetch(p);
+ case messageActionContactSignUp::ID:
+ return messageActionContactSignUp::fetch(p);
+ case messageActionGeoProximityReached::ID:
+ return messageActionGeoProximityReached::fetch(p);
+ case messageActionGroupCall::ID:
+ return messageActionGroupCall::fetch(p);
+ case messageActionInviteToGroupCall::ID:
+ return messageActionInviteToGroupCall::fetch(p);
+ case messageActionSetMessagesTTL::ID:
+ return messageActionSetMessagesTTL::fetch(p);
+ case messageActionGroupCallScheduled::ID:
+ return messageActionGroupCallScheduled::fetch(p);
+ case messageActionSetChatTheme::ID:
+ return messageActionSetChatTheme::fetch(p);
+ case messageActionChatJoinedByRequest::ID:
+ return messageActionChatJoinedByRequest::fetch(p);
+ case messageActionWebViewDataSentMe::ID:
+ return messageActionWebViewDataSentMe::fetch(p);
+ case messageActionWebViewDataSent::ID:
+ return messageActionWebViewDataSent::fetch(p);
+ case messageActionGiftPremium::ID:
+ return messageActionGiftPremium::fetch(p);
+ case messageActionTopicCreate::ID:
+ return messageActionTopicCreate::fetch(p);
+ case messageActionTopicEdit::ID:
+ return messageActionTopicEdit::fetch(p);
+ case messageEntityUnknown::ID:
+ return messageEntityUnknown::fetch(p);
+ case messageEntityMention::ID:
+ return messageEntityMention::fetch(p);
+ case messageEntityHashtag::ID:
+ return messageEntityHashtag::fetch(p);
+ case messageEntityBotCommand::ID:
+ return messageEntityBotCommand::fetch(p);
+ case messageEntityUrl::ID:
+ return messageEntityUrl::fetch(p);
+ case messageEntityEmail::ID:
+ return messageEntityEmail::fetch(p);
+ case messageEntityBold::ID:
+ return messageEntityBold::fetch(p);
+ case messageEntityItalic::ID:
+ return messageEntityItalic::fetch(p);
+ case messageEntityCode::ID:
+ return messageEntityCode::fetch(p);
+ case messageEntityPre::ID:
+ return messageEntityPre::fetch(p);
+ case messageEntityTextUrl::ID:
+ return messageEntityTextUrl::fetch(p);
+ case messageEntityMentionName::ID:
+ return messageEntityMentionName::fetch(p);
+ case inputMessageEntityMentionName::ID:
+ return inputMessageEntityMentionName::fetch(p);
+ case messageEntityPhone::ID:
+ return messageEntityPhone::fetch(p);
+ case messageEntityCashtag::ID:
+ return messageEntityCashtag::fetch(p);
+ case messageEntityUnderline::ID:
+ return messageEntityUnderline::fetch(p);
+ case messageEntityStrike::ID:
+ return messageEntityStrike::fetch(p);
+ case messageEntityBlockquote::ID:
+ return messageEntityBlockquote::fetch(p);
+ case messageEntityBankCard::ID:
+ return messageEntityBankCard::fetch(p);
+ case messageEntitySpoiler::ID:
+ return messageEntitySpoiler::fetch(p);
+ case messageEntityCustomEmoji::ID:
+ return messageEntityCustomEmoji::fetch(p);
+ case messageExtendedMediaPreview::ID:
+ return messageExtendedMediaPreview::fetch(p);
+ case messageExtendedMedia::ID:
+ return messageExtendedMedia::fetch(p);
+ case messageFwdHeader::ID:
+ return messageFwdHeader::fetch(p);
+ case messageInteractionCounters::ID:
+ return messageInteractionCounters::fetch(p);
+ case messageMediaEmpty::ID:
+ return messageMediaEmpty::fetch(p);
+ case messageMediaPhoto::ID:
+ return messageMediaPhoto::fetch(p);
+ case messageMediaGeo::ID:
+ return messageMediaGeo::fetch(p);
+ case messageMediaContact::ID:
+ return messageMediaContact::fetch(p);
+ case messageMediaUnsupported::ID:
+ return messageMediaUnsupported::fetch(p);
+ case messageMediaDocument::ID:
+ return messageMediaDocument::fetch(p);
+ case messageMediaWebPage::ID:
+ return messageMediaWebPage::fetch(p);
+ case messageMediaVenue::ID:
+ return messageMediaVenue::fetch(p);
+ case messageMediaGame::ID:
+ return messageMediaGame::fetch(p);
+ case messageMediaInvoice::ID:
+ return messageMediaInvoice::fetch(p);
+ case messageMediaGeoLive::ID:
+ return messageMediaGeoLive::fetch(p);
+ case messageMediaPoll::ID:
+ return messageMediaPoll::fetch(p);
+ case messageMediaDice::ID:
+ return messageMediaDice::fetch(p);
+ case messagePeerReaction::ID:
+ return messagePeerReaction::fetch(p);
+ case messageRange::ID:
+ return messageRange::fetch(p);
+ case messageReactions::ID:
+ return messageReactions::fetch(p);
+ case messageReplies::ID:
+ return messageReplies::fetch(p);
+ case messageReplyHeader::ID:
+ return messageReplyHeader::fetch(p);
+ case messageUserVote::ID:
+ return messageUserVote::fetch(p);
+ case messageUserVoteInputOption::ID:
+ return messageUserVoteInputOption::fetch(p);
+ case messageUserVoteMultiple::ID:
+ return messageUserVoteMultiple::fetch(p);
+ case messageViews::ID:
+ return messageViews::fetch(p);
+ case inputMessagesFilterEmpty::ID:
+ return inputMessagesFilterEmpty::fetch(p);
+ case inputMessagesFilterPhotos::ID:
+ return inputMessagesFilterPhotos::fetch(p);
+ case inputMessagesFilterVideo::ID:
+ return inputMessagesFilterVideo::fetch(p);
+ case inputMessagesFilterPhotoVideo::ID:
+ return inputMessagesFilterPhotoVideo::fetch(p);
+ case inputMessagesFilterDocument::ID:
+ return inputMessagesFilterDocument::fetch(p);
+ case inputMessagesFilterUrl::ID:
+ return inputMessagesFilterUrl::fetch(p);
+ case inputMessagesFilterGif::ID:
+ return inputMessagesFilterGif::fetch(p);
+ case inputMessagesFilterVoice::ID:
+ return inputMessagesFilterVoice::fetch(p);
+ case inputMessagesFilterMusic::ID:
+ return inputMessagesFilterMusic::fetch(p);
+ case inputMessagesFilterChatPhotos::ID:
+ return inputMessagesFilterChatPhotos::fetch(p);
+ case inputMessagesFilterPhoneCalls::ID:
+ return inputMessagesFilterPhoneCalls::fetch(p);
+ case inputMessagesFilterRoundVoice::ID:
+ return inputMessagesFilterRoundVoice::fetch(p);
+ case inputMessagesFilterRoundVideo::ID:
+ return inputMessagesFilterRoundVideo::fetch(p);
+ case inputMessagesFilterMyMentions::ID:
+ return inputMessagesFilterMyMentions::fetch(p);
+ case inputMessagesFilterGeo::ID:
+ return inputMessagesFilterGeo::fetch(p);
+ case inputMessagesFilterContacts::ID:
+ return inputMessagesFilterContacts::fetch(p);
+ case inputMessagesFilterPinned::ID:
+ return inputMessagesFilterPinned::fetch(p);
+ case nearestDc::ID:
+ return nearestDc::fetch(p);
+ case notificationSoundDefault::ID:
+ return notificationSoundDefault::fetch(p);
+ case notificationSoundNone::ID:
+ return notificationSoundNone::fetch(p);
+ case notificationSoundLocal::ID:
+ return notificationSoundLocal::fetch(p);
+ case notificationSoundRingtone::ID:
+ return notificationSoundRingtone::fetch(p);
+ case notifyPeer::ID:
+ return notifyPeer::fetch(p);
+ case notifyUsers::ID:
+ return notifyUsers::fetch(p);
+ case notifyChats::ID:
+ return notifyChats::fetch(p);
+ case notifyBroadcasts::ID:
+ return notifyBroadcasts::fetch(p);
+ case notifyForumTopic::ID:
+ return notifyForumTopic::fetch(p);
+ case page::ID:
+ return page::fetch(p);
+ case pageBlockUnsupported::ID:
+ return pageBlockUnsupported::fetch(p);
+ case pageBlockTitle::ID:
+ return pageBlockTitle::fetch(p);
+ case pageBlockSubtitle::ID:
+ return pageBlockSubtitle::fetch(p);
+ case pageBlockAuthorDate::ID:
+ return pageBlockAuthorDate::fetch(p);
+ case pageBlockHeader::ID:
+ return pageBlockHeader::fetch(p);
+ case pageBlockSubheader::ID:
+ return pageBlockSubheader::fetch(p);
+ case pageBlockParagraph::ID:
+ return pageBlockParagraph::fetch(p);
+ case pageBlockPreformatted::ID:
+ return pageBlockPreformatted::fetch(p);
+ case pageBlockFooter::ID:
+ return pageBlockFooter::fetch(p);
+ case pageBlockDivider::ID:
+ return pageBlockDivider::fetch(p);
+ case pageBlockAnchor::ID:
+ return pageBlockAnchor::fetch(p);
+ case pageBlockList::ID:
+ return pageBlockList::fetch(p);
+ case pageBlockBlockquote::ID:
+ return pageBlockBlockquote::fetch(p);
+ case pageBlockPullquote::ID:
+ return pageBlockPullquote::fetch(p);
+ case pageBlockPhoto::ID:
+ return pageBlockPhoto::fetch(p);
+ case pageBlockVideo::ID:
+ return pageBlockVideo::fetch(p);
+ case pageBlockCover::ID:
+ return pageBlockCover::fetch(p);
+ case pageBlockEmbed::ID:
+ return pageBlockEmbed::fetch(p);
+ case pageBlockEmbedPost::ID:
+ return pageBlockEmbedPost::fetch(p);
+ case pageBlockCollage::ID:
+ return pageBlockCollage::fetch(p);
+ case pageBlockSlideshow::ID:
+ return pageBlockSlideshow::fetch(p);
+ case pageBlockChannel::ID:
+ return pageBlockChannel::fetch(p);
+ case pageBlockAudio::ID:
+ return pageBlockAudio::fetch(p);
+ case pageBlockKicker::ID:
+ return pageBlockKicker::fetch(p);
+ case pageBlockTable::ID:
+ return pageBlockTable::fetch(p);
+ case pageBlockOrderedList::ID:
+ return pageBlockOrderedList::fetch(p);
+ case pageBlockDetails::ID:
+ return pageBlockDetails::fetch(p);
+ case pageBlockRelatedArticles::ID:
+ return pageBlockRelatedArticles::fetch(p);
+ case pageBlockMap::ID:
+ return pageBlockMap::fetch(p);
+ case pageCaption::ID:
+ return pageCaption::fetch(p);
+ case pageListItemText::ID:
+ return pageListItemText::fetch(p);
+ case pageListItemBlocks::ID:
+ return pageListItemBlocks::fetch(p);
+ case pageListOrderedItemText::ID:
+ return pageListOrderedItemText::fetch(p);
+ case pageListOrderedItemBlocks::ID:
+ return pageListOrderedItemBlocks::fetch(p);
+ case pageRelatedArticle::ID:
+ return pageRelatedArticle::fetch(p);
+ case pageTableCell::ID:
+ return pageTableCell::fetch(p);
+ case pageTableRow::ID:
+ return pageTableRow::fetch(p);
+ case passwordKdfAlgoUnknown::ID:
+ return passwordKdfAlgoUnknown::fetch(p);
+ case passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::ID:
+ return passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::fetch(p);
+ case paymentCharge::ID:
+ return paymentCharge::fetch(p);
+ case paymentFormMethod::ID:
+ return paymentFormMethod::fetch(p);
+ case paymentRequestedInfo::ID:
+ return paymentRequestedInfo::fetch(p);
+ case paymentSavedCredentialsCard::ID:
+ return paymentSavedCredentialsCard::fetch(p);
+ case peerUser::ID:
+ return peerUser::fetch(p);
+ case peerChat::ID:
+ return peerChat::fetch(p);
+ case peerChannel::ID:
+ return peerChannel::fetch(p);
+ case peerBlocked::ID:
+ return peerBlocked::fetch(p);
+ case peerLocated::ID:
+ return peerLocated::fetch(p);
+ case peerSelfLocated::ID:
+ return peerSelfLocated::fetch(p);
+ case peerNotifySettings::ID:
+ return peerNotifySettings::fetch(p);
+ case peerSettings::ID:
+ return peerSettings::fetch(p);
+ case phoneCallEmpty::ID:
+ return phoneCallEmpty::fetch(p);
+ case phoneCallWaiting::ID:
+ return phoneCallWaiting::fetch(p);
+ case phoneCallRequested::ID:
+ return phoneCallRequested::fetch(p);
+ case phoneCallAccepted::ID:
+ return phoneCallAccepted::fetch(p);
+ case phoneCall::ID:
+ return phoneCall::fetch(p);
+ case phoneCallDiscarded::ID:
+ return phoneCallDiscarded::fetch(p);
+ case phoneCallDiscardReasonMissed::ID:
+ return phoneCallDiscardReasonMissed::fetch(p);
+ case phoneCallDiscardReasonDisconnect::ID:
+ return phoneCallDiscardReasonDisconnect::fetch(p);
+ case phoneCallDiscardReasonHangup::ID:
+ return phoneCallDiscardReasonHangup::fetch(p);
+ case phoneCallDiscardReasonBusy::ID:
+ return phoneCallDiscardReasonBusy::fetch(p);
+ case phoneCallProtocol::ID:
+ return phoneCallProtocol::fetch(p);
+ case phoneConnection::ID:
+ return phoneConnection::fetch(p);
+ case phoneConnectionWebrtc::ID:
+ return phoneConnectionWebrtc::fetch(p);
+ case photoEmpty::ID:
+ return photoEmpty::fetch(p);
+ case photo::ID:
+ return photo::fetch(p);
+ case photoSizeEmpty::ID:
+ return photoSizeEmpty::fetch(p);
+ case photoSize::ID:
+ return photoSize::fetch(p);
+ case photoCachedSize::ID:
+ return photoCachedSize::fetch(p);
+ case photoStrippedSize::ID:
+ return photoStrippedSize::fetch(p);
+ case photoSizeProgressive::ID:
+ return photoSizeProgressive::fetch(p);
+ case photoPathSize::ID:
+ return photoPathSize::fetch(p);
+ case poll::ID:
+ return poll::fetch(p);
+ case pollAnswer::ID:
+ return pollAnswer::fetch(p);
+ case pollAnswerVoters::ID:
+ return pollAnswerVoters::fetch(p);
+ case pollResults::ID:
+ return pollResults::fetch(p);
+ case popularContact::ID:
+ return popularContact::fetch(p);
+ case postAddress::ID:
+ return postAddress::fetch(p);
+ case premiumGiftOption::ID:
+ return premiumGiftOption::fetch(p);
+ case premiumSubscriptionOption::ID:
+ return premiumSubscriptionOption::fetch(p);
+ case privacyKeyStatusTimestamp::ID:
+ return privacyKeyStatusTimestamp::fetch(p);
+ case privacyKeyChatInvite::ID:
+ return privacyKeyChatInvite::fetch(p);
+ case privacyKeyPhoneCall::ID:
+ return privacyKeyPhoneCall::fetch(p);
+ case privacyKeyPhoneP2P::ID:
+ return privacyKeyPhoneP2P::fetch(p);
+ case privacyKeyForwards::ID:
+ return privacyKeyForwards::fetch(p);
+ case privacyKeyProfilePhoto::ID:
+ return privacyKeyProfilePhoto::fetch(p);
+ case privacyKeyPhoneNumber::ID:
+ return privacyKeyPhoneNumber::fetch(p);
+ case privacyKeyAddedByPhone::ID:
+ return privacyKeyAddedByPhone::fetch(p);
+ case privacyKeyVoiceMessages::ID:
+ return privacyKeyVoiceMessages::fetch(p);
+ case privacyValueAllowContacts::ID:
+ return privacyValueAllowContacts::fetch(p);
+ case privacyValueAllowAll::ID:
+ return privacyValueAllowAll::fetch(p);
+ case privacyValueAllowUsers::ID:
+ return privacyValueAllowUsers::fetch(p);
+ case privacyValueDisallowContacts::ID:
+ return privacyValueDisallowContacts::fetch(p);
+ case privacyValueDisallowAll::ID:
+ return privacyValueDisallowAll::fetch(p);
+ case privacyValueDisallowUsers::ID:
+ return privacyValueDisallowUsers::fetch(p);
+ case privacyValueAllowChatParticipants::ID:
+ return privacyValueAllowChatParticipants::fetch(p);
+ case privacyValueDisallowChatParticipants::ID:
+ return privacyValueDisallowChatParticipants::fetch(p);
+ case reactionEmpty::ID:
+ return reactionEmpty::fetch(p);
+ case reactionEmoji::ID:
+ return reactionEmoji::fetch(p);
+ case reactionCustomEmoji::ID:
+ return reactionCustomEmoji::fetch(p);
+ case reactionCount::ID:
+ return reactionCount::fetch(p);
+ case receivedNotifyMessage::ID:
+ return receivedNotifyMessage::fetch(p);
+ case recentMeUrlUnknown::ID:
+ return recentMeUrlUnknown::fetch(p);
+ case recentMeUrlUser::ID:
+ return recentMeUrlUser::fetch(p);
+ case recentMeUrlChat::ID:
+ return recentMeUrlChat::fetch(p);
+ case recentMeUrlChatInvite::ID:
+ return recentMeUrlChatInvite::fetch(p);
+ case recentMeUrlStickerSet::ID:
+ return recentMeUrlStickerSet::fetch(p);
+ case replyKeyboardHide::ID:
+ return replyKeyboardHide::fetch(p);
+ case replyKeyboardForceReply::ID:
+ return replyKeyboardForceReply::fetch(p);
+ case replyKeyboardMarkup::ID:
+ return replyKeyboardMarkup::fetch(p);
+ case replyInlineMarkup::ID:
+ return replyInlineMarkup::fetch(p);
+ case restrictionReason::ID:
+ return restrictionReason::fetch(p);
+ case textEmpty::ID:
+ return textEmpty::fetch(p);
+ case textPlain::ID:
+ return textPlain::fetch(p);
+ case textBold::ID:
+ return textBold::fetch(p);
+ case textItalic::ID:
+ return textItalic::fetch(p);
+ case textUnderline::ID:
+ return textUnderline::fetch(p);
+ case textStrike::ID:
+ return textStrike::fetch(p);
+ case textFixed::ID:
+ return textFixed::fetch(p);
+ case textUrl::ID:
+ return textUrl::fetch(p);
+ case textEmail::ID:
+ return textEmail::fetch(p);
+ case textConcat::ID:
+ return textConcat::fetch(p);
+ case textSubscript::ID:
+ return textSubscript::fetch(p);
+ case textSuperscript::ID:
+ return textSuperscript::fetch(p);
+ case textMarked::ID:
+ return textMarked::fetch(p);
+ case textPhone::ID:
+ return textPhone::fetch(p);
+ case textImage::ID:
+ return textImage::fetch(p);
+ case textAnchor::ID:
+ return textAnchor::fetch(p);
+ case savedPhoneContact::ID:
+ return savedPhoneContact::fetch(p);
+ case searchResultsCalendarPeriod::ID:
+ return searchResultsCalendarPeriod::fetch(p);
+ case searchResultPosition::ID:
+ return searchResultPosition::fetch(p);
+ case secureCredentialsEncrypted::ID:
+ return secureCredentialsEncrypted::fetch(p);
+ case secureData::ID:
+ return secureData::fetch(p);
+ case secureFileEmpty::ID:
+ return secureFileEmpty::fetch(p);
+ case secureFile::ID:
+ return secureFile::fetch(p);
+ case securePasswordKdfAlgoUnknown::ID:
+ return securePasswordKdfAlgoUnknown::fetch(p);
+ case securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::ID:
+ return securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::fetch(p);
+ case securePasswordKdfAlgoSHA512::ID:
+ return securePasswordKdfAlgoSHA512::fetch(p);
+ case securePlainPhone::ID:
+ return securePlainPhone::fetch(p);
+ case securePlainEmail::ID:
+ return securePlainEmail::fetch(p);
+ case secureRequiredType::ID:
+ return secureRequiredType::fetch(p);
+ case secureRequiredTypeOneOf::ID:
+ return secureRequiredTypeOneOf::fetch(p);
+ case secureSecretSettings::ID:
+ return secureSecretSettings::fetch(p);
+ case secureValue::ID:
+ return secureValue::fetch(p);
+ case secureValueErrorData::ID:
+ return secureValueErrorData::fetch(p);
+ case secureValueErrorFrontSide::ID:
+ return secureValueErrorFrontSide::fetch(p);
+ case secureValueErrorReverseSide::ID:
+ return secureValueErrorReverseSide::fetch(p);
+ case secureValueErrorSelfie::ID:
+ return secureValueErrorSelfie::fetch(p);
+ case secureValueErrorFile::ID:
+ return secureValueErrorFile::fetch(p);
+ case secureValueErrorFiles::ID:
+ return secureValueErrorFiles::fetch(p);
+ case secureValueError::ID:
+ return secureValueError::fetch(p);
+ case secureValueErrorTranslationFile::ID:
+ return secureValueErrorTranslationFile::fetch(p);
+ case secureValueErrorTranslationFiles::ID:
+ return secureValueErrorTranslationFiles::fetch(p);
+ case secureValueTypePersonalDetails::ID:
+ return secureValueTypePersonalDetails::fetch(p);
+ case secureValueTypePassport::ID:
+ return secureValueTypePassport::fetch(p);
+ case secureValueTypeDriverLicense::ID:
+ return secureValueTypeDriverLicense::fetch(p);
+ case secureValueTypeIdentityCard::ID:
+ return secureValueTypeIdentityCard::fetch(p);
+ case secureValueTypeInternalPassport::ID:
+ return secureValueTypeInternalPassport::fetch(p);
+ case secureValueTypeAddress::ID:
+ return secureValueTypeAddress::fetch(p);
+ case secureValueTypeUtilityBill::ID:
+ return secureValueTypeUtilityBill::fetch(p);
+ case secureValueTypeBankStatement::ID:
+ return secureValueTypeBankStatement::fetch(p);
+ case secureValueTypeRentalAgreement::ID:
+ return secureValueTypeRentalAgreement::fetch(p);
+ case secureValueTypePassportRegistration::ID:
+ return secureValueTypePassportRegistration::fetch(p);
+ case secureValueTypeTemporaryRegistration::ID:
+ return secureValueTypeTemporaryRegistration::fetch(p);
+ case secureValueTypePhone::ID:
+ return secureValueTypePhone::fetch(p);
+ case secureValueTypeEmail::ID:
+ return secureValueTypeEmail::fetch(p);
+ case sendAsPeer::ID:
+ return sendAsPeer::fetch(p);
+ case sendMessageTypingAction::ID:
+ return sendMessageTypingAction::fetch(p);
+ case sendMessageCancelAction::ID:
+ return sendMessageCancelAction::fetch(p);
+ case sendMessageRecordVideoAction::ID:
+ return sendMessageRecordVideoAction::fetch(p);
+ case sendMessageUploadVideoAction::ID:
+ return sendMessageUploadVideoAction::fetch(p);
+ case sendMessageRecordAudioAction::ID:
+ return sendMessageRecordAudioAction::fetch(p);
+ case sendMessageUploadAudioAction::ID:
+ return sendMessageUploadAudioAction::fetch(p);
+ case sendMessageUploadPhotoAction::ID:
+ return sendMessageUploadPhotoAction::fetch(p);
+ case sendMessageUploadDocumentAction::ID:
+ return sendMessageUploadDocumentAction::fetch(p);
+ case sendMessageGeoLocationAction::ID:
+ return sendMessageGeoLocationAction::fetch(p);
+ case sendMessageChooseContactAction::ID:
+ return sendMessageChooseContactAction::fetch(p);
+ case sendMessageGamePlayAction::ID:
+ return sendMessageGamePlayAction::fetch(p);
+ case sendMessageRecordRoundAction::ID:
+ return sendMessageRecordRoundAction::fetch(p);
+ case sendMessageUploadRoundAction::ID:
+ return sendMessageUploadRoundAction::fetch(p);
+ case speakingInGroupCallAction::ID:
+ return speakingInGroupCallAction::fetch(p);
+ case sendMessageHistoryImportAction::ID:
+ return sendMessageHistoryImportAction::fetch(p);
+ case sendMessageChooseStickerAction::ID:
+ return sendMessageChooseStickerAction::fetch(p);
+ case sendMessageEmojiInteraction::ID:
+ return sendMessageEmojiInteraction::fetch(p);
+ case sendMessageEmojiInteractionSeen::ID:
+ return sendMessageEmojiInteractionSeen::fetch(p);
+ case shippingOption::ID:
+ return shippingOption::fetch(p);
+ case simpleWebViewResultUrl::ID:
+ return simpleWebViewResultUrl::fetch(p);
+ case sponsoredMessage::ID:
+ return sponsoredMessage::fetch(p);
+ case statsAbsValueAndPrev::ID:
+ return statsAbsValueAndPrev::fetch(p);
+ case statsDateRangeDays::ID:
+ return statsDateRangeDays::fetch(p);
+ case statsGraphAsync::ID:
+ return statsGraphAsync::fetch(p);
+ case statsGraphError::ID:
+ return statsGraphError::fetch(p);
+ case statsGraph::ID:
+ return statsGraph::fetch(p);
+ case statsGroupTopAdmin::ID:
+ return statsGroupTopAdmin::fetch(p);
+ case statsGroupTopInviter::ID:
+ return statsGroupTopInviter::fetch(p);
+ case statsGroupTopPoster::ID:
+ return statsGroupTopPoster::fetch(p);
+ case statsPercentValue::ID:
+ return statsPercentValue::fetch(p);
+ case stickerKeyword::ID:
+ return stickerKeyword::fetch(p);
+ case stickerPack::ID:
+ return stickerPack::fetch(p);
+ case stickerSet::ID:
+ return stickerSet::fetch(p);
+ case stickerSetCovered::ID:
+ return stickerSetCovered::fetch(p);
+ case stickerSetMultiCovered::ID:
+ return stickerSetMultiCovered::fetch(p);
+ case stickerSetFullCovered::ID:
+ return stickerSetFullCovered::fetch(p);
+ case theme::ID:
+ return theme::fetch(p);
+ case themeSettings::ID:
+ return themeSettings::fetch(p);
+ case topPeer::ID:
+ return topPeer::fetch(p);
+ case topPeerCategoryBotsPM::ID:
+ return topPeerCategoryBotsPM::fetch(p);
+ case topPeerCategoryBotsInline::ID:
+ return topPeerCategoryBotsInline::fetch(p);
+ case topPeerCategoryCorrespondents::ID:
+ return topPeerCategoryCorrespondents::fetch(p);
+ case topPeerCategoryGroups::ID:
+ return topPeerCategoryGroups::fetch(p);
+ case topPeerCategoryChannels::ID:
+ return topPeerCategoryChannels::fetch(p);
+ case topPeerCategoryPhoneCalls::ID:
+ return topPeerCategoryPhoneCalls::fetch(p);
+ case topPeerCategoryForwardUsers::ID:
+ return topPeerCategoryForwardUsers::fetch(p);
+ case topPeerCategoryForwardChats::ID:
+ return topPeerCategoryForwardChats::fetch(p);
+ case topPeerCategoryPeers::ID:
+ return topPeerCategoryPeers::fetch(p);
+ case updateNewMessage::ID:
+ return updateNewMessage::fetch(p);
+ case updateMessageID::ID:
+ return updateMessageID::fetch(p);
+ case updateDeleteMessages::ID:
+ return updateDeleteMessages::fetch(p);
+ case updateUserTyping::ID:
+ return updateUserTyping::fetch(p);
+ case updateChatUserTyping::ID:
+ return updateChatUserTyping::fetch(p);
+ case updateChatParticipants::ID:
+ return updateChatParticipants::fetch(p);
+ case updateUserStatus::ID:
+ return updateUserStatus::fetch(p);
+ case updateUserName::ID:
+ return updateUserName::fetch(p);
+ case updateUserPhoto::ID:
+ return updateUserPhoto::fetch(p);
+ case updateNewEncryptedMessage::ID:
+ return updateNewEncryptedMessage::fetch(p);
+ case updateEncryptedChatTyping::ID:
+ return updateEncryptedChatTyping::fetch(p);
+ case updateEncryption::ID:
+ return updateEncryption::fetch(p);
+ case updateEncryptedMessagesRead::ID:
+ return updateEncryptedMessagesRead::fetch(p);
+ case updateChatParticipantAdd::ID:
+ return updateChatParticipantAdd::fetch(p);
+ case updateChatParticipantDelete::ID:
+ return updateChatParticipantDelete::fetch(p);
+ case updateDcOptions::ID:
+ return updateDcOptions::fetch(p);
+ case updateNotifySettings::ID:
+ return updateNotifySettings::fetch(p);
+ case updateServiceNotification::ID:
+ return updateServiceNotification::fetch(p);
+ case updatePrivacy::ID:
+ return updatePrivacy::fetch(p);
+ case updateUserPhone::ID:
+ return updateUserPhone::fetch(p);
+ case updateReadHistoryInbox::ID:
+ return updateReadHistoryInbox::fetch(p);
+ case updateReadHistoryOutbox::ID:
+ return updateReadHistoryOutbox::fetch(p);
+ case updateWebPage::ID:
+ return updateWebPage::fetch(p);
+ case updateReadMessagesContents::ID:
+ return updateReadMessagesContents::fetch(p);
+ case updateChannelTooLong::ID:
+ return updateChannelTooLong::fetch(p);
+ case updateChannel::ID:
+ return updateChannel::fetch(p);
+ case updateNewChannelMessage::ID:
+ return updateNewChannelMessage::fetch(p);
+ case updateReadChannelInbox::ID:
+ return updateReadChannelInbox::fetch(p);
+ case updateDeleteChannelMessages::ID:
+ return updateDeleteChannelMessages::fetch(p);
+ case updateChannelMessageViews::ID:
+ return updateChannelMessageViews::fetch(p);
+ case updateChatParticipantAdmin::ID:
+ return updateChatParticipantAdmin::fetch(p);
+ case updateNewStickerSet::ID:
+ return updateNewStickerSet::fetch(p);
+ case updateStickerSetsOrder::ID:
+ return updateStickerSetsOrder::fetch(p);
+ case updateStickerSets::ID:
+ return updateStickerSets::fetch(p);
+ case updateSavedGifs::ID:
+ return updateSavedGifs::fetch(p);
+ case updateBotInlineQuery::ID:
+ return updateBotInlineQuery::fetch(p);
+ case updateBotInlineSend::ID:
+ return updateBotInlineSend::fetch(p);
+ case updateEditChannelMessage::ID:
+ return updateEditChannelMessage::fetch(p);
+ case updateBotCallbackQuery::ID:
+ return updateBotCallbackQuery::fetch(p);
+ case updateEditMessage::ID:
+ return updateEditMessage::fetch(p);
+ case updateInlineBotCallbackQuery::ID:
+ return updateInlineBotCallbackQuery::fetch(p);
+ case updateReadChannelOutbox::ID:
+ return updateReadChannelOutbox::fetch(p);
+ case updateDraftMessage::ID:
+ return updateDraftMessage::fetch(p);
+ case updateReadFeaturedStickers::ID:
+ return updateReadFeaturedStickers::fetch(p);
+ case updateRecentStickers::ID:
+ return updateRecentStickers::fetch(p);
+ case updateConfig::ID:
+ return updateConfig::fetch(p);
+ case updatePtsChanged::ID:
+ return updatePtsChanged::fetch(p);
+ case updateChannelWebPage::ID:
+ return updateChannelWebPage::fetch(p);
+ case updateDialogPinned::ID:
+ return updateDialogPinned::fetch(p);
+ case updatePinnedDialogs::ID:
+ return updatePinnedDialogs::fetch(p);
+ case updateBotWebhookJSON::ID:
+ return updateBotWebhookJSON::fetch(p);
+ case updateBotWebhookJSONQuery::ID:
+ return updateBotWebhookJSONQuery::fetch(p);
+ case updateBotShippingQuery::ID:
+ return updateBotShippingQuery::fetch(p);
+ case updateBotPrecheckoutQuery::ID:
+ return updateBotPrecheckoutQuery::fetch(p);
+ case updatePhoneCall::ID:
+ return updatePhoneCall::fetch(p);
+ case updateLangPackTooLong::ID:
+ return updateLangPackTooLong::fetch(p);
+ case updateLangPack::ID:
+ return updateLangPack::fetch(p);
+ case updateFavedStickers::ID:
+ return updateFavedStickers::fetch(p);
+ case updateChannelReadMessagesContents::ID:
+ return updateChannelReadMessagesContents::fetch(p);
+ case updateContactsReset::ID:
+ return updateContactsReset::fetch(p);
+ case updateChannelAvailableMessages::ID:
+ return updateChannelAvailableMessages::fetch(p);
+ case updateDialogUnreadMark::ID:
+ return updateDialogUnreadMark::fetch(p);
+ case updateMessagePoll::ID:
+ return updateMessagePoll::fetch(p);
+ case updateChatDefaultBannedRights::ID:
+ return updateChatDefaultBannedRights::fetch(p);
+ case updateFolderPeers::ID:
+ return updateFolderPeers::fetch(p);
+ case updatePeerSettings::ID:
+ return updatePeerSettings::fetch(p);
+ case updatePeerLocated::ID:
+ return updatePeerLocated::fetch(p);
+ case updateNewScheduledMessage::ID:
+ return updateNewScheduledMessage::fetch(p);
+ case updateDeleteScheduledMessages::ID:
+ return updateDeleteScheduledMessages::fetch(p);
+ case updateTheme::ID:
+ return updateTheme::fetch(p);
+ case updateGeoLiveViewed::ID:
+ return updateGeoLiveViewed::fetch(p);
+ case updateLoginToken::ID:
+ return updateLoginToken::fetch(p);
+ case updateMessagePollVote::ID:
+ return updateMessagePollVote::fetch(p);
+ case updateDialogFilter::ID:
+ return updateDialogFilter::fetch(p);
+ case updateDialogFilterOrder::ID:
+ return updateDialogFilterOrder::fetch(p);
+ case updateDialogFilters::ID:
+ return updateDialogFilters::fetch(p);
+ case updatePhoneCallSignalingData::ID:
+ return updatePhoneCallSignalingData::fetch(p);
+ case updateChannelMessageForwards::ID:
+ return updateChannelMessageForwards::fetch(p);
+ case updateReadChannelDiscussionInbox::ID:
+ return updateReadChannelDiscussionInbox::fetch(p);
+ case updateReadChannelDiscussionOutbox::ID:
+ return updateReadChannelDiscussionOutbox::fetch(p);
+ case updatePeerBlocked::ID:
+ return updatePeerBlocked::fetch(p);
+ case updateChannelUserTyping::ID:
+ return updateChannelUserTyping::fetch(p);
+ case updatePinnedMessages::ID:
+ return updatePinnedMessages::fetch(p);
+ case updatePinnedChannelMessages::ID:
+ return updatePinnedChannelMessages::fetch(p);
+ case updateChat::ID:
+ return updateChat::fetch(p);
+ case updateGroupCallParticipants::ID:
+ return updateGroupCallParticipants::fetch(p);
+ case updateGroupCall::ID:
+ return updateGroupCall::fetch(p);
+ case updatePeerHistoryTTL::ID:
+ return updatePeerHistoryTTL::fetch(p);
+ case updateChatParticipant::ID:
+ return updateChatParticipant::fetch(p);
+ case updateChannelParticipant::ID:
+ return updateChannelParticipant::fetch(p);
+ case updateBotStopped::ID:
+ return updateBotStopped::fetch(p);
+ case updateGroupCallConnection::ID:
+ return updateGroupCallConnection::fetch(p);
+ case updateBotCommands::ID:
+ return updateBotCommands::fetch(p);
+ case updatePendingJoinRequests::ID:
+ return updatePendingJoinRequests::fetch(p);
+ case updateBotChatInviteRequester::ID:
+ return updateBotChatInviteRequester::fetch(p);
+ case updateMessageReactions::ID:
+ return updateMessageReactions::fetch(p);
+ case updateAttachMenuBots::ID:
+ return updateAttachMenuBots::fetch(p);
+ case updateWebViewResultSent::ID:
+ return updateWebViewResultSent::fetch(p);
+ case updateBotMenuButton::ID:
+ return updateBotMenuButton::fetch(p);
+ case updateSavedRingtones::ID:
+ return updateSavedRingtones::fetch(p);
+ case updateTranscribedAudio::ID:
+ return updateTranscribedAudio::fetch(p);
+ case updateReadFeaturedEmojiStickers::ID:
+ return updateReadFeaturedEmojiStickers::fetch(p);
+ case updateUserEmojiStatus::ID:
+ return updateUserEmojiStatus::fetch(p);
+ case updateRecentEmojiStatuses::ID:
+ return updateRecentEmojiStatuses::fetch(p);
+ case updateRecentReactions::ID:
+ return updateRecentReactions::fetch(p);
+ case updateMoveStickerSetToTop::ID:
+ return updateMoveStickerSetToTop::fetch(p);
+ case updateMessageExtendedMedia::ID:
+ return updateMessageExtendedMedia::fetch(p);
+ case updateChannelPinnedTopic::ID:
+ return updateChannelPinnedTopic::fetch(p);
+ case updatesTooLong::ID:
+ return updatesTooLong::fetch(p);
+ case updateShortMessage::ID:
+ return updateShortMessage::fetch(p);
+ case updateShortChatMessage::ID:
+ return updateShortChatMessage::fetch(p);
+ case updateShort::ID:
+ return updateShort::fetch(p);
+ case updatesCombined::ID:
+ return updatesCombined::fetch(p);
+ case updates::ID:
+ return updates::fetch(p);
+ case updateShortSentMessage::ID:
+ return updateShortSentMessage::fetch(p);
+ case urlAuthResultRequest::ID:
+ return urlAuthResultRequest::fetch(p);
+ case urlAuthResultAccepted::ID:
+ return urlAuthResultAccepted::fetch(p);
+ case urlAuthResultDefault::ID:
+ return urlAuthResultDefault::fetch(p);
+ case userEmpty::ID:
+ return userEmpty::fetch(p);
+ case user::ID:
+ return user::fetch(p);
+ case userFull::ID:
+ return userFull::fetch(p);
+ case userProfilePhotoEmpty::ID:
+ return userProfilePhotoEmpty::fetch(p);
+ case userProfilePhoto::ID:
+ return userProfilePhoto::fetch(p);
+ case userStatusEmpty::ID:
+ return userStatusEmpty::fetch(p);
+ case userStatusOnline::ID:
+ return userStatusOnline::fetch(p);
+ case userStatusOffline::ID:
+ return userStatusOffline::fetch(p);
+ case userStatusRecently::ID:
+ return userStatusRecently::fetch(p);
+ case userStatusLastWeek::ID:
+ return userStatusLastWeek::fetch(p);
+ case userStatusLastMonth::ID:
+ return userStatusLastMonth::fetch(p);
+ case username::ID:
+ return username::fetch(p);
+ case videoSize::ID:
+ return videoSize::fetch(p);
+ case wallPaper::ID:
+ return wallPaper::fetch(p);
+ case wallPaperNoFile::ID:
+ return wallPaperNoFile::fetch(p);
+ case wallPaperSettings::ID:
+ return wallPaperSettings::fetch(p);
+ case webAuthorization::ID:
+ return webAuthorization::fetch(p);
+ case webDocument::ID:
+ return webDocument::fetch(p);
+ case webDocumentNoProxy::ID:
+ return webDocumentNoProxy::fetch(p);
+ case webPageEmpty::ID:
+ return webPageEmpty::fetch(p);
+ case webPagePending::ID:
+ return webPagePending::fetch(p);
+ case webPage::ID:
+ return webPage::fetch(p);
+ case webPageNotModified::ID:
+ return webPageNotModified::fetch(p);
+ case webPageAttributeTheme::ID:
+ return webPageAttributeTheme::fetch(p);
+ case webViewMessageSent::ID:
+ return webViewMessageSent::fetch(p);
+ case webViewResultUrl::ID:
+ return webViewResultUrl::fetch(p);
+ case account_authorizationForm::ID:
+ return account_authorizationForm::fetch(p);
+ case account_authorizations::ID:
+ return account_authorizations::fetch(p);
+ case account_autoDownloadSettings::ID:
+ return account_autoDownloadSettings::fetch(p);
+ case account_contentSettings::ID:
+ return account_contentSettings::fetch(p);
+ case account_emailVerified::ID:
+ return account_emailVerified::fetch(p);
+ case account_emailVerifiedLogin::ID:
+ return account_emailVerifiedLogin::fetch(p);
+ case account_emojiStatusesNotModified::ID:
+ return account_emojiStatusesNotModified::fetch(p);
+ case account_emojiStatuses::ID:
+ return account_emojiStatuses::fetch(p);
+ case account_password::ID:
+ return account_password::fetch(p);
+ case account_passwordSettings::ID:
+ return account_passwordSettings::fetch(p);
+ case account_privacyRules::ID:
+ return account_privacyRules::fetch(p);
+ case account_resetPasswordFailedWait::ID:
+ return account_resetPasswordFailedWait::fetch(p);
+ case account_resetPasswordRequestedWait::ID:
+ return account_resetPasswordRequestedWait::fetch(p);
+ case account_resetPasswordOk::ID:
+ return account_resetPasswordOk::fetch(p);
+ case account_savedRingtone::ID:
+ return account_savedRingtone::fetch(p);
+ case account_savedRingtoneConverted::ID:
+ return account_savedRingtoneConverted::fetch(p);
+ case account_savedRingtonesNotModified::ID:
+ return account_savedRingtonesNotModified::fetch(p);
+ case account_savedRingtones::ID:
+ return account_savedRingtones::fetch(p);
+ case account_sentEmailCode::ID:
+ return account_sentEmailCode::fetch(p);
+ case account_takeout::ID:
+ return account_takeout::fetch(p);
+ case account_themesNotModified::ID:
+ return account_themesNotModified::fetch(p);
+ case account_themes::ID:
+ return account_themes::fetch(p);
+ case account_tmpPassword::ID:
+ return account_tmpPassword::fetch(p);
+ case account_wallPapersNotModified::ID:
+ return account_wallPapersNotModified::fetch(p);
+ case account_wallPapers::ID:
+ return account_wallPapers::fetch(p);
+ case account_webAuthorizations::ID:
+ return account_webAuthorizations::fetch(p);
+ case auth_authorization::ID:
+ return auth_authorization::fetch(p);
+ case auth_authorizationSignUpRequired::ID:
+ return auth_authorizationSignUpRequired::fetch(p);
+ case auth_codeTypeSms::ID:
+ return auth_codeTypeSms::fetch(p);
+ case auth_codeTypeCall::ID:
+ return auth_codeTypeCall::fetch(p);
+ case auth_codeTypeFlashCall::ID:
+ return auth_codeTypeFlashCall::fetch(p);
+ case auth_codeTypeMissedCall::ID:
+ return auth_codeTypeMissedCall::fetch(p);
+ case auth_exportedAuthorization::ID:
+ return auth_exportedAuthorization::fetch(p);
+ case auth_loggedOut::ID:
+ return auth_loggedOut::fetch(p);
+ case auth_loginToken::ID:
+ return auth_loginToken::fetch(p);
+ case auth_loginTokenMigrateTo::ID:
+ return auth_loginTokenMigrateTo::fetch(p);
+ case auth_loginTokenSuccess::ID:
+ return auth_loginTokenSuccess::fetch(p);
+ case auth_passwordRecovery::ID:
+ return auth_passwordRecovery::fetch(p);
+ case auth_sentCode::ID:
+ return auth_sentCode::fetch(p);
+ case auth_sentCodeTypeApp::ID:
+ return auth_sentCodeTypeApp::fetch(p);
+ case auth_sentCodeTypeSms::ID:
+ return auth_sentCodeTypeSms::fetch(p);
+ case auth_sentCodeTypeCall::ID:
+ return auth_sentCodeTypeCall::fetch(p);
+ case auth_sentCodeTypeFlashCall::ID:
+ return auth_sentCodeTypeFlashCall::fetch(p);
+ case auth_sentCodeTypeMissedCall::ID:
+ return auth_sentCodeTypeMissedCall::fetch(p);
+ case auth_sentCodeTypeEmailCode::ID:
+ return auth_sentCodeTypeEmailCode::fetch(p);
+ case auth_sentCodeTypeSetUpEmailRequired::ID:
+ return auth_sentCodeTypeSetUpEmailRequired::fetch(p);
+ case channels_adminLogResults::ID:
+ return channels_adminLogResults::fetch(p);
+ case channels_channelParticipant::ID:
+ return channels_channelParticipant::fetch(p);
+ case channels_channelParticipants::ID:
+ return channels_channelParticipants::fetch(p);
+ case channels_channelParticipantsNotModified::ID:
+ return channels_channelParticipantsNotModified::fetch(p);
+ case channels_sendAsPeers::ID:
+ return channels_sendAsPeers::fetch(p);
+ case contacts_blocked::ID:
+ return contacts_blocked::fetch(p);
+ case contacts_blockedSlice::ID:
+ return contacts_blockedSlice::fetch(p);
+ case contacts_contactsNotModified::ID:
+ return contacts_contactsNotModified::fetch(p);
+ case contacts_contacts::ID:
+ return contacts_contacts::fetch(p);
+ case contacts_found::ID:
+ return contacts_found::fetch(p);
+ case contacts_importedContacts::ID:
+ return contacts_importedContacts::fetch(p);
+ case contacts_resolvedPeer::ID:
+ return contacts_resolvedPeer::fetch(p);
+ case contacts_topPeersNotModified::ID:
+ return contacts_topPeersNotModified::fetch(p);
+ case contacts_topPeers::ID:
+ return contacts_topPeers::fetch(p);
+ case contacts_topPeersDisabled::ID:
+ return contacts_topPeersDisabled::fetch(p);
+ case help_appUpdate::ID:
+ return help_appUpdate::fetch(p);
+ case help_noAppUpdate::ID:
+ return help_noAppUpdate::fetch(p);
+ case help_configSimple::ID:
+ return help_configSimple::fetch(p);
+ case help_countriesListNotModified::ID:
+ return help_countriesListNotModified::fetch(p);
+ case help_countriesList::ID:
+ return help_countriesList::fetch(p);
+ case help_country::ID:
+ return help_country::fetch(p);
+ case help_countryCode::ID:
+ return help_countryCode::fetch(p);
+ case help_deepLinkInfoEmpty::ID:
+ return help_deepLinkInfoEmpty::fetch(p);
+ case help_deepLinkInfo::ID:
+ return help_deepLinkInfo::fetch(p);
+ case help_inviteText::ID:
+ return help_inviteText::fetch(p);
+ case help_passportConfigNotModified::ID:
+ return help_passportConfigNotModified::fetch(p);
+ case help_passportConfig::ID:
+ return help_passportConfig::fetch(p);
+ case help_premiumPromo::ID:
+ return help_premiumPromo::fetch(p);
+ case help_promoDataEmpty::ID:
+ return help_promoDataEmpty::fetch(p);
+ case help_promoData::ID:
+ return help_promoData::fetch(p);
+ case help_recentMeUrls::ID:
+ return help_recentMeUrls::fetch(p);
+ case help_support::ID:
+ return help_support::fetch(p);
+ case help_supportName::ID:
+ return help_supportName::fetch(p);
+ case help_termsOfService::ID:
+ return help_termsOfService::fetch(p);
+ case help_termsOfServiceUpdateEmpty::ID:
+ return help_termsOfServiceUpdateEmpty::fetch(p);
+ case help_termsOfServiceUpdate::ID:
+ return help_termsOfServiceUpdate::fetch(p);
+ case help_userInfoEmpty::ID:
+ return help_userInfoEmpty::fetch(p);
+ case help_userInfo::ID:
+ return help_userInfo::fetch(p);
+ case messages_affectedFoundMessages::ID:
+ return messages_affectedFoundMessages::fetch(p);
+ case messages_affectedHistory::ID:
+ return messages_affectedHistory::fetch(p);
+ case messages_affectedMessages::ID:
+ return messages_affectedMessages::fetch(p);
+ case messages_allStickersNotModified::ID:
+ return messages_allStickersNotModified::fetch(p);
+ case messages_allStickers::ID:
+ return messages_allStickers::fetch(p);
+ case messages_archivedStickers::ID:
+ return messages_archivedStickers::fetch(p);
+ case messages_availableReactionsNotModified::ID:
+ return messages_availableReactionsNotModified::fetch(p);
+ case messages_availableReactions::ID:
+ return messages_availableReactions::fetch(p);
+ case messages_botCallbackAnswer::ID:
+ return messages_botCallbackAnswer::fetch(p);
+ case messages_botResults::ID:
+ return messages_botResults::fetch(p);
+ case messages_chatAdminsWithInvites::ID:
+ return messages_chatAdminsWithInvites::fetch(p);
+ case messages_chatFull::ID:
+ return messages_chatFull::fetch(p);
+ case messages_chatInviteImporters::ID:
+ return messages_chatInviteImporters::fetch(p);
+ case messages_chats::ID:
+ return messages_chats::fetch(p);
+ case messages_chatsSlice::ID:
+ return messages_chatsSlice::fetch(p);
+ case messages_checkedHistoryImportPeer::ID:
+ return messages_checkedHistoryImportPeer::fetch(p);
+ case messages_dhConfigNotModified::ID:
+ return messages_dhConfigNotModified::fetch(p);
+ case messages_dhConfig::ID:
+ return messages_dhConfig::fetch(p);
+ case messages_dialogs::ID:
+ return messages_dialogs::fetch(p);
+ case messages_dialogsSlice::ID:
+ return messages_dialogsSlice::fetch(p);
+ case messages_dialogsNotModified::ID:
+ return messages_dialogsNotModified::fetch(p);
+ case messages_discussionMessage::ID:
+ return messages_discussionMessage::fetch(p);
+ case messages_exportedChatInvite::ID:
+ return messages_exportedChatInvite::fetch(p);
+ case messages_exportedChatInviteReplaced::ID:
+ return messages_exportedChatInviteReplaced::fetch(p);
+ case messages_exportedChatInvites::ID:
+ return messages_exportedChatInvites::fetch(p);
+ case messages_favedStickersNotModified::ID:
+ return messages_favedStickersNotModified::fetch(p);
+ case messages_favedStickers::ID:
+ return messages_favedStickers::fetch(p);
+ case messages_featuredStickersNotModified::ID:
+ return messages_featuredStickersNotModified::fetch(p);
+ case messages_featuredStickers::ID:
+ return messages_featuredStickers::fetch(p);
+ case messages_forumTopics::ID:
+ return messages_forumTopics::fetch(p);
+ case messages_foundStickerSetsNotModified::ID:
+ return messages_foundStickerSetsNotModified::fetch(p);
+ case messages_foundStickerSets::ID:
+ return messages_foundStickerSets::fetch(p);
+ case messages_highScores::ID:
+ return messages_highScores::fetch(p);
+ case messages_historyImport::ID:
+ return messages_historyImport::fetch(p);
+ case messages_historyImportParsed::ID:
+ return messages_historyImportParsed::fetch(p);
+ case messages_inactiveChats::ID:
+ return messages_inactiveChats::fetch(p);
+ case messages_messageEditData::ID:
+ return messages_messageEditData::fetch(p);
+ case messages_messageReactionsList::ID:
+ return messages_messageReactionsList::fetch(p);
+ case messages_messageViews::ID:
+ return messages_messageViews::fetch(p);
+ case messages_messages::ID:
+ return messages_messages::fetch(p);
+ case messages_messagesSlice::ID:
+ return messages_messagesSlice::fetch(p);
+ case messages_channelMessages::ID:
+ return messages_channelMessages::fetch(p);
+ case messages_messagesNotModified::ID:
+ return messages_messagesNotModified::fetch(p);
+ case messages_peerDialogs::ID:
+ return messages_peerDialogs::fetch(p);
+ case messages_peerSettings::ID:
+ return messages_peerSettings::fetch(p);
+ case messages_reactionsNotModified::ID:
+ return messages_reactionsNotModified::fetch(p);
+ case messages_reactions::ID:
+ return messages_reactions::fetch(p);
+ case messages_recentStickersNotModified::ID:
+ return messages_recentStickersNotModified::fetch(p);
+ case messages_recentStickers::ID:
+ return messages_recentStickers::fetch(p);
+ case messages_savedGifsNotModified::ID:
+ return messages_savedGifsNotModified::fetch(p);
+ case messages_savedGifs::ID:
+ return messages_savedGifs::fetch(p);
+ case messages_searchCounter::ID:
+ return messages_searchCounter::fetch(p);
+ case messages_searchResultsCalendar::ID:
+ return messages_searchResultsCalendar::fetch(p);
+ case messages_searchResultsPositions::ID:
+ return messages_searchResultsPositions::fetch(p);
+ case messages_sentEncryptedMessage::ID:
+ return messages_sentEncryptedMessage::fetch(p);
+ case messages_sentEncryptedFile::ID:
+ return messages_sentEncryptedFile::fetch(p);
+ case messages_sponsoredMessages::ID:
+ return messages_sponsoredMessages::fetch(p);
+ case messages_sponsoredMessagesEmpty::ID:
+ return messages_sponsoredMessagesEmpty::fetch(p);
+ case messages_stickerSet::ID:
+ return messages_stickerSet::fetch(p);
+ case messages_stickerSetNotModified::ID:
+ return messages_stickerSetNotModified::fetch(p);
+ case messages_stickerSetInstallResultSuccess::ID:
+ return messages_stickerSetInstallResultSuccess::fetch(p);
+ case messages_stickerSetInstallResultArchive::ID:
+ return messages_stickerSetInstallResultArchive::fetch(p);
+ case messages_stickersNotModified::ID:
+ return messages_stickersNotModified::fetch(p);
+ case messages_stickers::ID:
+ return messages_stickers::fetch(p);
+ case messages_transcribedAudio::ID:
+ return messages_transcribedAudio::fetch(p);
+ case messages_translateNoResult::ID:
+ return messages_translateNoResult::fetch(p);
+ case messages_translateResultText::ID:
+ return messages_translateResultText::fetch(p);
+ case messages_votesList::ID:
+ return messages_votesList::fetch(p);
+ case payments_bankCardData::ID:
+ return payments_bankCardData::fetch(p);
+ case payments_exportedInvoice::ID:
+ return payments_exportedInvoice::fetch(p);
+ case payments_paymentForm::ID:
+ return payments_paymentForm::fetch(p);
+ case payments_paymentReceipt::ID:
+ return payments_paymentReceipt::fetch(p);
+ case payments_paymentResult::ID:
+ return payments_paymentResult::fetch(p);
+ case payments_paymentVerificationNeeded::ID:
+ return payments_paymentVerificationNeeded::fetch(p);
+ case payments_savedInfo::ID:
+ return payments_savedInfo::fetch(p);
+ case payments_validatedRequestedInfo::ID:
+ return payments_validatedRequestedInfo::fetch(p);
+ case phone_exportedGroupCallInvite::ID:
+ return phone_exportedGroupCallInvite::fetch(p);
+ case phone_groupCall::ID:
+ return phone_groupCall::fetch(p);
+ case phone_groupCallStreamChannels::ID:
+ return phone_groupCallStreamChannels::fetch(p);
+ case phone_groupCallStreamRtmpUrl::ID:
+ return phone_groupCallStreamRtmpUrl::fetch(p);
+ case phone_groupParticipants::ID:
+ return phone_groupParticipants::fetch(p);
+ case phone_joinAsPeers::ID:
+ return phone_joinAsPeers::fetch(p);
+ case phone_phoneCall::ID:
+ return phone_phoneCall::fetch(p);
+ case photos_photo::ID:
+ return photos_photo::fetch(p);
+ case photos_photos::ID:
+ return photos_photos::fetch(p);
+ case photos_photosSlice::ID:
+ return photos_photosSlice::fetch(p);
+ case stats_broadcastStats::ID:
+ return stats_broadcastStats::fetch(p);
+ case stats_megagroupStats::ID:
+ return stats_megagroupStats::fetch(p);
+ case stats_messageStats::ID:
+ return stats_messageStats::fetch(p);
+ case stickers_suggestedShortName::ID:
+ return stickers_suggestedShortName::fetch(p);
+ case storage_fileUnknown::ID:
+ return storage_fileUnknown::fetch(p);
+ case storage_filePartial::ID:
+ return storage_filePartial::fetch(p);
+ case storage_fileJpeg::ID:
+ return storage_fileJpeg::fetch(p);
+ case storage_fileGif::ID:
+ return storage_fileGif::fetch(p);
+ case storage_filePng::ID:
+ return storage_filePng::fetch(p);
+ case storage_filePdf::ID:
+ return storage_filePdf::fetch(p);
+ case storage_fileMp3::ID:
+ return storage_fileMp3::fetch(p);
+ case storage_fileMov::ID:
+ return storage_fileMov::fetch(p);
+ case storage_fileMp4::ID:
+ return storage_fileMp4::fetch(p);
+ case storage_fileWebp::ID:
+ return storage_fileWebp::fetch(p);
+ case updates_channelDifferenceEmpty::ID:
+ return updates_channelDifferenceEmpty::fetch(p);
+ case updates_channelDifferenceTooLong::ID:
+ return updates_channelDifferenceTooLong::fetch(p);
+ case updates_channelDifference::ID:
+ return updates_channelDifference::fetch(p);
+ case updates_differenceEmpty::ID:
+ return updates_differenceEmpty::fetch(p);
+ case updates_difference::ID:
+ return updates_difference::fetch(p);
+ case updates_differenceSlice::ID:
+ return updates_differenceSlice::fetch(p);
+ case updates_differenceTooLong::ID:
+ return updates_differenceTooLong::fetch(p);
+ case updates_state::ID:
+ return updates_state::fetch(p);
+ case upload_cdnFileReuploadNeeded::ID:
+ return upload_cdnFileReuploadNeeded::fetch(p);
+ case upload_cdnFile::ID:
+ return upload_cdnFile::fetch(p);
+ case upload_file::ID:
+ return upload_file::fetch(p);
+ case upload_fileCdnRedirect::ID:
+ return upload_fileCdnRedirect::fetch(p);
+ case upload_webFile::ID:
+ return upload_webFile::fetch(p);
+ case users_userFull::ID:
+ return users_userFull::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t accessPointRule::ID;
+
+object_ptr<accessPointRule> accessPointRule::fetch(TlBufferParser &p) {
+ return make_tl_object<accessPointRule>(p);
+}
+
+accessPointRule::accessPointRule(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : phone_prefix_rules_(TlFetchString<string>::parse(p))
+ , dc_id_(TlFetchInt::parse(p))
+ , ips_(TlFetchVector<TlFetchObject<IpPort>>::parse(p))
+#undef FAIL
+{}
+
+void accessPointRule::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "accessPointRule");
+ s.store_field("phone_prefix_rules", phone_prefix_rules_);
+ s.store_field("dc_id", dc_id_);
+ { s.store_vector_begin("ips", ips_.size()); for (const auto &_value : ips_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+accountDaysTTL::accountDaysTTL(int32 days_)
+ : days_(days_)
+{}
+
+const std::int32_t accountDaysTTL::ID;
+
+object_ptr<accountDaysTTL> accountDaysTTL::fetch(TlBufferParser &p) {
+ return make_tl_object<accountDaysTTL>(p);
+}
+
+accountDaysTTL::accountDaysTTL(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : days_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void accountDaysTTL::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(days_, s);
+}
+
+void accountDaysTTL::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(days_, s);
+}
+
+void accountDaysTTL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "accountDaysTTL");
+ s.store_field("days", days_);
+ s.store_class_end();
+ }
+}
+
+attachMenuBot::attachMenuBot()
+ : flags_()
+ , inactive_()
+ , has_settings_()
+ , bot_id_()
+ , short_name_()
+ , peer_types_()
+ , icons_()
+{}
+
+const std::int32_t attachMenuBot::ID;
+
+object_ptr<attachMenuBot> attachMenuBot::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<attachMenuBot> res = make_tl_object<attachMenuBot>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->inactive_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->has_settings_ = TlFetchTrue::parse(p); }
+ res->bot_id_ = TlFetchLong::parse(p);
+ res->short_name_ = TlFetchString<string>::parse(p);
+ res->peer_types_ = TlFetchBoxed<TlFetchVector<TlFetchObject<AttachMenuPeerType>>, 481674261>::parse(p);
+ res->icons_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<attachMenuBotIcon>, -1297663893>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void attachMenuBot::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuBot");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("bot_id", bot_id_);
+ s.store_field("short_name", short_name_);
+ { s.store_vector_begin("peer_types", peer_types_.size()); for (const auto &_value : peer_types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("icons", icons_.size()); for (const auto &_value : icons_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+attachMenuBotIcon::attachMenuBotIcon()
+ : flags_()
+ , name_()
+ , icon_()
+ , colors_()
+{}
+
+const std::int32_t attachMenuBotIcon::ID;
+
+object_ptr<attachMenuBotIcon> attachMenuBotIcon::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<attachMenuBotIcon> res = make_tl_object<attachMenuBotIcon>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->name_ = TlFetchString<string>::parse(p);
+ res->icon_ = TlFetchObject<Document>::parse(p);
+ if (var0 & 1) { res->colors_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<attachMenuBotIconColor>, 1165423600>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void attachMenuBotIcon::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuBotIcon");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("name", name_);
+ s.store_object_field("icon", static_cast<const BaseObject *>(icon_.get()));
+ if (var0 & 1) { { s.store_vector_begin("colors", colors_.size()); for (const auto &_value : colors_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t attachMenuBotIconColor::ID;
+
+object_ptr<attachMenuBotIconColor> attachMenuBotIconColor::fetch(TlBufferParser &p) {
+ return make_tl_object<attachMenuBotIconColor>(p);
+}
+
+attachMenuBotIconColor::attachMenuBotIconColor(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : name_(TlFetchString<string>::parse(p))
+ , color_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void attachMenuBotIconColor::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuBotIconColor");
+ s.store_field("name", name_);
+ s.store_field("color", color_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<AttachMenuBots> AttachMenuBots::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case attachMenuBotsNotModified::ID:
+ return attachMenuBotsNotModified::fetch(p);
+ case attachMenuBots::ID:
+ return attachMenuBots::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t attachMenuBotsNotModified::ID;
+
+object_ptr<AttachMenuBots> attachMenuBotsNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<attachMenuBotsNotModified>();
+}
+
+void attachMenuBotsNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuBotsNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t attachMenuBots::ID;
+
+object_ptr<AttachMenuBots> attachMenuBots::fetch(TlBufferParser &p) {
+ return make_tl_object<attachMenuBots>(p);
+}
+
+attachMenuBots::attachMenuBots(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , bots_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<attachMenuBot>, -928371502>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void attachMenuBots::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuBots");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("bots", bots_.size()); for (const auto &_value : bots_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t attachMenuBotsBot::ID;
+
+object_ptr<attachMenuBotsBot> attachMenuBotsBot::fetch(TlBufferParser &p) {
+ return make_tl_object<attachMenuBotsBot>(p);
+}
+
+attachMenuBotsBot::attachMenuBotsBot(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : bot_(TlFetchBoxed<TlFetchObject<attachMenuBot>, -928371502>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void attachMenuBotsBot::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuBotsBot");
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<AttachMenuPeerType> AttachMenuPeerType::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case attachMenuPeerTypeSameBotPM::ID:
+ return attachMenuPeerTypeSameBotPM::fetch(p);
+ case attachMenuPeerTypeBotPM::ID:
+ return attachMenuPeerTypeBotPM::fetch(p);
+ case attachMenuPeerTypePM::ID:
+ return attachMenuPeerTypePM::fetch(p);
+ case attachMenuPeerTypeChat::ID:
+ return attachMenuPeerTypeChat::fetch(p);
+ case attachMenuPeerTypeBroadcast::ID:
+ return attachMenuPeerTypeBroadcast::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t attachMenuPeerTypeSameBotPM::ID;
+
+object_ptr<AttachMenuPeerType> attachMenuPeerTypeSameBotPM::fetch(TlBufferParser &p) {
+ return make_tl_object<attachMenuPeerTypeSameBotPM>();
+}
+
+void attachMenuPeerTypeSameBotPM::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuPeerTypeSameBotPM");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t attachMenuPeerTypeBotPM::ID;
+
+object_ptr<AttachMenuPeerType> attachMenuPeerTypeBotPM::fetch(TlBufferParser &p) {
+ return make_tl_object<attachMenuPeerTypeBotPM>();
+}
+
+void attachMenuPeerTypeBotPM::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuPeerTypeBotPM");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t attachMenuPeerTypePM::ID;
+
+object_ptr<AttachMenuPeerType> attachMenuPeerTypePM::fetch(TlBufferParser &p) {
+ return make_tl_object<attachMenuPeerTypePM>();
+}
+
+void attachMenuPeerTypePM::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuPeerTypePM");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t attachMenuPeerTypeChat::ID;
+
+object_ptr<AttachMenuPeerType> attachMenuPeerTypeChat::fetch(TlBufferParser &p) {
+ return make_tl_object<attachMenuPeerTypeChat>();
+}
+
+void attachMenuPeerTypeChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuPeerTypeChat");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t attachMenuPeerTypeBroadcast::ID;
+
+object_ptr<AttachMenuPeerType> attachMenuPeerTypeBroadcast::fetch(TlBufferParser &p) {
+ return make_tl_object<attachMenuPeerTypeBroadcast>();
+}
+
+void attachMenuPeerTypeBroadcast::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "attachMenuPeerTypeBroadcast");
+ s.store_class_end();
+ }
+}
+
+authorization::authorization()
+ : flags_()
+ , current_()
+ , official_app_()
+ , password_pending_()
+ , encrypted_requests_disabled_()
+ , call_requests_disabled_()
+ , hash_()
+ , device_model_()
+ , platform_()
+ , system_version_()
+ , api_id_()
+ , app_name_()
+ , app_version_()
+ , date_created_()
+ , date_active_()
+ , ip_()
+ , country_()
+ , region_()
+{}
+
+const std::int32_t authorization::ID;
+
+object_ptr<authorization> authorization::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<authorization> res = make_tl_object<authorization>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->current_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->official_app_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->password_pending_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->encrypted_requests_disabled_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->call_requests_disabled_ = TlFetchTrue::parse(p); }
+ res->hash_ = TlFetchLong::parse(p);
+ res->device_model_ = TlFetchString<string>::parse(p);
+ res->platform_ = TlFetchString<string>::parse(p);
+ res->system_version_ = TlFetchString<string>::parse(p);
+ res->api_id_ = TlFetchInt::parse(p);
+ res->app_name_ = TlFetchString<string>::parse(p);
+ res->app_version_ = TlFetchString<string>::parse(p);
+ res->date_created_ = TlFetchInt::parse(p);
+ res->date_active_ = TlFetchInt::parse(p);
+ res->ip_ = TlFetchString<string>::parse(p);
+ res->country_ = TlFetchString<string>::parse(p);
+ res->region_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void authorization::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "authorization");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("hash", hash_);
+ s.store_field("device_model", device_model_);
+ s.store_field("platform", platform_);
+ s.store_field("system_version", system_version_);
+ s.store_field("api_id", api_id_);
+ s.store_field("app_name", app_name_);
+ s.store_field("app_version", app_version_);
+ s.store_field("date_created", date_created_);
+ s.store_field("date_active", date_active_);
+ s.store_field("ip", ip_);
+ s.store_field("country", country_);
+ s.store_field("region", region_);
+ s.store_class_end();
+ }
+}
+
+autoDownloadSettings::autoDownloadSettings()
+ : flags_()
+ , disabled_()
+ , video_preload_large_()
+ , audio_preload_next_()
+ , phonecalls_less_data_()
+ , photo_size_max_()
+ , video_size_max_()
+ , file_size_max_()
+ , video_upload_maxbitrate_()
+{}
+
+autoDownloadSettings::autoDownloadSettings(int32 flags_, bool disabled_, bool video_preload_large_, bool audio_preload_next_, bool phonecalls_less_data_, int32 photo_size_max_, int64 video_size_max_, int64 file_size_max_, int32 video_upload_maxbitrate_)
+ : flags_(flags_)
+ , disabled_(disabled_)
+ , video_preload_large_(video_preload_large_)
+ , audio_preload_next_(audio_preload_next_)
+ , phonecalls_less_data_(phonecalls_less_data_)
+ , photo_size_max_(photo_size_max_)
+ , video_size_max_(video_size_max_)
+ , file_size_max_(file_size_max_)
+ , video_upload_maxbitrate_(video_upload_maxbitrate_)
+{}
+
+const std::int32_t autoDownloadSettings::ID;
+
+object_ptr<autoDownloadSettings> autoDownloadSettings::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<autoDownloadSettings> res = make_tl_object<autoDownloadSettings>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->disabled_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->video_preload_large_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->audio_preload_next_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->phonecalls_less_data_ = TlFetchTrue::parse(p); }
+ res->photo_size_max_ = TlFetchInt::parse(p);
+ res->video_size_max_ = TlFetchLong::parse(p);
+ res->file_size_max_ = TlFetchLong::parse(p);
+ res->video_upload_maxbitrate_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void autoDownloadSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(photo_size_max_, s);
+ TlStoreBinary::store(video_size_max_, s);
+ TlStoreBinary::store(file_size_max_, s);
+ TlStoreBinary::store(video_upload_maxbitrate_, s);
+}
+
+void autoDownloadSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(photo_size_max_, s);
+ TlStoreBinary::store(video_size_max_, s);
+ TlStoreBinary::store(file_size_max_, s);
+ TlStoreBinary::store(video_upload_maxbitrate_, s);
+}
+
+void autoDownloadSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "autoDownloadSettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("photo_size_max", photo_size_max_);
+ s.store_field("video_size_max", video_size_max_);
+ s.store_field("file_size_max", file_size_max_);
+ s.store_field("video_upload_maxbitrate", video_upload_maxbitrate_);
+ s.store_class_end();
+ }
+}
+
+availableReaction::availableReaction()
+ : flags_()
+ , inactive_()
+ , premium_()
+ , reaction_()
+ , title_()
+ , static_icon_()
+ , appear_animation_()
+ , select_animation_()
+ , activate_animation_()
+ , effect_animation_()
+ , around_animation_()
+ , center_icon_()
+{}
+
+const std::int32_t availableReaction::ID;
+
+object_ptr<availableReaction> availableReaction::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<availableReaction> res = make_tl_object<availableReaction>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->inactive_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->premium_ = TlFetchTrue::parse(p); }
+ res->reaction_ = TlFetchString<string>::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ res->static_icon_ = TlFetchObject<Document>::parse(p);
+ res->appear_animation_ = TlFetchObject<Document>::parse(p);
+ res->select_animation_ = TlFetchObject<Document>::parse(p);
+ res->activate_animation_ = TlFetchObject<Document>::parse(p);
+ res->effect_animation_ = TlFetchObject<Document>::parse(p);
+ if (var0 & 2) { res->around_animation_ = TlFetchObject<Document>::parse(p); }
+ if (var0 & 2) { res->center_icon_ = TlFetchObject<Document>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void availableReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "availableReaction");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("reaction", reaction_);
+ s.store_field("title", title_);
+ s.store_object_field("static_icon", static_cast<const BaseObject *>(static_icon_.get()));
+ s.store_object_field("appear_animation", static_cast<const BaseObject *>(appear_animation_.get()));
+ s.store_object_field("select_animation", static_cast<const BaseObject *>(select_animation_.get()));
+ s.store_object_field("activate_animation", static_cast<const BaseObject *>(activate_animation_.get()));
+ s.store_object_field("effect_animation", static_cast<const BaseObject *>(effect_animation_.get()));
+ if (var0 & 2) { s.store_object_field("around_animation", static_cast<const BaseObject *>(around_animation_.get())); }
+ if (var0 & 2) { s.store_object_field("center_icon", static_cast<const BaseObject *>(center_icon_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t bankCardOpenUrl::ID;
+
+object_ptr<bankCardOpenUrl> bankCardOpenUrl::fetch(TlBufferParser &p) {
+ return make_tl_object<bankCardOpenUrl>(p);
+}
+
+bankCardOpenUrl::bankCardOpenUrl(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+ , name_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void bankCardOpenUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bankCardOpenUrl");
+ s.store_field("url", url_);
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<BaseTheme> BaseTheme::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case baseThemeClassic::ID:
+ return baseThemeClassic::fetch(p);
+ case baseThemeDay::ID:
+ return baseThemeDay::fetch(p);
+ case baseThemeNight::ID:
+ return baseThemeNight::fetch(p);
+ case baseThemeTinted::ID:
+ return baseThemeTinted::fetch(p);
+ case baseThemeArctic::ID:
+ return baseThemeArctic::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t baseThemeClassic::ID;
+
+object_ptr<BaseTheme> baseThemeClassic::fetch(TlBufferParser &p) {
+ return make_tl_object<baseThemeClassic>();
+}
+
+void baseThemeClassic::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void baseThemeClassic::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void baseThemeClassic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "baseThemeClassic");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t baseThemeDay::ID;
+
+object_ptr<BaseTheme> baseThemeDay::fetch(TlBufferParser &p) {
+ return make_tl_object<baseThemeDay>();
+}
+
+void baseThemeDay::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void baseThemeDay::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void baseThemeDay::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "baseThemeDay");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t baseThemeNight::ID;
+
+object_ptr<BaseTheme> baseThemeNight::fetch(TlBufferParser &p) {
+ return make_tl_object<baseThemeNight>();
+}
+
+void baseThemeNight::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void baseThemeNight::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void baseThemeNight::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "baseThemeNight");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t baseThemeTinted::ID;
+
+object_ptr<BaseTheme> baseThemeTinted::fetch(TlBufferParser &p) {
+ return make_tl_object<baseThemeTinted>();
+}
+
+void baseThemeTinted::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void baseThemeTinted::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void baseThemeTinted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "baseThemeTinted");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t baseThemeArctic::ID;
+
+object_ptr<BaseTheme> baseThemeArctic::fetch(TlBufferParser &p) {
+ return make_tl_object<baseThemeArctic>();
+}
+
+void baseThemeArctic::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void baseThemeArctic::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void baseThemeArctic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "baseThemeArctic");
+ s.store_class_end();
+ }
+}
+
+botCommand::botCommand(string const &command_, string const &description_)
+ : command_(command_)
+ , description_(description_)
+{}
+
+const std::int32_t botCommand::ID;
+
+object_ptr<botCommand> botCommand::fetch(TlBufferParser &p) {
+ return make_tl_object<botCommand>(p);
+}
+
+botCommand::botCommand(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : command_(TlFetchString<string>::parse(p))
+ , description_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void botCommand::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(command_, s);
+ TlStoreString::store(description_, s);
+}
+
+void botCommand::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(command_, s);
+ TlStoreString::store(description_, s);
+}
+
+void botCommand::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommand");
+ s.store_field("command", command_);
+ s.store_field("description", description_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t botCommandScopeDefault::ID;
+
+void botCommandScopeDefault::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void botCommandScopeDefault::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void botCommandScopeDefault::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeDefault");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t botCommandScopeUsers::ID;
+
+void botCommandScopeUsers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void botCommandScopeUsers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void botCommandScopeUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeUsers");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t botCommandScopeChats::ID;
+
+void botCommandScopeChats::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void botCommandScopeChats::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void botCommandScopeChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeChats");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t botCommandScopeChatAdmins::ID;
+
+void botCommandScopeChatAdmins::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void botCommandScopeChatAdmins::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void botCommandScopeChatAdmins::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopeChatAdmins");
+ s.store_class_end();
+ }
+}
+
+botCommandScopePeer::botCommandScopePeer(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t botCommandScopePeer::ID;
+
+void botCommandScopePeer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void botCommandScopePeer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void botCommandScopePeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopePeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+botCommandScopePeerAdmins::botCommandScopePeerAdmins(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t botCommandScopePeerAdmins::ID;
+
+void botCommandScopePeerAdmins::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void botCommandScopePeerAdmins::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void botCommandScopePeerAdmins::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopePeerAdmins");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+botCommandScopePeerUser::botCommandScopePeerUser(object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&user_id_)
+ : peer_(std::move(peer_))
+ , user_id_(std::move(user_id_))
+{}
+
+const std::int32_t botCommandScopePeerUser::ID;
+
+void botCommandScopePeerUser::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void botCommandScopePeerUser::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void botCommandScopePeerUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botCommandScopePeerUser");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_class_end();
+ }
+}
+
+botInfo::botInfo()
+ : flags_()
+ , user_id_()
+ , description_()
+ , description_photo_()
+ , description_document_()
+ , commands_()
+ , menu_button_()
+{}
+
+const std::int32_t botInfo::ID;
+
+object_ptr<botInfo> botInfo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<botInfo> res = make_tl_object<botInfo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->user_id_ = TlFetchLong::parse(p); }
+ if (var0 & 2) { res->description_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->description_photo_ = TlFetchObject<Photo>::parse(p); }
+ if (var0 & 32) { res->description_document_ = TlFetchObject<Document>::parse(p); }
+ if (var0 & 4) { res->commands_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<botCommand>, -1032140601>>, 481674261>::parse(p); }
+ if (var0 & 8) { res->menu_button_ = TlFetchObject<BotMenuButton>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void botInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botInfo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("user_id", user_id_); }
+ if (var0 & 2) { s.store_field("description", description_); }
+ if (var0 & 16) { s.store_object_field("description_photo", static_cast<const BaseObject *>(description_photo_.get())); }
+ if (var0 & 32) { s.store_object_field("description_document", static_cast<const BaseObject *>(description_document_.get())); }
+ if (var0 & 4) { { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 8) { s.store_object_field("menu_button", static_cast<const BaseObject *>(menu_button_.get())); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<BotInlineMessage> BotInlineMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case botInlineMessageMediaAuto::ID:
+ return botInlineMessageMediaAuto::fetch(p);
+ case botInlineMessageText::ID:
+ return botInlineMessageText::fetch(p);
+ case botInlineMessageMediaGeo::ID:
+ return botInlineMessageMediaGeo::fetch(p);
+ case botInlineMessageMediaVenue::ID:
+ return botInlineMessageMediaVenue::fetch(p);
+ case botInlineMessageMediaContact::ID:
+ return botInlineMessageMediaContact::fetch(p);
+ case botInlineMessageMediaInvoice::ID:
+ return botInlineMessageMediaInvoice::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+botInlineMessageMediaAuto::botInlineMessageMediaAuto()
+ : flags_()
+ , message_()
+ , entities_()
+ , reply_markup_()
+{}
+
+const std::int32_t botInlineMessageMediaAuto::ID;
+
+object_ptr<BotInlineMessage> botInlineMessageMediaAuto::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<botInlineMessageMediaAuto> res = make_tl_object<botInlineMessageMediaAuto>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->message_ = TlFetchString<string>::parse(p);
+ if (var0 & 2) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void botInlineMessageMediaAuto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botInlineMessageMediaAuto");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("message", message_);
+ if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+botInlineMessageText::botInlineMessageText()
+ : flags_()
+ , no_webpage_()
+ , message_()
+ , entities_()
+ , reply_markup_()
+{}
+
+const std::int32_t botInlineMessageText::ID;
+
+object_ptr<BotInlineMessage> botInlineMessageText::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<botInlineMessageText> res = make_tl_object<botInlineMessageText>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->no_webpage_ = TlFetchTrue::parse(p); }
+ res->message_ = TlFetchString<string>::parse(p);
+ if (var0 & 2) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void botInlineMessageText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botInlineMessageText");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("message", message_);
+ if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+botInlineMessageMediaGeo::botInlineMessageMediaGeo()
+ : flags_()
+ , geo_()
+ , heading_()
+ , period_()
+ , proximity_notification_radius_()
+ , reply_markup_()
+{}
+
+const std::int32_t botInlineMessageMediaGeo::ID;
+
+object_ptr<BotInlineMessage> botInlineMessageMediaGeo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<botInlineMessageMediaGeo> res = make_tl_object<botInlineMessageMediaGeo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->geo_ = TlFetchObject<GeoPoint>::parse(p);
+ if (var0 & 1) { res->heading_ = TlFetchInt::parse(p); }
+ if (var0 & 2) { res->period_ = TlFetchInt::parse(p); }
+ if (var0 & 8) { res->proximity_notification_radius_ = TlFetchInt::parse(p); }
+ if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void botInlineMessageMediaGeo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botInlineMessageMediaGeo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get()));
+ if (var0 & 1) { s.store_field("heading", heading_); }
+ if (var0 & 2) { s.store_field("period", period_); }
+ if (var0 & 8) { s.store_field("proximity_notification_radius", proximity_notification_radius_); }
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+botInlineMessageMediaVenue::botInlineMessageMediaVenue()
+ : flags_()
+ , geo_()
+ , title_()
+ , address_()
+ , provider_()
+ , venue_id_()
+ , venue_type_()
+ , reply_markup_()
+{}
+
+const std::int32_t botInlineMessageMediaVenue::ID;
+
+object_ptr<BotInlineMessage> botInlineMessageMediaVenue::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<botInlineMessageMediaVenue> res = make_tl_object<botInlineMessageMediaVenue>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->geo_ = TlFetchObject<GeoPoint>::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ res->address_ = TlFetchString<string>::parse(p);
+ res->provider_ = TlFetchString<string>::parse(p);
+ res->venue_id_ = TlFetchString<string>::parse(p);
+ res->venue_type_ = TlFetchString<string>::parse(p);
+ if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void botInlineMessageMediaVenue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botInlineMessageMediaVenue");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get()));
+ s.store_field("title", title_);
+ s.store_field("address", address_);
+ s.store_field("provider", provider_);
+ s.store_field("venue_id", venue_id_);
+ s.store_field("venue_type", venue_type_);
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+botInlineMessageMediaContact::botInlineMessageMediaContact()
+ : flags_()
+ , phone_number_()
+ , first_name_()
+ , last_name_()
+ , vcard_()
+ , reply_markup_()
+{}
+
+const std::int32_t botInlineMessageMediaContact::ID;
+
+object_ptr<BotInlineMessage> botInlineMessageMediaContact::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<botInlineMessageMediaContact> res = make_tl_object<botInlineMessageMediaContact>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->phone_number_ = TlFetchString<string>::parse(p);
+ res->first_name_ = TlFetchString<string>::parse(p);
+ res->last_name_ = TlFetchString<string>::parse(p);
+ res->vcard_ = TlFetchString<string>::parse(p);
+ if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void botInlineMessageMediaContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botInlineMessageMediaContact");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("phone_number", phone_number_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_field("vcard", vcard_);
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+botInlineMessageMediaInvoice::botInlineMessageMediaInvoice()
+ : flags_()
+ , shipping_address_requested_()
+ , test_()
+ , title_()
+ , description_()
+ , photo_()
+ , currency_()
+ , total_amount_()
+ , reply_markup_()
+{}
+
+const std::int32_t botInlineMessageMediaInvoice::ID;
+
+object_ptr<BotInlineMessage> botInlineMessageMediaInvoice::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<botInlineMessageMediaInvoice> res = make_tl_object<botInlineMessageMediaInvoice>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->shipping_address_requested_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->test_ = TlFetchTrue::parse(p); }
+ res->title_ = TlFetchString<string>::parse(p);
+ res->description_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->photo_ = TlFetchObject<WebDocument>::parse(p); }
+ res->currency_ = TlFetchString<string>::parse(p);
+ res->total_amount_ = TlFetchLong::parse(p);
+ if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void botInlineMessageMediaInvoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botInlineMessageMediaInvoice");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ s.store_field("currency", currency_);
+ s.store_field("total_amount", total_amount_);
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<BotInlineResult> BotInlineResult::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case botInlineResult::ID:
+ return botInlineResult::fetch(p);
+ case botInlineMediaResult::ID:
+ return botInlineMediaResult::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+botInlineResult::botInlineResult()
+ : flags_()
+ , id_()
+ , type_()
+ , title_()
+ , description_()
+ , url_()
+ , thumb_()
+ , content_()
+ , send_message_()
+{}
+
+const std::int32_t botInlineResult::ID;
+
+object_ptr<BotInlineResult> botInlineResult::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<botInlineResult> res = make_tl_object<botInlineResult>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->id_ = TlFetchString<string>::parse(p);
+ res->type_ = TlFetchString<string>::parse(p);
+ if (var0 & 2) { res->title_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->description_ = TlFetchString<string>::parse(p); }
+ if (var0 & 8) { res->url_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->thumb_ = TlFetchObject<WebDocument>::parse(p); }
+ if (var0 & 32) { res->content_ = TlFetchObject<WebDocument>::parse(p); }
+ res->send_message_ = TlFetchObject<BotInlineMessage>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void botInlineResult::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botInlineResult");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("type", type_);
+ if (var0 & 2) { s.store_field("title", title_); }
+ if (var0 & 4) { s.store_field("description", description_); }
+ if (var0 & 8) { s.store_field("url", url_); }
+ if (var0 & 16) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); }
+ if (var0 & 32) { s.store_object_field("content", static_cast<const BaseObject *>(content_.get())); }
+ s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get()));
+ s.store_class_end();
+ }
+}
+
+botInlineMediaResult::botInlineMediaResult()
+ : flags_()
+ , id_()
+ , type_()
+ , photo_()
+ , document_()
+ , title_()
+ , description_()
+ , send_message_()
+{}
+
+const std::int32_t botInlineMediaResult::ID;
+
+object_ptr<BotInlineResult> botInlineMediaResult::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<botInlineMediaResult> res = make_tl_object<botInlineMediaResult>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->id_ = TlFetchString<string>::parse(p);
+ res->type_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->photo_ = TlFetchObject<Photo>::parse(p); }
+ if (var0 & 2) { res->document_ = TlFetchObject<Document>::parse(p); }
+ if (var0 & 4) { res->title_ = TlFetchString<string>::parse(p); }
+ if (var0 & 8) { res->description_ = TlFetchString<string>::parse(p); }
+ res->send_message_ = TlFetchObject<BotInlineMessage>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void botInlineMediaResult::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botInlineMediaResult");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("type", type_);
+ if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ if (var0 & 2) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); }
+ if (var0 & 4) { s.store_field("title", title_); }
+ if (var0 & 8) { s.store_field("description", description_); }
+ s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<BotMenuButton> BotMenuButton::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case botMenuButtonDefault::ID:
+ return botMenuButtonDefault::fetch(p);
+ case botMenuButtonCommands::ID:
+ return botMenuButtonCommands::fetch(p);
+ case botMenuButton::ID:
+ return botMenuButton::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t botMenuButtonDefault::ID;
+
+object_ptr<BotMenuButton> botMenuButtonDefault::fetch(TlBufferParser &p) {
+ return make_tl_object<botMenuButtonDefault>();
+}
+
+void botMenuButtonDefault::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void botMenuButtonDefault::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void botMenuButtonDefault::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botMenuButtonDefault");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t botMenuButtonCommands::ID;
+
+object_ptr<BotMenuButton> botMenuButtonCommands::fetch(TlBufferParser &p) {
+ return make_tl_object<botMenuButtonCommands>();
+}
+
+void botMenuButtonCommands::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void botMenuButtonCommands::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void botMenuButtonCommands::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botMenuButtonCommands");
+ s.store_class_end();
+ }
+}
+
+botMenuButton::botMenuButton(string const &text_, string const &url_)
+ : text_(text_)
+ , url_(url_)
+{}
+
+const std::int32_t botMenuButton::ID;
+
+object_ptr<BotMenuButton> botMenuButton::fetch(TlBufferParser &p) {
+ return make_tl_object<botMenuButton>(p);
+}
+
+botMenuButton::botMenuButton(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+ , url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void botMenuButton::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(url_, s);
+}
+
+void botMenuButton::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(url_, s);
+}
+
+void botMenuButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "botMenuButton");
+ s.store_field("text", text_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t cdnConfig::ID;
+
+object_ptr<cdnConfig> cdnConfig::fetch(TlBufferParser &p) {
+ return make_tl_object<cdnConfig>(p);
+}
+
+cdnConfig::cdnConfig(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : public_keys_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<cdnPublicKey>, -914167110>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void cdnConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "cdnConfig");
+ { s.store_vector_begin("public_keys", public_keys_.size()); for (const auto &_value : public_keys_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t cdnPublicKey::ID;
+
+object_ptr<cdnPublicKey> cdnPublicKey::fetch(TlBufferParser &p) {
+ return make_tl_object<cdnPublicKey>(p);
+}
+
+cdnPublicKey::cdnPublicKey(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : dc_id_(TlFetchInt::parse(p))
+ , public_key_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void cdnPublicKey::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "cdnPublicKey");
+ s.store_field("dc_id", dc_id_);
+ s.store_field("public_key", public_key_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEvent::ID;
+
+object_ptr<channelAdminLogEvent> channelAdminLogEvent::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEvent>(p);
+}
+
+channelAdminLogEvent::channelAdminLogEvent(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+ , action_(TlFetchObject<ChannelAdminLogEventAction>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEvent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEvent");
+ s.store_field("id", id_);
+ s.store_field("date", date_);
+ s.store_field("user_id", user_id_);
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<ChannelAdminLogEventAction> ChannelAdminLogEventAction::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case channelAdminLogEventActionChangeTitle::ID:
+ return channelAdminLogEventActionChangeTitle::fetch(p);
+ case channelAdminLogEventActionChangeAbout::ID:
+ return channelAdminLogEventActionChangeAbout::fetch(p);
+ case channelAdminLogEventActionChangeUsername::ID:
+ return channelAdminLogEventActionChangeUsername::fetch(p);
+ case channelAdminLogEventActionChangePhoto::ID:
+ return channelAdminLogEventActionChangePhoto::fetch(p);
+ case channelAdminLogEventActionToggleInvites::ID:
+ return channelAdminLogEventActionToggleInvites::fetch(p);
+ case channelAdminLogEventActionToggleSignatures::ID:
+ return channelAdminLogEventActionToggleSignatures::fetch(p);
+ case channelAdminLogEventActionUpdatePinned::ID:
+ return channelAdminLogEventActionUpdatePinned::fetch(p);
+ case channelAdminLogEventActionEditMessage::ID:
+ return channelAdminLogEventActionEditMessage::fetch(p);
+ case channelAdminLogEventActionDeleteMessage::ID:
+ return channelAdminLogEventActionDeleteMessage::fetch(p);
+ case channelAdminLogEventActionParticipantJoin::ID:
+ return channelAdminLogEventActionParticipantJoin::fetch(p);
+ case channelAdminLogEventActionParticipantLeave::ID:
+ return channelAdminLogEventActionParticipantLeave::fetch(p);
+ case channelAdminLogEventActionParticipantInvite::ID:
+ return channelAdminLogEventActionParticipantInvite::fetch(p);
+ case channelAdminLogEventActionParticipantToggleBan::ID:
+ return channelAdminLogEventActionParticipantToggleBan::fetch(p);
+ case channelAdminLogEventActionParticipantToggleAdmin::ID:
+ return channelAdminLogEventActionParticipantToggleAdmin::fetch(p);
+ case channelAdminLogEventActionChangeStickerSet::ID:
+ return channelAdminLogEventActionChangeStickerSet::fetch(p);
+ case channelAdminLogEventActionTogglePreHistoryHidden::ID:
+ return channelAdminLogEventActionTogglePreHistoryHidden::fetch(p);
+ case channelAdminLogEventActionDefaultBannedRights::ID:
+ return channelAdminLogEventActionDefaultBannedRights::fetch(p);
+ case channelAdminLogEventActionStopPoll::ID:
+ return channelAdminLogEventActionStopPoll::fetch(p);
+ case channelAdminLogEventActionChangeLinkedChat::ID:
+ return channelAdminLogEventActionChangeLinkedChat::fetch(p);
+ case channelAdminLogEventActionChangeLocation::ID:
+ return channelAdminLogEventActionChangeLocation::fetch(p);
+ case channelAdminLogEventActionToggleSlowMode::ID:
+ return channelAdminLogEventActionToggleSlowMode::fetch(p);
+ case channelAdminLogEventActionStartGroupCall::ID:
+ return channelAdminLogEventActionStartGroupCall::fetch(p);
+ case channelAdminLogEventActionDiscardGroupCall::ID:
+ return channelAdminLogEventActionDiscardGroupCall::fetch(p);
+ case channelAdminLogEventActionParticipantMute::ID:
+ return channelAdminLogEventActionParticipantMute::fetch(p);
+ case channelAdminLogEventActionParticipantUnmute::ID:
+ return channelAdminLogEventActionParticipantUnmute::fetch(p);
+ case channelAdminLogEventActionToggleGroupCallSetting::ID:
+ return channelAdminLogEventActionToggleGroupCallSetting::fetch(p);
+ case channelAdminLogEventActionParticipantJoinByInvite::ID:
+ return channelAdminLogEventActionParticipantJoinByInvite::fetch(p);
+ case channelAdminLogEventActionExportedInviteDelete::ID:
+ return channelAdminLogEventActionExportedInviteDelete::fetch(p);
+ case channelAdminLogEventActionExportedInviteRevoke::ID:
+ return channelAdminLogEventActionExportedInviteRevoke::fetch(p);
+ case channelAdminLogEventActionExportedInviteEdit::ID:
+ return channelAdminLogEventActionExportedInviteEdit::fetch(p);
+ case channelAdminLogEventActionParticipantVolume::ID:
+ return channelAdminLogEventActionParticipantVolume::fetch(p);
+ case channelAdminLogEventActionChangeHistoryTTL::ID:
+ return channelAdminLogEventActionChangeHistoryTTL::fetch(p);
+ case channelAdminLogEventActionParticipantJoinByRequest::ID:
+ return channelAdminLogEventActionParticipantJoinByRequest::fetch(p);
+ case channelAdminLogEventActionToggleNoForwards::ID:
+ return channelAdminLogEventActionToggleNoForwards::fetch(p);
+ case channelAdminLogEventActionSendMessage::ID:
+ return channelAdminLogEventActionSendMessage::fetch(p);
+ case channelAdminLogEventActionChangeAvailableReactions::ID:
+ return channelAdminLogEventActionChangeAvailableReactions::fetch(p);
+ case channelAdminLogEventActionChangeUsernames::ID:
+ return channelAdminLogEventActionChangeUsernames::fetch(p);
+ case channelAdminLogEventActionToggleForum::ID:
+ return channelAdminLogEventActionToggleForum::fetch(p);
+ case channelAdminLogEventActionCreateTopic::ID:
+ return channelAdminLogEventActionCreateTopic::fetch(p);
+ case channelAdminLogEventActionEditTopic::ID:
+ return channelAdminLogEventActionEditTopic::fetch(p);
+ case channelAdminLogEventActionDeleteTopic::ID:
+ return channelAdminLogEventActionDeleteTopic::fetch(p);
+ case channelAdminLogEventActionPinTopic::ID:
+ return channelAdminLogEventActionPinTopic::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t channelAdminLogEventActionChangeTitle::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeTitle::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionChangeTitle>(p);
+}
+
+channelAdminLogEventActionChangeTitle::channelAdminLogEventActionChangeTitle(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_value_(TlFetchString<string>::parse(p))
+ , new_value_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionChangeTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionChangeTitle");
+ s.store_field("prev_value", prev_value_);
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionChangeAbout::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeAbout::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionChangeAbout>(p);
+}
+
+channelAdminLogEventActionChangeAbout::channelAdminLogEventActionChangeAbout(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_value_(TlFetchString<string>::parse(p))
+ , new_value_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionChangeAbout::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionChangeAbout");
+ s.store_field("prev_value", prev_value_);
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionChangeUsername::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeUsername::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionChangeUsername>(p);
+}
+
+channelAdminLogEventActionChangeUsername::channelAdminLogEventActionChangeUsername(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_value_(TlFetchString<string>::parse(p))
+ , new_value_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionChangeUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionChangeUsername");
+ s.store_field("prev_value", prev_value_);
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionChangePhoto::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangePhoto::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionChangePhoto>(p);
+}
+
+channelAdminLogEventActionChangePhoto::channelAdminLogEventActionChangePhoto(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_photo_(TlFetchObject<Photo>::parse(p))
+ , new_photo_(TlFetchObject<Photo>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionChangePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionChangePhoto");
+ s.store_object_field("prev_photo", static_cast<const BaseObject *>(prev_photo_.get()));
+ s.store_object_field("new_photo", static_cast<const BaseObject *>(new_photo_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionToggleInvites::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleInvites::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionToggleInvites>(p);
+}
+
+channelAdminLogEventActionToggleInvites::channelAdminLogEventActionToggleInvites(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : new_value_(TlFetchBool::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionToggleInvites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionToggleInvites");
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionToggleSignatures::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleSignatures::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionToggleSignatures>(p);
+}
+
+channelAdminLogEventActionToggleSignatures::channelAdminLogEventActionToggleSignatures(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : new_value_(TlFetchBool::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionToggleSignatures::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionToggleSignatures");
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionUpdatePinned::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionUpdatePinned::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionUpdatePinned>(p);
+}
+
+channelAdminLogEventActionUpdatePinned::channelAdminLogEventActionUpdatePinned(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchObject<Message>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionUpdatePinned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionUpdatePinned");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionEditMessage::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionEditMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionEditMessage>(p);
+}
+
+channelAdminLogEventActionEditMessage::channelAdminLogEventActionEditMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_message_(TlFetchObject<Message>::parse(p))
+ , new_message_(TlFetchObject<Message>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionEditMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionEditMessage");
+ s.store_object_field("prev_message", static_cast<const BaseObject *>(prev_message_.get()));
+ s.store_object_field("new_message", static_cast<const BaseObject *>(new_message_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionDeleteMessage::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionDeleteMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionDeleteMessage>(p);
+}
+
+channelAdminLogEventActionDeleteMessage::channelAdminLogEventActionDeleteMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchObject<Message>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionDeleteMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionDeleteMessage");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionParticipantJoin::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantJoin::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionParticipantJoin>();
+}
+
+void channelAdminLogEventActionParticipantJoin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionParticipantJoin");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionParticipantLeave::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantLeave::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionParticipantLeave>();
+}
+
+void channelAdminLogEventActionParticipantLeave::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionParticipantLeave");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionParticipantInvite::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantInvite::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionParticipantInvite>(p);
+}
+
+channelAdminLogEventActionParticipantInvite::channelAdminLogEventActionParticipantInvite(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : participant_(TlFetchObject<ChannelParticipant>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionParticipantInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionParticipantInvite");
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionParticipantToggleBan::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantToggleBan::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionParticipantToggleBan>(p);
+}
+
+channelAdminLogEventActionParticipantToggleBan::channelAdminLogEventActionParticipantToggleBan(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_participant_(TlFetchObject<ChannelParticipant>::parse(p))
+ , new_participant_(TlFetchObject<ChannelParticipant>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionParticipantToggleBan::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionParticipantToggleBan");
+ s.store_object_field("prev_participant", static_cast<const BaseObject *>(prev_participant_.get()));
+ s.store_object_field("new_participant", static_cast<const BaseObject *>(new_participant_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionParticipantToggleAdmin::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantToggleAdmin::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionParticipantToggleAdmin>(p);
+}
+
+channelAdminLogEventActionParticipantToggleAdmin::channelAdminLogEventActionParticipantToggleAdmin(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_participant_(TlFetchObject<ChannelParticipant>::parse(p))
+ , new_participant_(TlFetchObject<ChannelParticipant>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionParticipantToggleAdmin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionParticipantToggleAdmin");
+ s.store_object_field("prev_participant", static_cast<const BaseObject *>(prev_participant_.get()));
+ s.store_object_field("new_participant", static_cast<const BaseObject *>(new_participant_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionChangeStickerSet::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeStickerSet::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionChangeStickerSet>(p);
+}
+
+channelAdminLogEventActionChangeStickerSet::channelAdminLogEventActionChangeStickerSet(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_stickerset_(TlFetchObject<InputStickerSet>::parse(p))
+ , new_stickerset_(TlFetchObject<InputStickerSet>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionChangeStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionChangeStickerSet");
+ s.store_object_field("prev_stickerset", static_cast<const BaseObject *>(prev_stickerset_.get()));
+ s.store_object_field("new_stickerset", static_cast<const BaseObject *>(new_stickerset_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionTogglePreHistoryHidden::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionTogglePreHistoryHidden::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionTogglePreHistoryHidden>(p);
+}
+
+channelAdminLogEventActionTogglePreHistoryHidden::channelAdminLogEventActionTogglePreHistoryHidden(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : new_value_(TlFetchBool::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionTogglePreHistoryHidden::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionTogglePreHistoryHidden");
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionDefaultBannedRights::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionDefaultBannedRights::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionDefaultBannedRights>(p);
+}
+
+channelAdminLogEventActionDefaultBannedRights::channelAdminLogEventActionDefaultBannedRights(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_banned_rights_(TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p))
+ , new_banned_rights_(TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionDefaultBannedRights::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionDefaultBannedRights");
+ s.store_object_field("prev_banned_rights", static_cast<const BaseObject *>(prev_banned_rights_.get()));
+ s.store_object_field("new_banned_rights", static_cast<const BaseObject *>(new_banned_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionStopPoll::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionStopPoll::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionStopPoll>(p);
+}
+
+channelAdminLogEventActionStopPoll::channelAdminLogEventActionStopPoll(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchObject<Message>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionStopPoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionStopPoll");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionChangeLinkedChat::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeLinkedChat::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionChangeLinkedChat>(p);
+}
+
+channelAdminLogEventActionChangeLinkedChat::channelAdminLogEventActionChangeLinkedChat(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_value_(TlFetchLong::parse(p))
+ , new_value_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionChangeLinkedChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionChangeLinkedChat");
+ s.store_field("prev_value", prev_value_);
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionChangeLocation::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeLocation::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionChangeLocation>(p);
+}
+
+channelAdminLogEventActionChangeLocation::channelAdminLogEventActionChangeLocation(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_value_(TlFetchObject<ChannelLocation>::parse(p))
+ , new_value_(TlFetchObject<ChannelLocation>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionChangeLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionChangeLocation");
+ s.store_object_field("prev_value", static_cast<const BaseObject *>(prev_value_.get()));
+ s.store_object_field("new_value", static_cast<const BaseObject *>(new_value_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionToggleSlowMode::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleSlowMode::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionToggleSlowMode>(p);
+}
+
+channelAdminLogEventActionToggleSlowMode::channelAdminLogEventActionToggleSlowMode(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_value_(TlFetchInt::parse(p))
+ , new_value_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionToggleSlowMode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionToggleSlowMode");
+ s.store_field("prev_value", prev_value_);
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionStartGroupCall::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionStartGroupCall::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionStartGroupCall>(p);
+}
+
+channelAdminLogEventActionStartGroupCall::channelAdminLogEventActionStartGroupCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : call_(TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionStartGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionStartGroupCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionDiscardGroupCall::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionDiscardGroupCall::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionDiscardGroupCall>(p);
+}
+
+channelAdminLogEventActionDiscardGroupCall::channelAdminLogEventActionDiscardGroupCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : call_(TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionDiscardGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionDiscardGroupCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionParticipantMute::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantMute::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionParticipantMute>(p);
+}
+
+channelAdminLogEventActionParticipantMute::channelAdminLogEventActionParticipantMute(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : participant_(TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionParticipantMute::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionParticipantMute");
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionParticipantUnmute::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantUnmute::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionParticipantUnmute>(p);
+}
+
+channelAdminLogEventActionParticipantUnmute::channelAdminLogEventActionParticipantUnmute(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : participant_(TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionParticipantUnmute::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionParticipantUnmute");
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionToggleGroupCallSetting::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleGroupCallSetting::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionToggleGroupCallSetting>(p);
+}
+
+channelAdminLogEventActionToggleGroupCallSetting::channelAdminLogEventActionToggleGroupCallSetting(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : join_muted_(TlFetchBool::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionToggleGroupCallSetting::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionToggleGroupCallSetting");
+ s.store_field("join_muted", join_muted_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionParticipantJoinByInvite::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantJoinByInvite::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionParticipantJoinByInvite>(p);
+}
+
+channelAdminLogEventActionParticipantJoinByInvite::channelAdminLogEventActionParticipantJoinByInvite(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : invite_(TlFetchObject<ExportedChatInvite>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionParticipantJoinByInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionParticipantJoinByInvite");
+ s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionExportedInviteDelete::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionExportedInviteDelete::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionExportedInviteDelete>(p);
+}
+
+channelAdminLogEventActionExportedInviteDelete::channelAdminLogEventActionExportedInviteDelete(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : invite_(TlFetchObject<ExportedChatInvite>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionExportedInviteDelete::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionExportedInviteDelete");
+ s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionExportedInviteRevoke::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionExportedInviteRevoke::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionExportedInviteRevoke>(p);
+}
+
+channelAdminLogEventActionExportedInviteRevoke::channelAdminLogEventActionExportedInviteRevoke(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : invite_(TlFetchObject<ExportedChatInvite>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionExportedInviteRevoke::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionExportedInviteRevoke");
+ s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionExportedInviteEdit::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionExportedInviteEdit::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionExportedInviteEdit>(p);
+}
+
+channelAdminLogEventActionExportedInviteEdit::channelAdminLogEventActionExportedInviteEdit(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_invite_(TlFetchObject<ExportedChatInvite>::parse(p))
+ , new_invite_(TlFetchObject<ExportedChatInvite>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionExportedInviteEdit::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionExportedInviteEdit");
+ s.store_object_field("prev_invite", static_cast<const BaseObject *>(prev_invite_.get()));
+ s.store_object_field("new_invite", static_cast<const BaseObject *>(new_invite_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionParticipantVolume::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantVolume::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionParticipantVolume>(p);
+}
+
+channelAdminLogEventActionParticipantVolume::channelAdminLogEventActionParticipantVolume(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : participant_(TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionParticipantVolume::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionParticipantVolume");
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionChangeHistoryTTL::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeHistoryTTL::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionChangeHistoryTTL>(p);
+}
+
+channelAdminLogEventActionChangeHistoryTTL::channelAdminLogEventActionChangeHistoryTTL(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_value_(TlFetchInt::parse(p))
+ , new_value_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionChangeHistoryTTL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionChangeHistoryTTL");
+ s.store_field("prev_value", prev_value_);
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionParticipantJoinByRequest::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantJoinByRequest::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionParticipantJoinByRequest>(p);
+}
+
+channelAdminLogEventActionParticipantJoinByRequest::channelAdminLogEventActionParticipantJoinByRequest(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : invite_(TlFetchObject<ExportedChatInvite>::parse(p))
+ , approved_by_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionParticipantJoinByRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionParticipantJoinByRequest");
+ s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get()));
+ s.store_field("approved_by", approved_by_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionToggleNoForwards::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleNoForwards::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionToggleNoForwards>(p);
+}
+
+channelAdminLogEventActionToggleNoForwards::channelAdminLogEventActionToggleNoForwards(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : new_value_(TlFetchBool::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionToggleNoForwards::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionToggleNoForwards");
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionSendMessage::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionSendMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionSendMessage>(p);
+}
+
+channelAdminLogEventActionSendMessage::channelAdminLogEventActionSendMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchObject<Message>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionSendMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionSendMessage");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionChangeAvailableReactions::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeAvailableReactions::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionChangeAvailableReactions>(p);
+}
+
+channelAdminLogEventActionChangeAvailableReactions::channelAdminLogEventActionChangeAvailableReactions(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_value_(TlFetchObject<ChatReactions>::parse(p))
+ , new_value_(TlFetchObject<ChatReactions>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionChangeAvailableReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionChangeAvailableReactions");
+ s.store_object_field("prev_value", static_cast<const BaseObject *>(prev_value_.get()));
+ s.store_object_field("new_value", static_cast<const BaseObject *>(new_value_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionChangeUsernames::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeUsernames::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionChangeUsernames>(p);
+}
+
+channelAdminLogEventActionChangeUsernames::channelAdminLogEventActionChangeUsernames(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_value_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p))
+ , new_value_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionChangeUsernames::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionChangeUsernames");
+ { s.store_vector_begin("prev_value", prev_value_.size()); for (const auto &_value : prev_value_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("new_value", new_value_.size()); for (const auto &_value : new_value_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionToggleForum::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleForum::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionToggleForum>(p);
+}
+
+channelAdminLogEventActionToggleForum::channelAdminLogEventActionToggleForum(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : new_value_(TlFetchBool::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionToggleForum::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionToggleForum");
+ s.store_field("new_value", new_value_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionCreateTopic::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionCreateTopic::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionCreateTopic>(p);
+}
+
+channelAdminLogEventActionCreateTopic::channelAdminLogEventActionCreateTopic(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : topic_(TlFetchObject<ForumTopic>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionCreateTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionCreateTopic");
+ s.store_object_field("topic", static_cast<const BaseObject *>(topic_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionEditTopic::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionEditTopic::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionEditTopic>(p);
+}
+
+channelAdminLogEventActionEditTopic::channelAdminLogEventActionEditTopic(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prev_topic_(TlFetchObject<ForumTopic>::parse(p))
+ , new_topic_(TlFetchObject<ForumTopic>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionEditTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionEditTopic");
+ s.store_object_field("prev_topic", static_cast<const BaseObject *>(prev_topic_.get()));
+ s.store_object_field("new_topic", static_cast<const BaseObject *>(new_topic_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelAdminLogEventActionDeleteTopic::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionDeleteTopic::fetch(TlBufferParser &p) {
+ return make_tl_object<channelAdminLogEventActionDeleteTopic>(p);
+}
+
+channelAdminLogEventActionDeleteTopic::channelAdminLogEventActionDeleteTopic(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : topic_(TlFetchObject<ForumTopic>::parse(p))
+#undef FAIL
+{}
+
+void channelAdminLogEventActionDeleteTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionDeleteTopic");
+ s.store_object_field("topic", static_cast<const BaseObject *>(topic_.get()));
+ s.store_class_end();
+ }
+}
+
+channelAdminLogEventActionPinTopic::channelAdminLogEventActionPinTopic()
+ : flags_()
+ , prev_topic_()
+ , new_topic_()
+{}
+
+const std::int32_t channelAdminLogEventActionPinTopic::ID;
+
+object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionPinTopic::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<channelAdminLogEventActionPinTopic> res = make_tl_object<channelAdminLogEventActionPinTopic>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->prev_topic_ = TlFetchObject<ForumTopic>::parse(p); }
+ if (var0 & 2) { res->new_topic_ = TlFetchObject<ForumTopic>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void channelAdminLogEventActionPinTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventActionPinTopic");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("prev_topic", static_cast<const BaseObject *>(prev_topic_.get())); }
+ if (var0 & 2) { s.store_object_field("new_topic", static_cast<const BaseObject *>(new_topic_.get())); }
+ s.store_class_end();
+ }
+}
+
+channelAdminLogEventsFilter::channelAdminLogEventsFilter(int32 flags_, bool join_, bool leave_, bool invite_, bool ban_, bool unban_, bool kick_, bool unkick_, bool promote_, bool demote_, bool info_, bool settings_, bool pinned_, bool edit_, bool delete_, bool group_call_, bool invites_, bool send_, bool forums_)
+ : flags_(flags_)
+ , join_(join_)
+ , leave_(leave_)
+ , invite_(invite_)
+ , ban_(ban_)
+ , unban_(unban_)
+ , kick_(kick_)
+ , unkick_(unkick_)
+ , promote_(promote_)
+ , demote_(demote_)
+ , info_(info_)
+ , settings_(settings_)
+ , pinned_(pinned_)
+ , edit_(edit_)
+ , delete_(delete_)
+ , group_call_(group_call_)
+ , invites_(invites_)
+ , send_(send_)
+ , forums_(forums_)
+{}
+
+const std::int32_t channelAdminLogEventsFilter::ID;
+
+void channelAdminLogEventsFilter::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void channelAdminLogEventsFilter::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void channelAdminLogEventsFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelAdminLogEventsFilter");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+object_ptr<ChannelLocation> ChannelLocation::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case channelLocationEmpty::ID:
+ return channelLocationEmpty::fetch(p);
+ case channelLocation::ID:
+ return channelLocation::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t channelLocationEmpty::ID;
+
+object_ptr<ChannelLocation> channelLocationEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<channelLocationEmpty>();
+}
+
+void channelLocationEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelLocationEmpty");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelLocation::ID;
+
+object_ptr<ChannelLocation> channelLocation::fetch(TlBufferParser &p) {
+ return make_tl_object<channelLocation>(p);
+}
+
+channelLocation::channelLocation(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : geo_point_(TlFetchObject<GeoPoint>::parse(p))
+ , address_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void channelLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelLocation");
+ s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get()));
+ s.store_field("address", address_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelMessagesFilterEmpty::ID;
+
+void channelMessagesFilterEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void channelMessagesFilterEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void channelMessagesFilterEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelMessagesFilterEmpty");
+ s.store_class_end();
+ }
+}
+
+channelMessagesFilter::channelMessagesFilter(int32 flags_, bool exclude_new_messages_, array<object_ptr<messageRange>> &&ranges_)
+ : flags_(flags_)
+ , exclude_new_messages_(exclude_new_messages_)
+ , ranges_(std::move(ranges_))
+{}
+
+const std::int32_t channelMessagesFilter::ID;
+
+void channelMessagesFilter::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 182649427>>, 481674261>::store(ranges_, s);
+}
+
+void channelMessagesFilter::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 182649427>>, 481674261>::store(ranges_, s);
+}
+
+void channelMessagesFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelMessagesFilter");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ { s.store_vector_begin("ranges", ranges_.size()); for (const auto &_value : ranges_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<ChannelParticipant> ChannelParticipant::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case channelParticipant::ID:
+ return channelParticipant::fetch(p);
+ case channelParticipantSelf::ID:
+ return channelParticipantSelf::fetch(p);
+ case channelParticipantCreator::ID:
+ return channelParticipantCreator::fetch(p);
+ case channelParticipantAdmin::ID:
+ return channelParticipantAdmin::fetch(p);
+ case channelParticipantBanned::ID:
+ return channelParticipantBanned::fetch(p);
+ case channelParticipantLeft::ID:
+ return channelParticipantLeft::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t channelParticipant::ID;
+
+object_ptr<ChannelParticipant> channelParticipant::fetch(TlBufferParser &p) {
+ return make_tl_object<channelParticipant>(p);
+}
+
+channelParticipant::channelParticipant(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void channelParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipant");
+ s.store_field("user_id", user_id_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+channelParticipantSelf::channelParticipantSelf()
+ : flags_()
+ , via_request_()
+ , user_id_()
+ , inviter_id_()
+ , date_()
+{}
+
+const std::int32_t channelParticipantSelf::ID;
+
+object_ptr<ChannelParticipant> channelParticipantSelf::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<channelParticipantSelf> res = make_tl_object<channelParticipantSelf>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->via_request_ = TlFetchTrue::parse(p); }
+ res->user_id_ = TlFetchLong::parse(p);
+ res->inviter_id_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void channelParticipantSelf::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantSelf");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("user_id", user_id_);
+ s.store_field("inviter_id", inviter_id_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+channelParticipantCreator::channelParticipantCreator()
+ : flags_()
+ , user_id_()
+ , admin_rights_()
+ , rank_()
+{}
+
+const std::int32_t channelParticipantCreator::ID;
+
+object_ptr<ChannelParticipant> channelParticipantCreator::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<channelParticipantCreator> res = make_tl_object<channelParticipantCreator>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->user_id_ = TlFetchLong::parse(p);
+ res->admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p);
+ if (var0 & 1) { res->rank_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void channelParticipantCreator::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantCreator");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("user_id", user_id_);
+ s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get()));
+ if (var0 & 1) { s.store_field("rank", rank_); }
+ s.store_class_end();
+ }
+}
+
+channelParticipantAdmin::channelParticipantAdmin()
+ : flags_()
+ , can_edit_()
+ , self_()
+ , user_id_()
+ , inviter_id_()
+ , promoted_by_()
+ , date_()
+ , admin_rights_()
+ , rank_()
+{}
+
+const std::int32_t channelParticipantAdmin::ID;
+
+object_ptr<ChannelParticipant> channelParticipantAdmin::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<channelParticipantAdmin> res = make_tl_object<channelParticipantAdmin>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->can_edit_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->self_ = TlFetchTrue::parse(p); }
+ res->user_id_ = TlFetchLong::parse(p);
+ if (var0 & 2) { res->inviter_id_ = TlFetchLong::parse(p); }
+ res->promoted_by_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p);
+ if (var0 & 4) { res->rank_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void channelParticipantAdmin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantAdmin");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("user_id", user_id_);
+ if (var0 & 2) { s.store_field("inviter_id", inviter_id_); }
+ s.store_field("promoted_by", promoted_by_);
+ s.store_field("date", date_);
+ s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get()));
+ if (var0 & 4) { s.store_field("rank", rank_); }
+ s.store_class_end();
+ }
+}
+
+channelParticipantBanned::channelParticipantBanned()
+ : flags_()
+ , left_()
+ , peer_()
+ , kicked_by_()
+ , date_()
+ , banned_rights_()
+{}
+
+const std::int32_t channelParticipantBanned::ID;
+
+object_ptr<ChannelParticipant> channelParticipantBanned::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<channelParticipantBanned> res = make_tl_object<channelParticipantBanned>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->left_ = TlFetchTrue::parse(p); }
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ res->kicked_by_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->banned_rights_ = TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void channelParticipantBanned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantBanned");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("kicked_by", kicked_by_);
+ s.store_field("date", date_);
+ s.store_object_field("banned_rights", static_cast<const BaseObject *>(banned_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelParticipantLeft::ID;
+
+object_ptr<ChannelParticipant> channelParticipantLeft::fetch(TlBufferParser &p) {
+ return make_tl_object<channelParticipantLeft>(p);
+}
+
+channelParticipantLeft::channelParticipantLeft(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+#undef FAIL
+{}
+
+void channelParticipantLeft::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantLeft");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelParticipantsRecent::ID;
+
+void channelParticipantsRecent::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void channelParticipantsRecent::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void channelParticipantsRecent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantsRecent");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelParticipantsAdmins::ID;
+
+void channelParticipantsAdmins::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void channelParticipantsAdmins::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void channelParticipantsAdmins::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantsAdmins");
+ s.store_class_end();
+ }
+}
+
+channelParticipantsKicked::channelParticipantsKicked(string const &q_)
+ : q_(q_)
+{}
+
+const std::int32_t channelParticipantsKicked::ID;
+
+void channelParticipantsKicked::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(q_, s);
+}
+
+void channelParticipantsKicked::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(q_, s);
+}
+
+void channelParticipantsKicked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantsKicked");
+ s.store_field("q", q_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channelParticipantsBots::ID;
+
+void channelParticipantsBots::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void channelParticipantsBots::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void channelParticipantsBots::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantsBots");
+ s.store_class_end();
+ }
+}
+
+channelParticipantsBanned::channelParticipantsBanned(string const &q_)
+ : q_(q_)
+{}
+
+const std::int32_t channelParticipantsBanned::ID;
+
+void channelParticipantsBanned::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(q_, s);
+}
+
+void channelParticipantsBanned::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(q_, s);
+}
+
+void channelParticipantsBanned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantsBanned");
+ s.store_field("q", q_);
+ s.store_class_end();
+ }
+}
+
+channelParticipantsSearch::channelParticipantsSearch(string const &q_)
+ : q_(q_)
+{}
+
+const std::int32_t channelParticipantsSearch::ID;
+
+void channelParticipantsSearch::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(q_, s);
+}
+
+void channelParticipantsSearch::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(q_, s);
+}
+
+void channelParticipantsSearch::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantsSearch");
+ s.store_field("q", q_);
+ s.store_class_end();
+ }
+}
+
+channelParticipantsContacts::channelParticipantsContacts(string const &q_)
+ : q_(q_)
+{}
+
+const std::int32_t channelParticipantsContacts::ID;
+
+void channelParticipantsContacts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(q_, s);
+}
+
+void channelParticipantsContacts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(q_, s);
+}
+
+void channelParticipantsContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantsContacts");
+ s.store_field("q", q_);
+ s.store_class_end();
+ }
+}
+
+channelParticipantsMentions::channelParticipantsMentions(int32 flags_, string const &q_, int32 top_msg_id_)
+ : flags_(flags_)
+ , q_(q_)
+ , top_msg_id_(top_msg_id_)
+{}
+
+const std::int32_t channelParticipantsMentions::ID;
+
+void channelParticipantsMentions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreString::store(q_, s); }
+ if (var0 & 2) { TlStoreBinary::store(top_msg_id_, s); }
+}
+
+void channelParticipantsMentions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreString::store(q_, s); }
+ if (var0 & 2) { TlStoreBinary::store(top_msg_id_, s); }
+}
+
+void channelParticipantsMentions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelParticipantsMentions");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("q", q_); }
+ if (var0 & 2) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<Chat> Chat::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case chatEmpty::ID:
+ return chatEmpty::fetch(p);
+ case chat::ID:
+ return chat::fetch(p);
+ case chatForbidden::ID:
+ return chatForbidden::fetch(p);
+ case channel::ID:
+ return channel::fetch(p);
+ case channelForbidden::ID:
+ return channelForbidden::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t chatEmpty::ID;
+
+object_ptr<Chat> chatEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<chatEmpty>(p);
+}
+
+chatEmpty::chatEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void chatEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatEmpty");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+chat::chat()
+ : flags_()
+ , creator_()
+ , left_()
+ , deactivated_()
+ , call_active_()
+ , call_not_empty_()
+ , noforwards_()
+ , id_()
+ , title_()
+ , photo_()
+ , participants_count_()
+ , date_()
+ , version_()
+ , migrated_to_()
+ , admin_rights_()
+ , default_banned_rights_()
+{}
+
+const std::int32_t chat::ID;
+
+object_ptr<Chat> chat::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<chat> res = make_tl_object<chat>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->creator_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->left_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->deactivated_ = TlFetchTrue::parse(p); }
+ if (var0 & 8388608) { res->call_active_ = TlFetchTrue::parse(p); }
+ if (var0 & 16777216) { res->call_not_empty_ = TlFetchTrue::parse(p); }
+ if (var0 & 33554432) { res->noforwards_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ res->photo_ = TlFetchObject<ChatPhoto>::parse(p);
+ res->participants_count_ = TlFetchInt::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->version_ = TlFetchInt::parse(p);
+ if (var0 & 64) { res->migrated_to_ = TlFetchObject<InputChannel>::parse(p); }
+ if (var0 & 16384) { res->admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p); }
+ if (var0 & 262144) { res->default_banned_rights_ = TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void chat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chat");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("participants_count", participants_count_);
+ s.store_field("date", date_);
+ s.store_field("version", version_);
+ if (var0 & 64) { s.store_object_field("migrated_to", static_cast<const BaseObject *>(migrated_to_.get())); }
+ if (var0 & 16384) { s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get())); }
+ if (var0 & 262144) { s.store_object_field("default_banned_rights", static_cast<const BaseObject *>(default_banned_rights_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t chatForbidden::ID;
+
+object_ptr<Chat> chatForbidden::fetch(TlBufferParser &p) {
+ return make_tl_object<chatForbidden>(p);
+}
+
+chatForbidden::chatForbidden(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+ , title_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void chatForbidden::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatForbidden");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+channel::channel()
+ : flags_()
+ , creator_()
+ , left_()
+ , broadcast_()
+ , verified_()
+ , megagroup_()
+ , restricted_()
+ , signatures_()
+ , min_()
+ , scam_()
+ , has_link_()
+ , has_geo_()
+ , slowmode_enabled_()
+ , call_active_()
+ , call_not_empty_()
+ , fake_()
+ , gigagroup_()
+ , noforwards_()
+ , join_to_send_()
+ , join_request_()
+ , forum_()
+ , flags2_()
+ , id_()
+ , access_hash_()
+ , title_()
+ , username_()
+ , photo_()
+ , date_()
+ , restriction_reason_()
+ , admin_rights_()
+ , banned_rights_()
+ , default_banned_rights_()
+ , participants_count_()
+ , usernames_()
+{}
+
+const std::int32_t channel::ID;
+
+object_ptr<Chat> channel::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<channel> res = make_tl_object<channel>();
+ int32 var0;
+ int32 var1;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->creator_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->left_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->broadcast_ = TlFetchTrue::parse(p); }
+ if (var0 & 128) { res->verified_ = TlFetchTrue::parse(p); }
+ if (var0 & 256) { res->megagroup_ = TlFetchTrue::parse(p); }
+ if (var0 & 512) { res->restricted_ = TlFetchTrue::parse(p); }
+ if (var0 & 2048) { res->signatures_ = TlFetchTrue::parse(p); }
+ if (var0 & 4096) { res->min_ = TlFetchTrue::parse(p); }
+ if (var0 & 524288) { res->scam_ = TlFetchTrue::parse(p); }
+ if (var0 & 1048576) { res->has_link_ = TlFetchTrue::parse(p); }
+ if (var0 & 2097152) { res->has_geo_ = TlFetchTrue::parse(p); }
+ if (var0 & 4194304) { res->slowmode_enabled_ = TlFetchTrue::parse(p); }
+ if (var0 & 8388608) { res->call_active_ = TlFetchTrue::parse(p); }
+ if (var0 & 16777216) { res->call_not_empty_ = TlFetchTrue::parse(p); }
+ if (var0 & 33554432) { res->fake_ = TlFetchTrue::parse(p); }
+ if (var0 & 67108864) { res->gigagroup_ = TlFetchTrue::parse(p); }
+ if (var0 & 134217728) { res->noforwards_ = TlFetchTrue::parse(p); }
+ if (var0 & 268435456) { res->join_to_send_ = TlFetchTrue::parse(p); }
+ if (var0 & 536870912) { res->join_request_ = TlFetchTrue::parse(p); }
+ if (var0 & 1073741824) { res->forum_ = TlFetchTrue::parse(p); }
+ if ((var1 = res->flags2_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->id_ = TlFetchLong::parse(p);
+ if (var0 & 8192) { res->access_hash_ = TlFetchLong::parse(p); }
+ res->title_ = TlFetchString<string>::parse(p);
+ if (var0 & 64) { res->username_ = TlFetchString<string>::parse(p); }
+ res->photo_ = TlFetchObject<ChatPhoto>::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ if (var0 & 512) { res->restriction_reason_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<restrictionReason>, -797791052>>, 481674261>::parse(p); }
+ if (var0 & 16384) { res->admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p); }
+ if (var0 & 32768) { res->banned_rights_ = TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p); }
+ if (var0 & 262144) { res->default_banned_rights_ = TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p); }
+ if (var0 & 131072) { res->participants_count_ = TlFetchInt::parse(p); }
+ if (var1 & 1) { res->usernames_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<username>, -1274595769>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void channel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channel");
+ int32 var0;
+ int32 var1;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("flags2", (var1 = flags2_));
+ s.store_field("id", id_);
+ if (var0 & 8192) { s.store_field("access_hash", access_hash_); }
+ s.store_field("title", title_);
+ if (var0 & 64) { s.store_field("username", username_); }
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("date", date_);
+ if (var0 & 512) { { s.store_vector_begin("restriction_reason", restriction_reason_.size()); for (const auto &_value : restriction_reason_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 16384) { s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get())); }
+ if (var0 & 32768) { s.store_object_field("banned_rights", static_cast<const BaseObject *>(banned_rights_.get())); }
+ if (var0 & 262144) { s.store_object_field("default_banned_rights", static_cast<const BaseObject *>(default_banned_rights_.get())); }
+ if (var0 & 131072) { s.store_field("participants_count", participants_count_); }
+ if (var1 & 1) { { s.store_vector_begin("usernames", usernames_.size()); for (const auto &_value : usernames_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+channelForbidden::channelForbidden()
+ : flags_()
+ , broadcast_()
+ , megagroup_()
+ , id_()
+ , access_hash_()
+ , title_()
+ , until_date_()
+{}
+
+channelForbidden::channelForbidden(int32 flags_, bool broadcast_, bool megagroup_, int64 id_, int64 access_hash_, string const &title_, int32 until_date_)
+ : flags_(flags_)
+ , broadcast_(broadcast_)
+ , megagroup_(megagroup_)
+ , id_(id_)
+ , access_hash_(access_hash_)
+ , title_(title_)
+ , until_date_(until_date_)
+{}
+
+const std::int32_t channelForbidden::ID;
+
+object_ptr<Chat> channelForbidden::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<channelForbidden> res = make_tl_object<channelForbidden>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 32) { res->broadcast_ = TlFetchTrue::parse(p); }
+ if (var0 & 256) { res->megagroup_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ if (var0 & 65536) { res->until_date_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void channelForbidden::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelForbidden");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("title", title_);
+ if (var0 & 65536) { s.store_field("until_date", until_date_); }
+ s.store_class_end();
+ }
+}
+
+chatAdminRights::chatAdminRights()
+ : flags_()
+ , change_info_()
+ , post_messages_()
+ , edit_messages_()
+ , delete_messages_()
+ , ban_users_()
+ , invite_users_()
+ , pin_messages_()
+ , add_admins_()
+ , anonymous_()
+ , manage_call_()
+ , other_()
+ , manage_topics_()
+{}
+
+chatAdminRights::chatAdminRights(int32 flags_, bool change_info_, bool post_messages_, bool edit_messages_, bool delete_messages_, bool ban_users_, bool invite_users_, bool pin_messages_, bool add_admins_, bool anonymous_, bool manage_call_, bool other_, bool manage_topics_)
+ : flags_(flags_)
+ , change_info_(change_info_)
+ , post_messages_(post_messages_)
+ , edit_messages_(edit_messages_)
+ , delete_messages_(delete_messages_)
+ , ban_users_(ban_users_)
+ , invite_users_(invite_users_)
+ , pin_messages_(pin_messages_)
+ , add_admins_(add_admins_)
+ , anonymous_(anonymous_)
+ , manage_call_(manage_call_)
+ , other_(other_)
+ , manage_topics_(manage_topics_)
+{}
+
+const std::int32_t chatAdminRights::ID;
+
+object_ptr<chatAdminRights> chatAdminRights::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<chatAdminRights> res = make_tl_object<chatAdminRights>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->change_info_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->post_messages_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->edit_messages_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->delete_messages_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->ban_users_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->invite_users_ = TlFetchTrue::parse(p); }
+ if (var0 & 128) { res->pin_messages_ = TlFetchTrue::parse(p); }
+ if (var0 & 512) { res->add_admins_ = TlFetchTrue::parse(p); }
+ if (var0 & 1024) { res->anonymous_ = TlFetchTrue::parse(p); }
+ if (var0 & 2048) { res->manage_call_ = TlFetchTrue::parse(p); }
+ if (var0 & 4096) { res->other_ = TlFetchTrue::parse(p); }
+ if (var0 & 8192) { res->manage_topics_ = TlFetchTrue::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void chatAdminRights::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void chatAdminRights::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void chatAdminRights::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatAdminRights");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t chatAdminWithInvites::ID;
+
+object_ptr<chatAdminWithInvites> chatAdminWithInvites::fetch(TlBufferParser &p) {
+ return make_tl_object<chatAdminWithInvites>(p);
+}
+
+chatAdminWithInvites::chatAdminWithInvites(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : admin_id_(TlFetchLong::parse(p))
+ , invites_count_(TlFetchInt::parse(p))
+ , revoked_invites_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void chatAdminWithInvites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatAdminWithInvites");
+ s.store_field("admin_id", admin_id_);
+ s.store_field("invites_count", invites_count_);
+ s.store_field("revoked_invites_count", revoked_invites_count_);
+ s.store_class_end();
+ }
+}
+
+chatBannedRights::chatBannedRights()
+ : flags_()
+ , view_messages_()
+ , send_messages_()
+ , send_media_()
+ , send_stickers_()
+ , send_gifs_()
+ , send_games_()
+ , send_inline_()
+ , embed_links_()
+ , send_polls_()
+ , change_info_()
+ , invite_users_()
+ , pin_messages_()
+ , manage_topics_()
+ , until_date_()
+{}
+
+chatBannedRights::chatBannedRights(int32 flags_, bool view_messages_, bool send_messages_, bool send_media_, bool send_stickers_, bool send_gifs_, bool send_games_, bool send_inline_, bool embed_links_, bool send_polls_, bool change_info_, bool invite_users_, bool pin_messages_, bool manage_topics_, int32 until_date_)
+ : flags_(flags_)
+ , view_messages_(view_messages_)
+ , send_messages_(send_messages_)
+ , send_media_(send_media_)
+ , send_stickers_(send_stickers_)
+ , send_gifs_(send_gifs_)
+ , send_games_(send_games_)
+ , send_inline_(send_inline_)
+ , embed_links_(embed_links_)
+ , send_polls_(send_polls_)
+ , change_info_(change_info_)
+ , invite_users_(invite_users_)
+ , pin_messages_(pin_messages_)
+ , manage_topics_(manage_topics_)
+ , until_date_(until_date_)
+{}
+
+const std::int32_t chatBannedRights::ID;
+
+object_ptr<chatBannedRights> chatBannedRights::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<chatBannedRights> res = make_tl_object<chatBannedRights>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->view_messages_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->send_messages_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->send_media_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->send_stickers_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->send_gifs_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->send_games_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->send_inline_ = TlFetchTrue::parse(p); }
+ if (var0 & 128) { res->embed_links_ = TlFetchTrue::parse(p); }
+ if (var0 & 256) { res->send_polls_ = TlFetchTrue::parse(p); }
+ if (var0 & 1024) { res->change_info_ = TlFetchTrue::parse(p); }
+ if (var0 & 32768) { res->invite_users_ = TlFetchTrue::parse(p); }
+ if (var0 & 131072) { res->pin_messages_ = TlFetchTrue::parse(p); }
+ if (var0 & 262144) { res->manage_topics_ = TlFetchTrue::parse(p); }
+ res->until_date_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void chatBannedRights::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(until_date_, s);
+}
+
+void chatBannedRights::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(until_date_, s);
+}
+
+void chatBannedRights::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatBannedRights");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("until_date", until_date_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<ChatFull> ChatFull::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case chatFull::ID:
+ return chatFull::fetch(p);
+ case channelFull::ID:
+ return channelFull::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+chatFull::chatFull()
+ : flags_()
+ , can_set_username_()
+ , has_scheduled_()
+ , id_()
+ , about_()
+ , participants_()
+ , chat_photo_()
+ , notify_settings_()
+ , exported_invite_()
+ , bot_info_()
+ , pinned_msg_id_()
+ , folder_id_()
+ , call_()
+ , ttl_period_()
+ , groupcall_default_join_as_()
+ , theme_emoticon_()
+ , requests_pending_()
+ , recent_requesters_()
+ , available_reactions_()
+{}
+
+const std::int32_t chatFull::ID;
+
+object_ptr<ChatFull> chatFull::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<chatFull> res = make_tl_object<chatFull>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 128) { res->can_set_username_ = TlFetchTrue::parse(p); }
+ if (var0 & 256) { res->has_scheduled_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->about_ = TlFetchString<string>::parse(p);
+ res->participants_ = TlFetchObject<ChatParticipants>::parse(p);
+ if (var0 & 4) { res->chat_photo_ = TlFetchObject<Photo>::parse(p); }
+ res->notify_settings_ = TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p);
+ if (var0 & 8192) { res->exported_invite_ = TlFetchObject<ExportedChatInvite>::parse(p); }
+ if (var0 & 8) { res->bot_info_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<botInfo>, -1892676777>>, 481674261>::parse(p); }
+ if (var0 & 64) { res->pinned_msg_id_ = TlFetchInt::parse(p); }
+ if (var0 & 2048) { res->folder_id_ = TlFetchInt::parse(p); }
+ if (var0 & 4096) { res->call_ = TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p); }
+ if (var0 & 16384) { res->ttl_period_ = TlFetchInt::parse(p); }
+ if (var0 & 32768) { res->groupcall_default_join_as_ = TlFetchObject<Peer>::parse(p); }
+ if (var0 & 65536) { res->theme_emoticon_ = TlFetchString<string>::parse(p); }
+ if (var0 & 131072) { res->requests_pending_ = TlFetchInt::parse(p); }
+ if (var0 & 131072) { res->recent_requesters_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); }
+ if (var0 & 262144) { res->available_reactions_ = TlFetchObject<ChatReactions>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void chatFull::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatFull");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("about", about_);
+ s.store_object_field("participants", static_cast<const BaseObject *>(participants_.get()));
+ if (var0 & 4) { s.store_object_field("chat_photo", static_cast<const BaseObject *>(chat_photo_.get())); }
+ s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get()));
+ if (var0 & 8192) { s.store_object_field("exported_invite", static_cast<const BaseObject *>(exported_invite_.get())); }
+ if (var0 & 8) { { s.store_vector_begin("bot_info", bot_info_.size()); for (const auto &_value : bot_info_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 64) { s.store_field("pinned_msg_id", pinned_msg_id_); }
+ if (var0 & 2048) { s.store_field("folder_id", folder_id_); }
+ if (var0 & 4096) { s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); }
+ if (var0 & 16384) { s.store_field("ttl_period", ttl_period_); }
+ if (var0 & 32768) { s.store_object_field("groupcall_default_join_as", static_cast<const BaseObject *>(groupcall_default_join_as_.get())); }
+ if (var0 & 65536) { s.store_field("theme_emoticon", theme_emoticon_); }
+ if (var0 & 131072) { s.store_field("requests_pending", requests_pending_); }
+ if (var0 & 131072) { { s.store_vector_begin("recent_requesters", recent_requesters_.size()); for (const auto &_value : recent_requesters_) { s.store_field("", _value); } s.store_class_end(); } }
+ if (var0 & 262144) { s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get())); }
+ s.store_class_end();
+ }
+}
+
+channelFull::channelFull()
+ : flags_()
+ , can_view_participants_()
+ , can_set_username_()
+ , can_set_stickers_()
+ , hidden_prehistory_()
+ , can_set_location_()
+ , has_scheduled_()
+ , can_view_stats_()
+ , blocked_()
+ , flags2_()
+ , can_delete_channel_()
+ , id_()
+ , about_()
+ , participants_count_()
+ , admins_count_()
+ , kicked_count_()
+ , banned_count_()
+ , online_count_()
+ , read_inbox_max_id_()
+ , read_outbox_max_id_()
+ , unread_count_()
+ , chat_photo_()
+ , notify_settings_()
+ , exported_invite_()
+ , bot_info_()
+ , migrated_from_chat_id_()
+ , migrated_from_max_id_()
+ , pinned_msg_id_()
+ , stickerset_()
+ , available_min_id_()
+ , folder_id_()
+ , linked_chat_id_()
+ , location_()
+ , slowmode_seconds_()
+ , slowmode_next_send_date_()
+ , stats_dc_()
+ , pts_()
+ , call_()
+ , ttl_period_()
+ , pending_suggestions_()
+ , groupcall_default_join_as_()
+ , theme_emoticon_()
+ , requests_pending_()
+ , recent_requesters_()
+ , default_send_as_()
+ , available_reactions_()
+{}
+
+const std::int32_t channelFull::ID;
+
+object_ptr<ChatFull> channelFull::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<channelFull> res = make_tl_object<channelFull>();
+ int32 var0;
+ int32 var1;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 8) { res->can_view_participants_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->can_set_username_ = TlFetchTrue::parse(p); }
+ if (var0 & 128) { res->can_set_stickers_ = TlFetchTrue::parse(p); }
+ if (var0 & 1024) { res->hidden_prehistory_ = TlFetchTrue::parse(p); }
+ if (var0 & 65536) { res->can_set_location_ = TlFetchTrue::parse(p); }
+ if (var0 & 524288) { res->has_scheduled_ = TlFetchTrue::parse(p); }
+ if (var0 & 1048576) { res->can_view_stats_ = TlFetchTrue::parse(p); }
+ if (var0 & 4194304) { res->blocked_ = TlFetchTrue::parse(p); }
+ if ((var1 = res->flags2_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var1 & 1) { res->can_delete_channel_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->about_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->participants_count_ = TlFetchInt::parse(p); }
+ if (var0 & 2) { res->admins_count_ = TlFetchInt::parse(p); }
+ if (var0 & 4) { res->kicked_count_ = TlFetchInt::parse(p); }
+ if (var0 & 4) { res->banned_count_ = TlFetchInt::parse(p); }
+ if (var0 & 8192) { res->online_count_ = TlFetchInt::parse(p); }
+ res->read_inbox_max_id_ = TlFetchInt::parse(p);
+ res->read_outbox_max_id_ = TlFetchInt::parse(p);
+ res->unread_count_ = TlFetchInt::parse(p);
+ res->chat_photo_ = TlFetchObject<Photo>::parse(p);
+ res->notify_settings_ = TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p);
+ if (var0 & 8388608) { res->exported_invite_ = TlFetchObject<ExportedChatInvite>::parse(p); }
+ res->bot_info_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<botInfo>, -1892676777>>, 481674261>::parse(p);
+ if (var0 & 16) { res->migrated_from_chat_id_ = TlFetchLong::parse(p); }
+ if (var0 & 16) { res->migrated_from_max_id_ = TlFetchInt::parse(p); }
+ if (var0 & 32) { res->pinned_msg_id_ = TlFetchInt::parse(p); }
+ if (var0 & 256) { res->stickerset_ = TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>::parse(p); }
+ if (var0 & 512) { res->available_min_id_ = TlFetchInt::parse(p); }
+ if (var0 & 2048) { res->folder_id_ = TlFetchInt::parse(p); }
+ if (var0 & 16384) { res->linked_chat_id_ = TlFetchLong::parse(p); }
+ if (var0 & 32768) { res->location_ = TlFetchObject<ChannelLocation>::parse(p); }
+ if (var0 & 131072) { res->slowmode_seconds_ = TlFetchInt::parse(p); }
+ if (var0 & 262144) { res->slowmode_next_send_date_ = TlFetchInt::parse(p); }
+ if (var0 & 4096) { res->stats_dc_ = TlFetchInt::parse(p); }
+ res->pts_ = TlFetchInt::parse(p);
+ if (var0 & 2097152) { res->call_ = TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p); }
+ if (var0 & 16777216) { res->ttl_period_ = TlFetchInt::parse(p); }
+ if (var0 & 33554432) { res->pending_suggestions_ = TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p); }
+ if (var0 & 67108864) { res->groupcall_default_join_as_ = TlFetchObject<Peer>::parse(p); }
+ if (var0 & 134217728) { res->theme_emoticon_ = TlFetchString<string>::parse(p); }
+ if (var0 & 268435456) { res->requests_pending_ = TlFetchInt::parse(p); }
+ if (var0 & 268435456) { res->recent_requesters_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); }
+ if (var0 & 536870912) { res->default_send_as_ = TlFetchObject<Peer>::parse(p); }
+ if (var0 & 1073741824) { res->available_reactions_ = TlFetchObject<ChatReactions>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void channelFull::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channelFull");
+ int32 var0;
+ int32 var1;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("flags2", (var1 = flags2_));
+ s.store_field("id", id_);
+ s.store_field("about", about_);
+ if (var0 & 1) { s.store_field("participants_count", participants_count_); }
+ if (var0 & 2) { s.store_field("admins_count", admins_count_); }
+ if (var0 & 4) { s.store_field("kicked_count", kicked_count_); }
+ if (var0 & 4) { s.store_field("banned_count", banned_count_); }
+ if (var0 & 8192) { s.store_field("online_count", online_count_); }
+ s.store_field("read_inbox_max_id", read_inbox_max_id_);
+ s.store_field("read_outbox_max_id", read_outbox_max_id_);
+ s.store_field("unread_count", unread_count_);
+ s.store_object_field("chat_photo", static_cast<const BaseObject *>(chat_photo_.get()));
+ s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get()));
+ if (var0 & 8388608) { s.store_object_field("exported_invite", static_cast<const BaseObject *>(exported_invite_.get())); }
+ { s.store_vector_begin("bot_info", bot_info_.size()); for (const auto &_value : bot_info_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 16) { s.store_field("migrated_from_chat_id", migrated_from_chat_id_); }
+ if (var0 & 16) { s.store_field("migrated_from_max_id", migrated_from_max_id_); }
+ if (var0 & 32) { s.store_field("pinned_msg_id", pinned_msg_id_); }
+ if (var0 & 256) { s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); }
+ if (var0 & 512) { s.store_field("available_min_id", available_min_id_); }
+ if (var0 & 2048) { s.store_field("folder_id", folder_id_); }
+ if (var0 & 16384) { s.store_field("linked_chat_id", linked_chat_id_); }
+ if (var0 & 32768) { s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); }
+ if (var0 & 131072) { s.store_field("slowmode_seconds", slowmode_seconds_); }
+ if (var0 & 262144) { s.store_field("slowmode_next_send_date", slowmode_next_send_date_); }
+ if (var0 & 4096) { s.store_field("stats_dc", stats_dc_); }
+ s.store_field("pts", pts_);
+ if (var0 & 2097152) { s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); }
+ if (var0 & 16777216) { s.store_field("ttl_period", ttl_period_); }
+ if (var0 & 33554432) { { s.store_vector_begin("pending_suggestions", pending_suggestions_.size()); for (const auto &_value : pending_suggestions_) { s.store_field("", _value); } s.store_class_end(); } }
+ if (var0 & 67108864) { s.store_object_field("groupcall_default_join_as", static_cast<const BaseObject *>(groupcall_default_join_as_.get())); }
+ if (var0 & 134217728) { s.store_field("theme_emoticon", theme_emoticon_); }
+ if (var0 & 268435456) { s.store_field("requests_pending", requests_pending_); }
+ if (var0 & 268435456) { { s.store_vector_begin("recent_requesters", recent_requesters_.size()); for (const auto &_value : recent_requesters_) { s.store_field("", _value); } s.store_class_end(); } }
+ if (var0 & 536870912) { s.store_object_field("default_send_as", static_cast<const BaseObject *>(default_send_as_.get())); }
+ if (var0 & 1073741824) { s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get())); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<ChatInvite> ChatInvite::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case chatInviteAlready::ID:
+ return chatInviteAlready::fetch(p);
+ case chatInvite::ID:
+ return chatInvite::fetch(p);
+ case chatInvitePeek::ID:
+ return chatInvitePeek::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t chatInviteAlready::ID;
+
+object_ptr<ChatInvite> chatInviteAlready::fetch(TlBufferParser &p) {
+ return make_tl_object<chatInviteAlready>(p);
+}
+
+chatInviteAlready::chatInviteAlready(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_(TlFetchObject<Chat>::parse(p))
+#undef FAIL
+{}
+
+void chatInviteAlready::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInviteAlready");
+ s.store_object_field("chat", static_cast<const BaseObject *>(chat_.get()));
+ s.store_class_end();
+ }
+}
+
+chatInvite::chatInvite()
+ : flags_()
+ , channel_()
+ , broadcast_()
+ , public_()
+ , megagroup_()
+ , request_needed_()
+ , title_()
+ , about_()
+ , photo_()
+ , participants_count_()
+ , participants_()
+{}
+
+const std::int32_t chatInvite::ID;
+
+object_ptr<ChatInvite> chatInvite::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<chatInvite> res = make_tl_object<chatInvite>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->channel_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->broadcast_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->public_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->megagroup_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->request_needed_ = TlFetchTrue::parse(p); }
+ res->title_ = TlFetchString<string>::parse(p);
+ if (var0 & 32) { res->about_ = TlFetchString<string>::parse(p); }
+ res->photo_ = TlFetchObject<Photo>::parse(p);
+ res->participants_count_ = TlFetchInt::parse(p);
+ if (var0 & 16) { res->participants_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void chatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInvite");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("title", title_);
+ if (var0 & 32) { s.store_field("about", about_); }
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("participants_count", participants_count_);
+ if (var0 & 16) { { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t chatInvitePeek::ID;
+
+object_ptr<ChatInvite> chatInvitePeek::fetch(TlBufferParser &p) {
+ return make_tl_object<chatInvitePeek>(p);
+}
+
+chatInvitePeek::chatInvitePeek(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_(TlFetchObject<Chat>::parse(p))
+ , expires_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void chatInvitePeek::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInvitePeek");
+ s.store_object_field("chat", static_cast<const BaseObject *>(chat_.get()));
+ s.store_field("expires", expires_);
+ s.store_class_end();
+ }
+}
+
+chatInviteImporter::chatInviteImporter()
+ : flags_()
+ , requested_()
+ , user_id_()
+ , date_()
+ , about_()
+ , approved_by_()
+{}
+
+const std::int32_t chatInviteImporter::ID;
+
+object_ptr<chatInviteImporter> chatInviteImporter::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<chatInviteImporter> res = make_tl_object<chatInviteImporter>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->requested_ = TlFetchTrue::parse(p); }
+ res->user_id_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ if (var0 & 4) { res->about_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2) { res->approved_by_ = TlFetchLong::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void chatInviteImporter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInviteImporter");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("user_id", user_id_);
+ s.store_field("date", date_);
+ if (var0 & 4) { s.store_field("about", about_); }
+ if (var0 & 2) { s.store_field("approved_by", approved_by_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t chatOnlines::ID;
+
+object_ptr<chatOnlines> chatOnlines::fetch(TlBufferParser &p) {
+ return make_tl_object<chatOnlines>(p);
+}
+
+chatOnlines::chatOnlines(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : onlines_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void chatOnlines::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatOnlines");
+ s.store_field("onlines", onlines_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<ChatParticipant> ChatParticipant::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case chatParticipant::ID:
+ return chatParticipant::fetch(p);
+ case chatParticipantCreator::ID:
+ return chatParticipantCreator::fetch(p);
+ case chatParticipantAdmin::ID:
+ return chatParticipantAdmin::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t chatParticipant::ID;
+
+object_ptr<ChatParticipant> chatParticipant::fetch(TlBufferParser &p) {
+ return make_tl_object<chatParticipant>(p);
+}
+
+chatParticipant::chatParticipant(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , inviter_id_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void chatParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatParticipant");
+ s.store_field("user_id", user_id_);
+ s.store_field("inviter_id", inviter_id_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t chatParticipantCreator::ID;
+
+object_ptr<ChatParticipant> chatParticipantCreator::fetch(TlBufferParser &p) {
+ return make_tl_object<chatParticipantCreator>(p);
+}
+
+chatParticipantCreator::chatParticipantCreator(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void chatParticipantCreator::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatParticipantCreator");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t chatParticipantAdmin::ID;
+
+object_ptr<ChatParticipant> chatParticipantAdmin::fetch(TlBufferParser &p) {
+ return make_tl_object<chatParticipantAdmin>(p);
+}
+
+chatParticipantAdmin::chatParticipantAdmin(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , inviter_id_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void chatParticipantAdmin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatParticipantAdmin");
+ s.store_field("user_id", user_id_);
+ s.store_field("inviter_id", inviter_id_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<ChatParticipants> ChatParticipants::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case chatParticipantsForbidden::ID:
+ return chatParticipantsForbidden::fetch(p);
+ case chatParticipants::ID:
+ return chatParticipants::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+chatParticipantsForbidden::chatParticipantsForbidden()
+ : flags_()
+ , chat_id_()
+ , self_participant_()
+{}
+
+const std::int32_t chatParticipantsForbidden::ID;
+
+object_ptr<ChatParticipants> chatParticipantsForbidden::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<chatParticipantsForbidden> res = make_tl_object<chatParticipantsForbidden>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->chat_id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->self_participant_ = TlFetchObject<ChatParticipant>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void chatParticipantsForbidden::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatParticipantsForbidden");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("chat_id", chat_id_);
+ if (var0 & 1) { s.store_object_field("self_participant", static_cast<const BaseObject *>(self_participant_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t chatParticipants::ID;
+
+object_ptr<ChatParticipants> chatParticipants::fetch(TlBufferParser &p) {
+ return make_tl_object<chatParticipants>(p);
+}
+
+chatParticipants::chatParticipants(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchLong::parse(p))
+ , participants_(TlFetchBoxed<TlFetchVector<TlFetchObject<ChatParticipant>>, 481674261>::parse(p))
+ , version_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void chatParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatParticipants");
+ s.store_field("chat_id", chat_id_);
+ { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("version", version_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<ChatPhoto> ChatPhoto::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case chatPhotoEmpty::ID:
+ return chatPhotoEmpty::fetch(p);
+ case chatPhoto::ID:
+ return chatPhoto::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t chatPhotoEmpty::ID;
+
+object_ptr<ChatPhoto> chatPhotoEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<chatPhotoEmpty>();
+}
+
+void chatPhotoEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatPhotoEmpty");
+ s.store_class_end();
+ }
+}
+
+chatPhoto::chatPhoto()
+ : flags_()
+ , has_video_()
+ , photo_id_()
+ , stripped_thumb_()
+ , dc_id_()
+{}
+
+const std::int32_t chatPhoto::ID;
+
+object_ptr<ChatPhoto> chatPhoto::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<chatPhoto> res = make_tl_object<chatPhoto>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->has_video_ = TlFetchTrue::parse(p); }
+ res->photo_id_ = TlFetchLong::parse(p);
+ if (var0 & 2) { res->stripped_thumb_ = TlFetchBytes<bytes>::parse(p); }
+ res->dc_id_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void chatPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatPhoto");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("photo_id", photo_id_);
+ if (var0 & 2) { s.store_bytes_field("stripped_thumb", stripped_thumb_); }
+ s.store_field("dc_id", dc_id_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<ChatReactions> ChatReactions::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case chatReactionsNone::ID:
+ return chatReactionsNone::fetch(p);
+ case chatReactionsAll::ID:
+ return chatReactionsAll::fetch(p);
+ case chatReactionsSome::ID:
+ return chatReactionsSome::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t chatReactionsNone::ID;
+
+object_ptr<ChatReactions> chatReactionsNone::fetch(TlBufferParser &p) {
+ return make_tl_object<chatReactionsNone>();
+}
+
+void chatReactionsNone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void chatReactionsNone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void chatReactionsNone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReactionsNone");
+ s.store_class_end();
+ }
+}
+
+chatReactionsAll::chatReactionsAll()
+ : flags_()
+ , allow_custom_()
+{}
+
+chatReactionsAll::chatReactionsAll(int32 flags_, bool allow_custom_)
+ : flags_(flags_)
+ , allow_custom_(allow_custom_)
+{}
+
+const std::int32_t chatReactionsAll::ID;
+
+object_ptr<ChatReactions> chatReactionsAll::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<chatReactionsAll> res = make_tl_object<chatReactionsAll>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->allow_custom_ = TlFetchTrue::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void chatReactionsAll::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void chatReactionsAll::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void chatReactionsAll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReactionsAll");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+chatReactionsSome::chatReactionsSome(array<object_ptr<Reaction>> &&reactions_)
+ : reactions_(std::move(reactions_))
+{}
+
+const std::int32_t chatReactionsSome::ID;
+
+object_ptr<ChatReactions> chatReactionsSome::fetch(TlBufferParser &p) {
+ return make_tl_object<chatReactionsSome>(p);
+}
+
+chatReactionsSome::chatReactionsSome(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : reactions_(TlFetchBoxed<TlFetchVector<TlFetchObject<Reaction>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void chatReactionsSome::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(reactions_, s);
+}
+
+void chatReactionsSome::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(reactions_, s);
+}
+
+void chatReactionsSome::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatReactionsSome");
+ { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+codeSettings::codeSettings(int32 flags_, bool allow_flashcall_, bool current_number_, bool allow_app_hash_, bool allow_missed_call_, array<bytes> &&logout_tokens_)
+ : flags_(flags_)
+ , allow_flashcall_(allow_flashcall_)
+ , current_number_(current_number_)
+ , allow_app_hash_(allow_app_hash_)
+ , allow_missed_call_(allow_missed_call_)
+ , logout_tokens_(std::move(logout_tokens_))
+{}
+
+const std::int32_t codeSettings::ID;
+
+void codeSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 64) { TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(logout_tokens_, s); }
+}
+
+void codeSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 64) { TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(logout_tokens_, s); }
+}
+
+void codeSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "codeSettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 64) { { s.store_vector_begin("logout_tokens", logout_tokens_.size()); for (const auto &_value : logout_tokens_) { s.store_bytes_field("", _value); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+config::config()
+ : flags_()
+ , phonecalls_enabled_()
+ , default_p2p_contacts_()
+ , preload_featured_stickers_()
+ , ignore_phone_entities_()
+ , revoke_pm_inbox_()
+ , blocked_mode_()
+ , pfs_enabled_()
+ , force_try_ipv6_()
+ , date_()
+ , expires_()
+ , test_mode_()
+ , this_dc_()
+ , dc_options_()
+ , dc_txt_domain_name_()
+ , chat_size_max_()
+ , megagroup_size_max_()
+ , forwarded_count_max_()
+ , online_update_period_ms_()
+ , offline_blur_timeout_ms_()
+ , offline_idle_timeout_ms_()
+ , online_cloud_timeout_ms_()
+ , notify_cloud_delay_ms_()
+ , notify_default_delay_ms_()
+ , push_chat_period_ms_()
+ , push_chat_limit_()
+ , saved_gifs_limit_()
+ , edit_time_limit_()
+ , revoke_time_limit_()
+ , revoke_pm_time_limit_()
+ , rating_e_decay_()
+ , stickers_recent_limit_()
+ , stickers_faved_limit_()
+ , channels_read_media_period_()
+ , tmp_sessions_()
+ , pinned_dialogs_count_max_()
+ , pinned_infolder_count_max_()
+ , call_receive_timeout_ms_()
+ , call_ring_timeout_ms_()
+ , call_connect_timeout_ms_()
+ , call_packet_timeout_ms_()
+ , me_url_prefix_()
+ , autoupdate_url_prefix_()
+ , gif_search_username_()
+ , venue_search_username_()
+ , img_search_username_()
+ , static_maps_provider_()
+ , caption_length_max_()
+ , message_length_max_()
+ , webfile_dc_id_()
+ , suggested_lang_code_()
+ , lang_pack_version_()
+ , base_lang_pack_version_()
+ , reactions_default_()
+{}
+
+const std::int32_t config::ID;
+
+object_ptr<config> config::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<config> res = make_tl_object<config>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->phonecalls_enabled_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->default_p2p_contacts_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->preload_featured_stickers_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->ignore_phone_entities_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->revoke_pm_inbox_ = TlFetchTrue::parse(p); }
+ if (var0 & 256) { res->blocked_mode_ = TlFetchTrue::parse(p); }
+ if (var0 & 8192) { res->pfs_enabled_ = TlFetchTrue::parse(p); }
+ if (var0 & 16384) { res->force_try_ipv6_ = TlFetchTrue::parse(p); }
+ res->date_ = TlFetchInt::parse(p);
+ res->expires_ = TlFetchInt::parse(p);
+ res->test_mode_ = TlFetchBool::parse(p);
+ res->this_dc_ = TlFetchInt::parse(p);
+ res->dc_options_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<dcOption>, 414687501>>, 481674261>::parse(p);
+ res->dc_txt_domain_name_ = TlFetchString<string>::parse(p);
+ res->chat_size_max_ = TlFetchInt::parse(p);
+ res->megagroup_size_max_ = TlFetchInt::parse(p);
+ res->forwarded_count_max_ = TlFetchInt::parse(p);
+ res->online_update_period_ms_ = TlFetchInt::parse(p);
+ res->offline_blur_timeout_ms_ = TlFetchInt::parse(p);
+ res->offline_idle_timeout_ms_ = TlFetchInt::parse(p);
+ res->online_cloud_timeout_ms_ = TlFetchInt::parse(p);
+ res->notify_cloud_delay_ms_ = TlFetchInt::parse(p);
+ res->notify_default_delay_ms_ = TlFetchInt::parse(p);
+ res->push_chat_period_ms_ = TlFetchInt::parse(p);
+ res->push_chat_limit_ = TlFetchInt::parse(p);
+ res->saved_gifs_limit_ = TlFetchInt::parse(p);
+ res->edit_time_limit_ = TlFetchInt::parse(p);
+ res->revoke_time_limit_ = TlFetchInt::parse(p);
+ res->revoke_pm_time_limit_ = TlFetchInt::parse(p);
+ res->rating_e_decay_ = TlFetchInt::parse(p);
+ res->stickers_recent_limit_ = TlFetchInt::parse(p);
+ res->stickers_faved_limit_ = TlFetchInt::parse(p);
+ res->channels_read_media_period_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->tmp_sessions_ = TlFetchInt::parse(p); }
+ res->pinned_dialogs_count_max_ = TlFetchInt::parse(p);
+ res->pinned_infolder_count_max_ = TlFetchInt::parse(p);
+ res->call_receive_timeout_ms_ = TlFetchInt::parse(p);
+ res->call_ring_timeout_ms_ = TlFetchInt::parse(p);
+ res->call_connect_timeout_ms_ = TlFetchInt::parse(p);
+ res->call_packet_timeout_ms_ = TlFetchInt::parse(p);
+ res->me_url_prefix_ = TlFetchString<string>::parse(p);
+ if (var0 & 128) { res->autoupdate_url_prefix_ = TlFetchString<string>::parse(p); }
+ if (var0 & 512) { res->gif_search_username_ = TlFetchString<string>::parse(p); }
+ if (var0 & 1024) { res->venue_search_username_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2048) { res->img_search_username_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4096) { res->static_maps_provider_ = TlFetchString<string>::parse(p); }
+ res->caption_length_max_ = TlFetchInt::parse(p);
+ res->message_length_max_ = TlFetchInt::parse(p);
+ res->webfile_dc_id_ = TlFetchInt::parse(p);
+ if (var0 & 4) { res->suggested_lang_code_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->lang_pack_version_ = TlFetchInt::parse(p); }
+ if (var0 & 4) { res->base_lang_pack_version_ = TlFetchInt::parse(p); }
+ if (var0 & 32768) { res->reactions_default_ = TlFetchObject<Reaction>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void config::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "config");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("date", date_);
+ s.store_field("expires", expires_);
+ s.store_field("test_mode", test_mode_);
+ s.store_field("this_dc", this_dc_);
+ { s.store_vector_begin("dc_options", dc_options_.size()); for (const auto &_value : dc_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("dc_txt_domain_name", dc_txt_domain_name_);
+ s.store_field("chat_size_max", chat_size_max_);
+ s.store_field("megagroup_size_max", megagroup_size_max_);
+ s.store_field("forwarded_count_max", forwarded_count_max_);
+ s.store_field("online_update_period_ms", online_update_period_ms_);
+ s.store_field("offline_blur_timeout_ms", offline_blur_timeout_ms_);
+ s.store_field("offline_idle_timeout_ms", offline_idle_timeout_ms_);
+ s.store_field("online_cloud_timeout_ms", online_cloud_timeout_ms_);
+ s.store_field("notify_cloud_delay_ms", notify_cloud_delay_ms_);
+ s.store_field("notify_default_delay_ms", notify_default_delay_ms_);
+ s.store_field("push_chat_period_ms", push_chat_period_ms_);
+ s.store_field("push_chat_limit", push_chat_limit_);
+ s.store_field("saved_gifs_limit", saved_gifs_limit_);
+ s.store_field("edit_time_limit", edit_time_limit_);
+ s.store_field("revoke_time_limit", revoke_time_limit_);
+ s.store_field("revoke_pm_time_limit", revoke_pm_time_limit_);
+ s.store_field("rating_e_decay", rating_e_decay_);
+ s.store_field("stickers_recent_limit", stickers_recent_limit_);
+ s.store_field("stickers_faved_limit", stickers_faved_limit_);
+ s.store_field("channels_read_media_period", channels_read_media_period_);
+ if (var0 & 1) { s.store_field("tmp_sessions", tmp_sessions_); }
+ s.store_field("pinned_dialogs_count_max", pinned_dialogs_count_max_);
+ s.store_field("pinned_infolder_count_max", pinned_infolder_count_max_);
+ s.store_field("call_receive_timeout_ms", call_receive_timeout_ms_);
+ s.store_field("call_ring_timeout_ms", call_ring_timeout_ms_);
+ s.store_field("call_connect_timeout_ms", call_connect_timeout_ms_);
+ s.store_field("call_packet_timeout_ms", call_packet_timeout_ms_);
+ s.store_field("me_url_prefix", me_url_prefix_);
+ if (var0 & 128) { s.store_field("autoupdate_url_prefix", autoupdate_url_prefix_); }
+ if (var0 & 512) { s.store_field("gif_search_username", gif_search_username_); }
+ if (var0 & 1024) { s.store_field("venue_search_username", venue_search_username_); }
+ if (var0 & 2048) { s.store_field("img_search_username", img_search_username_); }
+ if (var0 & 4096) { s.store_field("static_maps_provider", static_maps_provider_); }
+ s.store_field("caption_length_max", caption_length_max_);
+ s.store_field("message_length_max", message_length_max_);
+ s.store_field("webfile_dc_id", webfile_dc_id_);
+ if (var0 & 4) { s.store_field("suggested_lang_code", suggested_lang_code_); }
+ if (var0 & 4) { s.store_field("lang_pack_version", lang_pack_version_); }
+ if (var0 & 4) { s.store_field("base_lang_pack_version", base_lang_pack_version_); }
+ if (var0 & 32768) { s.store_object_field("reactions_default", static_cast<const BaseObject *>(reactions_default_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t contact::ID;
+
+object_ptr<contact> contact::fetch(TlBufferParser &p) {
+ return make_tl_object<contact>(p);
+}
+
+contact::contact(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , mutual_(TlFetchBool::parse(p))
+#undef FAIL
+{}
+
+void contact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contact");
+ s.store_field("user_id", user_id_);
+ s.store_field("mutual", mutual_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t contactStatus::ID;
+
+object_ptr<contactStatus> contactStatus::fetch(TlBufferParser &p) {
+ return make_tl_object<contactStatus>(p);
+}
+
+contactStatus::contactStatus(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , status_(TlFetchObject<UserStatus>::parse(p))
+#undef FAIL
+{}
+
+void contactStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contactStatus");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("status", static_cast<const BaseObject *>(status_.get()));
+ s.store_class_end();
+ }
+}
+
+dataJSON::dataJSON(string const &data_)
+ : data_(data_)
+{}
+
+const std::int32_t dataJSON::ID;
+
+object_ptr<dataJSON> dataJSON::fetch(TlBufferParser &p) {
+ return make_tl_object<dataJSON>(p);
+}
+
+dataJSON::dataJSON(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : data_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void dataJSON::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(data_, s);
+}
+
+void dataJSON::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(data_, s);
+}
+
+void dataJSON::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dataJSON");
+ s.store_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+dcOption::dcOption()
+ : flags_()
+ , ipv6_()
+ , media_only_()
+ , tcpo_only_()
+ , cdn_()
+ , static_()
+ , this_port_only_()
+ , id_()
+ , ip_address_()
+ , port_()
+ , secret_()
+{}
+
+const std::int32_t dcOption::ID;
+
+object_ptr<dcOption> dcOption::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<dcOption> res = make_tl_object<dcOption>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->ipv6_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->media_only_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->tcpo_only_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->cdn_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->static_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->this_port_only_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ res->ip_address_ = TlFetchString<string>::parse(p);
+ res->port_ = TlFetchInt::parse(p);
+ if (var0 & 1024) { res->secret_ = TlFetchBytes<bytes>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void dcOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dcOption");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("ip_address", ip_address_);
+ s.store_field("port", port_);
+ if (var0 & 1024) { s.store_bytes_field("secret", secret_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<Dialog> Dialog::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case dialog::ID:
+ return dialog::fetch(p);
+ case dialogFolder::ID:
+ return dialogFolder::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+dialog::dialog()
+ : flags_()
+ , pinned_()
+ , unread_mark_()
+ , peer_()
+ , top_message_()
+ , read_inbox_max_id_()
+ , read_outbox_max_id_()
+ , unread_count_()
+ , unread_mentions_count_()
+ , unread_reactions_count_()
+ , notify_settings_()
+ , pts_()
+ , draft_()
+ , folder_id_()
+{}
+
+const std::int32_t dialog::ID;
+
+object_ptr<Dialog> dialog::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<dialog> res = make_tl_object<dialog>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 4) { res->pinned_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->unread_mark_ = TlFetchTrue::parse(p); }
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ res->top_message_ = TlFetchInt::parse(p);
+ res->read_inbox_max_id_ = TlFetchInt::parse(p);
+ res->read_outbox_max_id_ = TlFetchInt::parse(p);
+ res->unread_count_ = TlFetchInt::parse(p);
+ res->unread_mentions_count_ = TlFetchInt::parse(p);
+ res->unread_reactions_count_ = TlFetchInt::parse(p);
+ res->notify_settings_ = TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p);
+ if (var0 & 1) { res->pts_ = TlFetchInt::parse(p); }
+ if (var0 & 2) { res->draft_ = TlFetchObject<DraftMessage>::parse(p); }
+ if (var0 & 16) { res->folder_id_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void dialog::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dialog");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("top_message", top_message_);
+ s.store_field("read_inbox_max_id", read_inbox_max_id_);
+ s.store_field("read_outbox_max_id", read_outbox_max_id_);
+ s.store_field("unread_count", unread_count_);
+ s.store_field("unread_mentions_count", unread_mentions_count_);
+ s.store_field("unread_reactions_count", unread_reactions_count_);
+ s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get()));
+ if (var0 & 1) { s.store_field("pts", pts_); }
+ if (var0 & 2) { s.store_object_field("draft", static_cast<const BaseObject *>(draft_.get())); }
+ if (var0 & 16) { s.store_field("folder_id", folder_id_); }
+ s.store_class_end();
+ }
+}
+
+dialogFolder::dialogFolder()
+ : flags_()
+ , pinned_()
+ , folder_()
+ , peer_()
+ , top_message_()
+ , unread_muted_peers_count_()
+ , unread_unmuted_peers_count_()
+ , unread_muted_messages_count_()
+ , unread_unmuted_messages_count_()
+{}
+
+const std::int32_t dialogFolder::ID;
+
+object_ptr<Dialog> dialogFolder::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<dialogFolder> res = make_tl_object<dialogFolder>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 4) { res->pinned_ = TlFetchTrue::parse(p); }
+ res->folder_ = TlFetchBoxed<TlFetchObject<folder>, -11252123>::parse(p);
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ res->top_message_ = TlFetchInt::parse(p);
+ res->unread_muted_peers_count_ = TlFetchInt::parse(p);
+ res->unread_unmuted_peers_count_ = TlFetchInt::parse(p);
+ res->unread_muted_messages_count_ = TlFetchInt::parse(p);
+ res->unread_unmuted_messages_count_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void dialogFolder::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dialogFolder");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("folder", static_cast<const BaseObject *>(folder_.get()));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("top_message", top_message_);
+ s.store_field("unread_muted_peers_count", unread_muted_peers_count_);
+ s.store_field("unread_unmuted_peers_count", unread_unmuted_peers_count_);
+ s.store_field("unread_muted_messages_count", unread_muted_messages_count_);
+ s.store_field("unread_unmuted_messages_count", unread_unmuted_messages_count_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<DialogFilter> DialogFilter::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case dialogFilter::ID:
+ return dialogFilter::fetch(p);
+ case dialogFilterDefault::ID:
+ return dialogFilterDefault::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+dialogFilter::dialogFilter()
+ : flags_()
+ , contacts_()
+ , non_contacts_()
+ , groups_()
+ , broadcasts_()
+ , bots_()
+ , exclude_muted_()
+ , exclude_read_()
+ , exclude_archived_()
+ , id_()
+ , title_()
+ , emoticon_()
+ , pinned_peers_()
+ , include_peers_()
+ , exclude_peers_()
+{}
+
+dialogFilter::dialogFilter(int32 flags_, bool contacts_, bool non_contacts_, bool groups_, bool broadcasts_, bool bots_, bool exclude_muted_, bool exclude_read_, bool exclude_archived_, int32 id_, string const &title_, string const &emoticon_, array<object_ptr<InputPeer>> &&pinned_peers_, array<object_ptr<InputPeer>> &&include_peers_, array<object_ptr<InputPeer>> &&exclude_peers_)
+ : flags_(flags_)
+ , contacts_(contacts_)
+ , non_contacts_(non_contacts_)
+ , groups_(groups_)
+ , broadcasts_(broadcasts_)
+ , bots_(bots_)
+ , exclude_muted_(exclude_muted_)
+ , exclude_read_(exclude_read_)
+ , exclude_archived_(exclude_archived_)
+ , id_(id_)
+ , title_(title_)
+ , emoticon_(emoticon_)
+ , pinned_peers_(std::move(pinned_peers_))
+ , include_peers_(std::move(include_peers_))
+ , exclude_peers_(std::move(exclude_peers_))
+{}
+
+const std::int32_t dialogFilter::ID;
+
+object_ptr<DialogFilter> dialogFilter::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<dialogFilter> res = make_tl_object<dialogFilter>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->contacts_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->non_contacts_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->groups_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->broadcasts_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->bots_ = TlFetchTrue::parse(p); }
+ if (var0 & 2048) { res->exclude_muted_ = TlFetchTrue::parse(p); }
+ if (var0 & 4096) { res->exclude_read_ = TlFetchTrue::parse(p); }
+ if (var0 & 8192) { res->exclude_archived_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ if (var0 & 33554432) { res->emoticon_ = TlFetchString<string>::parse(p); }
+ res->pinned_peers_ = TlFetchBoxed<TlFetchVector<TlFetchObject<InputPeer>>, 481674261>::parse(p);
+ res->include_peers_ = TlFetchBoxed<TlFetchVector<TlFetchObject<InputPeer>>, 481674261>::parse(p);
+ res->exclude_peers_ = TlFetchBoxed<TlFetchVector<TlFetchObject<InputPeer>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void dialogFilter::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(id_, s);
+ TlStoreString::store(title_, s);
+ if (var0 & 33554432) { TlStoreString::store(emoticon_, s); }
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(pinned_peers_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(include_peers_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(exclude_peers_, s);
+}
+
+void dialogFilter::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(id_, s);
+ TlStoreString::store(title_, s);
+ if (var0 & 33554432) { TlStoreString::store(emoticon_, s); }
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(pinned_peers_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(include_peers_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(exclude_peers_, s);
+}
+
+void dialogFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dialogFilter");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ if (var0 & 33554432) { s.store_field("emoticon", emoticon_); }
+ { s.store_vector_begin("pinned_peers", pinned_peers_.size()); for (const auto &_value : pinned_peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("include_peers", include_peers_.size()); for (const auto &_value : include_peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("exclude_peers", exclude_peers_.size()); for (const auto &_value : exclude_peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t dialogFilterDefault::ID;
+
+object_ptr<DialogFilter> dialogFilterDefault::fetch(TlBufferParser &p) {
+ return make_tl_object<dialogFilterDefault>();
+}
+
+void dialogFilterDefault::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void dialogFilterDefault::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void dialogFilterDefault::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dialogFilterDefault");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t dialogFilterSuggested::ID;
+
+object_ptr<dialogFilterSuggested> dialogFilterSuggested::fetch(TlBufferParser &p) {
+ return make_tl_object<dialogFilterSuggested>(p);
+}
+
+dialogFilterSuggested::dialogFilterSuggested(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : filter_(TlFetchObject<DialogFilter>::parse(p))
+ , description_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void dialogFilterSuggested::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dialogFilterSuggested");
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("description", description_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<DialogPeer> DialogPeer::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case dialogPeer::ID:
+ return dialogPeer::fetch(p);
+ case dialogPeerFolder::ID:
+ return dialogPeerFolder::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t dialogPeer::ID;
+
+object_ptr<DialogPeer> dialogPeer::fetch(TlBufferParser &p) {
+ return make_tl_object<dialogPeer>(p);
+}
+
+dialogPeer::dialogPeer(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+#undef FAIL
+{}
+
+void dialogPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dialogPeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t dialogPeerFolder::ID;
+
+object_ptr<DialogPeer> dialogPeerFolder::fetch(TlBufferParser &p) {
+ return make_tl_object<dialogPeerFolder>(p);
+}
+
+dialogPeerFolder::dialogPeerFolder(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : folder_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void dialogPeerFolder::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "dialogPeerFolder");
+ s.store_field("folder_id", folder_id_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<Document> Document::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case documentEmpty::ID:
+ return documentEmpty::fetch(p);
+ case document::ID:
+ return document::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t documentEmpty::ID;
+
+object_ptr<Document> documentEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<documentEmpty>(p);
+}
+
+documentEmpty::documentEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void documentEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentEmpty");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+document::document()
+ : flags_()
+ , id_()
+ , access_hash_()
+ , file_reference_()
+ , date_()
+ , mime_type_()
+ , size_()
+ , thumbs_()
+ , video_thumbs_()
+ , dc_id_()
+ , attributes_()
+{}
+
+document::document(int32 flags_, int64 id_, int64 access_hash_, bytes &&file_reference_, int32 date_, string const &mime_type_, int64 size_, array<object_ptr<PhotoSize>> &&thumbs_, array<object_ptr<videoSize>> &&video_thumbs_, int32 dc_id_, array<object_ptr<DocumentAttribute>> &&attributes_)
+ : flags_(flags_)
+ , id_(id_)
+ , access_hash_(access_hash_)
+ , file_reference_(std::move(file_reference_))
+ , date_(date_)
+ , mime_type_(mime_type_)
+ , size_(size_)
+ , thumbs_(std::move(thumbs_))
+ , video_thumbs_(std::move(video_thumbs_))
+ , dc_id_(dc_id_)
+ , attributes_(std::move(attributes_))
+{}
+
+const std::int32_t document::ID;
+
+object_ptr<Document> document::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<document> res = make_tl_object<document>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->file_reference_ = TlFetchBytes<bytes>::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->mime_type_ = TlFetchString<string>::parse(p);
+ res->size_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->thumbs_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PhotoSize>>, 481674261>::parse(p); }
+ if (var0 & 2) { res->video_thumbs_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<videoSize>, -567037804>>, 481674261>::parse(p); }
+ res->dc_id_ = TlFetchInt::parse(p);
+ res->attributes_ = TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void document::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "document");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_bytes_field("file_reference", file_reference_);
+ s.store_field("date", date_);
+ s.store_field("mime_type", mime_type_);
+ s.store_field("size", size_);
+ if (var0 & 1) { { s.store_vector_begin("thumbs", thumbs_.size()); for (const auto &_value : thumbs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 2) { { s.store_vector_begin("video_thumbs", video_thumbs_.size()); for (const auto &_value : video_thumbs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_field("dc_id", dc_id_);
+ { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<DocumentAttribute> DocumentAttribute::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case documentAttributeImageSize::ID:
+ return documentAttributeImageSize::fetch(p);
+ case documentAttributeAnimated::ID:
+ return documentAttributeAnimated::fetch(p);
+ case documentAttributeSticker::ID:
+ return documentAttributeSticker::fetch(p);
+ case documentAttributeVideo::ID:
+ return documentAttributeVideo::fetch(p);
+ case documentAttributeAudio::ID:
+ return documentAttributeAudio::fetch(p);
+ case documentAttributeFilename::ID:
+ return documentAttributeFilename::fetch(p);
+ case documentAttributeHasStickers::ID:
+ return documentAttributeHasStickers::fetch(p);
+ case documentAttributeCustomEmoji::ID:
+ return documentAttributeCustomEmoji::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+documentAttributeImageSize::documentAttributeImageSize(int32 w_, int32 h_)
+ : w_(w_)
+ , h_(h_)
+{}
+
+const std::int32_t documentAttributeImageSize::ID;
+
+object_ptr<DocumentAttribute> documentAttributeImageSize::fetch(TlBufferParser &p) {
+ return make_tl_object<documentAttributeImageSize>(p);
+}
+
+documentAttributeImageSize::documentAttributeImageSize(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void documentAttributeImageSize::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+}
+
+void documentAttributeImageSize::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+}
+
+void documentAttributeImageSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeImageSize");
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t documentAttributeAnimated::ID;
+
+object_ptr<DocumentAttribute> documentAttributeAnimated::fetch(TlBufferParser &p) {
+ return make_tl_object<documentAttributeAnimated>();
+}
+
+void documentAttributeAnimated::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void documentAttributeAnimated::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void documentAttributeAnimated::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeAnimated");
+ s.store_class_end();
+ }
+}
+
+documentAttributeSticker::documentAttributeSticker()
+ : flags_()
+ , mask_()
+ , alt_()
+ , stickerset_()
+ , mask_coords_()
+{}
+
+documentAttributeSticker::documentAttributeSticker(int32 flags_, bool mask_, string const &alt_, object_ptr<InputStickerSet> &&stickerset_, object_ptr<maskCoords> &&mask_coords_)
+ : flags_(flags_)
+ , mask_(mask_)
+ , alt_(alt_)
+ , stickerset_(std::move(stickerset_))
+ , mask_coords_(std::move(mask_coords_))
+{}
+
+const std::int32_t documentAttributeSticker::ID;
+
+object_ptr<DocumentAttribute> documentAttributeSticker::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<documentAttributeSticker> res = make_tl_object<documentAttributeSticker>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->mask_ = TlFetchTrue::parse(p); }
+ res->alt_ = TlFetchString<string>::parse(p);
+ res->stickerset_ = TlFetchObject<InputStickerSet>::parse(p);
+ if (var0 & 1) { res->mask_coords_ = TlFetchBoxed<TlFetchObject<maskCoords>, -1361650766>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void documentAttributeSticker::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(alt_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1361650766>::store(mask_coords_, s); }
+}
+
+void documentAttributeSticker::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(alt_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1361650766>::store(mask_coords_, s); }
+}
+
+void documentAttributeSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeSticker");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("alt", alt_);
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ if (var0 & 1) { s.store_object_field("mask_coords", static_cast<const BaseObject *>(mask_coords_.get())); }
+ s.store_class_end();
+ }
+}
+
+documentAttributeVideo::documentAttributeVideo()
+ : flags_()
+ , round_message_()
+ , supports_streaming_()
+ , duration_()
+ , w_()
+ , h_()
+{}
+
+documentAttributeVideo::documentAttributeVideo(int32 flags_, bool round_message_, bool supports_streaming_, int32 duration_, int32 w_, int32 h_)
+ : flags_(flags_)
+ , round_message_(round_message_)
+ , supports_streaming_(supports_streaming_)
+ , duration_(duration_)
+ , w_(w_)
+ , h_(h_)
+{}
+
+const std::int32_t documentAttributeVideo::ID;
+
+object_ptr<DocumentAttribute> documentAttributeVideo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<documentAttributeVideo> res = make_tl_object<documentAttributeVideo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->round_message_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->supports_streaming_ = TlFetchTrue::parse(p); }
+ res->duration_ = TlFetchInt::parse(p);
+ res->w_ = TlFetchInt::parse(p);
+ res->h_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void documentAttributeVideo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+}
+
+void documentAttributeVideo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+}
+
+void documentAttributeVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeVideo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("duration", duration_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_class_end();
+ }
+}
+
+documentAttributeAudio::documentAttributeAudio()
+ : flags_()
+ , voice_()
+ , duration_()
+ , title_()
+ , performer_()
+ , waveform_()
+{}
+
+documentAttributeAudio::documentAttributeAudio(int32 flags_, bool voice_, int32 duration_, string const &title_, string const &performer_, bytes &&waveform_)
+ : flags_(flags_)
+ , voice_(voice_)
+ , duration_(duration_)
+ , title_(title_)
+ , performer_(performer_)
+ , waveform_(std::move(waveform_))
+{}
+
+const std::int32_t documentAttributeAudio::ID;
+
+object_ptr<DocumentAttribute> documentAttributeAudio::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<documentAttributeAudio> res = make_tl_object<documentAttributeAudio>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1024) { res->voice_ = TlFetchTrue::parse(p); }
+ res->duration_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->title_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2) { res->performer_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->waveform_ = TlFetchBytes<bytes>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void documentAttributeAudio::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(duration_, s);
+ if (var0 & 1) { TlStoreString::store(title_, s); }
+ if (var0 & 2) { TlStoreString::store(performer_, s); }
+ if (var0 & 4) { TlStoreString::store(waveform_, s); }
+}
+
+void documentAttributeAudio::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(duration_, s);
+ if (var0 & 1) { TlStoreString::store(title_, s); }
+ if (var0 & 2) { TlStoreString::store(performer_, s); }
+ if (var0 & 4) { TlStoreString::store(waveform_, s); }
+}
+
+void documentAttributeAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeAudio");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("duration", duration_);
+ if (var0 & 1) { s.store_field("title", title_); }
+ if (var0 & 2) { s.store_field("performer", performer_); }
+ if (var0 & 4) { s.store_bytes_field("waveform", waveform_); }
+ s.store_class_end();
+ }
+}
+
+documentAttributeFilename::documentAttributeFilename(string const &file_name_)
+ : file_name_(file_name_)
+{}
+
+const std::int32_t documentAttributeFilename::ID;
+
+object_ptr<DocumentAttribute> documentAttributeFilename::fetch(TlBufferParser &p) {
+ return make_tl_object<documentAttributeFilename>(p);
+}
+
+documentAttributeFilename::documentAttributeFilename(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : file_name_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void documentAttributeFilename::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(file_name_, s);
+}
+
+void documentAttributeFilename::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(file_name_, s);
+}
+
+void documentAttributeFilename::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeFilename");
+ s.store_field("file_name", file_name_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t documentAttributeHasStickers::ID;
+
+object_ptr<DocumentAttribute> documentAttributeHasStickers::fetch(TlBufferParser &p) {
+ return make_tl_object<documentAttributeHasStickers>();
+}
+
+void documentAttributeHasStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void documentAttributeHasStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void documentAttributeHasStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeHasStickers");
+ s.store_class_end();
+ }
+}
+
+documentAttributeCustomEmoji::documentAttributeCustomEmoji()
+ : flags_()
+ , free_()
+ , alt_()
+ , stickerset_()
+{}
+
+documentAttributeCustomEmoji::documentAttributeCustomEmoji(int32 flags_, bool free_, string const &alt_, object_ptr<InputStickerSet> &&stickerset_)
+ : flags_(flags_)
+ , free_(free_)
+ , alt_(alt_)
+ , stickerset_(std::move(stickerset_))
+{}
+
+const std::int32_t documentAttributeCustomEmoji::ID;
+
+object_ptr<DocumentAttribute> documentAttributeCustomEmoji::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<documentAttributeCustomEmoji> res = make_tl_object<documentAttributeCustomEmoji>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->free_ = TlFetchTrue::parse(p); }
+ res->alt_ = TlFetchString<string>::parse(p);
+ res->stickerset_ = TlFetchObject<InputStickerSet>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void documentAttributeCustomEmoji::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(alt_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+}
+
+void documentAttributeCustomEmoji::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(alt_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+}
+
+void documentAttributeCustomEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "documentAttributeCustomEmoji");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("alt", alt_);
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<DraftMessage> DraftMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case draftMessageEmpty::ID:
+ return draftMessageEmpty::fetch(p);
+ case draftMessage::ID:
+ return draftMessage::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+draftMessageEmpty::draftMessageEmpty()
+ : flags_()
+ , date_()
+{}
+
+const std::int32_t draftMessageEmpty::ID;
+
+object_ptr<DraftMessage> draftMessageEmpty::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<draftMessageEmpty> res = make_tl_object<draftMessageEmpty>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->date_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void draftMessageEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "draftMessageEmpty");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("date", date_); }
+ s.store_class_end();
+ }
+}
+
+draftMessage::draftMessage()
+ : flags_()
+ , no_webpage_()
+ , reply_to_msg_id_()
+ , message_()
+ , entities_()
+ , date_()
+{}
+
+const std::int32_t draftMessage::ID;
+
+object_ptr<DraftMessage> draftMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<draftMessage> res = make_tl_object<draftMessage>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->no_webpage_ = TlFetchTrue::parse(p); }
+ if (var0 & 1) { res->reply_to_msg_id_ = TlFetchInt::parse(p); }
+ res->message_ = TlFetchString<string>::parse(p);
+ if (var0 & 8) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ res->date_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void draftMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "draftMessage");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); }
+ s.store_field("message", message_);
+ if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+emailVerificationCode::emailVerificationCode(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t emailVerificationCode::ID;
+
+void emailVerificationCode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(code_, s);
+}
+
+void emailVerificationCode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(code_, s);
+}
+
+void emailVerificationCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emailVerificationCode");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+emailVerificationGoogle::emailVerificationGoogle(string const &token_)
+ : token_(token_)
+{}
+
+const std::int32_t emailVerificationGoogle::ID;
+
+void emailVerificationGoogle::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(token_, s);
+}
+
+void emailVerificationGoogle::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(token_, s);
+}
+
+void emailVerificationGoogle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emailVerificationGoogle");
+ s.store_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+emailVerificationApple::emailVerificationApple(string const &token_)
+ : token_(token_)
+{}
+
+const std::int32_t emailVerificationApple::ID;
+
+void emailVerificationApple::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(token_, s);
+}
+
+void emailVerificationApple::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(token_, s);
+}
+
+void emailVerificationApple::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emailVerificationApple");
+ s.store_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+emailVerifyPurposeLoginSetup::emailVerifyPurposeLoginSetup(string const &phone_number_, string const &phone_code_hash_)
+ : phone_number_(phone_number_)
+ , phone_code_hash_(phone_code_hash_)
+{}
+
+const std::int32_t emailVerifyPurposeLoginSetup::ID;
+
+void emailVerifyPurposeLoginSetup::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+}
+
+void emailVerifyPurposeLoginSetup::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+}
+
+void emailVerifyPurposeLoginSetup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emailVerifyPurposeLoginSetup");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("phone_code_hash", phone_code_hash_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t emailVerifyPurposeLoginChange::ID;
+
+void emailVerifyPurposeLoginChange::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void emailVerifyPurposeLoginChange::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void emailVerifyPurposeLoginChange::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emailVerifyPurposeLoginChange");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t emailVerifyPurposePassport::ID;
+
+void emailVerifyPurposePassport::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void emailVerifyPurposePassport::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void emailVerifyPurposePassport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emailVerifyPurposePassport");
+ s.store_class_end();
+ }
+}
+
+object_ptr<EmojiKeyword> EmojiKeyword::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case emojiKeyword::ID:
+ return emojiKeyword::fetch(p);
+ case emojiKeywordDeleted::ID:
+ return emojiKeywordDeleted::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t emojiKeyword::ID;
+
+object_ptr<EmojiKeyword> emojiKeyword::fetch(TlBufferParser &p) {
+ return make_tl_object<emojiKeyword>(p);
+}
+
+emojiKeyword::emojiKeyword(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : keyword_(TlFetchString<string>::parse(p))
+ , emoticons_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void emojiKeyword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiKeyword");
+ s.store_field("keyword", keyword_);
+ { s.store_vector_begin("emoticons", emoticons_.size()); for (const auto &_value : emoticons_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t emojiKeywordDeleted::ID;
+
+object_ptr<EmojiKeyword> emojiKeywordDeleted::fetch(TlBufferParser &p) {
+ return make_tl_object<emojiKeywordDeleted>(p);
+}
+
+emojiKeywordDeleted::emojiKeywordDeleted(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : keyword_(TlFetchString<string>::parse(p))
+ , emoticons_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void emojiKeywordDeleted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiKeywordDeleted");
+ s.store_field("keyword", keyword_);
+ { s.store_vector_begin("emoticons", emoticons_.size()); for (const auto &_value : emoticons_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t emojiKeywordsDifference::ID;
+
+object_ptr<emojiKeywordsDifference> emojiKeywordsDifference::fetch(TlBufferParser &p) {
+ return make_tl_object<emojiKeywordsDifference>(p);
+}
+
+emojiKeywordsDifference::emojiKeywordsDifference(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : lang_code_(TlFetchString<string>::parse(p))
+ , from_version_(TlFetchInt::parse(p))
+ , version_(TlFetchInt::parse(p))
+ , keywords_(TlFetchBoxed<TlFetchVector<TlFetchObject<EmojiKeyword>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void emojiKeywordsDifference::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiKeywordsDifference");
+ s.store_field("lang_code", lang_code_);
+ s.store_field("from_version", from_version_);
+ s.store_field("version", version_);
+ { s.store_vector_begin("keywords", keywords_.size()); for (const auto &_value : keywords_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t emojiLanguage::ID;
+
+object_ptr<emojiLanguage> emojiLanguage::fetch(TlBufferParser &p) {
+ return make_tl_object<emojiLanguage>(p);
+}
+
+emojiLanguage::emojiLanguage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : lang_code_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void emojiLanguage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiLanguage");
+ s.store_field("lang_code", lang_code_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<EmojiStatus> EmojiStatus::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case emojiStatusEmpty::ID:
+ return emojiStatusEmpty::fetch(p);
+ case emojiStatus::ID:
+ return emojiStatus::fetch(p);
+ case emojiStatusUntil::ID:
+ return emojiStatusUntil::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t emojiStatusEmpty::ID;
+
+object_ptr<EmojiStatus> emojiStatusEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<emojiStatusEmpty>();
+}
+
+void emojiStatusEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void emojiStatusEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void emojiStatusEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiStatusEmpty");
+ s.store_class_end();
+ }
+}
+
+emojiStatus::emojiStatus(int64 document_id_)
+ : document_id_(document_id_)
+{}
+
+const std::int32_t emojiStatus::ID;
+
+object_ptr<EmojiStatus> emojiStatus::fetch(TlBufferParser &p) {
+ return make_tl_object<emojiStatus>(p);
+}
+
+emojiStatus::emojiStatus(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : document_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void emojiStatus::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(document_id_, s);
+}
+
+void emojiStatus::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(document_id_, s);
+}
+
+void emojiStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiStatus");
+ s.store_field("document_id", document_id_);
+ s.store_class_end();
+ }
+}
+
+emojiStatusUntil::emojiStatusUntil(int64 document_id_, int32 until_)
+ : document_id_(document_id_)
+ , until_(until_)
+{}
+
+const std::int32_t emojiStatusUntil::ID;
+
+object_ptr<EmojiStatus> emojiStatusUntil::fetch(TlBufferParser &p) {
+ return make_tl_object<emojiStatusUntil>(p);
+}
+
+emojiStatusUntil::emojiStatusUntil(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : document_id_(TlFetchLong::parse(p))
+ , until_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void emojiStatusUntil::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(document_id_, s);
+ TlStoreBinary::store(until_, s);
+}
+
+void emojiStatusUntil::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(document_id_, s);
+ TlStoreBinary::store(until_, s);
+}
+
+void emojiStatusUntil::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiStatusUntil");
+ s.store_field("document_id", document_id_);
+ s.store_field("until", until_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t emojiURL::ID;
+
+object_ptr<emojiURL> emojiURL::fetch(TlBufferParser &p) {
+ return make_tl_object<emojiURL>(p);
+}
+
+emojiURL::emojiURL(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void emojiURL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "emojiURL");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<EncryptedChat> EncryptedChat::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case encryptedChatEmpty::ID:
+ return encryptedChatEmpty::fetch(p);
+ case encryptedChatWaiting::ID:
+ return encryptedChatWaiting::fetch(p);
+ case encryptedChatRequested::ID:
+ return encryptedChatRequested::fetch(p);
+ case encryptedChat::ID:
+ return encryptedChat::fetch(p);
+ case encryptedChatDiscarded::ID:
+ return encryptedChatDiscarded::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t encryptedChatEmpty::ID;
+
+object_ptr<EncryptedChat> encryptedChatEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<encryptedChatEmpty>(p);
+}
+
+encryptedChatEmpty::encryptedChatEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void encryptedChatEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedChatEmpty");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+encryptedChatWaiting::encryptedChatWaiting(int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+ , date_(date_)
+ , admin_id_(admin_id_)
+ , participant_id_(participant_id_)
+{}
+
+const std::int32_t encryptedChatWaiting::ID;
+
+object_ptr<EncryptedChat> encryptedChatWaiting::fetch(TlBufferParser &p) {
+ return make_tl_object<encryptedChatWaiting>(p);
+}
+
+encryptedChatWaiting::encryptedChatWaiting(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchInt::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , admin_id_(TlFetchLong::parse(p))
+ , participant_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void encryptedChatWaiting::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedChatWaiting");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("date", date_);
+ s.store_field("admin_id", admin_id_);
+ s.store_field("participant_id", participant_id_);
+ s.store_class_end();
+ }
+}
+
+encryptedChatRequested::encryptedChatRequested()
+ : flags_()
+ , folder_id_()
+ , id_()
+ , access_hash_()
+ , date_()
+ , admin_id_()
+ , participant_id_()
+ , g_a_()
+{}
+
+encryptedChatRequested::encryptedChatRequested(int32 flags_, int32 folder_id_, int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_, bytes &&g_a_)
+ : flags_(flags_)
+ , folder_id_(folder_id_)
+ , id_(id_)
+ , access_hash_(access_hash_)
+ , date_(date_)
+ , admin_id_(admin_id_)
+ , participant_id_(participant_id_)
+ , g_a_(std::move(g_a_))
+{}
+
+const std::int32_t encryptedChatRequested::ID;
+
+object_ptr<EncryptedChat> encryptedChatRequested::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<encryptedChatRequested> res = make_tl_object<encryptedChatRequested>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->folder_id_ = TlFetchInt::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->admin_id_ = TlFetchLong::parse(p);
+ res->participant_id_ = TlFetchLong::parse(p);
+ res->g_a_ = TlFetchBytes<bytes>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void encryptedChatRequested::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedChatRequested");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("folder_id", folder_id_); }
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("date", date_);
+ s.store_field("admin_id", admin_id_);
+ s.store_field("participant_id", participant_id_);
+ s.store_bytes_field("g_a", g_a_);
+ s.store_class_end();
+ }
+}
+
+encryptedChat::encryptedChat(int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_, bytes &&g_a_or_b_, int64 key_fingerprint_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+ , date_(date_)
+ , admin_id_(admin_id_)
+ , participant_id_(participant_id_)
+ , g_a_or_b_(std::move(g_a_or_b_))
+ , key_fingerprint_(key_fingerprint_)
+{}
+
+const std::int32_t encryptedChat::ID;
+
+object_ptr<EncryptedChat> encryptedChat::fetch(TlBufferParser &p) {
+ return make_tl_object<encryptedChat>(p);
+}
+
+encryptedChat::encryptedChat(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchInt::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , admin_id_(TlFetchLong::parse(p))
+ , participant_id_(TlFetchLong::parse(p))
+ , g_a_or_b_(TlFetchBytes<bytes>::parse(p))
+ , key_fingerprint_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void encryptedChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedChat");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("date", date_);
+ s.store_field("admin_id", admin_id_);
+ s.store_field("participant_id", participant_id_);
+ s.store_bytes_field("g_a_or_b", g_a_or_b_);
+ s.store_field("key_fingerprint", key_fingerprint_);
+ s.store_class_end();
+ }
+}
+
+encryptedChatDiscarded::encryptedChatDiscarded()
+ : flags_()
+ , history_deleted_()
+ , id_()
+{}
+
+const std::int32_t encryptedChatDiscarded::ID;
+
+object_ptr<EncryptedChat> encryptedChatDiscarded::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<encryptedChatDiscarded> res = make_tl_object<encryptedChatDiscarded>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->history_deleted_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void encryptedChatDiscarded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedChatDiscarded");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<EncryptedFile> EncryptedFile::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case encryptedFileEmpty::ID:
+ return encryptedFileEmpty::fetch(p);
+ case encryptedFile::ID:
+ return encryptedFile::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t encryptedFileEmpty::ID;
+
+object_ptr<EncryptedFile> encryptedFileEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<encryptedFileEmpty>();
+}
+
+void encryptedFileEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedFileEmpty");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t encryptedFile::ID;
+
+object_ptr<EncryptedFile> encryptedFile::fetch(TlBufferParser &p) {
+ return make_tl_object<encryptedFile>(p);
+}
+
+encryptedFile::encryptedFile(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+ , size_(TlFetchLong::parse(p))
+ , dc_id_(TlFetchInt::parse(p))
+ , key_fingerprint_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void encryptedFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedFile");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("size", size_);
+ s.store_field("dc_id", dc_id_);
+ s.store_field("key_fingerprint", key_fingerprint_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<EncryptedMessage> EncryptedMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case encryptedMessage::ID:
+ return encryptedMessage::fetch(p);
+ case encryptedMessageService::ID:
+ return encryptedMessageService::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t encryptedMessage::ID;
+
+object_ptr<EncryptedMessage> encryptedMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<encryptedMessage>(p);
+}
+
+encryptedMessage::encryptedMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_id_(TlFetchLong::parse(p))
+ , chat_id_(TlFetchInt::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , bytes_(TlFetchBytes<bytes>::parse(p))
+ , file_(TlFetchObject<EncryptedFile>::parse(p))
+#undef FAIL
+{}
+
+void encryptedMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedMessage");
+ s.store_field("random_id", random_id_);
+ s.store_field("chat_id", chat_id_);
+ s.store_field("date", date_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t encryptedMessageService::ID;
+
+object_ptr<EncryptedMessage> encryptedMessageService::fetch(TlBufferParser &p) {
+ return make_tl_object<encryptedMessageService>(p);
+}
+
+encryptedMessageService::encryptedMessageService(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_id_(TlFetchLong::parse(p))
+ , chat_id_(TlFetchInt::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , bytes_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void encryptedMessageService::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "encryptedMessageService");
+ s.store_field("random_id", random_id_);
+ s.store_field("chat_id", chat_id_);
+ s.store_field("date", date_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t error::ID;
+
+object_ptr<error> error::fetch(TlBufferParser &p) {
+ return make_tl_object<error>(p);
+}
+
+error::error(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : code_(TlFetchInt::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void error::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "error");
+ s.store_field("code", code_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<ExportedChatInvite> ExportedChatInvite::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case chatInviteExported::ID:
+ return chatInviteExported::fetch(p);
+ case chatInvitePublicJoinRequests::ID:
+ return chatInvitePublicJoinRequests::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+chatInviteExported::chatInviteExported()
+ : flags_()
+ , revoked_()
+ , permanent_()
+ , request_needed_()
+ , link_()
+ , admin_id_()
+ , date_()
+ , start_date_()
+ , expire_date_()
+ , usage_limit_()
+ , usage_()
+ , requested_()
+ , title_()
+{}
+
+const std::int32_t chatInviteExported::ID;
+
+object_ptr<ExportedChatInvite> chatInviteExported::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<chatInviteExported> res = make_tl_object<chatInviteExported>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->revoked_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->permanent_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->request_needed_ = TlFetchTrue::parse(p); }
+ res->link_ = TlFetchString<string>::parse(p);
+ res->admin_id_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ if (var0 & 16) { res->start_date_ = TlFetchInt::parse(p); }
+ if (var0 & 2) { res->expire_date_ = TlFetchInt::parse(p); }
+ if (var0 & 4) { res->usage_limit_ = TlFetchInt::parse(p); }
+ if (var0 & 8) { res->usage_ = TlFetchInt::parse(p); }
+ if (var0 & 128) { res->requested_ = TlFetchInt::parse(p); }
+ if (var0 & 256) { res->title_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void chatInviteExported::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInviteExported");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("link", link_);
+ s.store_field("admin_id", admin_id_);
+ s.store_field("date", date_);
+ if (var0 & 16) { s.store_field("start_date", start_date_); }
+ if (var0 & 2) { s.store_field("expire_date", expire_date_); }
+ if (var0 & 4) { s.store_field("usage_limit", usage_limit_); }
+ if (var0 & 8) { s.store_field("usage", usage_); }
+ if (var0 & 128) { s.store_field("requested", requested_); }
+ if (var0 & 256) { s.store_field("title", title_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t chatInvitePublicJoinRequests::ID;
+
+object_ptr<ExportedChatInvite> chatInvitePublicJoinRequests::fetch(TlBufferParser &p) {
+ return make_tl_object<chatInvitePublicJoinRequests>();
+}
+
+void chatInvitePublicJoinRequests::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "chatInvitePublicJoinRequests");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t exportedMessageLink::ID;
+
+object_ptr<exportedMessageLink> exportedMessageLink::fetch(TlBufferParser &p) {
+ return make_tl_object<exportedMessageLink>(p);
+}
+
+exportedMessageLink::exportedMessageLink(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : link_(TlFetchString<string>::parse(p))
+ , html_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void exportedMessageLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "exportedMessageLink");
+ s.store_field("link", link_);
+ s.store_field("html", html_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t fileHash::ID;
+
+object_ptr<fileHash> fileHash::fetch(TlBufferParser &p) {
+ return make_tl_object<fileHash>(p);
+}
+
+fileHash::fileHash(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchLong::parse(p))
+ , limit_(TlFetchInt::parse(p))
+ , hash_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void fileHash::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "fileHash");
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_bytes_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+folder::folder()
+ : flags_()
+ , autofill_new_broadcasts_()
+ , autofill_public_groups_()
+ , autofill_new_correspondents_()
+ , id_()
+ , title_()
+ , photo_()
+{}
+
+const std::int32_t folder::ID;
+
+object_ptr<folder> folder::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<folder> res = make_tl_object<folder>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->autofill_new_broadcasts_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->autofill_public_groups_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->autofill_new_correspondents_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ if (var0 & 8) { res->photo_ = TlFetchObject<ChatPhoto>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void folder::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "folder");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ if (var0 & 8) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t folderPeer::ID;
+
+object_ptr<folderPeer> folderPeer::fetch(TlBufferParser &p) {
+ return make_tl_object<folderPeer>(p);
+}
+
+folderPeer::folderPeer(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , folder_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void folderPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "folderPeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("folder_id", folder_id_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<ForumTopic> ForumTopic::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case forumTopicDeleted::ID:
+ return forumTopicDeleted::fetch(p);
+ case forumTopic::ID:
+ return forumTopic::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t forumTopicDeleted::ID;
+
+object_ptr<ForumTopic> forumTopicDeleted::fetch(TlBufferParser &p) {
+ return make_tl_object<forumTopicDeleted>(p);
+}
+
+forumTopicDeleted::forumTopicDeleted(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void forumTopicDeleted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "forumTopicDeleted");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+forumTopic::forumTopic()
+ : flags_()
+ , my_()
+ , closed_()
+ , pinned_()
+ , id_()
+ , date_()
+ , title_()
+ , icon_color_()
+ , icon_emoji_id_()
+ , top_message_()
+ , read_inbox_max_id_()
+ , read_outbox_max_id_()
+ , unread_count_()
+ , unread_mentions_count_()
+ , unread_reactions_count_()
+ , from_id_()
+ , notify_settings_()
+ , draft_()
+{}
+
+const std::int32_t forumTopic::ID;
+
+object_ptr<ForumTopic> forumTopic::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<forumTopic> res = make_tl_object<forumTopic>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->my_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->closed_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->pinned_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ res->icon_color_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->icon_emoji_id_ = TlFetchLong::parse(p); }
+ res->top_message_ = TlFetchInt::parse(p);
+ res->read_inbox_max_id_ = TlFetchInt::parse(p);
+ res->read_outbox_max_id_ = TlFetchInt::parse(p);
+ res->unread_count_ = TlFetchInt::parse(p);
+ res->unread_mentions_count_ = TlFetchInt::parse(p);
+ res->unread_reactions_count_ = TlFetchInt::parse(p);
+ res->from_id_ = TlFetchObject<Peer>::parse(p);
+ res->notify_settings_ = TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p);
+ if (var0 & 16) { res->draft_ = TlFetchObject<DraftMessage>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void forumTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "forumTopic");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("date", date_);
+ s.store_field("title", title_);
+ s.store_field("icon_color", icon_color_);
+ if (var0 & 1) { s.store_field("icon_emoji_id", icon_emoji_id_); }
+ s.store_field("top_message", top_message_);
+ s.store_field("read_inbox_max_id", read_inbox_max_id_);
+ s.store_field("read_outbox_max_id", read_outbox_max_id_);
+ s.store_field("unread_count", unread_count_);
+ s.store_field("unread_mentions_count", unread_mentions_count_);
+ s.store_field("unread_reactions_count", unread_reactions_count_);
+ s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get()));
+ s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get()));
+ if (var0 & 16) { s.store_object_field("draft", static_cast<const BaseObject *>(draft_.get())); }
+ s.store_class_end();
+ }
+}
+
+game::game()
+ : flags_()
+ , id_()
+ , access_hash_()
+ , short_name_()
+ , title_()
+ , description_()
+ , photo_()
+ , document_()
+{}
+
+const std::int32_t game::ID;
+
+object_ptr<game> game::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<game> res = make_tl_object<game>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->short_name_ = TlFetchString<string>::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ res->description_ = TlFetchString<string>::parse(p);
+ res->photo_ = TlFetchObject<Photo>::parse(p);
+ if (var0 & 1) { res->document_ = TlFetchObject<Document>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void game::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "game");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("short_name", short_name_);
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ if (var0 & 1) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<GeoPoint> GeoPoint::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case geoPointEmpty::ID:
+ return geoPointEmpty::fetch(p);
+ case geoPoint::ID:
+ return geoPoint::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t geoPointEmpty::ID;
+
+object_ptr<GeoPoint> geoPointEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<geoPointEmpty>();
+}
+
+void geoPointEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "geoPointEmpty");
+ s.store_class_end();
+ }
+}
+
+geoPoint::geoPoint()
+ : flags_()
+ , long_()
+ , lat_()
+ , access_hash_()
+ , accuracy_radius_()
+{}
+
+const std::int32_t geoPoint::ID;
+
+object_ptr<GeoPoint> geoPoint::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<geoPoint> res = make_tl_object<geoPoint>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->long_ = TlFetchDouble::parse(p);
+ res->lat_ = TlFetchDouble::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->accuracy_radius_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void geoPoint::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "geoPoint");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("long", long_);
+ s.store_field("lat", lat_);
+ s.store_field("access_hash", access_hash_);
+ if (var0 & 1) { s.store_field("accuracy_radius", accuracy_radius_); }
+ s.store_class_end();
+ }
+}
+
+globalPrivacySettings::globalPrivacySettings()
+ : flags_()
+ , archive_and_mute_new_noncontact_peers_()
+{}
+
+globalPrivacySettings::globalPrivacySettings(int32 flags_, bool archive_and_mute_new_noncontact_peers_)
+ : flags_(flags_)
+ , archive_and_mute_new_noncontact_peers_(archive_and_mute_new_noncontact_peers_)
+{}
+
+const std::int32_t globalPrivacySettings::ID;
+
+object_ptr<globalPrivacySettings> globalPrivacySettings::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<globalPrivacySettings> res = make_tl_object<globalPrivacySettings>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->archive_and_mute_new_noncontact_peers_ = TlFetchBool::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void globalPrivacySettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBool::store(archive_and_mute_new_noncontact_peers_, s); }
+}
+
+void globalPrivacySettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBool::store(archive_and_mute_new_noncontact_peers_, s); }
+}
+
+void globalPrivacySettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "globalPrivacySettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("archive_and_mute_new_noncontact_peers", archive_and_mute_new_noncontact_peers_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<GroupCall> GroupCall::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case groupCallDiscarded::ID:
+ return groupCallDiscarded::fetch(p);
+ case groupCall::ID:
+ return groupCall::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t groupCallDiscarded::ID;
+
+object_ptr<GroupCall> groupCallDiscarded::fetch(TlBufferParser &p) {
+ return make_tl_object<groupCallDiscarded>(p);
+}
+
+groupCallDiscarded::groupCallDiscarded(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+ , duration_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void groupCallDiscarded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallDiscarded");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("duration", duration_);
+ s.store_class_end();
+ }
+}
+
+groupCall::groupCall()
+ : flags_()
+ , join_muted_()
+ , can_change_join_muted_()
+ , join_date_asc_()
+ , schedule_start_subscribed_()
+ , can_start_video_()
+ , record_video_active_()
+ , rtmp_stream_()
+ , listeners_hidden_()
+ , id_()
+ , access_hash_()
+ , participants_count_()
+ , title_()
+ , stream_dc_id_()
+ , record_start_date_()
+ , schedule_date_()
+ , unmuted_video_count_()
+ , unmuted_video_limit_()
+ , version_()
+{}
+
+const std::int32_t groupCall::ID;
+
+object_ptr<GroupCall> groupCall::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<groupCall> res = make_tl_object<groupCall>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->join_muted_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->can_change_join_muted_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->join_date_asc_ = TlFetchTrue::parse(p); }
+ if (var0 & 256) { res->schedule_start_subscribed_ = TlFetchTrue::parse(p); }
+ if (var0 & 512) { res->can_start_video_ = TlFetchTrue::parse(p); }
+ if (var0 & 2048) { res->record_video_active_ = TlFetchTrue::parse(p); }
+ if (var0 & 4096) { res->rtmp_stream_ = TlFetchTrue::parse(p); }
+ if (var0 & 8192) { res->listeners_hidden_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->participants_count_ = TlFetchInt::parse(p);
+ if (var0 & 8) { res->title_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->stream_dc_id_ = TlFetchInt::parse(p); }
+ if (var0 & 32) { res->record_start_date_ = TlFetchInt::parse(p); }
+ if (var0 & 128) { res->schedule_date_ = TlFetchInt::parse(p); }
+ if (var0 & 1024) { res->unmuted_video_count_ = TlFetchInt::parse(p); }
+ res->unmuted_video_limit_ = TlFetchInt::parse(p);
+ res->version_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void groupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCall");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("participants_count", participants_count_);
+ if (var0 & 8) { s.store_field("title", title_); }
+ if (var0 & 16) { s.store_field("stream_dc_id", stream_dc_id_); }
+ if (var0 & 32) { s.store_field("record_start_date", record_start_date_); }
+ if (var0 & 128) { s.store_field("schedule_date", schedule_date_); }
+ if (var0 & 1024) { s.store_field("unmuted_video_count", unmuted_video_count_); }
+ s.store_field("unmuted_video_limit", unmuted_video_limit_);
+ s.store_field("version", version_);
+ s.store_class_end();
+ }
+}
+
+groupCallParticipant::groupCallParticipant()
+ : flags_()
+ , muted_()
+ , left_()
+ , can_self_unmute_()
+ , just_joined_()
+ , versioned_()
+ , min_()
+ , muted_by_you_()
+ , volume_by_admin_()
+ , self_()
+ , video_joined_()
+ , peer_()
+ , date_()
+ , active_date_()
+ , source_()
+ , volume_()
+ , about_()
+ , raise_hand_rating_()
+ , video_()
+ , presentation_()
+{}
+
+const std::int32_t groupCallParticipant::ID;
+
+object_ptr<groupCallParticipant> groupCallParticipant::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<groupCallParticipant> res = make_tl_object<groupCallParticipant>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->muted_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->left_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->can_self_unmute_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->just_joined_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->versioned_ = TlFetchTrue::parse(p); }
+ if (var0 & 256) { res->min_ = TlFetchTrue::parse(p); }
+ if (var0 & 512) { res->muted_by_you_ = TlFetchTrue::parse(p); }
+ if (var0 & 1024) { res->volume_by_admin_ = TlFetchTrue::parse(p); }
+ if (var0 & 4096) { res->self_ = TlFetchTrue::parse(p); }
+ if (var0 & 32768) { res->video_joined_ = TlFetchTrue::parse(p); }
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ if (var0 & 8) { res->active_date_ = TlFetchInt::parse(p); }
+ res->source_ = TlFetchInt::parse(p);
+ if (var0 & 128) { res->volume_ = TlFetchInt::parse(p); }
+ if (var0 & 2048) { res->about_ = TlFetchString<string>::parse(p); }
+ if (var0 & 8192) { res->raise_hand_rating_ = TlFetchLong::parse(p); }
+ if (var0 & 64) { res->video_ = TlFetchBoxed<TlFetchObject<groupCallParticipantVideo>, 1735736008>::parse(p); }
+ if (var0 & 16384) { res->presentation_ = TlFetchBoxed<TlFetchObject<groupCallParticipantVideo>, 1735736008>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void groupCallParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallParticipant");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("date", date_);
+ if (var0 & 8) { s.store_field("active_date", active_date_); }
+ s.store_field("source", source_);
+ if (var0 & 128) { s.store_field("volume", volume_); }
+ if (var0 & 2048) { s.store_field("about", about_); }
+ if (var0 & 8192) { s.store_field("raise_hand_rating", raise_hand_rating_); }
+ if (var0 & 64) { s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); }
+ if (var0 & 16384) { s.store_object_field("presentation", static_cast<const BaseObject *>(presentation_.get())); }
+ s.store_class_end();
+ }
+}
+
+groupCallParticipantVideo::groupCallParticipantVideo()
+ : flags_()
+ , paused_()
+ , endpoint_()
+ , source_groups_()
+ , audio_source_()
+{}
+
+const std::int32_t groupCallParticipantVideo::ID;
+
+object_ptr<groupCallParticipantVideo> groupCallParticipantVideo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<groupCallParticipantVideo> res = make_tl_object<groupCallParticipantVideo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->paused_ = TlFetchTrue::parse(p); }
+ res->endpoint_ = TlFetchString<string>::parse(p);
+ res->source_groups_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<groupCallParticipantVideoSourceGroup>, -592373577>>, 481674261>::parse(p);
+ if (var0 & 2) { res->audio_source_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void groupCallParticipantVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallParticipantVideo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("endpoint", endpoint_);
+ { s.store_vector_begin("source_groups", source_groups_.size()); for (const auto &_value : source_groups_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 2) { s.store_field("audio_source", audio_source_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t groupCallParticipantVideoSourceGroup::ID;
+
+object_ptr<groupCallParticipantVideoSourceGroup> groupCallParticipantVideoSourceGroup::fetch(TlBufferParser &p) {
+ return make_tl_object<groupCallParticipantVideoSourceGroup>(p);
+}
+
+groupCallParticipantVideoSourceGroup::groupCallParticipantVideoSourceGroup(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : semantics_(TlFetchString<string>::parse(p))
+ , sources_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void groupCallParticipantVideoSourceGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallParticipantVideoSourceGroup");
+ s.store_field("semantics", semantics_);
+ { s.store_vector_begin("sources", sources_.size()); for (const auto &_value : sources_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t groupCallStreamChannel::ID;
+
+object_ptr<groupCallStreamChannel> groupCallStreamChannel::fetch(TlBufferParser &p) {
+ return make_tl_object<groupCallStreamChannel>(p);
+}
+
+groupCallStreamChannel::groupCallStreamChannel(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_(TlFetchInt::parse(p))
+ , scale_(TlFetchInt::parse(p))
+ , last_timestamp_ms_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void groupCallStreamChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "groupCallStreamChannel");
+ s.store_field("channel", channel_);
+ s.store_field("scale", scale_);
+ s.store_field("last_timestamp_ms", last_timestamp_ms_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t highScore::ID;
+
+object_ptr<highScore> highScore::fetch(TlBufferParser &p) {
+ return make_tl_object<highScore>(p);
+}
+
+highScore::highScore(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : pos_(TlFetchInt::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+ , score_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void highScore::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "highScore");
+ s.store_field("pos", pos_);
+ s.store_field("user_id", user_id_);
+ s.store_field("score", score_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t importedContact::ID;
+
+object_ptr<importedContact> importedContact::fetch(TlBufferParser &p) {
+ return make_tl_object<importedContact>(p);
+}
+
+importedContact::importedContact(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , client_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void importedContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "importedContact");
+ s.store_field("user_id", user_id_);
+ s.store_field("client_id", client_id_);
+ s.store_class_end();
+ }
+}
+
+inlineBotSwitchPM::inlineBotSwitchPM(string const &text_, string const &start_param_)
+ : text_(text_)
+ , start_param_(start_param_)
+{}
+
+const std::int32_t inlineBotSwitchPM::ID;
+
+object_ptr<inlineBotSwitchPM> inlineBotSwitchPM::fetch(TlBufferParser &p) {
+ return make_tl_object<inlineBotSwitchPM>(p);
+}
+
+inlineBotSwitchPM::inlineBotSwitchPM(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+ , start_param_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void inlineBotSwitchPM::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(start_param_, s);
+}
+
+void inlineBotSwitchPM::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(start_param_, s);
+}
+
+void inlineBotSwitchPM::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineBotSwitchPM");
+ s.store_field("text", text_);
+ s.store_field("start_param", start_param_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<InlineQueryPeerType> InlineQueryPeerType::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case inlineQueryPeerTypeSameBotPM::ID:
+ return inlineQueryPeerTypeSameBotPM::fetch(p);
+ case inlineQueryPeerTypePM::ID:
+ return inlineQueryPeerTypePM::fetch(p);
+ case inlineQueryPeerTypeChat::ID:
+ return inlineQueryPeerTypeChat::fetch(p);
+ case inlineQueryPeerTypeMegagroup::ID:
+ return inlineQueryPeerTypeMegagroup::fetch(p);
+ case inlineQueryPeerTypeBroadcast::ID:
+ return inlineQueryPeerTypeBroadcast::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t inlineQueryPeerTypeSameBotPM::ID;
+
+object_ptr<InlineQueryPeerType> inlineQueryPeerTypeSameBotPM::fetch(TlBufferParser &p) {
+ return make_tl_object<inlineQueryPeerTypeSameBotPM>();
+}
+
+void inlineQueryPeerTypeSameBotPM::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryPeerTypeSameBotPM");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inlineQueryPeerTypePM::ID;
+
+object_ptr<InlineQueryPeerType> inlineQueryPeerTypePM::fetch(TlBufferParser &p) {
+ return make_tl_object<inlineQueryPeerTypePM>();
+}
+
+void inlineQueryPeerTypePM::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryPeerTypePM");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inlineQueryPeerTypeChat::ID;
+
+object_ptr<InlineQueryPeerType> inlineQueryPeerTypeChat::fetch(TlBufferParser &p) {
+ return make_tl_object<inlineQueryPeerTypeChat>();
+}
+
+void inlineQueryPeerTypeChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryPeerTypeChat");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inlineQueryPeerTypeMegagroup::ID;
+
+object_ptr<InlineQueryPeerType> inlineQueryPeerTypeMegagroup::fetch(TlBufferParser &p) {
+ return make_tl_object<inlineQueryPeerTypeMegagroup>();
+}
+
+void inlineQueryPeerTypeMegagroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryPeerTypeMegagroup");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inlineQueryPeerTypeBroadcast::ID;
+
+object_ptr<InlineQueryPeerType> inlineQueryPeerTypeBroadcast::fetch(TlBufferParser &p) {
+ return make_tl_object<inlineQueryPeerTypeBroadcast>();
+}
+
+void inlineQueryPeerTypeBroadcast::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inlineQueryPeerTypeBroadcast");
+ s.store_class_end();
+ }
+}
+
+inputAppEvent::inputAppEvent(double time_, string const &type_, int64 peer_, object_ptr<JSONValue> &&data_)
+ : time_(time_)
+ , type_(type_)
+ , peer_(peer_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t inputAppEvent::ID;
+
+object_ptr<inputAppEvent> inputAppEvent::fetch(TlBufferParser &p) {
+ return make_tl_object<inputAppEvent>(p);
+}
+
+inputAppEvent::inputAppEvent(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : time_(TlFetchDouble::parse(p))
+ , type_(TlFetchString<string>::parse(p))
+ , peer_(TlFetchLong::parse(p))
+ , data_(TlFetchObject<JSONValue>::parse(p))
+#undef FAIL
+{}
+
+void inputAppEvent::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(time_, s);
+ TlStoreString::store(type_, s);
+ TlStoreBinary::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(data_, s);
+}
+
+void inputAppEvent::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(time_, s);
+ TlStoreString::store(type_, s);
+ TlStoreBinary::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(data_, s);
+}
+
+void inputAppEvent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputAppEvent");
+ s.store_field("time", time_);
+ s.store_field("type", type_);
+ s.store_field("peer", peer_);
+ s.store_object_field("data", static_cast<const BaseObject *>(data_.get()));
+ s.store_class_end();
+ }
+}
+
+inputBotInlineMessageMediaAuto::inputBotInlineMessageMediaAuto(int32 flags_, string const &message_, array<object_ptr<MessageEntity>> &&entities_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : flags_(flags_)
+ , message_(message_)
+ , entities_(std::move(entities_))
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t inputBotInlineMessageMediaAuto::ID;
+
+void inputBotInlineMessageMediaAuto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(message_, s);
+ if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageMediaAuto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(message_, s);
+ if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageMediaAuto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineMessageMediaAuto");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("message", message_);
+ if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+inputBotInlineMessageText::inputBotInlineMessageText(int32 flags_, bool no_webpage_, string const &message_, array<object_ptr<MessageEntity>> &&entities_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : flags_(flags_)
+ , no_webpage_(no_webpage_)
+ , message_(message_)
+ , entities_(std::move(entities_))
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t inputBotInlineMessageText::ID;
+
+void inputBotInlineMessageText::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(message_, s);
+ if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageText::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(message_, s);
+ if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineMessageText");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("message", message_);
+ if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+inputBotInlineMessageMediaGeo::inputBotInlineMessageMediaGeo(int32 flags_, object_ptr<InputGeoPoint> &&geo_point_, int32 heading_, int32 period_, int32 proximity_notification_radius_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : flags_(flags_)
+ , geo_point_(std::move(geo_point_))
+ , heading_(heading_)
+ , period_(period_)
+ , proximity_notification_radius_(proximity_notification_radius_)
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t inputBotInlineMessageMediaGeo::ID;
+
+void inputBotInlineMessageMediaGeo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ if (var0 & 1) { TlStoreBinary::store(heading_, s); }
+ if (var0 & 2) { TlStoreBinary::store(period_, s); }
+ if (var0 & 8) { TlStoreBinary::store(proximity_notification_radius_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageMediaGeo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ if (var0 & 1) { TlStoreBinary::store(heading_, s); }
+ if (var0 & 2) { TlStoreBinary::store(period_, s); }
+ if (var0 & 8) { TlStoreBinary::store(proximity_notification_radius_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageMediaGeo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineMessageMediaGeo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get()));
+ if (var0 & 1) { s.store_field("heading", heading_); }
+ if (var0 & 2) { s.store_field("period", period_); }
+ if (var0 & 8) { s.store_field("proximity_notification_radius", proximity_notification_radius_); }
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+inputBotInlineMessageMediaVenue::inputBotInlineMessageMediaVenue(int32 flags_, object_ptr<InputGeoPoint> &&geo_point_, string const &title_, string const &address_, string const &provider_, string const &venue_id_, string const &venue_type_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : flags_(flags_)
+ , geo_point_(std::move(geo_point_))
+ , title_(title_)
+ , address_(address_)
+ , provider_(provider_)
+ , venue_id_(venue_id_)
+ , venue_type_(venue_type_)
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t inputBotInlineMessageMediaVenue::ID;
+
+void inputBotInlineMessageMediaVenue::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(address_, s);
+ TlStoreString::store(provider_, s);
+ TlStoreString::store(venue_id_, s);
+ TlStoreString::store(venue_type_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageMediaVenue::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(address_, s);
+ TlStoreString::store(provider_, s);
+ TlStoreString::store(venue_id_, s);
+ TlStoreString::store(venue_type_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageMediaVenue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineMessageMediaVenue");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get()));
+ s.store_field("title", title_);
+ s.store_field("address", address_);
+ s.store_field("provider", provider_);
+ s.store_field("venue_id", venue_id_);
+ s.store_field("venue_type", venue_type_);
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+inputBotInlineMessageMediaContact::inputBotInlineMessageMediaContact(int32 flags_, string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : flags_(flags_)
+ , phone_number_(phone_number_)
+ , first_name_(first_name_)
+ , last_name_(last_name_)
+ , vcard_(vcard_)
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t inputBotInlineMessageMediaContact::ID;
+
+void inputBotInlineMessageMediaContact::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+ TlStoreString::store(vcard_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageMediaContact::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+ TlStoreString::store(vcard_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageMediaContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineMessageMediaContact");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("phone_number", phone_number_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_field("vcard", vcard_);
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+inputBotInlineMessageGame::inputBotInlineMessageGame(int32 flags_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : flags_(flags_)
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t inputBotInlineMessageGame::ID;
+
+void inputBotInlineMessageGame::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageGame::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineMessageGame");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+inputBotInlineMessageMediaInvoice::inputBotInlineMessageMediaInvoice(int32 flags_, string const &title_, string const &description_, object_ptr<inputWebDocument> &&photo_, object_ptr<invoice> &&invoice_, bytes &&payload_, string const &provider_, object_ptr<dataJSON> &&provider_data_, object_ptr<ReplyMarkup> &&reply_markup_)
+ : flags_(flags_)
+ , title_(title_)
+ , description_(description_)
+ , photo_(std::move(photo_))
+ , invoice_(std::move(invoice_))
+ , payload_(std::move(payload_))
+ , provider_(provider_)
+ , provider_data_(std::move(provider_data_))
+ , reply_markup_(std::move(reply_markup_))
+{}
+
+const std::int32_t inputBotInlineMessageMediaInvoice::ID;
+
+void inputBotInlineMessageMediaInvoice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(description_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1678949555>::store(photo_, s); }
+ TlStoreBoxed<TlStoreObject, 1048946971>::store(invoice_, s);
+ TlStoreString::store(payload_, s);
+ TlStoreString::store(provider_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(provider_data_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageMediaInvoice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(description_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1678949555>::store(photo_, s); }
+ TlStoreBoxed<TlStoreObject, 1048946971>::store(invoice_, s);
+ TlStoreString::store(payload_, s);
+ TlStoreString::store(provider_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(provider_data_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+}
+
+void inputBotInlineMessageMediaInvoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineMessageMediaInvoice");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ s.store_bytes_field("payload", payload_);
+ s.store_field("provider", provider_);
+ s.store_object_field("provider_data", static_cast<const BaseObject *>(provider_data_.get()));
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<InputBotInlineMessageID> InputBotInlineMessageID::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case inputBotInlineMessageID::ID:
+ return inputBotInlineMessageID::fetch(p);
+ case inputBotInlineMessageID64::ID:
+ return inputBotInlineMessageID64::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+inputBotInlineMessageID::inputBotInlineMessageID(int32 dc_id_, int64 id_, int64 access_hash_)
+ : dc_id_(dc_id_)
+ , id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputBotInlineMessageID::ID;
+
+object_ptr<InputBotInlineMessageID> inputBotInlineMessageID::fetch(TlBufferParser &p) {
+ return make_tl_object<inputBotInlineMessageID>(p);
+}
+
+inputBotInlineMessageID::inputBotInlineMessageID(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : dc_id_(TlFetchInt::parse(p))
+ , id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputBotInlineMessageID::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(dc_id_, s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputBotInlineMessageID::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(dc_id_, s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputBotInlineMessageID::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineMessageID");
+ s.store_field("dc_id", dc_id_);
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputBotInlineMessageID64::inputBotInlineMessageID64(int32 dc_id_, int64 owner_id_, int32 id_, int64 access_hash_)
+ : dc_id_(dc_id_)
+ , owner_id_(owner_id_)
+ , id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputBotInlineMessageID64::ID;
+
+object_ptr<InputBotInlineMessageID> inputBotInlineMessageID64::fetch(TlBufferParser &p) {
+ return make_tl_object<inputBotInlineMessageID64>(p);
+}
+
+inputBotInlineMessageID64::inputBotInlineMessageID64(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : dc_id_(TlFetchInt::parse(p))
+ , owner_id_(TlFetchLong::parse(p))
+ , id_(TlFetchInt::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputBotInlineMessageID64::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(dc_id_, s);
+ TlStoreBinary::store(owner_id_, s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputBotInlineMessageID64::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(dc_id_, s);
+ TlStoreBinary::store(owner_id_, s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputBotInlineMessageID64::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineMessageID64");
+ s.store_field("dc_id", dc_id_);
+ s.store_field("owner_id", owner_id_);
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputBotInlineResult::inputBotInlineResult(int32 flags_, string const &id_, string const &type_, string const &title_, string const &description_, string const &url_, object_ptr<inputWebDocument> &&thumb_, object_ptr<inputWebDocument> &&content_, object_ptr<InputBotInlineMessage> &&send_message_)
+ : flags_(flags_)
+ , id_(id_)
+ , type_(type_)
+ , title_(title_)
+ , description_(description_)
+ , url_(url_)
+ , thumb_(std::move(thumb_))
+ , content_(std::move(content_))
+ , send_message_(std::move(send_message_))
+{}
+
+const std::int32_t inputBotInlineResult::ID;
+
+void inputBotInlineResult::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(type_, s);
+ if (var0 & 2) { TlStoreString::store(title_, s); }
+ if (var0 & 4) { TlStoreString::store(description_, s); }
+ if (var0 & 8) { TlStoreString::store(url_, s); }
+ if (var0 & 16) { TlStoreBoxed<TlStoreObject, -1678949555>::store(thumb_, s); }
+ if (var0 & 32) { TlStoreBoxed<TlStoreObject, -1678949555>::store(content_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s);
+}
+
+void inputBotInlineResult::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(type_, s);
+ if (var0 & 2) { TlStoreString::store(title_, s); }
+ if (var0 & 4) { TlStoreString::store(description_, s); }
+ if (var0 & 8) { TlStoreString::store(url_, s); }
+ if (var0 & 16) { TlStoreBoxed<TlStoreObject, -1678949555>::store(thumb_, s); }
+ if (var0 & 32) { TlStoreBoxed<TlStoreObject, -1678949555>::store(content_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s);
+}
+
+void inputBotInlineResult::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineResult");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("type", type_);
+ if (var0 & 2) { s.store_field("title", title_); }
+ if (var0 & 4) { s.store_field("description", description_); }
+ if (var0 & 8) { s.store_field("url", url_); }
+ if (var0 & 16) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); }
+ if (var0 & 32) { s.store_object_field("content", static_cast<const BaseObject *>(content_.get())); }
+ s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get()));
+ s.store_class_end();
+ }
+}
+
+inputBotInlineResultPhoto::inputBotInlineResultPhoto(string const &id_, string const &type_, object_ptr<InputPhoto> &&photo_, object_ptr<InputBotInlineMessage> &&send_message_)
+ : id_(id_)
+ , type_(type_)
+ , photo_(std::move(photo_))
+ , send_message_(std::move(send_message_))
+{}
+
+const std::int32_t inputBotInlineResultPhoto::ID;
+
+void inputBotInlineResultPhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(type_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s);
+}
+
+void inputBotInlineResultPhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(type_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s);
+}
+
+void inputBotInlineResultPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineResultPhoto");
+ s.store_field("id", id_);
+ s.store_field("type", type_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get()));
+ s.store_class_end();
+ }
+}
+
+inputBotInlineResultDocument::inputBotInlineResultDocument(int32 flags_, string const &id_, string const &type_, string const &title_, string const &description_, object_ptr<InputDocument> &&document_, object_ptr<InputBotInlineMessage> &&send_message_)
+ : flags_(flags_)
+ , id_(id_)
+ , type_(type_)
+ , title_(title_)
+ , description_(description_)
+ , document_(std::move(document_))
+ , send_message_(std::move(send_message_))
+{}
+
+const std::int32_t inputBotInlineResultDocument::ID;
+
+void inputBotInlineResultDocument::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(type_, s);
+ if (var0 & 2) { TlStoreString::store(title_, s); }
+ if (var0 & 4) { TlStoreString::store(description_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(document_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s);
+}
+
+void inputBotInlineResultDocument::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(type_, s);
+ if (var0 & 2) { TlStoreString::store(title_, s); }
+ if (var0 & 4) { TlStoreString::store(description_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(document_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s);
+}
+
+void inputBotInlineResultDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineResultDocument");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("type", type_);
+ if (var0 & 2) { s.store_field("title", title_); }
+ if (var0 & 4) { s.store_field("description", description_); }
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get()));
+ s.store_class_end();
+ }
+}
+
+inputBotInlineResultGame::inputBotInlineResultGame(string const &id_, string const &short_name_, object_ptr<InputBotInlineMessage> &&send_message_)
+ : id_(id_)
+ , short_name_(short_name_)
+ , send_message_(std::move(send_message_))
+{}
+
+const std::int32_t inputBotInlineResultGame::ID;
+
+void inputBotInlineResultGame::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(short_name_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s);
+}
+
+void inputBotInlineResultGame::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(short_name_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s);
+}
+
+void inputBotInlineResultGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputBotInlineResultGame");
+ s.store_field("id", id_);
+ s.store_field("short_name", short_name_);
+ s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<InputChannel> InputChannel::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case inputChannelEmpty::ID:
+ return inputChannelEmpty::fetch(p);
+ case inputChannel::ID:
+ return inputChannel::fetch(p);
+ case inputChannelFromMessage::ID:
+ return inputChannelFromMessage::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t inputChannelEmpty::ID;
+
+object_ptr<InputChannel> inputChannelEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<inputChannelEmpty>();
+}
+
+void inputChannelEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputChannelEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputChannelEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputChannelEmpty");
+ s.store_class_end();
+ }
+}
+
+inputChannel::inputChannel(int64 channel_id_, int64 access_hash_)
+ : channel_id_(channel_id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputChannel::ID;
+
+object_ptr<InputChannel> inputChannel::fetch(TlBufferParser &p) {
+ return make_tl_object<inputChannel>(p);
+}
+
+inputChannel::inputChannel(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputChannel::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(channel_id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputChannel::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(channel_id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputChannel");
+ s.store_field("channel_id", channel_id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputChannelFromMessage::inputChannelFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 channel_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , channel_id_(channel_id_)
+{}
+
+const std::int32_t inputChannelFromMessage::ID;
+
+object_ptr<InputChannel> inputChannelFromMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<inputChannelFromMessage>(p);
+}
+
+inputChannelFromMessage::inputChannelFromMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<InputPeer>::parse(p))
+ , msg_id_(TlFetchInt::parse(p))
+ , channel_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputChannelFromMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(channel_id_, s);
+}
+
+void inputChannelFromMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(channel_id_, s);
+}
+
+void inputChannelFromMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputChannelFromMessage");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_field("channel_id", channel_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputChatPhotoEmpty::ID;
+
+void inputChatPhotoEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputChatPhotoEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputChatPhotoEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputChatPhotoEmpty");
+ s.store_class_end();
+ }
+}
+
+inputChatUploadedPhoto::inputChatUploadedPhoto(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&video_, double video_start_ts_)
+ : flags_(flags_)
+ , file_(std::move(file_))
+ , video_(std::move(video_))
+ , video_start_ts_(video_start_ts_)
+{}
+
+const std::int32_t inputChatUploadedPhoto::ID;
+
+void inputChatUploadedPhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); }
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(video_, s); }
+ if (var0 & 4) { TlStoreBinary::store(video_start_ts_, s); }
+}
+
+void inputChatUploadedPhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); }
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(video_, s); }
+ if (var0 & 4) { TlStoreBinary::store(video_start_ts_, s); }
+}
+
+void inputChatUploadedPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputChatUploadedPhoto");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); }
+ if (var0 & 2) { s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); }
+ if (var0 & 4) { s.store_field("video_start_ts", video_start_ts_); }
+ s.store_class_end();
+ }
+}
+
+inputChatPhoto::inputChatPhoto(object_ptr<InputPhoto> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t inputChatPhoto::ID;
+
+void inputChatPhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void inputChatPhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void inputChatPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputChatPhoto");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputCheckPasswordEmpty::ID;
+
+void inputCheckPasswordEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputCheckPasswordEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputCheckPasswordEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputCheckPasswordEmpty");
+ s.store_class_end();
+ }
+}
+
+inputCheckPasswordSRP::inputCheckPasswordSRP(int64 srp_id_, bytes &&A_, bytes &&M1_)
+ : srp_id_(srp_id_)
+ , A_(std::move(A_))
+ , M1_(std::move(M1_))
+{}
+
+const std::int32_t inputCheckPasswordSRP::ID;
+
+void inputCheckPasswordSRP::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(srp_id_, s);
+ TlStoreString::store(A_, s);
+ TlStoreString::store(M1_, s);
+}
+
+void inputCheckPasswordSRP::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(srp_id_, s);
+ TlStoreString::store(A_, s);
+ TlStoreString::store(M1_, s);
+}
+
+void inputCheckPasswordSRP::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputCheckPasswordSRP");
+ s.store_field("srp_id", srp_id_);
+ s.store_bytes_field("A", A_);
+ s.store_bytes_field("M1", M1_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputClientProxy::ID;
+
+void inputClientProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputClientProxy");
+ s.store_field("address", address_);
+ s.store_field("port", port_);
+ s.store_class_end();
+ }
+}
+
+inputPhoneContact::inputPhoneContact(int64 client_id_, string const &phone_, string const &first_name_, string const &last_name_)
+ : client_id_(client_id_)
+ , phone_(phone_)
+ , first_name_(first_name_)
+ , last_name_(last_name_)
+{}
+
+const std::int32_t inputPhoneContact::ID;
+
+void inputPhoneContact::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(client_id_, s);
+ TlStoreString::store(phone_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+}
+
+void inputPhoneContact::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(client_id_, s);
+ TlStoreString::store(phone_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+}
+
+void inputPhoneContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPhoneContact");
+ s.store_field("client_id", client_id_);
+ s.store_field("phone", phone_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_class_end();
+ }
+}
+
+inputDialogPeer::inputDialogPeer(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t inputDialogPeer::ID;
+
+void inputDialogPeer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void inputDialogPeer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void inputDialogPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputDialogPeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+inputDialogPeerFolder::inputDialogPeerFolder(int32 folder_id_)
+ : folder_id_(folder_id_)
+{}
+
+const std::int32_t inputDialogPeerFolder::ID;
+
+void inputDialogPeerFolder::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(folder_id_, s);
+}
+
+void inputDialogPeerFolder::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(folder_id_, s);
+}
+
+void inputDialogPeerFolder::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputDialogPeerFolder");
+ s.store_field("folder_id", folder_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputDocumentEmpty::ID;
+
+void inputDocumentEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputDocumentEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputDocumentEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputDocumentEmpty");
+ s.store_class_end();
+ }
+}
+
+inputDocument::inputDocument(int64 id_, int64 access_hash_, bytes &&file_reference_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+ , file_reference_(std::move(file_reference_))
+{}
+
+const std::int32_t inputDocument::ID;
+
+void inputDocument::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreString::store(file_reference_, s);
+}
+
+void inputDocument::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreString::store(file_reference_, s);
+}
+
+void inputDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputDocument");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_bytes_field("file_reference", file_reference_);
+ s.store_class_end();
+ }
+}
+
+inputEncryptedChat::inputEncryptedChat(int32 chat_id_, int64 access_hash_)
+ : chat_id_(chat_id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputEncryptedChat::ID;
+
+void inputEncryptedChat::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputEncryptedChat::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputEncryptedChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputEncryptedChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputEncryptedFileEmpty::ID;
+
+void inputEncryptedFileEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputEncryptedFileEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputEncryptedFileEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputEncryptedFileEmpty");
+ s.store_class_end();
+ }
+}
+
+inputEncryptedFileUploaded::inputEncryptedFileUploaded(int64 id_, int32 parts_, string const &md5_checksum_, int32 key_fingerprint_)
+ : id_(id_)
+ , parts_(parts_)
+ , md5_checksum_(md5_checksum_)
+ , key_fingerprint_(key_fingerprint_)
+{}
+
+const std::int32_t inputEncryptedFileUploaded::ID;
+
+void inputEncryptedFileUploaded::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(parts_, s);
+ TlStoreString::store(md5_checksum_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+}
+
+void inputEncryptedFileUploaded::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(parts_, s);
+ TlStoreString::store(md5_checksum_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+}
+
+void inputEncryptedFileUploaded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputEncryptedFileUploaded");
+ s.store_field("id", id_);
+ s.store_field("parts", parts_);
+ s.store_field("md5_checksum", md5_checksum_);
+ s.store_field("key_fingerprint", key_fingerprint_);
+ s.store_class_end();
+ }
+}
+
+inputEncryptedFile::inputEncryptedFile(int64 id_, int64 access_hash_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputEncryptedFile::ID;
+
+void inputEncryptedFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputEncryptedFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputEncryptedFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputEncryptedFile");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputEncryptedFileBigUploaded::inputEncryptedFileBigUploaded(int64 id_, int32 parts_, int32 key_fingerprint_)
+ : id_(id_)
+ , parts_(parts_)
+ , key_fingerprint_(key_fingerprint_)
+{}
+
+const std::int32_t inputEncryptedFileBigUploaded::ID;
+
+void inputEncryptedFileBigUploaded::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(parts_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+}
+
+void inputEncryptedFileBigUploaded::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(parts_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+}
+
+void inputEncryptedFileBigUploaded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputEncryptedFileBigUploaded");
+ s.store_field("id", id_);
+ s.store_field("parts", parts_);
+ s.store_field("key_fingerprint", key_fingerprint_);
+ s.store_class_end();
+ }
+}
+
+inputFile::inputFile(int64 id_, int32 parts_, string const &name_, string const &md5_checksum_)
+ : id_(id_)
+ , parts_(parts_)
+ , name_(name_)
+ , md5_checksum_(md5_checksum_)
+{}
+
+const std::int32_t inputFile::ID;
+
+void inputFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(parts_, s);
+ TlStoreString::store(name_, s);
+ TlStoreString::store(md5_checksum_, s);
+}
+
+void inputFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(parts_, s);
+ TlStoreString::store(name_, s);
+ TlStoreString::store(md5_checksum_, s);
+}
+
+void inputFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputFile");
+ s.store_field("id", id_);
+ s.store_field("parts", parts_);
+ s.store_field("name", name_);
+ s.store_field("md5_checksum", md5_checksum_);
+ s.store_class_end();
+ }
+}
+
+inputFileBig::inputFileBig(int64 id_, int32 parts_, string const &name_)
+ : id_(id_)
+ , parts_(parts_)
+ , name_(name_)
+{}
+
+const std::int32_t inputFileBig::ID;
+
+void inputFileBig::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(parts_, s);
+ TlStoreString::store(name_, s);
+}
+
+void inputFileBig::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(parts_, s);
+ TlStoreString::store(name_, s);
+}
+
+void inputFileBig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputFileBig");
+ s.store_field("id", id_);
+ s.store_field("parts", parts_);
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+inputPeerPhotoFileLocationLegacy::inputPeerPhotoFileLocationLegacy(int32 flags_, bool big_, object_ptr<InputPeer> &&peer_, int64 volume_id_, int32 local_id_)
+ : flags_(flags_)
+ , big_(big_)
+ , peer_(std::move(peer_))
+ , volume_id_(volume_id_)
+ , local_id_(local_id_)
+{}
+
+const std::int32_t inputPeerPhotoFileLocationLegacy::ID;
+
+void inputPeerPhotoFileLocationLegacy::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+}
+
+void inputPeerPhotoFileLocationLegacy::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+}
+
+void inputPeerPhotoFileLocationLegacy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPeerPhotoFileLocationLegacy");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("volume_id", volume_id_);
+ s.store_field("local_id", local_id_);
+ s.store_class_end();
+ }
+}
+
+inputStickerSetThumbLegacy::inputStickerSetThumbLegacy(object_ptr<InputStickerSet> &&stickerset_, int64 volume_id_, int32 local_id_)
+ : stickerset_(std::move(stickerset_))
+ , volume_id_(volume_id_)
+ , local_id_(local_id_)
+{}
+
+const std::int32_t inputStickerSetThumbLegacy::ID;
+
+void inputStickerSetThumbLegacy::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+}
+
+void inputStickerSetThumbLegacy::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+}
+
+void inputStickerSetThumbLegacy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetThumbLegacy");
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_field("volume_id", volume_id_);
+ s.store_field("local_id", local_id_);
+ s.store_class_end();
+ }
+}
+
+inputFileLocation::inputFileLocation(int64 volume_id_, int32 local_id_, int64 secret_, bytes &&file_reference_)
+ : volume_id_(volume_id_)
+ , local_id_(local_id_)
+ , secret_(secret_)
+ , file_reference_(std::move(file_reference_))
+{}
+
+const std::int32_t inputFileLocation::ID;
+
+void inputFileLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+ TlStoreBinary::store(secret_, s);
+ TlStoreString::store(file_reference_, s);
+}
+
+void inputFileLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+ TlStoreBinary::store(secret_, s);
+ TlStoreString::store(file_reference_, s);
+}
+
+void inputFileLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputFileLocation");
+ s.store_field("volume_id", volume_id_);
+ s.store_field("local_id", local_id_);
+ s.store_field("secret", secret_);
+ s.store_bytes_field("file_reference", file_reference_);
+ s.store_class_end();
+ }
+}
+
+inputEncryptedFileLocation::inputEncryptedFileLocation(int64 id_, int64 access_hash_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputEncryptedFileLocation::ID;
+
+void inputEncryptedFileLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputEncryptedFileLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputEncryptedFileLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputEncryptedFileLocation");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputDocumentFileLocation::inputDocumentFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, string const &thumb_size_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+ , file_reference_(std::move(file_reference_))
+ , thumb_size_(thumb_size_)
+{}
+
+const std::int32_t inputDocumentFileLocation::ID;
+
+void inputDocumentFileLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreString::store(file_reference_, s);
+ TlStoreString::store(thumb_size_, s);
+}
+
+void inputDocumentFileLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreString::store(file_reference_, s);
+ TlStoreString::store(thumb_size_, s);
+}
+
+void inputDocumentFileLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputDocumentFileLocation");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_bytes_field("file_reference", file_reference_);
+ s.store_field("thumb_size", thumb_size_);
+ s.store_class_end();
+ }
+}
+
+inputSecureFileLocation::inputSecureFileLocation(int64 id_, int64 access_hash_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputSecureFileLocation::ID;
+
+void inputSecureFileLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputSecureFileLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputSecureFileLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputSecureFileLocation");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputTakeoutFileLocation::ID;
+
+void inputTakeoutFileLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputTakeoutFileLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputTakeoutFileLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputTakeoutFileLocation");
+ s.store_class_end();
+ }
+}
+
+inputPhotoFileLocation::inputPhotoFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, string const &thumb_size_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+ , file_reference_(std::move(file_reference_))
+ , thumb_size_(thumb_size_)
+{}
+
+const std::int32_t inputPhotoFileLocation::ID;
+
+void inputPhotoFileLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreString::store(file_reference_, s);
+ TlStoreString::store(thumb_size_, s);
+}
+
+void inputPhotoFileLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreString::store(file_reference_, s);
+ TlStoreString::store(thumb_size_, s);
+}
+
+void inputPhotoFileLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPhotoFileLocation");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_bytes_field("file_reference", file_reference_);
+ s.store_field("thumb_size", thumb_size_);
+ s.store_class_end();
+ }
+}
+
+inputPhotoLegacyFileLocation::inputPhotoLegacyFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, int64 volume_id_, int32 local_id_, int64 secret_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+ , file_reference_(std::move(file_reference_))
+ , volume_id_(volume_id_)
+ , local_id_(local_id_)
+ , secret_(secret_)
+{}
+
+const std::int32_t inputPhotoLegacyFileLocation::ID;
+
+void inputPhotoLegacyFileLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreString::store(file_reference_, s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+ TlStoreBinary::store(secret_, s);
+}
+
+void inputPhotoLegacyFileLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreString::store(file_reference_, s);
+ TlStoreBinary::store(volume_id_, s);
+ TlStoreBinary::store(local_id_, s);
+ TlStoreBinary::store(secret_, s);
+}
+
+void inputPhotoLegacyFileLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPhotoLegacyFileLocation");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_bytes_field("file_reference", file_reference_);
+ s.store_field("volume_id", volume_id_);
+ s.store_field("local_id", local_id_);
+ s.store_field("secret", secret_);
+ s.store_class_end();
+ }
+}
+
+inputPeerPhotoFileLocation::inputPeerPhotoFileLocation(int32 flags_, bool big_, object_ptr<InputPeer> &&peer_, int64 photo_id_)
+ : flags_(flags_)
+ , big_(big_)
+ , peer_(std::move(peer_))
+ , photo_id_(photo_id_)
+{}
+
+const std::int32_t inputPeerPhotoFileLocation::ID;
+
+void inputPeerPhotoFileLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(photo_id_, s);
+}
+
+void inputPeerPhotoFileLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(photo_id_, s);
+}
+
+void inputPeerPhotoFileLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPeerPhotoFileLocation");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("photo_id", photo_id_);
+ s.store_class_end();
+ }
+}
+
+inputStickerSetThumb::inputStickerSetThumb(object_ptr<InputStickerSet> &&stickerset_, int32 thumb_version_)
+ : stickerset_(std::move(stickerset_))
+ , thumb_version_(thumb_version_)
+{}
+
+const std::int32_t inputStickerSetThumb::ID;
+
+void inputStickerSetThumb::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBinary::store(thumb_version_, s);
+}
+
+void inputStickerSetThumb::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBinary::store(thumb_version_, s);
+}
+
+void inputStickerSetThumb::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetThumb");
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_field("thumb_version", thumb_version_);
+ s.store_class_end();
+ }
+}
+
+inputGroupCallStream::inputGroupCallStream(int32 flags_, object_ptr<inputGroupCall> &&call_, int64 time_ms_, int32 scale_, int32 video_channel_, int32 video_quality_)
+ : flags_(flags_)
+ , call_(std::move(call_))
+ , time_ms_(time_ms_)
+ , scale_(scale_)
+ , video_channel_(video_channel_)
+ , video_quality_(video_quality_)
+{}
+
+const std::int32_t inputGroupCallStream::ID;
+
+void inputGroupCallStream::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBinary::store(time_ms_, s);
+ TlStoreBinary::store(scale_, s);
+ if (var0 & 1) { TlStoreBinary::store(video_channel_, s); }
+ if (var0 & 1) { TlStoreBinary::store(video_quality_, s); }
+}
+
+void inputGroupCallStream::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBinary::store(time_ms_, s);
+ TlStoreBinary::store(scale_, s);
+ if (var0 & 1) { TlStoreBinary::store(video_channel_, s); }
+ if (var0 & 1) { TlStoreBinary::store(video_quality_, s); }
+}
+
+void inputGroupCallStream::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputGroupCallStream");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_field("time_ms", time_ms_);
+ s.store_field("scale", scale_);
+ if (var0 & 1) { s.store_field("video_channel", video_channel_); }
+ if (var0 & 1) { s.store_field("video_quality", video_quality_); }
+ s.store_class_end();
+ }
+}
+
+inputFolderPeer::inputFolderPeer(object_ptr<InputPeer> &&peer_, int32 folder_id_)
+ : peer_(std::move(peer_))
+ , folder_id_(folder_id_)
+{}
+
+const std::int32_t inputFolderPeer::ID;
+
+void inputFolderPeer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(folder_id_, s);
+}
+
+void inputFolderPeer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(folder_id_, s);
+}
+
+void inputFolderPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputFolderPeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("folder_id", folder_id_);
+ s.store_class_end();
+ }
+}
+
+inputGameID::inputGameID(int64 id_, int64 access_hash_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputGameID::ID;
+
+void inputGameID::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputGameID::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputGameID::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputGameID");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputGameShortName::inputGameShortName(object_ptr<InputUser> &&bot_id_, string const &short_name_)
+ : bot_id_(std::move(bot_id_))
+ , short_name_(short_name_)
+{}
+
+const std::int32_t inputGameShortName::ID;
+
+void inputGameShortName::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_id_, s);
+ TlStoreString::store(short_name_, s);
+}
+
+void inputGameShortName::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_id_, s);
+ TlStoreString::store(short_name_, s);
+}
+
+void inputGameShortName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputGameShortName");
+ s.store_object_field("bot_id", static_cast<const BaseObject *>(bot_id_.get()));
+ s.store_field("short_name", short_name_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputGeoPointEmpty::ID;
+
+void inputGeoPointEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputGeoPointEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputGeoPointEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputGeoPointEmpty");
+ s.store_class_end();
+ }
+}
+
+inputGeoPoint::inputGeoPoint(int32 flags_, double lat_, double long_, int32 accuracy_radius_)
+ : flags_(flags_)
+ , lat_(lat_)
+ , long_(long_)
+ , accuracy_radius_(accuracy_radius_)
+{}
+
+const std::int32_t inputGeoPoint::ID;
+
+void inputGeoPoint::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(lat_, s);
+ TlStoreBinary::store(long_, s);
+ if (var0 & 1) { TlStoreBinary::store(accuracy_radius_, s); }
+}
+
+void inputGeoPoint::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(lat_, s);
+ TlStoreBinary::store(long_, s);
+ if (var0 & 1) { TlStoreBinary::store(accuracy_radius_, s); }
+}
+
+void inputGeoPoint::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputGeoPoint");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("lat", lat_);
+ s.store_field("long", long_);
+ if (var0 & 1) { s.store_field("accuracy_radius", accuracy_radius_); }
+ s.store_class_end();
+ }
+}
+
+inputGroupCall::inputGroupCall(int64 id_, int64 access_hash_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputGroupCall::ID;
+
+object_ptr<inputGroupCall> inputGroupCall::fetch(TlBufferParser &p) {
+ return make_tl_object<inputGroupCall>(p);
+}
+
+inputGroupCall::inputGroupCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputGroupCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputGroupCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputGroupCall");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputInvoiceMessage::inputInvoiceMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+{}
+
+const std::int32_t inputInvoiceMessage::ID;
+
+void inputInvoiceMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void inputInvoiceMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void inputInvoiceMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInvoiceMessage");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_class_end();
+ }
+}
+
+inputInvoiceSlug::inputInvoiceSlug(string const &slug_)
+ : slug_(slug_)
+{}
+
+const std::int32_t inputInvoiceSlug::ID;
+
+void inputInvoiceSlug::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(slug_, s);
+}
+
+void inputInvoiceSlug::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(slug_, s);
+}
+
+void inputInvoiceSlug::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputInvoiceSlug");
+ s.store_field("slug", slug_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMediaEmpty::ID;
+
+void inputMediaEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMediaEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMediaEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaEmpty");
+ s.store_class_end();
+ }
+}
+
+inputMediaUploadedPhoto::inputMediaUploadedPhoto(int32 flags_, object_ptr<InputFile> &&file_, array<object_ptr<InputDocument>> &&stickers_, int32 ttl_seconds_)
+ : flags_(flags_)
+ , file_(std::move(file_))
+ , stickers_(std::move(stickers_))
+ , ttl_seconds_(ttl_seconds_)
+{}
+
+const std::int32_t inputMediaUploadedPhoto::ID;
+
+void inputMediaUploadedPhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickers_, s); }
+ if (var0 & 2) { TlStoreBinary::store(ttl_seconds_, s); }
+}
+
+void inputMediaUploadedPhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickers_, s); }
+ if (var0 & 2) { TlStoreBinary::store(ttl_seconds_, s); }
+}
+
+void inputMediaUploadedPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaUploadedPhoto");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ if (var0 & 1) { { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 2) { s.store_field("ttl_seconds", ttl_seconds_); }
+ s.store_class_end();
+ }
+}
+
+inputMediaPhoto::inputMediaPhoto(int32 flags_, object_ptr<InputPhoto> &&id_, int32 ttl_seconds_)
+ : flags_(flags_)
+ , id_(std::move(id_))
+ , ttl_seconds_(ttl_seconds_)
+{}
+
+const std::int32_t inputMediaPhoto::ID;
+
+void inputMediaPhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); }
+}
+
+void inputMediaPhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); }
+}
+
+void inputMediaPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaPhoto");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ if (var0 & 1) { s.store_field("ttl_seconds", ttl_seconds_); }
+ s.store_class_end();
+ }
+}
+
+inputMediaGeoPoint::inputMediaGeoPoint(object_ptr<InputGeoPoint> &&geo_point_)
+ : geo_point_(std::move(geo_point_))
+{}
+
+const std::int32_t inputMediaGeoPoint::ID;
+
+void inputMediaGeoPoint::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+}
+
+void inputMediaGeoPoint::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+}
+
+void inputMediaGeoPoint::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaGeoPoint");
+ s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get()));
+ s.store_class_end();
+ }
+}
+
+inputMediaContact::inputMediaContact(string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_)
+ : phone_number_(phone_number_)
+ , first_name_(first_name_)
+ , last_name_(last_name_)
+ , vcard_(vcard_)
+{}
+
+const std::int32_t inputMediaContact::ID;
+
+void inputMediaContact::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+ TlStoreString::store(vcard_, s);
+}
+
+void inputMediaContact::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+ TlStoreString::store(vcard_, s);
+}
+
+void inputMediaContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaContact");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_field("vcard", vcard_);
+ s.store_class_end();
+ }
+}
+
+inputMediaUploadedDocument::inputMediaUploadedDocument(int32 flags_, bool nosound_video_, bool force_file_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&thumb_, string const &mime_type_, array<object_ptr<DocumentAttribute>> &&attributes_, array<object_ptr<InputDocument>> &&stickers_, int32 ttl_seconds_)
+ : flags_(flags_)
+ , nosound_video_(nosound_video_)
+ , force_file_(force_file_)
+ , file_(std::move(file_))
+ , thumb_(std::move(thumb_))
+ , mime_type_(mime_type_)
+ , attributes_(std::move(attributes_))
+ , stickers_(std::move(stickers_))
+ , ttl_seconds_(ttl_seconds_)
+{}
+
+const std::int32_t inputMediaUploadedDocument::ID;
+
+void inputMediaUploadedDocument::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); }
+ TlStoreString::store(mime_type_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickers_, s); }
+ if (var0 & 2) { TlStoreBinary::store(ttl_seconds_, s); }
+}
+
+void inputMediaUploadedDocument::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); }
+ TlStoreString::store(mime_type_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickers_, s); }
+ if (var0 & 2) { TlStoreBinary::store(ttl_seconds_, s); }
+}
+
+void inputMediaUploadedDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaUploadedDocument");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ if (var0 & 4) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); }
+ s.store_field("mime_type", mime_type_);
+ { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 1) { { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 2) { s.store_field("ttl_seconds", ttl_seconds_); }
+ s.store_class_end();
+ }
+}
+
+inputMediaDocument::inputMediaDocument(int32 flags_, object_ptr<InputDocument> &&id_, int32 ttl_seconds_, string const &query_)
+ : flags_(flags_)
+ , id_(std::move(id_))
+ , ttl_seconds_(ttl_seconds_)
+ , query_(query_)
+{}
+
+const std::int32_t inputMediaDocument::ID;
+
+void inputMediaDocument::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); }
+ if (var0 & 2) { TlStoreString::store(query_, s); }
+}
+
+void inputMediaDocument::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); }
+ if (var0 & 2) { TlStoreString::store(query_, s); }
+}
+
+void inputMediaDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaDocument");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ if (var0 & 1) { s.store_field("ttl_seconds", ttl_seconds_); }
+ if (var0 & 2) { s.store_field("query", query_); }
+ s.store_class_end();
+ }
+}
+
+inputMediaVenue::inputMediaVenue(object_ptr<InputGeoPoint> &&geo_point_, string const &title_, string const &address_, string const &provider_, string const &venue_id_, string const &venue_type_)
+ : geo_point_(std::move(geo_point_))
+ , title_(title_)
+ , address_(address_)
+ , provider_(provider_)
+ , venue_id_(venue_id_)
+ , venue_type_(venue_type_)
+{}
+
+const std::int32_t inputMediaVenue::ID;
+
+void inputMediaVenue::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(address_, s);
+ TlStoreString::store(provider_, s);
+ TlStoreString::store(venue_id_, s);
+ TlStoreString::store(venue_type_, s);
+}
+
+void inputMediaVenue::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(address_, s);
+ TlStoreString::store(provider_, s);
+ TlStoreString::store(venue_id_, s);
+ TlStoreString::store(venue_type_, s);
+}
+
+void inputMediaVenue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaVenue");
+ s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get()));
+ s.store_field("title", title_);
+ s.store_field("address", address_);
+ s.store_field("provider", provider_);
+ s.store_field("venue_id", venue_id_);
+ s.store_field("venue_type", venue_type_);
+ s.store_class_end();
+ }
+}
+
+inputMediaPhotoExternal::inputMediaPhotoExternal(int32 flags_, string const &url_, int32 ttl_seconds_)
+ : flags_(flags_)
+ , url_(url_)
+ , ttl_seconds_(ttl_seconds_)
+{}
+
+const std::int32_t inputMediaPhotoExternal::ID;
+
+void inputMediaPhotoExternal::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(url_, s);
+ if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); }
+}
+
+void inputMediaPhotoExternal::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(url_, s);
+ if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); }
+}
+
+void inputMediaPhotoExternal::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaPhotoExternal");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("url", url_);
+ if (var0 & 1) { s.store_field("ttl_seconds", ttl_seconds_); }
+ s.store_class_end();
+ }
+}
+
+inputMediaDocumentExternal::inputMediaDocumentExternal(int32 flags_, string const &url_, int32 ttl_seconds_)
+ : flags_(flags_)
+ , url_(url_)
+ , ttl_seconds_(ttl_seconds_)
+{}
+
+const std::int32_t inputMediaDocumentExternal::ID;
+
+void inputMediaDocumentExternal::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(url_, s);
+ if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); }
+}
+
+void inputMediaDocumentExternal::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(url_, s);
+ if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); }
+}
+
+void inputMediaDocumentExternal::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaDocumentExternal");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("url", url_);
+ if (var0 & 1) { s.store_field("ttl_seconds", ttl_seconds_); }
+ s.store_class_end();
+ }
+}
+
+inputMediaGame::inputMediaGame(object_ptr<InputGame> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t inputMediaGame::ID;
+
+void inputMediaGame::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void inputMediaGame::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void inputMediaGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaGame");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_class_end();
+ }
+}
+
+inputMediaInvoice::inputMediaInvoice(int32 flags_, string const &title_, string const &description_, object_ptr<inputWebDocument> &&photo_, object_ptr<invoice> &&invoice_, bytes &&payload_, string const &provider_, object_ptr<dataJSON> &&provider_data_, string const &start_param_, object_ptr<InputMedia> &&extended_media_)
+ : flags_(flags_)
+ , title_(title_)
+ , description_(description_)
+ , photo_(std::move(photo_))
+ , invoice_(std::move(invoice_))
+ , payload_(std::move(payload_))
+ , provider_(provider_)
+ , provider_data_(std::move(provider_data_))
+ , start_param_(start_param_)
+ , extended_media_(std::move(extended_media_))
+{}
+
+const std::int32_t inputMediaInvoice::ID;
+
+void inputMediaInvoice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(description_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1678949555>::store(photo_, s); }
+ TlStoreBoxed<TlStoreObject, 1048946971>::store(invoice_, s);
+ TlStoreString::store(payload_, s);
+ TlStoreString::store(provider_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(provider_data_, s);
+ if (var0 & 2) { TlStoreString::store(start_param_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(extended_media_, s); }
+}
+
+void inputMediaInvoice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(description_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1678949555>::store(photo_, s); }
+ TlStoreBoxed<TlStoreObject, 1048946971>::store(invoice_, s);
+ TlStoreString::store(payload_, s);
+ TlStoreString::store(provider_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(provider_data_, s);
+ if (var0 & 2) { TlStoreString::store(start_param_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(extended_media_, s); }
+}
+
+void inputMediaInvoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaInvoice");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ s.store_bytes_field("payload", payload_);
+ s.store_field("provider", provider_);
+ s.store_object_field("provider_data", static_cast<const BaseObject *>(provider_data_.get()));
+ if (var0 & 2) { s.store_field("start_param", start_param_); }
+ if (var0 & 4) { s.store_object_field("extended_media", static_cast<const BaseObject *>(extended_media_.get())); }
+ s.store_class_end();
+ }
+}
+
+inputMediaGeoLive::inputMediaGeoLive(int32 flags_, bool stopped_, object_ptr<InputGeoPoint> &&geo_point_, int32 heading_, int32 period_, int32 proximity_notification_radius_)
+ : flags_(flags_)
+ , stopped_(stopped_)
+ , geo_point_(std::move(geo_point_))
+ , heading_(heading_)
+ , period_(period_)
+ , proximity_notification_radius_(proximity_notification_radius_)
+{}
+
+const std::int32_t inputMediaGeoLive::ID;
+
+void inputMediaGeoLive::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ if (var0 & 4) { TlStoreBinary::store(heading_, s); }
+ if (var0 & 2) { TlStoreBinary::store(period_, s); }
+ if (var0 & 8) { TlStoreBinary::store(proximity_notification_radius_, s); }
+}
+
+void inputMediaGeoLive::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ if (var0 & 4) { TlStoreBinary::store(heading_, s); }
+ if (var0 & 2) { TlStoreBinary::store(period_, s); }
+ if (var0 & 8) { TlStoreBinary::store(proximity_notification_radius_, s); }
+}
+
+void inputMediaGeoLive::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaGeoLive");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get()));
+ if (var0 & 4) { s.store_field("heading", heading_); }
+ if (var0 & 2) { s.store_field("period", period_); }
+ if (var0 & 8) { s.store_field("proximity_notification_radius", proximity_notification_radius_); }
+ s.store_class_end();
+ }
+}
+
+inputMediaPoll::inputMediaPoll(int32 flags_, object_ptr<poll> &&poll_, array<bytes> &&correct_answers_, string const &solution_, array<object_ptr<MessageEntity>> &&solution_entities_)
+ : flags_(flags_)
+ , poll_(std::move(poll_))
+ , correct_answers_(std::move(correct_answers_))
+ , solution_(solution_)
+ , solution_entities_(std::move(solution_entities_))
+{}
+
+const std::int32_t inputMediaPoll::ID;
+
+void inputMediaPoll::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -2032041631>::store(poll_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(correct_answers_, s); }
+ if (var0 & 2) { TlStoreString::store(solution_, s); }
+ if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(solution_entities_, s); }
+}
+
+void inputMediaPoll::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -2032041631>::store(poll_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(correct_answers_, s); }
+ if (var0 & 2) { TlStoreString::store(solution_, s); }
+ if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(solution_entities_, s); }
+}
+
+void inputMediaPoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaPoll");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("poll", static_cast<const BaseObject *>(poll_.get()));
+ if (var0 & 1) { { s.store_vector_begin("correct_answers", correct_answers_.size()); for (const auto &_value : correct_answers_) { s.store_bytes_field("", _value); } s.store_class_end(); } }
+ if (var0 & 2) { s.store_field("solution", solution_); }
+ if (var0 & 2) { { s.store_vector_begin("solution_entities", solution_entities_.size()); for (const auto &_value : solution_entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+inputMediaDice::inputMediaDice(string const &emoticon_)
+ : emoticon_(emoticon_)
+{}
+
+const std::int32_t inputMediaDice::ID;
+
+void inputMediaDice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(emoticon_, s);
+}
+
+void inputMediaDice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(emoticon_, s);
+}
+
+void inputMediaDice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMediaDice");
+ s.store_field("emoticon", emoticon_);
+ s.store_class_end();
+ }
+}
+
+inputMessageID::inputMessageID(int32 id_)
+ : id_(id_)
+{}
+
+const std::int32_t inputMessageID::ID;
+
+void inputMessageID::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+}
+
+void inputMessageID::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+}
+
+void inputMessageID::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageID");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+inputMessageReplyTo::inputMessageReplyTo(int32 id_)
+ : id_(id_)
+{}
+
+const std::int32_t inputMessageReplyTo::ID;
+
+void inputMessageReplyTo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+}
+
+void inputMessageReplyTo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+}
+
+void inputMessageReplyTo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageReplyTo");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagePinned::ID;
+
+void inputMessagePinned::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagePinned::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagePinned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagePinned");
+ s.store_class_end();
+ }
+}
+
+inputMessageCallbackQuery::inputMessageCallbackQuery(int32 id_, int64 query_id_)
+ : id_(id_)
+ , query_id_(query_id_)
+{}
+
+const std::int32_t inputMessageCallbackQuery::ID;
+
+void inputMessageCallbackQuery::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(query_id_, s);
+}
+
+void inputMessageCallbackQuery::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(query_id_, s);
+}
+
+void inputMessageCallbackQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageCallbackQuery");
+ s.store_field("id", id_);
+ s.store_field("query_id", query_id_);
+ s.store_class_end();
+ }
+}
+
+inputNotifyPeer::inputNotifyPeer(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t inputNotifyPeer::ID;
+
+void inputNotifyPeer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void inputNotifyPeer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void inputNotifyPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputNotifyPeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputNotifyUsers::ID;
+
+void inputNotifyUsers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputNotifyUsers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputNotifyUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputNotifyUsers");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputNotifyChats::ID;
+
+void inputNotifyChats::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputNotifyChats::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputNotifyChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputNotifyChats");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputNotifyBroadcasts::ID;
+
+void inputNotifyBroadcasts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputNotifyBroadcasts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputNotifyBroadcasts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputNotifyBroadcasts");
+ s.store_class_end();
+ }
+}
+
+inputNotifyForumTopic::inputNotifyForumTopic(object_ptr<InputPeer> &&peer_, int32 top_msg_id_)
+ : peer_(std::move(peer_))
+ , top_msg_id_(top_msg_id_)
+{}
+
+const std::int32_t inputNotifyForumTopic::ID;
+
+void inputNotifyForumTopic::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(top_msg_id_, s);
+}
+
+void inputNotifyForumTopic::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(top_msg_id_, s);
+}
+
+void inputNotifyForumTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputNotifyForumTopic");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("top_msg_id", top_msg_id_);
+ s.store_class_end();
+ }
+}
+
+inputPaymentCredentialsSaved::inputPaymentCredentialsSaved(string const &id_, bytes &&tmp_password_)
+ : id_(id_)
+ , tmp_password_(std::move(tmp_password_))
+{}
+
+const std::int32_t inputPaymentCredentialsSaved::ID;
+
+void inputPaymentCredentialsSaved::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(tmp_password_, s);
+}
+
+void inputPaymentCredentialsSaved::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(tmp_password_, s);
+}
+
+void inputPaymentCredentialsSaved::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPaymentCredentialsSaved");
+ s.store_field("id", id_);
+ s.store_bytes_field("tmp_password", tmp_password_);
+ s.store_class_end();
+ }
+}
+
+inputPaymentCredentials::inputPaymentCredentials(int32 flags_, bool save_, object_ptr<dataJSON> &&data_)
+ : flags_(flags_)
+ , save_(save_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t inputPaymentCredentials::ID;
+
+void inputPaymentCredentials::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(data_, s);
+}
+
+void inputPaymentCredentials::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(data_, s);
+}
+
+void inputPaymentCredentials::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPaymentCredentials");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("data", static_cast<const BaseObject *>(data_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPaymentCredentialsApplePay::inputPaymentCredentialsApplePay(object_ptr<dataJSON> &&payment_data_)
+ : payment_data_(std::move(payment_data_))
+{}
+
+const std::int32_t inputPaymentCredentialsApplePay::ID;
+
+void inputPaymentCredentialsApplePay::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(payment_data_, s);
+}
+
+void inputPaymentCredentialsApplePay::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(payment_data_, s);
+}
+
+void inputPaymentCredentialsApplePay::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPaymentCredentialsApplePay");
+ s.store_object_field("payment_data", static_cast<const BaseObject *>(payment_data_.get()));
+ s.store_class_end();
+ }
+}
+
+inputPaymentCredentialsGooglePay::inputPaymentCredentialsGooglePay(object_ptr<dataJSON> &&payment_token_)
+ : payment_token_(std::move(payment_token_))
+{}
+
+const std::int32_t inputPaymentCredentialsGooglePay::ID;
+
+void inputPaymentCredentialsGooglePay::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(payment_token_, s);
+}
+
+void inputPaymentCredentialsGooglePay::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(payment_token_, s);
+}
+
+void inputPaymentCredentialsGooglePay::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPaymentCredentialsGooglePay");
+ s.store_object_field("payment_token", static_cast<const BaseObject *>(payment_token_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<InputPeer> InputPeer::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case inputPeerEmpty::ID:
+ return inputPeerEmpty::fetch(p);
+ case inputPeerSelf::ID:
+ return inputPeerSelf::fetch(p);
+ case inputPeerChat::ID:
+ return inputPeerChat::fetch(p);
+ case inputPeerUser::ID:
+ return inputPeerUser::fetch(p);
+ case inputPeerChannel::ID:
+ return inputPeerChannel::fetch(p);
+ case inputPeerUserFromMessage::ID:
+ return inputPeerUserFromMessage::fetch(p);
+ case inputPeerChannelFromMessage::ID:
+ return inputPeerChannelFromMessage::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t inputPeerEmpty::ID;
+
+object_ptr<InputPeer> inputPeerEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<inputPeerEmpty>();
+}
+
+void inputPeerEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPeerEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPeerEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPeerEmpty");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPeerSelf::ID;
+
+object_ptr<InputPeer> inputPeerSelf::fetch(TlBufferParser &p) {
+ return make_tl_object<inputPeerSelf>();
+}
+
+void inputPeerSelf::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPeerSelf::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPeerSelf::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPeerSelf");
+ s.store_class_end();
+ }
+}
+
+inputPeerChat::inputPeerChat(int64 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t inputPeerChat::ID;
+
+object_ptr<InputPeer> inputPeerChat::fetch(TlBufferParser &p) {
+ return make_tl_object<inputPeerChat>(p);
+}
+
+inputPeerChat::inputPeerChat(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputPeerChat::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(chat_id_, s);
+}
+
+void inputPeerChat::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(chat_id_, s);
+}
+
+void inputPeerChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPeerChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+inputPeerUser::inputPeerUser(int64 user_id_, int64 access_hash_)
+ : user_id_(user_id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputPeerUser::ID;
+
+object_ptr<InputPeer> inputPeerUser::fetch(TlBufferParser &p) {
+ return make_tl_object<inputPeerUser>(p);
+}
+
+inputPeerUser::inputPeerUser(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputPeerUser::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(user_id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputPeerUser::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(user_id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputPeerUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPeerUser");
+ s.store_field("user_id", user_id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputPeerChannel::inputPeerChannel(int64 channel_id_, int64 access_hash_)
+ : channel_id_(channel_id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputPeerChannel::ID;
+
+object_ptr<InputPeer> inputPeerChannel::fetch(TlBufferParser &p) {
+ return make_tl_object<inputPeerChannel>(p);
+}
+
+inputPeerChannel::inputPeerChannel(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputPeerChannel::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(channel_id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputPeerChannel::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(channel_id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputPeerChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPeerChannel");
+ s.store_field("channel_id", channel_id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputPeerUserFromMessage::inputPeerUserFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 user_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t inputPeerUserFromMessage::ID;
+
+object_ptr<InputPeer> inputPeerUserFromMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<inputPeerUserFromMessage>(p);
+}
+
+inputPeerUserFromMessage::inputPeerUserFromMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<InputPeer>::parse(p))
+ , msg_id_(TlFetchInt::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputPeerUserFromMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void inputPeerUserFromMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void inputPeerUserFromMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPeerUserFromMessage");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+inputPeerChannelFromMessage::inputPeerChannelFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 channel_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , channel_id_(channel_id_)
+{}
+
+const std::int32_t inputPeerChannelFromMessage::ID;
+
+object_ptr<InputPeer> inputPeerChannelFromMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<inputPeerChannelFromMessage>(p);
+}
+
+inputPeerChannelFromMessage::inputPeerChannelFromMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<InputPeer>::parse(p))
+ , msg_id_(TlFetchInt::parse(p))
+ , channel_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputPeerChannelFromMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(channel_id_, s);
+}
+
+void inputPeerChannelFromMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(channel_id_, s);
+}
+
+void inputPeerChannelFromMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPeerChannelFromMessage");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_field("channel_id", channel_id_);
+ s.store_class_end();
+ }
+}
+
+inputPeerNotifySettings::inputPeerNotifySettings(int32 flags_, bool show_previews_, bool silent_, int32 mute_until_, object_ptr<NotificationSound> &&sound_)
+ : flags_(flags_)
+ , show_previews_(show_previews_)
+ , silent_(silent_)
+ , mute_until_(mute_until_)
+ , sound_(std::move(sound_))
+{}
+
+const std::int32_t inputPeerNotifySettings::ID;
+
+void inputPeerNotifySettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBool::store(show_previews_, s); }
+ if (var0 & 2) { TlStoreBool::store(silent_, s); }
+ if (var0 & 4) { TlStoreBinary::store(mute_until_, s); }
+ if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(sound_, s); }
+}
+
+void inputPeerNotifySettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBool::store(show_previews_, s); }
+ if (var0 & 2) { TlStoreBool::store(silent_, s); }
+ if (var0 & 4) { TlStoreBinary::store(mute_until_, s); }
+ if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(sound_, s); }
+}
+
+void inputPeerNotifySettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPeerNotifySettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("show_previews", show_previews_); }
+ if (var0 & 2) { s.store_field("silent", silent_); }
+ if (var0 & 4) { s.store_field("mute_until", mute_until_); }
+ if (var0 & 8) { s.store_object_field("sound", static_cast<const BaseObject *>(sound_.get())); }
+ s.store_class_end();
+ }
+}
+
+inputPhoneCall::inputPhoneCall(int64 id_, int64 access_hash_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputPhoneCall::ID;
+
+void inputPhoneCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputPhoneCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputPhoneCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPhoneCall");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPhotoEmpty::ID;
+
+void inputPhotoEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPhotoEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPhotoEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPhotoEmpty");
+ s.store_class_end();
+ }
+}
+
+inputPhoto::inputPhoto(int64 id_, int64 access_hash_, bytes &&file_reference_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+ , file_reference_(std::move(file_reference_))
+{}
+
+const std::int32_t inputPhoto::ID;
+
+void inputPhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreString::store(file_reference_, s);
+}
+
+void inputPhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreString::store(file_reference_, s);
+}
+
+void inputPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPhoto");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_bytes_field("file_reference", file_reference_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyKeyStatusTimestamp::ID;
+
+void inputPrivacyKeyStatusTimestamp::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyStatusTimestamp::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyStatusTimestamp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyKeyStatusTimestamp");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyKeyChatInvite::ID;
+
+void inputPrivacyKeyChatInvite::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyChatInvite::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyKeyChatInvite");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyKeyPhoneCall::ID;
+
+void inputPrivacyKeyPhoneCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyPhoneCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyPhoneCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyKeyPhoneCall");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyKeyPhoneP2P::ID;
+
+void inputPrivacyKeyPhoneP2P::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyPhoneP2P::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyPhoneP2P::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyKeyPhoneP2P");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyKeyForwards::ID;
+
+void inputPrivacyKeyForwards::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyForwards::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyForwards::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyKeyForwards");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyKeyProfilePhoto::ID;
+
+void inputPrivacyKeyProfilePhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyProfilePhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyKeyProfilePhoto");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyKeyPhoneNumber::ID;
+
+void inputPrivacyKeyPhoneNumber::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyPhoneNumber::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyKeyPhoneNumber");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyKeyAddedByPhone::ID;
+
+void inputPrivacyKeyAddedByPhone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyAddedByPhone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyAddedByPhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyKeyAddedByPhone");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyKeyVoiceMessages::ID;
+
+void inputPrivacyKeyVoiceMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyVoiceMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyKeyVoiceMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyKeyVoiceMessages");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyValueAllowContacts::ID;
+
+void inputPrivacyValueAllowContacts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyValueAllowContacts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyValueAllowContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyValueAllowContacts");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyValueAllowAll::ID;
+
+void inputPrivacyValueAllowAll::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyValueAllowAll::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyValueAllowAll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyValueAllowAll");
+ s.store_class_end();
+ }
+}
+
+inputPrivacyValueAllowUsers::inputPrivacyValueAllowUsers(array<object_ptr<InputUser>> &&users_)
+ : users_(std::move(users_))
+{}
+
+const std::int32_t inputPrivacyValueAllowUsers::ID;
+
+void inputPrivacyValueAllowUsers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s);
+}
+
+void inputPrivacyValueAllowUsers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s);
+}
+
+void inputPrivacyValueAllowUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyValueAllowUsers");
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyValueDisallowContacts::ID;
+
+void inputPrivacyValueDisallowContacts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyValueDisallowContacts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyValueDisallowContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyValueDisallowContacts");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputPrivacyValueDisallowAll::ID;
+
+void inputPrivacyValueDisallowAll::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyValueDisallowAll::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputPrivacyValueDisallowAll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyValueDisallowAll");
+ s.store_class_end();
+ }
+}
+
+inputPrivacyValueDisallowUsers::inputPrivacyValueDisallowUsers(array<object_ptr<InputUser>> &&users_)
+ : users_(std::move(users_))
+{}
+
+const std::int32_t inputPrivacyValueDisallowUsers::ID;
+
+void inputPrivacyValueDisallowUsers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s);
+}
+
+void inputPrivacyValueDisallowUsers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s);
+}
+
+void inputPrivacyValueDisallowUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyValueDisallowUsers");
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+inputPrivacyValueAllowChatParticipants::inputPrivacyValueAllowChatParticipants(array<int64> &&chats_)
+ : chats_(std::move(chats_))
+{}
+
+const std::int32_t inputPrivacyValueAllowChatParticipants::ID;
+
+void inputPrivacyValueAllowChatParticipants::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(chats_, s);
+}
+
+void inputPrivacyValueAllowChatParticipants::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(chats_, s);
+}
+
+void inputPrivacyValueAllowChatParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyValueAllowChatParticipants");
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+inputPrivacyValueDisallowChatParticipants::inputPrivacyValueDisallowChatParticipants(array<int64> &&chats_)
+ : chats_(std::move(chats_))
+{}
+
+const std::int32_t inputPrivacyValueDisallowChatParticipants::ID;
+
+void inputPrivacyValueDisallowChatParticipants::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(chats_, s);
+}
+
+void inputPrivacyValueDisallowChatParticipants::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(chats_, s);
+}
+
+void inputPrivacyValueDisallowChatParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputPrivacyValueDisallowChatParticipants");
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+inputSecureFileUploaded::inputSecureFileUploaded(int64 id_, int32 parts_, string const &md5_checksum_, bytes &&file_hash_, bytes &&secret_)
+ : id_(id_)
+ , parts_(parts_)
+ , md5_checksum_(md5_checksum_)
+ , file_hash_(std::move(file_hash_))
+ , secret_(std::move(secret_))
+{}
+
+const std::int32_t inputSecureFileUploaded::ID;
+
+void inputSecureFileUploaded::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(parts_, s);
+ TlStoreString::store(md5_checksum_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(secret_, s);
+}
+
+void inputSecureFileUploaded::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(parts_, s);
+ TlStoreString::store(md5_checksum_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(secret_, s);
+}
+
+void inputSecureFileUploaded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputSecureFileUploaded");
+ s.store_field("id", id_);
+ s.store_field("parts", parts_);
+ s.store_field("md5_checksum", md5_checksum_);
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_bytes_field("secret", secret_);
+ s.store_class_end();
+ }
+}
+
+inputSecureFile::inputSecureFile(int64 id_, int64 access_hash_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputSecureFile::ID;
+
+void inputSecureFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputSecureFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputSecureFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputSecureFile");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputSecureValue::inputSecureValue(int32 flags_, object_ptr<SecureValueType> &&type_, object_ptr<secureData> &&data_, object_ptr<InputSecureFile> &&front_side_, object_ptr<InputSecureFile> &&reverse_side_, object_ptr<InputSecureFile> &&selfie_, array<object_ptr<InputSecureFile>> &&translation_, array<object_ptr<InputSecureFile>> &&files_, object_ptr<SecurePlainData> &&plain_data_)
+ : flags_(flags_)
+ , type_(std::move(type_))
+ , data_(std::move(data_))
+ , front_side_(std::move(front_side_))
+ , reverse_side_(std::move(reverse_side_))
+ , selfie_(std::move(selfie_))
+ , translation_(std::move(translation_))
+ , files_(std::move(files_))
+ , plain_data_(std::move(plain_data_))
+{}
+
+const std::int32_t inputSecureValue::ID;
+
+void inputSecureValue::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1964327229>::store(data_, s); }
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(front_side_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reverse_side_, s); }
+ if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(selfie_, s); }
+ if (var0 & 64) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(translation_, s); }
+ if (var0 & 16) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(files_, s); }
+ if (var0 & 32) { TlStoreBoxedUnknown<TlStoreObject>::store(plain_data_, s); }
+}
+
+void inputSecureValue::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1964327229>::store(data_, s); }
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(front_side_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reverse_side_, s); }
+ if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(selfie_, s); }
+ if (var0 & 64) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(translation_, s); }
+ if (var0 & 16) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(files_, s); }
+ if (var0 & 32) { TlStoreBoxedUnknown<TlStoreObject>::store(plain_data_, s); }
+}
+
+void inputSecureValue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputSecureValue");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ if (var0 & 1) { s.store_object_field("data", static_cast<const BaseObject *>(data_.get())); }
+ if (var0 & 2) { s.store_object_field("front_side", static_cast<const BaseObject *>(front_side_.get())); }
+ if (var0 & 4) { s.store_object_field("reverse_side", static_cast<const BaseObject *>(reverse_side_.get())); }
+ if (var0 & 8) { s.store_object_field("selfie", static_cast<const BaseObject *>(selfie_.get())); }
+ if (var0 & 64) { { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 16) { { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 32) { s.store_object_field("plain_data", static_cast<const BaseObject *>(plain_data_.get())); }
+ s.store_class_end();
+ }
+}
+
+inputSingleMedia::inputSingleMedia(int32 flags_, object_ptr<InputMedia> &&media_, int64 random_id_, string const &message_, array<object_ptr<MessageEntity>> &&entities_)
+ : flags_(flags_)
+ , media_(std::move(media_))
+ , random_id_(random_id_)
+ , message_(message_)
+ , entities_(std::move(entities_))
+{}
+
+const std::int32_t inputSingleMedia::ID;
+
+void inputSingleMedia::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(message_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+}
+
+void inputSingleMedia::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(message_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+}
+
+void inputSingleMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputSingleMedia");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("media", static_cast<const BaseObject *>(media_.get()));
+ s.store_field("random_id", random_id_);
+ s.store_field("message", message_);
+ if (var0 & 1) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+object_ptr<InputStickerSet> InputStickerSet::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case inputStickerSetEmpty::ID:
+ return inputStickerSetEmpty::fetch(p);
+ case inputStickerSetID::ID:
+ return inputStickerSetID::fetch(p);
+ case inputStickerSetShortName::ID:
+ return inputStickerSetShortName::fetch(p);
+ case inputStickerSetAnimatedEmoji::ID:
+ return inputStickerSetAnimatedEmoji::fetch(p);
+ case inputStickerSetDice::ID:
+ return inputStickerSetDice::fetch(p);
+ case inputStickerSetAnimatedEmojiAnimations::ID:
+ return inputStickerSetAnimatedEmojiAnimations::fetch(p);
+ case inputStickerSetPremiumGifts::ID:
+ return inputStickerSetPremiumGifts::fetch(p);
+ case inputStickerSetEmojiGenericAnimations::ID:
+ return inputStickerSetEmojiGenericAnimations::fetch(p);
+ case inputStickerSetEmojiDefaultStatuses::ID:
+ return inputStickerSetEmojiDefaultStatuses::fetch(p);
+ case inputStickerSetEmojiDefaultTopicIcons::ID:
+ return inputStickerSetEmojiDefaultTopicIcons::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t inputStickerSetEmpty::ID;
+
+object_ptr<InputStickerSet> inputStickerSetEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<inputStickerSetEmpty>();
+}
+
+void inputStickerSetEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetEmpty");
+ s.store_class_end();
+ }
+}
+
+inputStickerSetID::inputStickerSetID(int64 id_, int64 access_hash_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputStickerSetID::ID;
+
+object_ptr<InputStickerSet> inputStickerSetID::fetch(TlBufferParser &p) {
+ return make_tl_object<inputStickerSetID>(p);
+}
+
+inputStickerSetID::inputStickerSetID(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputStickerSetID::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputStickerSetID::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputStickerSetID::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetID");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputStickerSetShortName::inputStickerSetShortName(string const &short_name_)
+ : short_name_(short_name_)
+{}
+
+const std::int32_t inputStickerSetShortName::ID;
+
+object_ptr<InputStickerSet> inputStickerSetShortName::fetch(TlBufferParser &p) {
+ return make_tl_object<inputStickerSetShortName>(p);
+}
+
+inputStickerSetShortName::inputStickerSetShortName(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : short_name_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void inputStickerSetShortName::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(short_name_, s);
+}
+
+void inputStickerSetShortName::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(short_name_, s);
+}
+
+void inputStickerSetShortName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetShortName");
+ s.store_field("short_name", short_name_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputStickerSetAnimatedEmoji::ID;
+
+object_ptr<InputStickerSet> inputStickerSetAnimatedEmoji::fetch(TlBufferParser &p) {
+ return make_tl_object<inputStickerSetAnimatedEmoji>();
+}
+
+void inputStickerSetAnimatedEmoji::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetAnimatedEmoji::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetAnimatedEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetAnimatedEmoji");
+ s.store_class_end();
+ }
+}
+
+inputStickerSetDice::inputStickerSetDice(string const &emoticon_)
+ : emoticon_(emoticon_)
+{}
+
+const std::int32_t inputStickerSetDice::ID;
+
+object_ptr<InputStickerSet> inputStickerSetDice::fetch(TlBufferParser &p) {
+ return make_tl_object<inputStickerSetDice>(p);
+}
+
+inputStickerSetDice::inputStickerSetDice(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : emoticon_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void inputStickerSetDice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(emoticon_, s);
+}
+
+void inputStickerSetDice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(emoticon_, s);
+}
+
+void inputStickerSetDice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetDice");
+ s.store_field("emoticon", emoticon_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputStickerSetAnimatedEmojiAnimations::ID;
+
+object_ptr<InputStickerSet> inputStickerSetAnimatedEmojiAnimations::fetch(TlBufferParser &p) {
+ return make_tl_object<inputStickerSetAnimatedEmojiAnimations>();
+}
+
+void inputStickerSetAnimatedEmojiAnimations::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetAnimatedEmojiAnimations::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetAnimatedEmojiAnimations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetAnimatedEmojiAnimations");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputStickerSetPremiumGifts::ID;
+
+object_ptr<InputStickerSet> inputStickerSetPremiumGifts::fetch(TlBufferParser &p) {
+ return make_tl_object<inputStickerSetPremiumGifts>();
+}
+
+void inputStickerSetPremiumGifts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetPremiumGifts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetPremiumGifts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetPremiumGifts");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputStickerSetEmojiGenericAnimations::ID;
+
+object_ptr<InputStickerSet> inputStickerSetEmojiGenericAnimations::fetch(TlBufferParser &p) {
+ return make_tl_object<inputStickerSetEmojiGenericAnimations>();
+}
+
+void inputStickerSetEmojiGenericAnimations::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetEmojiGenericAnimations::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetEmojiGenericAnimations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetEmojiGenericAnimations");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputStickerSetEmojiDefaultStatuses::ID;
+
+object_ptr<InputStickerSet> inputStickerSetEmojiDefaultStatuses::fetch(TlBufferParser &p) {
+ return make_tl_object<inputStickerSetEmojiDefaultStatuses>();
+}
+
+void inputStickerSetEmojiDefaultStatuses::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetEmojiDefaultStatuses::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetEmojiDefaultStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetEmojiDefaultStatuses");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputStickerSetEmojiDefaultTopicIcons::ID;
+
+object_ptr<InputStickerSet> inputStickerSetEmojiDefaultTopicIcons::fetch(TlBufferParser &p) {
+ return make_tl_object<inputStickerSetEmojiDefaultTopicIcons>();
+}
+
+void inputStickerSetEmojiDefaultTopicIcons::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetEmojiDefaultTopicIcons::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputStickerSetEmojiDefaultTopicIcons::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetEmojiDefaultTopicIcons");
+ s.store_class_end();
+ }
+}
+
+inputStickerSetItem::inputStickerSetItem(int32 flags_, object_ptr<InputDocument> &&document_, string const &emoji_, object_ptr<maskCoords> &&mask_coords_)
+ : flags_(flags_)
+ , document_(std::move(document_))
+ , emoji_(emoji_)
+ , mask_coords_(std::move(mask_coords_))
+{}
+
+const std::int32_t inputStickerSetItem::ID;
+
+void inputStickerSetItem::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(document_, s);
+ TlStoreString::store(emoji_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1361650766>::store(mask_coords_, s); }
+}
+
+void inputStickerSetItem::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(document_, s);
+ TlStoreString::store(emoji_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1361650766>::store(mask_coords_, s); }
+}
+
+void inputStickerSetItem::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickerSetItem");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_field("emoji", emoji_);
+ if (var0 & 1) { s.store_object_field("mask_coords", static_cast<const BaseObject *>(mask_coords_.get())); }
+ s.store_class_end();
+ }
+}
+
+inputStickeredMediaPhoto::inputStickeredMediaPhoto(object_ptr<InputPhoto> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t inputStickeredMediaPhoto::ID;
+
+void inputStickeredMediaPhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void inputStickeredMediaPhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void inputStickeredMediaPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickeredMediaPhoto");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_class_end();
+ }
+}
+
+inputStickeredMediaDocument::inputStickeredMediaDocument(object_ptr<InputDocument> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t inputStickeredMediaDocument::ID;
+
+void inputStickeredMediaDocument::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void inputStickeredMediaDocument::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void inputStickeredMediaDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStickeredMediaDocument");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_class_end();
+ }
+}
+
+inputStorePaymentPremiumSubscription::inputStorePaymentPremiumSubscription(int32 flags_, bool restore_)
+ : flags_(flags_)
+ , restore_(restore_)
+{}
+
+const std::int32_t inputStorePaymentPremiumSubscription::ID;
+
+void inputStorePaymentPremiumSubscription::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void inputStorePaymentPremiumSubscription::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void inputStorePaymentPremiumSubscription::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStorePaymentPremiumSubscription");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+inputStorePaymentGiftPremium::inputStorePaymentGiftPremium(object_ptr<InputUser> &&user_id_, string const &currency_, int64 amount_)
+ : user_id_(std::move(user_id_))
+ , currency_(currency_)
+ , amount_(amount_)
+{}
+
+const std::int32_t inputStorePaymentGiftPremium::ID;
+
+void inputStorePaymentGiftPremium::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreString::store(currency_, s);
+ TlStoreBinary::store(amount_, s);
+}
+
+void inputStorePaymentGiftPremium::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreString::store(currency_, s);
+ TlStoreBinary::store(amount_, s);
+}
+
+void inputStorePaymentGiftPremium::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputStorePaymentGiftPremium");
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("currency", currency_);
+ s.store_field("amount", amount_);
+ s.store_class_end();
+ }
+}
+
+inputTheme::inputTheme(int64 id_, int64 access_hash_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputTheme::ID;
+
+void inputTheme::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputTheme::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputTheme");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputThemeSlug::inputThemeSlug(string const &slug_)
+ : slug_(slug_)
+{}
+
+const std::int32_t inputThemeSlug::ID;
+
+void inputThemeSlug::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(slug_, s);
+}
+
+void inputThemeSlug::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(slug_, s);
+}
+
+void inputThemeSlug::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputThemeSlug");
+ s.store_field("slug", slug_);
+ s.store_class_end();
+ }
+}
+
+inputThemeSettings::inputThemeSettings(int32 flags_, bool message_colors_animated_, object_ptr<BaseTheme> &&base_theme_, int32 accent_color_, int32 outbox_accent_color_, array<int32> &&message_colors_, object_ptr<InputWallPaper> &&wallpaper_, object_ptr<wallPaperSettings> &&wallpaper_settings_)
+ : flags_(flags_)
+ , message_colors_animated_(message_colors_animated_)
+ , base_theme_(std::move(base_theme_))
+ , accent_color_(accent_color_)
+ , outbox_accent_color_(outbox_accent_color_)
+ , message_colors_(std::move(message_colors_))
+ , wallpaper_(std::move(wallpaper_))
+ , wallpaper_settings_(std::move(wallpaper_settings_))
+{}
+
+const std::int32_t inputThemeSettings::ID;
+
+void inputThemeSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(base_theme_, s);
+ TlStoreBinary::store(accent_color_, s);
+ if (var0 & 8) { TlStoreBinary::store(outbox_accent_color_, s); }
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(message_colors_, s); }
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s); }
+ if (var0 & 2) { TlStoreBoxed<TlStoreObject, 499236004>::store(wallpaper_settings_, s); }
+}
+
+void inputThemeSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(base_theme_, s);
+ TlStoreBinary::store(accent_color_, s);
+ if (var0 & 8) { TlStoreBinary::store(outbox_accent_color_, s); }
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(message_colors_, s); }
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s); }
+ if (var0 & 2) { TlStoreBoxed<TlStoreObject, 499236004>::store(wallpaper_settings_, s); }
+}
+
+void inputThemeSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputThemeSettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("base_theme", static_cast<const BaseObject *>(base_theme_.get()));
+ s.store_field("accent_color", accent_color_);
+ if (var0 & 8) { s.store_field("outbox_accent_color", outbox_accent_color_); }
+ if (var0 & 1) { { s.store_vector_begin("message_colors", message_colors_.size()); for (const auto &_value : message_colors_) { s.store_field("", _value); } s.store_class_end(); } }
+ if (var0 & 2) { s.store_object_field("wallpaper", static_cast<const BaseObject *>(wallpaper_.get())); }
+ if (var0 & 2) { s.store_object_field("wallpaper_settings", static_cast<const BaseObject *>(wallpaper_settings_.get())); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<InputUser> InputUser::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case inputUserEmpty::ID:
+ return inputUserEmpty::fetch(p);
+ case inputUserSelf::ID:
+ return inputUserSelf::fetch(p);
+ case inputUser::ID:
+ return inputUser::fetch(p);
+ case inputUserFromMessage::ID:
+ return inputUserFromMessage::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t inputUserEmpty::ID;
+
+object_ptr<InputUser> inputUserEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<inputUserEmpty>();
+}
+
+void inputUserEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputUserEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputUserEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputUserEmpty");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputUserSelf::ID;
+
+object_ptr<InputUser> inputUserSelf::fetch(TlBufferParser &p) {
+ return make_tl_object<inputUserSelf>();
+}
+
+void inputUserSelf::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputUserSelf::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputUserSelf::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputUserSelf");
+ s.store_class_end();
+ }
+}
+
+inputUser::inputUser(int64 user_id_, int64 access_hash_)
+ : user_id_(user_id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputUser::ID;
+
+object_ptr<InputUser> inputUser::fetch(TlBufferParser &p) {
+ return make_tl_object<inputUser>(p);
+}
+
+inputUser::inputUser(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputUser::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(user_id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputUser::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(user_id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputUser");
+ s.store_field("user_id", user_id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputUserFromMessage::inputUserFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 user_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t inputUserFromMessage::ID;
+
+object_ptr<InputUser> inputUserFromMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<inputUserFromMessage>(p);
+}
+
+inputUserFromMessage::inputUserFromMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<InputPeer>::parse(p))
+ , msg_id_(TlFetchInt::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void inputUserFromMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void inputUserFromMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void inputUserFromMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputUserFromMessage");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+inputWallPaper::inputWallPaper(int64 id_, int64 access_hash_)
+ : id_(id_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputWallPaper::ID;
+
+void inputWallPaper::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputWallPaper::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputWallPaper::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputWallPaper");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputWallPaperSlug::inputWallPaperSlug(string const &slug_)
+ : slug_(slug_)
+{}
+
+const std::int32_t inputWallPaperSlug::ID;
+
+void inputWallPaperSlug::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(slug_, s);
+}
+
+void inputWallPaperSlug::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(slug_, s);
+}
+
+void inputWallPaperSlug::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputWallPaperSlug");
+ s.store_field("slug", slug_);
+ s.store_class_end();
+ }
+}
+
+inputWallPaperNoFile::inputWallPaperNoFile(int64 id_)
+ : id_(id_)
+{}
+
+const std::int32_t inputWallPaperNoFile::ID;
+
+void inputWallPaperNoFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+}
+
+void inputWallPaperNoFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+}
+
+void inputWallPaperNoFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputWallPaperNoFile");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+inputWebDocument::inputWebDocument(string const &url_, int32 size_, string const &mime_type_, array<object_ptr<DocumentAttribute>> &&attributes_)
+ : url_(url_)
+ , size_(size_)
+ , mime_type_(mime_type_)
+ , attributes_(std::move(attributes_))
+{}
+
+const std::int32_t inputWebDocument::ID;
+
+void inputWebDocument::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(url_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s);
+}
+
+void inputWebDocument::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(url_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s);
+}
+
+void inputWebDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputWebDocument");
+ s.store_field("url", url_);
+ s.store_field("size", size_);
+ s.store_field("mime_type", mime_type_);
+ { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+inputWebFileLocation::inputWebFileLocation(string const &url_, int64 access_hash_)
+ : url_(url_)
+ , access_hash_(access_hash_)
+{}
+
+const std::int32_t inputWebFileLocation::ID;
+
+void inputWebFileLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(url_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputWebFileLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(url_, s);
+ TlStoreBinary::store(access_hash_, s);
+}
+
+void inputWebFileLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputWebFileLocation");
+ s.store_field("url", url_);
+ s.store_field("access_hash", access_hash_);
+ s.store_class_end();
+ }
+}
+
+inputWebFileGeoPointLocation::inputWebFileGeoPointLocation(object_ptr<InputGeoPoint> &&geo_point_, int64 access_hash_, int32 w_, int32 h_, int32 zoom_, int32 scale_)
+ : geo_point_(std::move(geo_point_))
+ , access_hash_(access_hash_)
+ , w_(w_)
+ , h_(h_)
+ , zoom_(zoom_)
+ , scale_(scale_)
+{}
+
+const std::int32_t inputWebFileGeoPointLocation::ID;
+
+void inputWebFileGeoPointLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(zoom_, s);
+ TlStoreBinary::store(scale_, s);
+}
+
+void inputWebFileGeoPointLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ TlStoreBinary::store(access_hash_, s);
+ TlStoreBinary::store(w_, s);
+ TlStoreBinary::store(h_, s);
+ TlStoreBinary::store(zoom_, s);
+ TlStoreBinary::store(scale_, s);
+}
+
+void inputWebFileGeoPointLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputWebFileGeoPointLocation");
+ s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get()));
+ s.store_field("access_hash", access_hash_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_field("zoom", zoom_);
+ s.store_field("scale", scale_);
+ s.store_class_end();
+ }
+}
+
+inputWebFileAudioAlbumThumbLocation::inputWebFileAudioAlbumThumbLocation(int32 flags_, bool small_, object_ptr<InputDocument> &&document_, string const &title_, string const &performer_)
+ : flags_(flags_)
+ , small_(small_)
+ , document_(std::move(document_))
+ , title_(title_)
+ , performer_(performer_)
+{}
+
+const std::int32_t inputWebFileAudioAlbumThumbLocation::ID;
+
+void inputWebFileAudioAlbumThumbLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); }
+ if (var0 & 2) { TlStoreString::store(title_, s); }
+ if (var0 & 2) { TlStoreString::store(performer_, s); }
+}
+
+void inputWebFileAudioAlbumThumbLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); }
+ if (var0 & 2) { TlStoreString::store(title_, s); }
+ if (var0 & 2) { TlStoreString::store(performer_, s); }
+}
+
+void inputWebFileAudioAlbumThumbLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputWebFileAudioAlbumThumbLocation");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); }
+ if (var0 & 2) { s.store_field("title", title_); }
+ if (var0 & 2) { s.store_field("performer", performer_); }
+ s.store_class_end();
+ }
+}
+
+invoice::invoice()
+ : flags_()
+ , test_()
+ , name_requested_()
+ , phone_requested_()
+ , email_requested_()
+ , shipping_address_requested_()
+ , flexible_()
+ , phone_to_provider_()
+ , email_to_provider_()
+ , recurring_()
+ , currency_()
+ , prices_()
+ , max_tip_amount_()
+ , suggested_tip_amounts_()
+ , recurring_terms_url_()
+{}
+
+invoice::invoice(int32 flags_, bool test_, bool name_requested_, bool phone_requested_, bool email_requested_, bool shipping_address_requested_, bool flexible_, bool phone_to_provider_, bool email_to_provider_, bool recurring_, string const &currency_, array<object_ptr<labeledPrice>> &&prices_, int64 max_tip_amount_, array<int64> &&suggested_tip_amounts_, string const &recurring_terms_url_)
+ : flags_(flags_)
+ , test_(test_)
+ , name_requested_(name_requested_)
+ , phone_requested_(phone_requested_)
+ , email_requested_(email_requested_)
+ , shipping_address_requested_(shipping_address_requested_)
+ , flexible_(flexible_)
+ , phone_to_provider_(phone_to_provider_)
+ , email_to_provider_(email_to_provider_)
+ , recurring_(recurring_)
+ , currency_(currency_)
+ , prices_(std::move(prices_))
+ , max_tip_amount_(max_tip_amount_)
+ , suggested_tip_amounts_(std::move(suggested_tip_amounts_))
+ , recurring_terms_url_(recurring_terms_url_)
+{}
+
+const std::int32_t invoice::ID;
+
+object_ptr<invoice> invoice::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<invoice> res = make_tl_object<invoice>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->test_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->name_requested_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->phone_requested_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->email_requested_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->shipping_address_requested_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->flexible_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->phone_to_provider_ = TlFetchTrue::parse(p); }
+ if (var0 & 128) { res->email_to_provider_ = TlFetchTrue::parse(p); }
+ if (var0 & 512) { res->recurring_ = TlFetchTrue::parse(p); }
+ res->currency_ = TlFetchString<string>::parse(p);
+ res->prices_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<labeledPrice>, -886477832>>, 481674261>::parse(p);
+ if (var0 & 256) { res->max_tip_amount_ = TlFetchLong::parse(p); }
+ if (var0 & 256) { res->suggested_tip_amounts_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); }
+ if (var0 & 512) { res->recurring_terms_url_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void invoice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(currency_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -886477832>>, 481674261>::store(prices_, s);
+ if (var0 & 256) { TlStoreBinary::store(max_tip_amount_, s); }
+ if (var0 & 256) { TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(suggested_tip_amounts_, s); }
+ if (var0 & 512) { TlStoreString::store(recurring_terms_url_, s); }
+}
+
+void invoice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(currency_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -886477832>>, 481674261>::store(prices_, s);
+ if (var0 & 256) { TlStoreBinary::store(max_tip_amount_, s); }
+ if (var0 & 256) { TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(suggested_tip_amounts_, s); }
+ if (var0 & 512) { TlStoreString::store(recurring_terms_url_, s); }
+}
+
+void invoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "invoice");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("currency", currency_);
+ { s.store_vector_begin("prices", prices_.size()); for (const auto &_value : prices_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 256) { s.store_field("max_tip_amount", max_tip_amount_); }
+ if (var0 & 256) { { s.store_vector_begin("suggested_tip_amounts", suggested_tip_amounts_.size()); for (const auto &_value : suggested_tip_amounts_) { s.store_field("", _value); } s.store_class_end(); } }
+ if (var0 & 512) { s.store_field("recurring_terms_url", recurring_terms_url_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<IpPort> IpPort::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case ipPort::ID:
+ return ipPort::fetch(p);
+ case ipPortSecret::ID:
+ return ipPortSecret::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t ipPort::ID;
+
+object_ptr<IpPort> ipPort::fetch(TlBufferParser &p) {
+ return make_tl_object<ipPort>(p);
+}
+
+ipPort::ipPort(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : ipv4_(TlFetchInt::parse(p))
+ , port_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void ipPort::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "ipPort");
+ s.store_field("ipv4", ipv4_);
+ s.store_field("port", port_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t ipPortSecret::ID;
+
+object_ptr<IpPort> ipPortSecret::fetch(TlBufferParser &p) {
+ return make_tl_object<ipPortSecret>(p);
+}
+
+ipPortSecret::ipPortSecret(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : ipv4_(TlFetchInt::parse(p))
+ , port_(TlFetchInt::parse(p))
+ , secret_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void ipPortSecret::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "ipPortSecret");
+ s.store_field("ipv4", ipv4_);
+ s.store_field("port", port_);
+ s.store_bytes_field("secret", secret_);
+ s.store_class_end();
+ }
+}
+
+jsonObjectValue::jsonObjectValue(string const &key_, object_ptr<JSONValue> &&value_)
+ : key_(key_)
+ , value_(std::move(value_))
+{}
+
+const std::int32_t jsonObjectValue::ID;
+
+object_ptr<jsonObjectValue> jsonObjectValue::fetch(TlBufferParser &p) {
+ return make_tl_object<jsonObjectValue>(p);
+}
+
+jsonObjectValue::jsonObjectValue(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : key_(TlFetchString<string>::parse(p))
+ , value_(TlFetchObject<JSONValue>::parse(p))
+#undef FAIL
+{}
+
+void jsonObjectValue::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(key_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(value_, s);
+}
+
+void jsonObjectValue::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(key_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(value_, s);
+}
+
+void jsonObjectValue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonObjectValue");
+ s.store_field("key", key_);
+ s.store_object_field("value", static_cast<const BaseObject *>(value_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<JSONValue> JSONValue::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case jsonNull::ID:
+ return jsonNull::fetch(p);
+ case jsonBool::ID:
+ return jsonBool::fetch(p);
+ case jsonNumber::ID:
+ return jsonNumber::fetch(p);
+ case jsonString::ID:
+ return jsonString::fetch(p);
+ case jsonArray::ID:
+ return jsonArray::fetch(p);
+ case jsonObject::ID:
+ return jsonObject::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t jsonNull::ID;
+
+object_ptr<JSONValue> jsonNull::fetch(TlBufferParser &p) {
+ return make_tl_object<jsonNull>();
+}
+
+void jsonNull::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void jsonNull::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void jsonNull::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonNull");
+ s.store_class_end();
+ }
+}
+
+jsonBool::jsonBool(bool value_)
+ : value_(value_)
+{}
+
+const std::int32_t jsonBool::ID;
+
+object_ptr<JSONValue> jsonBool::fetch(TlBufferParser &p) {
+ return make_tl_object<jsonBool>(p);
+}
+
+jsonBool::jsonBool(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : value_(TlFetchBool::parse(p))
+#undef FAIL
+{}
+
+void jsonBool::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBool::store(value_, s);
+}
+
+void jsonBool::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBool::store(value_, s);
+}
+
+void jsonBool::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonBool");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+jsonNumber::jsonNumber(double value_)
+ : value_(value_)
+{}
+
+const std::int32_t jsonNumber::ID;
+
+object_ptr<JSONValue> jsonNumber::fetch(TlBufferParser &p) {
+ return make_tl_object<jsonNumber>(p);
+}
+
+jsonNumber::jsonNumber(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : value_(TlFetchDouble::parse(p))
+#undef FAIL
+{}
+
+void jsonNumber::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(value_, s);
+}
+
+void jsonNumber::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(value_, s);
+}
+
+void jsonNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonNumber");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+jsonString::jsonString(string const &value_)
+ : value_(value_)
+{}
+
+const std::int32_t jsonString::ID;
+
+object_ptr<JSONValue> jsonString::fetch(TlBufferParser &p) {
+ return make_tl_object<jsonString>(p);
+}
+
+jsonString::jsonString(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : value_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void jsonString::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(value_, s);
+}
+
+void jsonString::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(value_, s);
+}
+
+void jsonString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonString");
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+jsonArray::jsonArray(array<object_ptr<JSONValue>> &&value_)
+ : value_(std::move(value_))
+{}
+
+const std::int32_t jsonArray::ID;
+
+object_ptr<JSONValue> jsonArray::fetch(TlBufferParser &p) {
+ return make_tl_object<jsonArray>(p);
+}
+
+jsonArray::jsonArray(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : value_(TlFetchBoxed<TlFetchVector<TlFetchObject<JSONValue>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void jsonArray::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(value_, s);
+}
+
+void jsonArray::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(value_, s);
+}
+
+void jsonArray::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonArray");
+ { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+jsonObject::jsonObject(array<object_ptr<jsonObjectValue>> &&value_)
+ : value_(std::move(value_))
+{}
+
+const std::int32_t jsonObject::ID;
+
+object_ptr<JSONValue> jsonObject::fetch(TlBufferParser &p) {
+ return make_tl_object<jsonObject>(p);
+}
+
+jsonObject::jsonObject(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : value_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<jsonObjectValue>, -1059185703>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void jsonObject::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1059185703>>, 481674261>::store(value_, s);
+}
+
+void jsonObject::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1059185703>>, 481674261>::store(value_, s);
+}
+
+void jsonObject::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "jsonObject");
+ { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<KeyboardButton> KeyboardButton::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case keyboardButton::ID:
+ return keyboardButton::fetch(p);
+ case keyboardButtonUrl::ID:
+ return keyboardButtonUrl::fetch(p);
+ case keyboardButtonCallback::ID:
+ return keyboardButtonCallback::fetch(p);
+ case keyboardButtonRequestPhone::ID:
+ return keyboardButtonRequestPhone::fetch(p);
+ case keyboardButtonRequestGeoLocation::ID:
+ return keyboardButtonRequestGeoLocation::fetch(p);
+ case keyboardButtonSwitchInline::ID:
+ return keyboardButtonSwitchInline::fetch(p);
+ case keyboardButtonGame::ID:
+ return keyboardButtonGame::fetch(p);
+ case keyboardButtonBuy::ID:
+ return keyboardButtonBuy::fetch(p);
+ case keyboardButtonUrlAuth::ID:
+ return keyboardButtonUrlAuth::fetch(p);
+ case inputKeyboardButtonUrlAuth::ID:
+ return inputKeyboardButtonUrlAuth::fetch(p);
+ case keyboardButtonRequestPoll::ID:
+ return keyboardButtonRequestPoll::fetch(p);
+ case inputKeyboardButtonUserProfile::ID:
+ return inputKeyboardButtonUserProfile::fetch(p);
+ case keyboardButtonUserProfile::ID:
+ return keyboardButtonUserProfile::fetch(p);
+ case keyboardButtonWebView::ID:
+ return keyboardButtonWebView::fetch(p);
+ case keyboardButtonSimpleWebView::ID:
+ return keyboardButtonSimpleWebView::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+keyboardButton::keyboardButton(string const &text_)
+ : text_(text_)
+{}
+
+const std::int32_t keyboardButton::ID;
+
+object_ptr<KeyboardButton> keyboardButton::fetch(TlBufferParser &p) {
+ return make_tl_object<keyboardButton>(p);
+}
+
+keyboardButton::keyboardButton(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void keyboardButton::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButton::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButton");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonUrl::keyboardButtonUrl(string const &text_, string const &url_)
+ : text_(text_)
+ , url_(url_)
+{}
+
+const std::int32_t keyboardButtonUrl::ID;
+
+object_ptr<KeyboardButton> keyboardButtonUrl::fetch(TlBufferParser &p) {
+ return make_tl_object<keyboardButtonUrl>(p);
+}
+
+keyboardButtonUrl::keyboardButtonUrl(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+ , url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void keyboardButtonUrl::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(url_, s);
+}
+
+void keyboardButtonUrl::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(url_, s);
+}
+
+void keyboardButtonUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonUrl");
+ s.store_field("text", text_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonCallback::keyboardButtonCallback()
+ : flags_()
+ , requires_password_()
+ , text_()
+ , data_()
+{}
+
+keyboardButtonCallback::keyboardButtonCallback(int32 flags_, bool requires_password_, string const &text_, bytes &&data_)
+ : flags_(flags_)
+ , requires_password_(requires_password_)
+ , text_(text_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t keyboardButtonCallback::ID;
+
+object_ptr<KeyboardButton> keyboardButtonCallback::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<keyboardButtonCallback> res = make_tl_object<keyboardButtonCallback>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->requires_password_ = TlFetchTrue::parse(p); }
+ res->text_ = TlFetchString<string>::parse(p);
+ res->data_ = TlFetchBytes<bytes>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void keyboardButtonCallback::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(data_, s);
+}
+
+void keyboardButtonCallback::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(data_, s);
+}
+
+void keyboardButtonCallback::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonCallback");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("text", text_);
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonRequestPhone::keyboardButtonRequestPhone(string const &text_)
+ : text_(text_)
+{}
+
+const std::int32_t keyboardButtonRequestPhone::ID;
+
+object_ptr<KeyboardButton> keyboardButtonRequestPhone::fetch(TlBufferParser &p) {
+ return make_tl_object<keyboardButtonRequestPhone>(p);
+}
+
+keyboardButtonRequestPhone::keyboardButtonRequestPhone(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void keyboardButtonRequestPhone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButtonRequestPhone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButtonRequestPhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonRequestPhone");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonRequestGeoLocation::keyboardButtonRequestGeoLocation(string const &text_)
+ : text_(text_)
+{}
+
+const std::int32_t keyboardButtonRequestGeoLocation::ID;
+
+object_ptr<KeyboardButton> keyboardButtonRequestGeoLocation::fetch(TlBufferParser &p) {
+ return make_tl_object<keyboardButtonRequestGeoLocation>(p);
+}
+
+keyboardButtonRequestGeoLocation::keyboardButtonRequestGeoLocation(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void keyboardButtonRequestGeoLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButtonRequestGeoLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButtonRequestGeoLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonRequestGeoLocation");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonSwitchInline::keyboardButtonSwitchInline()
+ : flags_()
+ , same_peer_()
+ , text_()
+ , query_()
+{}
+
+keyboardButtonSwitchInline::keyboardButtonSwitchInline(int32 flags_, bool same_peer_, string const &text_, string const &query_)
+ : flags_(flags_)
+ , same_peer_(same_peer_)
+ , text_(text_)
+ , query_(query_)
+{}
+
+const std::int32_t keyboardButtonSwitchInline::ID;
+
+object_ptr<KeyboardButton> keyboardButtonSwitchInline::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<keyboardButtonSwitchInline> res = make_tl_object<keyboardButtonSwitchInline>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->same_peer_ = TlFetchTrue::parse(p); }
+ res->text_ = TlFetchString<string>::parse(p);
+ res->query_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void keyboardButtonSwitchInline::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(query_, s);
+}
+
+void keyboardButtonSwitchInline::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(query_, s);
+}
+
+void keyboardButtonSwitchInline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonSwitchInline");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("text", text_);
+ s.store_field("query", query_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonGame::keyboardButtonGame(string const &text_)
+ : text_(text_)
+{}
+
+const std::int32_t keyboardButtonGame::ID;
+
+object_ptr<KeyboardButton> keyboardButtonGame::fetch(TlBufferParser &p) {
+ return make_tl_object<keyboardButtonGame>(p);
+}
+
+keyboardButtonGame::keyboardButtonGame(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void keyboardButtonGame::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButtonGame::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButtonGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonGame");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonBuy::keyboardButtonBuy(string const &text_)
+ : text_(text_)
+{}
+
+const std::int32_t keyboardButtonBuy::ID;
+
+object_ptr<KeyboardButton> keyboardButtonBuy::fetch(TlBufferParser &p) {
+ return make_tl_object<keyboardButtonBuy>(p);
+}
+
+keyboardButtonBuy::keyboardButtonBuy(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void keyboardButtonBuy::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButtonBuy::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButtonBuy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonBuy");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonUrlAuth::keyboardButtonUrlAuth()
+ : flags_()
+ , text_()
+ , fwd_text_()
+ , url_()
+ , button_id_()
+{}
+
+keyboardButtonUrlAuth::keyboardButtonUrlAuth(int32 flags_, string const &text_, string const &fwd_text_, string const &url_, int32 button_id_)
+ : flags_(flags_)
+ , text_(text_)
+ , fwd_text_(fwd_text_)
+ , url_(url_)
+ , button_id_(button_id_)
+{}
+
+const std::int32_t keyboardButtonUrlAuth::ID;
+
+object_ptr<KeyboardButton> keyboardButtonUrlAuth::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<keyboardButtonUrlAuth> res = make_tl_object<keyboardButtonUrlAuth>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->text_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->fwd_text_ = TlFetchString<string>::parse(p); }
+ res->url_ = TlFetchString<string>::parse(p);
+ res->button_id_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void keyboardButtonUrlAuth::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(text_, s);
+ if (var0 & 1) { TlStoreString::store(fwd_text_, s); }
+ TlStoreString::store(url_, s);
+ TlStoreBinary::store(button_id_, s);
+}
+
+void keyboardButtonUrlAuth::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(text_, s);
+ if (var0 & 1) { TlStoreString::store(fwd_text_, s); }
+ TlStoreString::store(url_, s);
+ TlStoreBinary::store(button_id_, s);
+}
+
+void keyboardButtonUrlAuth::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonUrlAuth");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("text", text_);
+ if (var0 & 1) { s.store_field("fwd_text", fwd_text_); }
+ s.store_field("url", url_);
+ s.store_field("button_id", button_id_);
+ s.store_class_end();
+ }
+}
+
+inputKeyboardButtonUrlAuth::inputKeyboardButtonUrlAuth()
+ : flags_()
+ , request_write_access_()
+ , text_()
+ , fwd_text_()
+ , url_()
+ , bot_()
+{}
+
+inputKeyboardButtonUrlAuth::inputKeyboardButtonUrlAuth(int32 flags_, bool request_write_access_, string const &text_, string const &fwd_text_, string const &url_, object_ptr<InputUser> &&bot_)
+ : flags_(flags_)
+ , request_write_access_(request_write_access_)
+ , text_(text_)
+ , fwd_text_(fwd_text_)
+ , url_(url_)
+ , bot_(std::move(bot_))
+{}
+
+const std::int32_t inputKeyboardButtonUrlAuth::ID;
+
+object_ptr<KeyboardButton> inputKeyboardButtonUrlAuth::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<inputKeyboardButtonUrlAuth> res = make_tl_object<inputKeyboardButtonUrlAuth>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->request_write_access_ = TlFetchTrue::parse(p); }
+ res->text_ = TlFetchString<string>::parse(p);
+ if (var0 & 2) { res->fwd_text_ = TlFetchString<string>::parse(p); }
+ res->url_ = TlFetchString<string>::parse(p);
+ res->bot_ = TlFetchObject<InputUser>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void inputKeyboardButtonUrlAuth::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(text_, s);
+ if (var0 & 2) { TlStoreString::store(fwd_text_, s); }
+ TlStoreString::store(url_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+}
+
+void inputKeyboardButtonUrlAuth::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(text_, s);
+ if (var0 & 2) { TlStoreString::store(fwd_text_, s); }
+ TlStoreString::store(url_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+}
+
+void inputKeyboardButtonUrlAuth::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputKeyboardButtonUrlAuth");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("text", text_);
+ if (var0 & 2) { s.store_field("fwd_text", fwd_text_); }
+ s.store_field("url", url_);
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ s.store_class_end();
+ }
+}
+
+keyboardButtonRequestPoll::keyboardButtonRequestPoll()
+ : flags_()
+ , quiz_()
+ , text_()
+{}
+
+keyboardButtonRequestPoll::keyboardButtonRequestPoll(int32 flags_, bool quiz_, string const &text_)
+ : flags_(flags_)
+ , quiz_(quiz_)
+ , text_(text_)
+{}
+
+const std::int32_t keyboardButtonRequestPoll::ID;
+
+object_ptr<KeyboardButton> keyboardButtonRequestPoll::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<keyboardButtonRequestPoll> res = make_tl_object<keyboardButtonRequestPoll>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->quiz_ = TlFetchBool::parse(p); }
+ res->text_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void keyboardButtonRequestPoll::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBool::store(quiz_, s); }
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButtonRequestPoll::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBool::store(quiz_, s); }
+ TlStoreString::store(text_, s);
+}
+
+void keyboardButtonRequestPoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonRequestPoll");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("quiz", quiz_); }
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+inputKeyboardButtonUserProfile::inputKeyboardButtonUserProfile(string const &text_, object_ptr<InputUser> &&user_id_)
+ : text_(text_)
+ , user_id_(std::move(user_id_))
+{}
+
+const std::int32_t inputKeyboardButtonUserProfile::ID;
+
+object_ptr<KeyboardButton> inputKeyboardButtonUserProfile::fetch(TlBufferParser &p) {
+ return make_tl_object<inputKeyboardButtonUserProfile>(p);
+}
+
+inputKeyboardButtonUserProfile::inputKeyboardButtonUserProfile(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+ , user_id_(TlFetchObject<InputUser>::parse(p))
+#undef FAIL
+{}
+
+void inputKeyboardButtonUserProfile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void inputKeyboardButtonUserProfile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void inputKeyboardButtonUserProfile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputKeyboardButtonUserProfile");
+ s.store_field("text", text_);
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_class_end();
+ }
+}
+
+keyboardButtonUserProfile::keyboardButtonUserProfile(string const &text_, int64 user_id_)
+ : text_(text_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t keyboardButtonUserProfile::ID;
+
+object_ptr<KeyboardButton> keyboardButtonUserProfile::fetch(TlBufferParser &p) {
+ return make_tl_object<keyboardButtonUserProfile>(p);
+}
+
+keyboardButtonUserProfile::keyboardButtonUserProfile(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void keyboardButtonUserProfile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void keyboardButtonUserProfile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void keyboardButtonUserProfile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonUserProfile");
+ s.store_field("text", text_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonWebView::keyboardButtonWebView(string const &text_, string const &url_)
+ : text_(text_)
+ , url_(url_)
+{}
+
+const std::int32_t keyboardButtonWebView::ID;
+
+object_ptr<KeyboardButton> keyboardButtonWebView::fetch(TlBufferParser &p) {
+ return make_tl_object<keyboardButtonWebView>(p);
+}
+
+keyboardButtonWebView::keyboardButtonWebView(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+ , url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void keyboardButtonWebView::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(url_, s);
+}
+
+void keyboardButtonWebView::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(url_, s);
+}
+
+void keyboardButtonWebView::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonWebView");
+ s.store_field("text", text_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonSimpleWebView::keyboardButtonSimpleWebView(string const &text_, string const &url_)
+ : text_(text_)
+ , url_(url_)
+{}
+
+const std::int32_t keyboardButtonSimpleWebView::ID;
+
+object_ptr<KeyboardButton> keyboardButtonSimpleWebView::fetch(TlBufferParser &p) {
+ return make_tl_object<keyboardButtonSimpleWebView>(p);
+}
+
+keyboardButtonSimpleWebView::keyboardButtonSimpleWebView(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+ , url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void keyboardButtonSimpleWebView::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(url_, s);
+}
+
+void keyboardButtonSimpleWebView::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(url_, s);
+}
+
+void keyboardButtonSimpleWebView::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonSimpleWebView");
+ s.store_field("text", text_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+keyboardButtonRow::keyboardButtonRow(array<object_ptr<KeyboardButton>> &&buttons_)
+ : buttons_(std::move(buttons_))
+{}
+
+const std::int32_t keyboardButtonRow::ID;
+
+object_ptr<keyboardButtonRow> keyboardButtonRow::fetch(TlBufferParser &p) {
+ return make_tl_object<keyboardButtonRow>(p);
+}
+
+keyboardButtonRow::keyboardButtonRow(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : buttons_(TlFetchBoxed<TlFetchVector<TlFetchObject<KeyboardButton>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void keyboardButtonRow::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(buttons_, s);
+}
+
+void keyboardButtonRow::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(buttons_, s);
+}
+
+void keyboardButtonRow::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "keyboardButtonRow");
+ { s.store_vector_begin("buttons", buttons_.size()); for (const auto &_value : buttons_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+labeledPrice::labeledPrice(string const &label_, int64 amount_)
+ : label_(label_)
+ , amount_(amount_)
+{}
+
+const std::int32_t labeledPrice::ID;
+
+object_ptr<labeledPrice> labeledPrice::fetch(TlBufferParser &p) {
+ return make_tl_object<labeledPrice>(p);
+}
+
+labeledPrice::labeledPrice(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : label_(TlFetchString<string>::parse(p))
+ , amount_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void labeledPrice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(label_, s);
+ TlStoreBinary::store(amount_, s);
+}
+
+void labeledPrice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(label_, s);
+ TlStoreBinary::store(amount_, s);
+}
+
+void labeledPrice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "labeledPrice");
+ s.store_field("label", label_);
+ s.store_field("amount", amount_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t langPackDifference::ID;
+
+object_ptr<langPackDifference> langPackDifference::fetch(TlBufferParser &p) {
+ return make_tl_object<langPackDifference>(p);
+}
+
+langPackDifference::langPackDifference(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : lang_code_(TlFetchString<string>::parse(p))
+ , from_version_(TlFetchInt::parse(p))
+ , version_(TlFetchInt::parse(p))
+ , strings_(TlFetchBoxed<TlFetchVector<TlFetchObject<LangPackString>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void langPackDifference::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "langPackDifference");
+ s.store_field("lang_code", lang_code_);
+ s.store_field("from_version", from_version_);
+ s.store_field("version", version_);
+ { s.store_vector_begin("strings", strings_.size()); for (const auto &_value : strings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+langPackLanguage::langPackLanguage()
+ : flags_()
+ , official_()
+ , rtl_()
+ , beta_()
+ , name_()
+ , native_name_()
+ , lang_code_()
+ , base_lang_code_()
+ , plural_code_()
+ , strings_count_()
+ , translated_count_()
+ , translations_url_()
+{}
+
+const std::int32_t langPackLanguage::ID;
+
+object_ptr<langPackLanguage> langPackLanguage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<langPackLanguage> res = make_tl_object<langPackLanguage>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->official_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->rtl_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->beta_ = TlFetchTrue::parse(p); }
+ res->name_ = TlFetchString<string>::parse(p);
+ res->native_name_ = TlFetchString<string>::parse(p);
+ res->lang_code_ = TlFetchString<string>::parse(p);
+ if (var0 & 2) { res->base_lang_code_ = TlFetchString<string>::parse(p); }
+ res->plural_code_ = TlFetchString<string>::parse(p);
+ res->strings_count_ = TlFetchInt::parse(p);
+ res->translated_count_ = TlFetchInt::parse(p);
+ res->translations_url_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void langPackLanguage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "langPackLanguage");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("name", name_);
+ s.store_field("native_name", native_name_);
+ s.store_field("lang_code", lang_code_);
+ if (var0 & 2) { s.store_field("base_lang_code", base_lang_code_); }
+ s.store_field("plural_code", plural_code_);
+ s.store_field("strings_count", strings_count_);
+ s.store_field("translated_count", translated_count_);
+ s.store_field("translations_url", translations_url_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<LangPackString> LangPackString::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case langPackString::ID:
+ return langPackString::fetch(p);
+ case langPackStringPluralized::ID:
+ return langPackStringPluralized::fetch(p);
+ case langPackStringDeleted::ID:
+ return langPackStringDeleted::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+langPackString::langPackString(string const &key_, string const &value_)
+ : key_(key_)
+ , value_(value_)
+{}
+
+const std::int32_t langPackString::ID;
+
+object_ptr<LangPackString> langPackString::fetch(TlBufferParser &p) {
+ return make_tl_object<langPackString>(p);
+}
+
+langPackString::langPackString(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : key_(TlFetchString<string>::parse(p))
+ , value_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void langPackString::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "langPackString");
+ s.store_field("key", key_);
+ s.store_field("value", value_);
+ s.store_class_end();
+ }
+}
+
+langPackStringPluralized::langPackStringPluralized()
+ : flags_()
+ , key_()
+ , zero_value_()
+ , one_value_()
+ , two_value_()
+ , few_value_()
+ , many_value_()
+ , other_value_()
+{}
+
+langPackStringPluralized::langPackStringPluralized(int32 flags_, string const &key_, string const &zero_value_, string const &one_value_, string const &two_value_, string const &few_value_, string const &many_value_, string const &other_value_)
+ : flags_(flags_)
+ , key_(key_)
+ , zero_value_(zero_value_)
+ , one_value_(one_value_)
+ , two_value_(two_value_)
+ , few_value_(few_value_)
+ , many_value_(many_value_)
+ , other_value_(other_value_)
+{}
+
+const std::int32_t langPackStringPluralized::ID;
+
+object_ptr<LangPackString> langPackStringPluralized::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<langPackStringPluralized> res = make_tl_object<langPackStringPluralized>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->key_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->zero_value_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2) { res->one_value_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->two_value_ = TlFetchString<string>::parse(p); }
+ if (var0 & 8) { res->few_value_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->many_value_ = TlFetchString<string>::parse(p); }
+ res->other_value_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void langPackStringPluralized::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "langPackStringPluralized");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("key", key_);
+ if (var0 & 1) { s.store_field("zero_value", zero_value_); }
+ if (var0 & 2) { s.store_field("one_value", one_value_); }
+ if (var0 & 4) { s.store_field("two_value", two_value_); }
+ if (var0 & 8) { s.store_field("few_value", few_value_); }
+ if (var0 & 16) { s.store_field("many_value", many_value_); }
+ s.store_field("other_value", other_value_);
+ s.store_class_end();
+ }
+}
+
+langPackStringDeleted::langPackStringDeleted(string const &key_)
+ : key_(key_)
+{}
+
+const std::int32_t langPackStringDeleted::ID;
+
+object_ptr<LangPackString> langPackStringDeleted::fetch(TlBufferParser &p) {
+ return make_tl_object<langPackStringDeleted>(p);
+}
+
+langPackStringDeleted::langPackStringDeleted(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : key_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void langPackStringDeleted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "langPackStringDeleted");
+ s.store_field("key", key_);
+ s.store_class_end();
+ }
+}
+
+maskCoords::maskCoords(int32 n_, double x_, double y_, double zoom_)
+ : n_(n_)
+ , x_(x_)
+ , y_(y_)
+ , zoom_(zoom_)
+{}
+
+const std::int32_t maskCoords::ID;
+
+object_ptr<maskCoords> maskCoords::fetch(TlBufferParser &p) {
+ return make_tl_object<maskCoords>(p);
+}
+
+maskCoords::maskCoords(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : n_(TlFetchInt::parse(p))
+ , x_(TlFetchDouble::parse(p))
+ , y_(TlFetchDouble::parse(p))
+ , zoom_(TlFetchDouble::parse(p))
+#undef FAIL
+{}
+
+void maskCoords::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(n_, s);
+ TlStoreBinary::store(x_, s);
+ TlStoreBinary::store(y_, s);
+ TlStoreBinary::store(zoom_, s);
+}
+
+void maskCoords::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(n_, s);
+ TlStoreBinary::store(x_, s);
+ TlStoreBinary::store(y_, s);
+ TlStoreBinary::store(zoom_, s);
+}
+
+void maskCoords::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "maskCoords");
+ s.store_field("n", n_);
+ s.store_field("x", x_);
+ s.store_field("y", y_);
+ s.store_field("zoom", zoom_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<Message> Message::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messageEmpty::ID:
+ return messageEmpty::fetch(p);
+ case message::ID:
+ return message::fetch(p);
+ case messageService::ID:
+ return messageService::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+messageEmpty::messageEmpty()
+ : flags_()
+ , id_()
+ , peer_id_()
+{}
+
+const std::int32_t messageEmpty::ID;
+
+object_ptr<Message> messageEmpty::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageEmpty> res = make_tl_object<messageEmpty>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->id_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->peer_id_ = TlFetchObject<Peer>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEmpty");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ if (var0 & 1) { s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get())); }
+ s.store_class_end();
+ }
+}
+
+message::message()
+ : flags_()
+ , out_()
+ , mentioned_()
+ , media_unread_()
+ , silent_()
+ , post_()
+ , from_scheduled_()
+ , legacy_()
+ , edit_hide_()
+ , pinned_()
+ , noforwards_()
+ , id_()
+ , from_id_()
+ , peer_id_()
+ , fwd_from_()
+ , via_bot_id_()
+ , reply_to_()
+ , date_()
+ , message_()
+ , media_()
+ , reply_markup_()
+ , entities_()
+ , views_()
+ , forwards_()
+ , replies_()
+ , edit_date_()
+ , post_author_()
+ , grouped_id_()
+ , reactions_()
+ , restriction_reason_()
+ , ttl_period_()
+{}
+
+message::message(int32 flags_, bool out_, bool mentioned_, bool media_unread_, bool silent_, bool post_, bool from_scheduled_, bool legacy_, bool edit_hide_, bool pinned_, bool noforwards_, int32 id_, object_ptr<Peer> &&from_id_, object_ptr<Peer> &&peer_id_, object_ptr<messageFwdHeader> &&fwd_from_, int64 via_bot_id_, object_ptr<messageReplyHeader> &&reply_to_, int32 date_, string const &message_, object_ptr<MessageMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 views_, int32 forwards_, object_ptr<messageReplies> &&replies_, int32 edit_date_, string const &post_author_, int64 grouped_id_, object_ptr<messageReactions> &&reactions_, array<object_ptr<restrictionReason>> &&restriction_reason_, int32 ttl_period_)
+ : flags_(flags_)
+ , out_(out_)
+ , mentioned_(mentioned_)
+ , media_unread_(media_unread_)
+ , silent_(silent_)
+ , post_(post_)
+ , from_scheduled_(from_scheduled_)
+ , legacy_(legacy_)
+ , edit_hide_(edit_hide_)
+ , pinned_(pinned_)
+ , noforwards_(noforwards_)
+ , id_(id_)
+ , from_id_(std::move(from_id_))
+ , peer_id_(std::move(peer_id_))
+ , fwd_from_(std::move(fwd_from_))
+ , via_bot_id_(via_bot_id_)
+ , reply_to_(std::move(reply_to_))
+ , date_(date_)
+ , message_(message_)
+ , media_(std::move(media_))
+ , reply_markup_(std::move(reply_markup_))
+ , entities_(std::move(entities_))
+ , views_(views_)
+ , forwards_(forwards_)
+ , replies_(std::move(replies_))
+ , edit_date_(edit_date_)
+ , post_author_(post_author_)
+ , grouped_id_(grouped_id_)
+ , reactions_(std::move(reactions_))
+ , restriction_reason_(std::move(restriction_reason_))
+ , ttl_period_(ttl_period_)
+{}
+
+const std::int32_t message::ID;
+
+object_ptr<Message> message::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<message> res = make_tl_object<message>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->out_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->mentioned_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->media_unread_ = TlFetchTrue::parse(p); }
+ if (var0 & 8192) { res->silent_ = TlFetchTrue::parse(p); }
+ if (var0 & 16384) { res->post_ = TlFetchTrue::parse(p); }
+ if (var0 & 262144) { res->from_scheduled_ = TlFetchTrue::parse(p); }
+ if (var0 & 524288) { res->legacy_ = TlFetchTrue::parse(p); }
+ if (var0 & 2097152) { res->edit_hide_ = TlFetchTrue::parse(p); }
+ if (var0 & 16777216) { res->pinned_ = TlFetchTrue::parse(p); }
+ if (var0 & 67108864) { res->noforwards_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ if (var0 & 256) { res->from_id_ = TlFetchObject<Peer>::parse(p); }
+ res->peer_id_ = TlFetchObject<Peer>::parse(p);
+ if (var0 & 4) { res->fwd_from_ = TlFetchBoxed<TlFetchObject<messageFwdHeader>, 1601666510>::parse(p); }
+ if (var0 & 2048) { res->via_bot_id_ = TlFetchLong::parse(p); }
+ if (var0 & 8) { res->reply_to_ = TlFetchBoxed<TlFetchObject<messageReplyHeader>, -1495959709>::parse(p); }
+ res->date_ = TlFetchInt::parse(p);
+ res->message_ = TlFetchString<string>::parse(p);
+ if (var0 & 512) { res->media_ = TlFetchObject<MessageMedia>::parse(p); }
+ if (var0 & 64) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); }
+ if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (var0 & 1024) { res->views_ = TlFetchInt::parse(p); }
+ if (var0 & 1024) { res->forwards_ = TlFetchInt::parse(p); }
+ if (var0 & 8388608) { res->replies_ = TlFetchBoxed<TlFetchObject<messageReplies>, -2083123262>::parse(p); }
+ if (var0 & 32768) { res->edit_date_ = TlFetchInt::parse(p); }
+ if (var0 & 65536) { res->post_author_ = TlFetchString<string>::parse(p); }
+ if (var0 & 131072) { res->grouped_id_ = TlFetchLong::parse(p); }
+ if (var0 & 1048576) { res->reactions_ = TlFetchBoxed<TlFetchObject<messageReactions>, 1328256121>::parse(p); }
+ if (var0 & 4194304) { res->restriction_reason_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<restrictionReason>, -797791052>>, 481674261>::parse(p); }
+ if (var0 & 33554432) { res->ttl_period_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void message::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "message");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ if (var0 & 256) { s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); }
+ s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get()));
+ if (var0 & 4) { s.store_object_field("fwd_from", static_cast<const BaseObject *>(fwd_from_.get())); }
+ if (var0 & 2048) { s.store_field("via_bot_id", via_bot_id_); }
+ if (var0 & 8) { s.store_object_field("reply_to", static_cast<const BaseObject *>(reply_to_.get())); }
+ s.store_field("date", date_);
+ s.store_field("message", message_);
+ if (var0 & 512) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); }
+ if (var0 & 64) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 1024) { s.store_field("views", views_); }
+ if (var0 & 1024) { s.store_field("forwards", forwards_); }
+ if (var0 & 8388608) { s.store_object_field("replies", static_cast<const BaseObject *>(replies_.get())); }
+ if (var0 & 32768) { s.store_field("edit_date", edit_date_); }
+ if (var0 & 65536) { s.store_field("post_author", post_author_); }
+ if (var0 & 131072) { s.store_field("grouped_id", grouped_id_); }
+ if (var0 & 1048576) { s.store_object_field("reactions", static_cast<const BaseObject *>(reactions_.get())); }
+ if (var0 & 4194304) { { s.store_vector_begin("restriction_reason", restriction_reason_.size()); for (const auto &_value : restriction_reason_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 33554432) { s.store_field("ttl_period", ttl_period_); }
+ s.store_class_end();
+ }
+}
+
+messageService::messageService()
+ : flags_()
+ , out_()
+ , mentioned_()
+ , media_unread_()
+ , silent_()
+ , post_()
+ , legacy_()
+ , id_()
+ , from_id_()
+ , peer_id_()
+ , reply_to_()
+ , date_()
+ , action_()
+ , ttl_period_()
+{}
+
+const std::int32_t messageService::ID;
+
+object_ptr<Message> messageService::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageService> res = make_tl_object<messageService>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->out_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->mentioned_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->media_unread_ = TlFetchTrue::parse(p); }
+ if (var0 & 8192) { res->silent_ = TlFetchTrue::parse(p); }
+ if (var0 & 16384) { res->post_ = TlFetchTrue::parse(p); }
+ if (var0 & 524288) { res->legacy_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ if (var0 & 256) { res->from_id_ = TlFetchObject<Peer>::parse(p); }
+ res->peer_id_ = TlFetchObject<Peer>::parse(p);
+ if (var0 & 8) { res->reply_to_ = TlFetchBoxed<TlFetchObject<messageReplyHeader>, -1495959709>::parse(p); }
+ res->date_ = TlFetchInt::parse(p);
+ res->action_ = TlFetchObject<MessageAction>::parse(p);
+ if (var0 & 33554432) { res->ttl_period_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageService::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageService");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ if (var0 & 256) { s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); }
+ s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get()));
+ if (var0 & 8) { s.store_object_field("reply_to", static_cast<const BaseObject *>(reply_to_.get())); }
+ s.store_field("date", date_);
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ if (var0 & 33554432) { s.store_field("ttl_period", ttl_period_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<MessageAction> MessageAction::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messageActionEmpty::ID:
+ return messageActionEmpty::fetch(p);
+ case messageActionChatCreate::ID:
+ return messageActionChatCreate::fetch(p);
+ case messageActionChatEditTitle::ID:
+ return messageActionChatEditTitle::fetch(p);
+ case messageActionChatEditPhoto::ID:
+ return messageActionChatEditPhoto::fetch(p);
+ case messageActionChatDeletePhoto::ID:
+ return messageActionChatDeletePhoto::fetch(p);
+ case messageActionChatAddUser::ID:
+ return messageActionChatAddUser::fetch(p);
+ case messageActionChatDeleteUser::ID:
+ return messageActionChatDeleteUser::fetch(p);
+ case messageActionChatJoinedByLink::ID:
+ return messageActionChatJoinedByLink::fetch(p);
+ case messageActionChannelCreate::ID:
+ return messageActionChannelCreate::fetch(p);
+ case messageActionChatMigrateTo::ID:
+ return messageActionChatMigrateTo::fetch(p);
+ case messageActionChannelMigrateFrom::ID:
+ return messageActionChannelMigrateFrom::fetch(p);
+ case messageActionPinMessage::ID:
+ return messageActionPinMessage::fetch(p);
+ case messageActionHistoryClear::ID:
+ return messageActionHistoryClear::fetch(p);
+ case messageActionGameScore::ID:
+ return messageActionGameScore::fetch(p);
+ case messageActionPaymentSentMe::ID:
+ return messageActionPaymentSentMe::fetch(p);
+ case messageActionPaymentSent::ID:
+ return messageActionPaymentSent::fetch(p);
+ case messageActionPhoneCall::ID:
+ return messageActionPhoneCall::fetch(p);
+ case messageActionScreenshotTaken::ID:
+ return messageActionScreenshotTaken::fetch(p);
+ case messageActionCustomAction::ID:
+ return messageActionCustomAction::fetch(p);
+ case messageActionBotAllowed::ID:
+ return messageActionBotAllowed::fetch(p);
+ case messageActionSecureValuesSentMe::ID:
+ return messageActionSecureValuesSentMe::fetch(p);
+ case messageActionSecureValuesSent::ID:
+ return messageActionSecureValuesSent::fetch(p);
+ case messageActionContactSignUp::ID:
+ return messageActionContactSignUp::fetch(p);
+ case messageActionGeoProximityReached::ID:
+ return messageActionGeoProximityReached::fetch(p);
+ case messageActionGroupCall::ID:
+ return messageActionGroupCall::fetch(p);
+ case messageActionInviteToGroupCall::ID:
+ return messageActionInviteToGroupCall::fetch(p);
+ case messageActionSetMessagesTTL::ID:
+ return messageActionSetMessagesTTL::fetch(p);
+ case messageActionGroupCallScheduled::ID:
+ return messageActionGroupCallScheduled::fetch(p);
+ case messageActionSetChatTheme::ID:
+ return messageActionSetChatTheme::fetch(p);
+ case messageActionChatJoinedByRequest::ID:
+ return messageActionChatJoinedByRequest::fetch(p);
+ case messageActionWebViewDataSentMe::ID:
+ return messageActionWebViewDataSentMe::fetch(p);
+ case messageActionWebViewDataSent::ID:
+ return messageActionWebViewDataSent::fetch(p);
+ case messageActionGiftPremium::ID:
+ return messageActionGiftPremium::fetch(p);
+ case messageActionTopicCreate::ID:
+ return messageActionTopicCreate::fetch(p);
+ case messageActionTopicEdit::ID:
+ return messageActionTopicEdit::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messageActionEmpty::ID;
+
+object_ptr<MessageAction> messageActionEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionEmpty>();
+}
+
+void messageActionEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionEmpty");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChatCreate::ID;
+
+object_ptr<MessageAction> messageActionChatCreate::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChatCreate>(p);
+}
+
+messageActionChatCreate::messageActionChatCreate(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : title_(TlFetchString<string>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messageActionChatCreate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChatCreate");
+ s.store_field("title", title_);
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChatEditTitle::ID;
+
+object_ptr<MessageAction> messageActionChatEditTitle::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChatEditTitle>(p);
+}
+
+messageActionChatEditTitle::messageActionChatEditTitle(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : title_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageActionChatEditTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChatEditTitle");
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChatEditPhoto::ID;
+
+object_ptr<MessageAction> messageActionChatEditPhoto::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChatEditPhoto>(p);
+}
+
+messageActionChatEditPhoto::messageActionChatEditPhoto(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : photo_(TlFetchObject<Photo>::parse(p))
+#undef FAIL
+{}
+
+void messageActionChatEditPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChatEditPhoto");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChatDeletePhoto::ID;
+
+object_ptr<MessageAction> messageActionChatDeletePhoto::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChatDeletePhoto>();
+}
+
+void messageActionChatDeletePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChatDeletePhoto");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChatAddUser::ID;
+
+object_ptr<MessageAction> messageActionChatAddUser::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChatAddUser>(p);
+}
+
+messageActionChatAddUser::messageActionChatAddUser(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : users_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messageActionChatAddUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChatAddUser");
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChatDeleteUser::ID;
+
+object_ptr<MessageAction> messageActionChatDeleteUser::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChatDeleteUser>(p);
+}
+
+messageActionChatDeleteUser::messageActionChatDeleteUser(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void messageActionChatDeleteUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChatDeleteUser");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChatJoinedByLink::ID;
+
+object_ptr<MessageAction> messageActionChatJoinedByLink::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChatJoinedByLink>(p);
+}
+
+messageActionChatJoinedByLink::messageActionChatJoinedByLink(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : inviter_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void messageActionChatJoinedByLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChatJoinedByLink");
+ s.store_field("inviter_id", inviter_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChannelCreate::ID;
+
+object_ptr<MessageAction> messageActionChannelCreate::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChannelCreate>(p);
+}
+
+messageActionChannelCreate::messageActionChannelCreate(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : title_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageActionChannelCreate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChannelCreate");
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChatMigrateTo::ID;
+
+object_ptr<MessageAction> messageActionChatMigrateTo::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChatMigrateTo>(p);
+}
+
+messageActionChatMigrateTo::messageActionChatMigrateTo(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void messageActionChatMigrateTo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChatMigrateTo");
+ s.store_field("channel_id", channel_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChannelMigrateFrom::ID;
+
+object_ptr<MessageAction> messageActionChannelMigrateFrom::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChannelMigrateFrom>(p);
+}
+
+messageActionChannelMigrateFrom::messageActionChannelMigrateFrom(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : title_(TlFetchString<string>::parse(p))
+ , chat_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void messageActionChannelMigrateFrom::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChannelMigrateFrom");
+ s.store_field("title", title_);
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionPinMessage::ID;
+
+object_ptr<MessageAction> messageActionPinMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionPinMessage>();
+}
+
+void messageActionPinMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionPinMessage");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionHistoryClear::ID;
+
+object_ptr<MessageAction> messageActionHistoryClear::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionHistoryClear>();
+}
+
+void messageActionHistoryClear::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionHistoryClear");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionGameScore::ID;
+
+object_ptr<MessageAction> messageActionGameScore::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionGameScore>(p);
+}
+
+messageActionGameScore::messageActionGameScore(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : game_id_(TlFetchLong::parse(p))
+ , score_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageActionGameScore::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionGameScore");
+ s.store_field("game_id", game_id_);
+ s.store_field("score", score_);
+ s.store_class_end();
+ }
+}
+
+messageActionPaymentSentMe::messageActionPaymentSentMe()
+ : flags_()
+ , recurring_init_()
+ , recurring_used_()
+ , currency_()
+ , total_amount_()
+ , payload_()
+ , info_()
+ , shipping_option_id_()
+ , charge_()
+{}
+
+const std::int32_t messageActionPaymentSentMe::ID;
+
+object_ptr<MessageAction> messageActionPaymentSentMe::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageActionPaymentSentMe> res = make_tl_object<messageActionPaymentSentMe>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 4) { res->recurring_init_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->recurring_used_ = TlFetchTrue::parse(p); }
+ res->currency_ = TlFetchString<string>::parse(p);
+ res->total_amount_ = TlFetchLong::parse(p);
+ res->payload_ = TlFetchBytes<bytes>::parse(p);
+ if (var0 & 1) { res->info_ = TlFetchBoxed<TlFetchObject<paymentRequestedInfo>, -1868808300>::parse(p); }
+ if (var0 & 2) { res->shipping_option_id_ = TlFetchString<string>::parse(p); }
+ res->charge_ = TlFetchBoxed<TlFetchObject<paymentCharge>, -368917890>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageActionPaymentSentMe::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionPaymentSentMe");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("currency", currency_);
+ s.store_field("total_amount", total_amount_);
+ s.store_bytes_field("payload", payload_);
+ if (var0 & 1) { s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); }
+ if (var0 & 2) { s.store_field("shipping_option_id", shipping_option_id_); }
+ s.store_object_field("charge", static_cast<const BaseObject *>(charge_.get()));
+ s.store_class_end();
+ }
+}
+
+messageActionPaymentSent::messageActionPaymentSent()
+ : flags_()
+ , recurring_init_()
+ , recurring_used_()
+ , currency_()
+ , total_amount_()
+ , invoice_slug_()
+{}
+
+const std::int32_t messageActionPaymentSent::ID;
+
+object_ptr<MessageAction> messageActionPaymentSent::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageActionPaymentSent> res = make_tl_object<messageActionPaymentSent>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 4) { res->recurring_init_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->recurring_used_ = TlFetchTrue::parse(p); }
+ res->currency_ = TlFetchString<string>::parse(p);
+ res->total_amount_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->invoice_slug_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageActionPaymentSent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionPaymentSent");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("currency", currency_);
+ s.store_field("total_amount", total_amount_);
+ if (var0 & 1) { s.store_field("invoice_slug", invoice_slug_); }
+ s.store_class_end();
+ }
+}
+
+messageActionPhoneCall::messageActionPhoneCall()
+ : flags_()
+ , video_()
+ , call_id_()
+ , reason_()
+ , duration_()
+{}
+
+const std::int32_t messageActionPhoneCall::ID;
+
+object_ptr<MessageAction> messageActionPhoneCall::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageActionPhoneCall> res = make_tl_object<messageActionPhoneCall>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 4) { res->video_ = TlFetchTrue::parse(p); }
+ res->call_id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->reason_ = TlFetchObject<PhoneCallDiscardReason>::parse(p); }
+ if (var0 & 2) { res->duration_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageActionPhoneCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionPhoneCall");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("call_id", call_id_);
+ if (var0 & 1) { s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); }
+ if (var0 & 2) { s.store_field("duration", duration_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionScreenshotTaken::ID;
+
+object_ptr<MessageAction> messageActionScreenshotTaken::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionScreenshotTaken>();
+}
+
+void messageActionScreenshotTaken::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionScreenshotTaken");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionCustomAction::ID;
+
+object_ptr<MessageAction> messageActionCustomAction::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionCustomAction>(p);
+}
+
+messageActionCustomAction::messageActionCustomAction(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageActionCustomAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionCustomAction");
+ s.store_field("message", message_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionBotAllowed::ID;
+
+object_ptr<MessageAction> messageActionBotAllowed::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionBotAllowed>(p);
+}
+
+messageActionBotAllowed::messageActionBotAllowed(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : domain_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageActionBotAllowed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionBotAllowed");
+ s.store_field("domain", domain_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionSecureValuesSentMe::ID;
+
+object_ptr<MessageAction> messageActionSecureValuesSentMe::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionSecureValuesSentMe>(p);
+}
+
+messageActionSecureValuesSentMe::messageActionSecureValuesSentMe(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : values_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<secureValue>, 411017418>>, 481674261>::parse(p))
+ , credentials_(TlFetchBoxed<TlFetchObject<secureCredentialsEncrypted>, 871426631>::parse(p))
+#undef FAIL
+{}
+
+void messageActionSecureValuesSentMe::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionSecureValuesSentMe");
+ { s.store_vector_begin("values", values_.size()); for (const auto &_value : values_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("credentials", static_cast<const BaseObject *>(credentials_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionSecureValuesSent::ID;
+
+object_ptr<MessageAction> messageActionSecureValuesSent::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionSecureValuesSent>(p);
+}
+
+messageActionSecureValuesSent::messageActionSecureValuesSent(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : types_(TlFetchBoxed<TlFetchVector<TlFetchObject<SecureValueType>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messageActionSecureValuesSent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionSecureValuesSent");
+ { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionContactSignUp::ID;
+
+object_ptr<MessageAction> messageActionContactSignUp::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionContactSignUp>();
+}
+
+void messageActionContactSignUp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionContactSignUp");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionGeoProximityReached::ID;
+
+object_ptr<MessageAction> messageActionGeoProximityReached::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionGeoProximityReached>(p);
+}
+
+messageActionGeoProximityReached::messageActionGeoProximityReached(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : from_id_(TlFetchObject<Peer>::parse(p))
+ , to_id_(TlFetchObject<Peer>::parse(p))
+ , distance_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageActionGeoProximityReached::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionGeoProximityReached");
+ s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get()));
+ s.store_object_field("to_id", static_cast<const BaseObject *>(to_id_.get()));
+ s.store_field("distance", distance_);
+ s.store_class_end();
+ }
+}
+
+messageActionGroupCall::messageActionGroupCall()
+ : flags_()
+ , call_()
+ , duration_()
+{}
+
+const std::int32_t messageActionGroupCall::ID;
+
+object_ptr<MessageAction> messageActionGroupCall::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageActionGroupCall> res = make_tl_object<messageActionGroupCall>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->call_ = TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p);
+ if (var0 & 1) { res->duration_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageActionGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionGroupCall");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ if (var0 & 1) { s.store_field("duration", duration_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionInviteToGroupCall::ID;
+
+object_ptr<MessageAction> messageActionInviteToGroupCall::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionInviteToGroupCall>(p);
+}
+
+messageActionInviteToGroupCall::messageActionInviteToGroupCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : call_(TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messageActionInviteToGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionInviteToGroupCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionSetMessagesTTL::ID;
+
+object_ptr<MessageAction> messageActionSetMessagesTTL::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionSetMessagesTTL>(p);
+}
+
+messageActionSetMessagesTTL::messageActionSetMessagesTTL(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : period_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageActionSetMessagesTTL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionSetMessagesTTL");
+ s.store_field("period", period_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionGroupCallScheduled::ID;
+
+object_ptr<MessageAction> messageActionGroupCallScheduled::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionGroupCallScheduled>(p);
+}
+
+messageActionGroupCallScheduled::messageActionGroupCallScheduled(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : call_(TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p))
+ , schedule_date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageActionGroupCallScheduled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionGroupCallScheduled");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_field("schedule_date", schedule_date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionSetChatTheme::ID;
+
+object_ptr<MessageAction> messageActionSetChatTheme::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionSetChatTheme>(p);
+}
+
+messageActionSetChatTheme::messageActionSetChatTheme(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : emoticon_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageActionSetChatTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionSetChatTheme");
+ s.store_field("emoticon", emoticon_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionChatJoinedByRequest::ID;
+
+object_ptr<MessageAction> messageActionChatJoinedByRequest::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionChatJoinedByRequest>();
+}
+
+void messageActionChatJoinedByRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionChatJoinedByRequest");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionWebViewDataSentMe::ID;
+
+object_ptr<MessageAction> messageActionWebViewDataSentMe::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionWebViewDataSentMe>(p);
+}
+
+messageActionWebViewDataSentMe::messageActionWebViewDataSentMe(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+ , data_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageActionWebViewDataSentMe::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionWebViewDataSentMe");
+ s.store_field("text", text_);
+ s.store_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionWebViewDataSent::ID;
+
+object_ptr<MessageAction> messageActionWebViewDataSent::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionWebViewDataSent>(p);
+}
+
+messageActionWebViewDataSent::messageActionWebViewDataSent(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageActionWebViewDataSent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionWebViewDataSent");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageActionGiftPremium::ID;
+
+object_ptr<MessageAction> messageActionGiftPremium::fetch(TlBufferParser &p) {
+ return make_tl_object<messageActionGiftPremium>(p);
+}
+
+messageActionGiftPremium::messageActionGiftPremium(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : currency_(TlFetchString<string>::parse(p))
+ , amount_(TlFetchLong::parse(p))
+ , months_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageActionGiftPremium::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionGiftPremium");
+ s.store_field("currency", currency_);
+ s.store_field("amount", amount_);
+ s.store_field("months", months_);
+ s.store_class_end();
+ }
+}
+
+messageActionTopicCreate::messageActionTopicCreate()
+ : flags_()
+ , title_()
+ , icon_color_()
+ , icon_emoji_id_()
+{}
+
+const std::int32_t messageActionTopicCreate::ID;
+
+object_ptr<MessageAction> messageActionTopicCreate::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageActionTopicCreate> res = make_tl_object<messageActionTopicCreate>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->title_ = TlFetchString<string>::parse(p);
+ res->icon_color_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->icon_emoji_id_ = TlFetchLong::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageActionTopicCreate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionTopicCreate");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("title", title_);
+ s.store_field("icon_color", icon_color_);
+ if (var0 & 1) { s.store_field("icon_emoji_id", icon_emoji_id_); }
+ s.store_class_end();
+ }
+}
+
+messageActionTopicEdit::messageActionTopicEdit()
+ : flags_()
+ , title_()
+ , icon_emoji_id_()
+ , closed_()
+{}
+
+const std::int32_t messageActionTopicEdit::ID;
+
+object_ptr<MessageAction> messageActionTopicEdit::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageActionTopicEdit> res = make_tl_object<messageActionTopicEdit>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->title_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2) { res->icon_emoji_id_ = TlFetchLong::parse(p); }
+ if (var0 & 4) { res->closed_ = TlFetchBool::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageActionTopicEdit::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageActionTopicEdit");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("title", title_); }
+ if (var0 & 2) { s.store_field("icon_emoji_id", icon_emoji_id_); }
+ if (var0 & 4) { s.store_field("closed", closed_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<MessageEntity> MessageEntity::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messageEntityUnknown::ID:
+ return messageEntityUnknown::fetch(p);
+ case messageEntityMention::ID:
+ return messageEntityMention::fetch(p);
+ case messageEntityHashtag::ID:
+ return messageEntityHashtag::fetch(p);
+ case messageEntityBotCommand::ID:
+ return messageEntityBotCommand::fetch(p);
+ case messageEntityUrl::ID:
+ return messageEntityUrl::fetch(p);
+ case messageEntityEmail::ID:
+ return messageEntityEmail::fetch(p);
+ case messageEntityBold::ID:
+ return messageEntityBold::fetch(p);
+ case messageEntityItalic::ID:
+ return messageEntityItalic::fetch(p);
+ case messageEntityCode::ID:
+ return messageEntityCode::fetch(p);
+ case messageEntityPre::ID:
+ return messageEntityPre::fetch(p);
+ case messageEntityTextUrl::ID:
+ return messageEntityTextUrl::fetch(p);
+ case messageEntityMentionName::ID:
+ return messageEntityMentionName::fetch(p);
+ case inputMessageEntityMentionName::ID:
+ return inputMessageEntityMentionName::fetch(p);
+ case messageEntityPhone::ID:
+ return messageEntityPhone::fetch(p);
+ case messageEntityCashtag::ID:
+ return messageEntityCashtag::fetch(p);
+ case messageEntityUnderline::ID:
+ return messageEntityUnderline::fetch(p);
+ case messageEntityStrike::ID:
+ return messageEntityStrike::fetch(p);
+ case messageEntityBlockquote::ID:
+ return messageEntityBlockquote::fetch(p);
+ case messageEntityBankCard::ID:
+ return messageEntityBankCard::fetch(p);
+ case messageEntitySpoiler::ID:
+ return messageEntitySpoiler::fetch(p);
+ case messageEntityCustomEmoji::ID:
+ return messageEntityCustomEmoji::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+messageEntityUnknown::messageEntityUnknown(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityUnknown::ID;
+
+object_ptr<MessageEntity> messageEntityUnknown::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityUnknown>(p);
+}
+
+messageEntityUnknown::messageEntityUnknown(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityUnknown::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUnknown::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUnknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityUnknown");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityMention::messageEntityMention(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityMention::ID;
+
+object_ptr<MessageEntity> messageEntityMention::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityMention>(p);
+}
+
+messageEntityMention::messageEntityMention(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityMention::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityMention::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityMention::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityMention");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityHashtag::messageEntityHashtag(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityHashtag::ID;
+
+object_ptr<MessageEntity> messageEntityHashtag::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityHashtag>(p);
+}
+
+messageEntityHashtag::messageEntityHashtag(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityHashtag::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityHashtag::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityHashtag::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityHashtag");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityBotCommand::messageEntityBotCommand(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityBotCommand::ID;
+
+object_ptr<MessageEntity> messageEntityBotCommand::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityBotCommand>(p);
+}
+
+messageEntityBotCommand::messageEntityBotCommand(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityBotCommand::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBotCommand::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBotCommand::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityBotCommand");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityUrl::messageEntityUrl(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityUrl::ID;
+
+object_ptr<MessageEntity> messageEntityUrl::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityUrl>(p);
+}
+
+messageEntityUrl::messageEntityUrl(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityUrl::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUrl::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityUrl");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityEmail::messageEntityEmail(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityEmail::ID;
+
+object_ptr<MessageEntity> messageEntityEmail::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityEmail>(p);
+}
+
+messageEntityEmail::messageEntityEmail(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityEmail::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityEmail::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityEmail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityEmail");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityBold::messageEntityBold(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityBold::ID;
+
+object_ptr<MessageEntity> messageEntityBold::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityBold>(p);
+}
+
+messageEntityBold::messageEntityBold(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityBold::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBold::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBold::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityBold");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityItalic::messageEntityItalic(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityItalic::ID;
+
+object_ptr<MessageEntity> messageEntityItalic::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityItalic>(p);
+}
+
+messageEntityItalic::messageEntityItalic(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityItalic::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityItalic::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityItalic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityItalic");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityCode::messageEntityCode(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityCode::ID;
+
+object_ptr<MessageEntity> messageEntityCode::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityCode>(p);
+}
+
+messageEntityCode::messageEntityCode(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityCode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityCode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityCode");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityPre::messageEntityPre(int32 offset_, int32 length_, string const &language_)
+ : offset_(offset_)
+ , length_(length_)
+ , language_(language_)
+{}
+
+const std::int32_t messageEntityPre::ID;
+
+object_ptr<MessageEntity> messageEntityPre::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityPre>(p);
+}
+
+messageEntityPre::messageEntityPre(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+ , language_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageEntityPre::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreString::store(language_, s);
+}
+
+void messageEntityPre::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreString::store(language_, s);
+}
+
+void messageEntityPre::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityPre");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_field("language", language_);
+ s.store_class_end();
+ }
+}
+
+messageEntityTextUrl::messageEntityTextUrl(int32 offset_, int32 length_, string const &url_)
+ : offset_(offset_)
+ , length_(length_)
+ , url_(url_)
+{}
+
+const std::int32_t messageEntityTextUrl::ID;
+
+object_ptr<MessageEntity> messageEntityTextUrl::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityTextUrl>(p);
+}
+
+messageEntityTextUrl::messageEntityTextUrl(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+ , url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageEntityTextUrl::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreString::store(url_, s);
+}
+
+void messageEntityTextUrl::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreString::store(url_, s);
+}
+
+void messageEntityTextUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityTextUrl");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+messageEntityMentionName::messageEntityMentionName(int32 offset_, int32 length_, int64 user_id_)
+ : offset_(offset_)
+ , length_(length_)
+ , user_id_(user_id_)
+{}
+
+const std::int32_t messageEntityMentionName::ID;
+
+object_ptr<MessageEntity> messageEntityMentionName::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityMentionName>(p);
+}
+
+messageEntityMentionName::messageEntityMentionName(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void messageEntityMentionName::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void messageEntityMentionName::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreBinary::store(user_id_, s);
+}
+
+void messageEntityMentionName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityMentionName");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+inputMessageEntityMentionName::inputMessageEntityMentionName(int32 offset_, int32 length_, object_ptr<InputUser> &&user_id_)
+ : offset_(offset_)
+ , length_(length_)
+ , user_id_(std::move(user_id_))
+{}
+
+const std::int32_t inputMessageEntityMentionName::ID;
+
+object_ptr<MessageEntity> inputMessageEntityMentionName::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessageEntityMentionName>(p);
+}
+
+inputMessageEntityMentionName::inputMessageEntityMentionName(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+ , user_id_(TlFetchObject<InputUser>::parse(p))
+#undef FAIL
+{}
+
+void inputMessageEntityMentionName::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void inputMessageEntityMentionName::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void inputMessageEntityMentionName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessageEntityMentionName");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_class_end();
+ }
+}
+
+messageEntityPhone::messageEntityPhone(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityPhone::ID;
+
+object_ptr<MessageEntity> messageEntityPhone::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityPhone>(p);
+}
+
+messageEntityPhone::messageEntityPhone(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityPhone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityPhone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityPhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityPhone");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityCashtag::messageEntityCashtag(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityCashtag::ID;
+
+object_ptr<MessageEntity> messageEntityCashtag::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityCashtag>(p);
+}
+
+messageEntityCashtag::messageEntityCashtag(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityCashtag::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityCashtag::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityCashtag::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityCashtag");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityUnderline::messageEntityUnderline(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityUnderline::ID;
+
+object_ptr<MessageEntity> messageEntityUnderline::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityUnderline>(p);
+}
+
+messageEntityUnderline::messageEntityUnderline(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityUnderline::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUnderline::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityUnderline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityUnderline");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityStrike::messageEntityStrike(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityStrike::ID;
+
+object_ptr<MessageEntity> messageEntityStrike::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityStrike>(p);
+}
+
+messageEntityStrike::messageEntityStrike(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityStrike::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityStrike::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityStrike::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityStrike");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityBlockquote::messageEntityBlockquote(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityBlockquote::ID;
+
+object_ptr<MessageEntity> messageEntityBlockquote::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityBlockquote>(p);
+}
+
+messageEntityBlockquote::messageEntityBlockquote(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityBlockquote::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBlockquote::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBlockquote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityBlockquote");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityBankCard::messageEntityBankCard(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntityBankCard::ID;
+
+object_ptr<MessageEntity> messageEntityBankCard::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityBankCard>(p);
+}
+
+messageEntityBankCard::messageEntityBankCard(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntityBankCard::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBankCard::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntityBankCard::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityBankCard");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntitySpoiler::messageEntitySpoiler(int32 offset_, int32 length_)
+ : offset_(offset_)
+ , length_(length_)
+{}
+
+const std::int32_t messageEntitySpoiler::ID;
+
+object_ptr<MessageEntity> messageEntitySpoiler::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntitySpoiler>(p);
+}
+
+messageEntitySpoiler::messageEntitySpoiler(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageEntitySpoiler::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntitySpoiler::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+}
+
+void messageEntitySpoiler::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntitySpoiler");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+messageEntityCustomEmoji::messageEntityCustomEmoji(int32 offset_, int32 length_, int64 document_id_)
+ : offset_(offset_)
+ , length_(length_)
+ , document_id_(document_id_)
+{}
+
+const std::int32_t messageEntityCustomEmoji::ID;
+
+object_ptr<MessageEntity> messageEntityCustomEmoji::fetch(TlBufferParser &p) {
+ return make_tl_object<messageEntityCustomEmoji>(p);
+}
+
+messageEntityCustomEmoji::messageEntityCustomEmoji(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : offset_(TlFetchInt::parse(p))
+ , length_(TlFetchInt::parse(p))
+ , document_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void messageEntityCustomEmoji::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreBinary::store(document_id_, s);
+}
+
+void messageEntityCustomEmoji::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(length_, s);
+ TlStoreBinary::store(document_id_, s);
+}
+
+void messageEntityCustomEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageEntityCustomEmoji");
+ s.store_field("offset", offset_);
+ s.store_field("length", length_);
+ s.store_field("document_id", document_id_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<MessageExtendedMedia> MessageExtendedMedia::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messageExtendedMediaPreview::ID:
+ return messageExtendedMediaPreview::fetch(p);
+ case messageExtendedMedia::ID:
+ return messageExtendedMedia::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+messageExtendedMediaPreview::messageExtendedMediaPreview()
+ : flags_()
+ , w_()
+ , h_()
+ , thumb_()
+ , video_duration_()
+{}
+
+const std::int32_t messageExtendedMediaPreview::ID;
+
+object_ptr<MessageExtendedMedia> messageExtendedMediaPreview::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageExtendedMediaPreview> res = make_tl_object<messageExtendedMediaPreview>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->w_ = TlFetchInt::parse(p); }
+ if (var0 & 1) { res->h_ = TlFetchInt::parse(p); }
+ if (var0 & 2) { res->thumb_ = TlFetchObject<PhotoSize>::parse(p); }
+ if (var0 & 4) { res->video_duration_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageExtendedMediaPreview::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageExtendedMediaPreview");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("w", w_); }
+ if (var0 & 1) { s.store_field("h", h_); }
+ if (var0 & 2) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); }
+ if (var0 & 4) { s.store_field("video_duration", video_duration_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageExtendedMedia::ID;
+
+object_ptr<MessageExtendedMedia> messageExtendedMedia::fetch(TlBufferParser &p) {
+ return make_tl_object<messageExtendedMedia>(p);
+}
+
+messageExtendedMedia::messageExtendedMedia(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : media_(TlFetchObject<MessageMedia>::parse(p))
+#undef FAIL
+{}
+
+void messageExtendedMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageExtendedMedia");
+ s.store_object_field("media", static_cast<const BaseObject *>(media_.get()));
+ s.store_class_end();
+ }
+}
+
+messageFwdHeader::messageFwdHeader()
+ : flags_()
+ , imported_()
+ , from_id_()
+ , from_name_()
+ , date_()
+ , channel_post_()
+ , post_author_()
+ , saved_from_peer_()
+ , saved_from_msg_id_()
+ , psa_type_()
+{}
+
+const std::int32_t messageFwdHeader::ID;
+
+object_ptr<messageFwdHeader> messageFwdHeader::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageFwdHeader> res = make_tl_object<messageFwdHeader>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 128) { res->imported_ = TlFetchTrue::parse(p); }
+ if (var0 & 1) { res->from_id_ = TlFetchObject<Peer>::parse(p); }
+ if (var0 & 32) { res->from_name_ = TlFetchString<string>::parse(p); }
+ res->date_ = TlFetchInt::parse(p);
+ if (var0 & 4) { res->channel_post_ = TlFetchInt::parse(p); }
+ if (var0 & 8) { res->post_author_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->saved_from_peer_ = TlFetchObject<Peer>::parse(p); }
+ if (var0 & 16) { res->saved_from_msg_id_ = TlFetchInt::parse(p); }
+ if (var0 & 64) { res->psa_type_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messageFwdHeader::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageFwdHeader");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); }
+ if (var0 & 32) { s.store_field("from_name", from_name_); }
+ s.store_field("date", date_);
+ if (var0 & 4) { s.store_field("channel_post", channel_post_); }
+ if (var0 & 8) { s.store_field("post_author", post_author_); }
+ if (var0 & 16) { s.store_object_field("saved_from_peer", static_cast<const BaseObject *>(saved_from_peer_.get())); }
+ if (var0 & 16) { s.store_field("saved_from_msg_id", saved_from_msg_id_); }
+ if (var0 & 64) { s.store_field("psa_type", psa_type_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageInteractionCounters::ID;
+
+object_ptr<messageInteractionCounters> messageInteractionCounters::fetch(TlBufferParser &p) {
+ return make_tl_object<messageInteractionCounters>(p);
+}
+
+messageInteractionCounters::messageInteractionCounters(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : msg_id_(TlFetchInt::parse(p))
+ , views_(TlFetchInt::parse(p))
+ , forwards_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageInteractionCounters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageInteractionCounters");
+ s.store_field("msg_id", msg_id_);
+ s.store_field("views", views_);
+ s.store_field("forwards", forwards_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<MessageMedia> MessageMedia::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messageMediaEmpty::ID:
+ return messageMediaEmpty::fetch(p);
+ case messageMediaPhoto::ID:
+ return messageMediaPhoto::fetch(p);
+ case messageMediaGeo::ID:
+ return messageMediaGeo::fetch(p);
+ case messageMediaContact::ID:
+ return messageMediaContact::fetch(p);
+ case messageMediaUnsupported::ID:
+ return messageMediaUnsupported::fetch(p);
+ case messageMediaDocument::ID:
+ return messageMediaDocument::fetch(p);
+ case messageMediaWebPage::ID:
+ return messageMediaWebPage::fetch(p);
+ case messageMediaVenue::ID:
+ return messageMediaVenue::fetch(p);
+ case messageMediaGame::ID:
+ return messageMediaGame::fetch(p);
+ case messageMediaInvoice::ID:
+ return messageMediaInvoice::fetch(p);
+ case messageMediaGeoLive::ID:
+ return messageMediaGeoLive::fetch(p);
+ case messageMediaPoll::ID:
+ return messageMediaPoll::fetch(p);
+ case messageMediaDice::ID:
+ return messageMediaDice::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messageMediaEmpty::ID;
+
+object_ptr<MessageMedia> messageMediaEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<messageMediaEmpty>();
+}
+
+void messageMediaEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaEmpty");
+ s.store_class_end();
+ }
+}
+
+messageMediaPhoto::messageMediaPhoto()
+ : flags_()
+ , photo_()
+ , ttl_seconds_()
+{}
+
+const std::int32_t messageMediaPhoto::ID;
+
+object_ptr<MessageMedia> messageMediaPhoto::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageMediaPhoto> res = make_tl_object<messageMediaPhoto>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->photo_ = TlFetchObject<Photo>::parse(p); }
+ if (var0 & 4) { res->ttl_seconds_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageMediaPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaPhoto");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ if (var0 & 4) { s.store_field("ttl_seconds", ttl_seconds_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageMediaGeo::ID;
+
+object_ptr<MessageMedia> messageMediaGeo::fetch(TlBufferParser &p) {
+ return make_tl_object<messageMediaGeo>(p);
+}
+
+messageMediaGeo::messageMediaGeo(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : geo_(TlFetchObject<GeoPoint>::parse(p))
+#undef FAIL
+{}
+
+void messageMediaGeo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaGeo");
+ s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageMediaContact::ID;
+
+object_ptr<MessageMedia> messageMediaContact::fetch(TlBufferParser &p) {
+ return make_tl_object<messageMediaContact>(p);
+}
+
+messageMediaContact::messageMediaContact(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : phone_number_(TlFetchString<string>::parse(p))
+ , first_name_(TlFetchString<string>::parse(p))
+ , last_name_(TlFetchString<string>::parse(p))
+ , vcard_(TlFetchString<string>::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void messageMediaContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaContact");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_field("vcard", vcard_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageMediaUnsupported::ID;
+
+object_ptr<MessageMedia> messageMediaUnsupported::fetch(TlBufferParser &p) {
+ return make_tl_object<messageMediaUnsupported>();
+}
+
+void messageMediaUnsupported::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaUnsupported");
+ s.store_class_end();
+ }
+}
+
+messageMediaDocument::messageMediaDocument()
+ : flags_()
+ , nopremium_()
+ , document_()
+ , ttl_seconds_()
+{}
+
+const std::int32_t messageMediaDocument::ID;
+
+object_ptr<MessageMedia> messageMediaDocument::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageMediaDocument> res = make_tl_object<messageMediaDocument>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 8) { res->nopremium_ = TlFetchTrue::parse(p); }
+ if (var0 & 1) { res->document_ = TlFetchObject<Document>::parse(p); }
+ if (var0 & 4) { res->ttl_seconds_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageMediaDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaDocument");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); }
+ if (var0 & 4) { s.store_field("ttl_seconds", ttl_seconds_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageMediaWebPage::ID;
+
+object_ptr<MessageMedia> messageMediaWebPage::fetch(TlBufferParser &p) {
+ return make_tl_object<messageMediaWebPage>(p);
+}
+
+messageMediaWebPage::messageMediaWebPage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : webpage_(TlFetchObject<WebPage>::parse(p))
+#undef FAIL
+{}
+
+void messageMediaWebPage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaWebPage");
+ s.store_object_field("webpage", static_cast<const BaseObject *>(webpage_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageMediaVenue::ID;
+
+object_ptr<MessageMedia> messageMediaVenue::fetch(TlBufferParser &p) {
+ return make_tl_object<messageMediaVenue>(p);
+}
+
+messageMediaVenue::messageMediaVenue(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : geo_(TlFetchObject<GeoPoint>::parse(p))
+ , title_(TlFetchString<string>::parse(p))
+ , address_(TlFetchString<string>::parse(p))
+ , provider_(TlFetchString<string>::parse(p))
+ , venue_id_(TlFetchString<string>::parse(p))
+ , venue_type_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageMediaVenue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaVenue");
+ s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get()));
+ s.store_field("title", title_);
+ s.store_field("address", address_);
+ s.store_field("provider", provider_);
+ s.store_field("venue_id", venue_id_);
+ s.store_field("venue_type", venue_type_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageMediaGame::ID;
+
+object_ptr<MessageMedia> messageMediaGame::fetch(TlBufferParser &p) {
+ return make_tl_object<messageMediaGame>(p);
+}
+
+messageMediaGame::messageMediaGame(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : game_(TlFetchBoxed<TlFetchObject<game>, -1107729093>::parse(p))
+#undef FAIL
+{}
+
+void messageMediaGame::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaGame");
+ s.store_object_field("game", static_cast<const BaseObject *>(game_.get()));
+ s.store_class_end();
+ }
+}
+
+messageMediaInvoice::messageMediaInvoice()
+ : flags_()
+ , shipping_address_requested_()
+ , test_()
+ , title_()
+ , description_()
+ , photo_()
+ , receipt_msg_id_()
+ , currency_()
+ , total_amount_()
+ , start_param_()
+ , extended_media_()
+{}
+
+const std::int32_t messageMediaInvoice::ID;
+
+object_ptr<MessageMedia> messageMediaInvoice::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageMediaInvoice> res = make_tl_object<messageMediaInvoice>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->shipping_address_requested_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->test_ = TlFetchTrue::parse(p); }
+ res->title_ = TlFetchString<string>::parse(p);
+ res->description_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->photo_ = TlFetchObject<WebDocument>::parse(p); }
+ if (var0 & 4) { res->receipt_msg_id_ = TlFetchInt::parse(p); }
+ res->currency_ = TlFetchString<string>::parse(p);
+ res->total_amount_ = TlFetchLong::parse(p);
+ res->start_param_ = TlFetchString<string>::parse(p);
+ if (var0 & 16) { res->extended_media_ = TlFetchObject<MessageExtendedMedia>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageMediaInvoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaInvoice");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ if (var0 & 4) { s.store_field("receipt_msg_id", receipt_msg_id_); }
+ s.store_field("currency", currency_);
+ s.store_field("total_amount", total_amount_);
+ s.store_field("start_param", start_param_);
+ if (var0 & 16) { s.store_object_field("extended_media", static_cast<const BaseObject *>(extended_media_.get())); }
+ s.store_class_end();
+ }
+}
+
+messageMediaGeoLive::messageMediaGeoLive()
+ : flags_()
+ , geo_()
+ , heading_()
+ , period_()
+ , proximity_notification_radius_()
+{}
+
+const std::int32_t messageMediaGeoLive::ID;
+
+object_ptr<MessageMedia> messageMediaGeoLive::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageMediaGeoLive> res = make_tl_object<messageMediaGeoLive>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->geo_ = TlFetchObject<GeoPoint>::parse(p);
+ if (var0 & 1) { res->heading_ = TlFetchInt::parse(p); }
+ res->period_ = TlFetchInt::parse(p);
+ if (var0 & 2) { res->proximity_notification_radius_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messageMediaGeoLive::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaGeoLive");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get()));
+ if (var0 & 1) { s.store_field("heading", heading_); }
+ s.store_field("period", period_);
+ if (var0 & 2) { s.store_field("proximity_notification_radius", proximity_notification_radius_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageMediaPoll::ID;
+
+object_ptr<MessageMedia> messageMediaPoll::fetch(TlBufferParser &p) {
+ return make_tl_object<messageMediaPoll>(p);
+}
+
+messageMediaPoll::messageMediaPoll(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : poll_(TlFetchBoxed<TlFetchObject<poll>, -2032041631>::parse(p))
+ , results_(TlFetchBoxed<TlFetchObject<pollResults>, -591909213>::parse(p))
+#undef FAIL
+{}
+
+void messageMediaPoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaPoll");
+ s.store_object_field("poll", static_cast<const BaseObject *>(poll_.get()));
+ s.store_object_field("results", static_cast<const BaseObject *>(results_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageMediaDice::ID;
+
+object_ptr<MessageMedia> messageMediaDice::fetch(TlBufferParser &p) {
+ return make_tl_object<messageMediaDice>(p);
+}
+
+messageMediaDice::messageMediaDice(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : value_(TlFetchInt::parse(p))
+ , emoticon_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messageMediaDice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageMediaDice");
+ s.store_field("value", value_);
+ s.store_field("emoticon", emoticon_);
+ s.store_class_end();
+ }
+}
+
+messagePeerReaction::messagePeerReaction()
+ : flags_()
+ , big_()
+ , unread_()
+ , peer_id_()
+ , reaction_()
+{}
+
+const std::int32_t messagePeerReaction::ID;
+
+object_ptr<messagePeerReaction> messagePeerReaction::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messagePeerReaction> res = make_tl_object<messagePeerReaction>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->big_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->unread_ = TlFetchTrue::parse(p); }
+ res->peer_id_ = TlFetchObject<Peer>::parse(p);
+ res->reaction_ = TlFetchObject<Reaction>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messagePeerReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messagePeerReaction");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get()));
+ s.store_object_field("reaction", static_cast<const BaseObject *>(reaction_.get()));
+ s.store_class_end();
+ }
+}
+
+messageRange::messageRange(int32 min_id_, int32 max_id_)
+ : min_id_(min_id_)
+ , max_id_(max_id_)
+{}
+
+const std::int32_t messageRange::ID;
+
+object_ptr<messageRange> messageRange::fetch(TlBufferParser &p) {
+ return make_tl_object<messageRange>(p);
+}
+
+messageRange::messageRange(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : min_id_(TlFetchInt::parse(p))
+ , max_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageRange::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(min_id_, s);
+ TlStoreBinary::store(max_id_, s);
+}
+
+void messageRange::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(min_id_, s);
+ TlStoreBinary::store(max_id_, s);
+}
+
+void messageRange::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageRange");
+ s.store_field("min_id", min_id_);
+ s.store_field("max_id", max_id_);
+ s.store_class_end();
+ }
+}
+
+messageReactions::messageReactions()
+ : flags_()
+ , min_()
+ , can_see_list_()
+ , results_()
+ , recent_reactions_()
+{}
+
+const std::int32_t messageReactions::ID;
+
+object_ptr<messageReactions> messageReactions::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageReactions> res = make_tl_object<messageReactions>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->min_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->can_see_list_ = TlFetchTrue::parse(p); }
+ res->results_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<reactionCount>, -1546531968>>, 481674261>::parse(p);
+ if (var0 & 2) { res->recent_reactions_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messagePeerReaction>, -1319698788>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messageReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageReactions");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 2) { { s.store_vector_begin("recent_reactions", recent_reactions_.size()); for (const auto &_value : recent_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+messageReplies::messageReplies()
+ : flags_()
+ , comments_()
+ , replies_()
+ , replies_pts_()
+ , recent_repliers_()
+ , channel_id_()
+ , max_id_()
+ , read_max_id_()
+{}
+
+const std::int32_t messageReplies::ID;
+
+object_ptr<messageReplies> messageReplies::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageReplies> res = make_tl_object<messageReplies>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->comments_ = TlFetchTrue::parse(p); }
+ res->replies_ = TlFetchInt::parse(p);
+ res->replies_pts_ = TlFetchInt::parse(p);
+ if (var0 & 2) { res->recent_repliers_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Peer>>, 481674261>::parse(p); }
+ if (var0 & 1) { res->channel_id_ = TlFetchLong::parse(p); }
+ if (var0 & 4) { res->max_id_ = TlFetchInt::parse(p); }
+ if (var0 & 8) { res->read_max_id_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messageReplies::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageReplies");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("replies", replies_);
+ s.store_field("replies_pts", replies_pts_);
+ if (var0 & 2) { { s.store_vector_begin("recent_repliers", recent_repliers_.size()); for (const auto &_value : recent_repliers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 1) { s.store_field("channel_id", channel_id_); }
+ if (var0 & 4) { s.store_field("max_id", max_id_); }
+ if (var0 & 8) { s.store_field("read_max_id", read_max_id_); }
+ s.store_class_end();
+ }
+}
+
+messageReplyHeader::messageReplyHeader()
+ : flags_()
+ , reply_to_scheduled_()
+ , forum_topic_()
+ , reply_to_msg_id_()
+ , reply_to_peer_id_()
+ , reply_to_top_id_()
+{}
+
+const std::int32_t messageReplyHeader::ID;
+
+object_ptr<messageReplyHeader> messageReplyHeader::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageReplyHeader> res = make_tl_object<messageReplyHeader>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 4) { res->reply_to_scheduled_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->forum_topic_ = TlFetchTrue::parse(p); }
+ res->reply_to_msg_id_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->reply_to_peer_id_ = TlFetchObject<Peer>::parse(p); }
+ if (var0 & 2) { res->reply_to_top_id_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messageReplyHeader::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageReplyHeader");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("reply_to_msg_id", reply_to_msg_id_);
+ if (var0 & 1) { s.store_object_field("reply_to_peer_id", static_cast<const BaseObject *>(reply_to_peer_id_.get())); }
+ if (var0 & 2) { s.store_field("reply_to_top_id", reply_to_top_id_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<MessageUserVote> MessageUserVote::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messageUserVote::ID:
+ return messageUserVote::fetch(p);
+ case messageUserVoteInputOption::ID:
+ return messageUserVoteInputOption::fetch(p);
+ case messageUserVoteMultiple::ID:
+ return messageUserVoteMultiple::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messageUserVote::ID;
+
+object_ptr<MessageUserVote> messageUserVote::fetch(TlBufferParser &p) {
+ return make_tl_object<messageUserVote>(p);
+}
+
+messageUserVote::messageUserVote(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , option_(TlFetchBytes<bytes>::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageUserVote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageUserVote");
+ s.store_field("user_id", user_id_);
+ s.store_bytes_field("option", option_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageUserVoteInputOption::ID;
+
+object_ptr<MessageUserVote> messageUserVoteInputOption::fetch(TlBufferParser &p) {
+ return make_tl_object<messageUserVoteInputOption>(p);
+}
+
+messageUserVoteInputOption::messageUserVoteInputOption(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageUserVoteInputOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageUserVoteInputOption");
+ s.store_field("user_id", user_id_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messageUserVoteMultiple::ID;
+
+object_ptr<MessageUserVote> messageUserVoteMultiple::fetch(TlBufferParser &p) {
+ return make_tl_object<messageUserVoteMultiple>(p);
+}
+
+messageUserVoteMultiple::messageUserVoteMultiple(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , options_(TlFetchBoxed<TlFetchVector<TlFetchBytes<bytes>>, 481674261>::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messageUserVoteMultiple::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageUserVoteMultiple");
+ s.store_field("user_id", user_id_);
+ { s.store_vector_begin("options", options_.size()); for (const auto &_value : options_) { s.store_bytes_field("", _value); } s.store_class_end(); }
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+messageViews::messageViews()
+ : flags_()
+ , views_()
+ , forwards_()
+ , replies_()
+{}
+
+const std::int32_t messageViews::ID;
+
+object_ptr<messageViews> messageViews::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messageViews> res = make_tl_object<messageViews>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->views_ = TlFetchInt::parse(p); }
+ if (var0 & 2) { res->forwards_ = TlFetchInt::parse(p); }
+ if (var0 & 4) { res->replies_ = TlFetchBoxed<TlFetchObject<messageReplies>, -2083123262>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messageViews::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messageViews");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("views", views_); }
+ if (var0 & 2) { s.store_field("forwards", forwards_); }
+ if (var0 & 4) { s.store_object_field("replies", static_cast<const BaseObject *>(replies_.get())); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<MessagesFilter> MessagesFilter::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case inputMessagesFilterEmpty::ID:
+ return inputMessagesFilterEmpty::fetch(p);
+ case inputMessagesFilterPhotos::ID:
+ return inputMessagesFilterPhotos::fetch(p);
+ case inputMessagesFilterVideo::ID:
+ return inputMessagesFilterVideo::fetch(p);
+ case inputMessagesFilterPhotoVideo::ID:
+ return inputMessagesFilterPhotoVideo::fetch(p);
+ case inputMessagesFilterDocument::ID:
+ return inputMessagesFilterDocument::fetch(p);
+ case inputMessagesFilterUrl::ID:
+ return inputMessagesFilterUrl::fetch(p);
+ case inputMessagesFilterGif::ID:
+ return inputMessagesFilterGif::fetch(p);
+ case inputMessagesFilterVoice::ID:
+ return inputMessagesFilterVoice::fetch(p);
+ case inputMessagesFilterMusic::ID:
+ return inputMessagesFilterMusic::fetch(p);
+ case inputMessagesFilterChatPhotos::ID:
+ return inputMessagesFilterChatPhotos::fetch(p);
+ case inputMessagesFilterPhoneCalls::ID:
+ return inputMessagesFilterPhoneCalls::fetch(p);
+ case inputMessagesFilterRoundVoice::ID:
+ return inputMessagesFilterRoundVoice::fetch(p);
+ case inputMessagesFilterRoundVideo::ID:
+ return inputMessagesFilterRoundVideo::fetch(p);
+ case inputMessagesFilterMyMentions::ID:
+ return inputMessagesFilterMyMentions::fetch(p);
+ case inputMessagesFilterGeo::ID:
+ return inputMessagesFilterGeo::fetch(p);
+ case inputMessagesFilterContacts::ID:
+ return inputMessagesFilterContacts::fetch(p);
+ case inputMessagesFilterPinned::ID:
+ return inputMessagesFilterPinned::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t inputMessagesFilterEmpty::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterEmpty>();
+}
+
+void inputMessagesFilterEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterEmpty");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterPhotos::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterPhotos::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterPhotos>();
+}
+
+void inputMessagesFilterPhotos::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterPhotos::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterPhotos::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterPhotos");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterVideo::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterVideo::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterVideo>();
+}
+
+void inputMessagesFilterVideo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterVideo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterVideo");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterPhotoVideo::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterPhotoVideo::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterPhotoVideo>();
+}
+
+void inputMessagesFilterPhotoVideo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterPhotoVideo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterPhotoVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterPhotoVideo");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterDocument::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterDocument::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterDocument>();
+}
+
+void inputMessagesFilterDocument::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterDocument::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterDocument");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterUrl::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterUrl::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterUrl>();
+}
+
+void inputMessagesFilterUrl::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterUrl::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterUrl");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterGif::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterGif::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterGif>();
+}
+
+void inputMessagesFilterGif::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterGif::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterGif::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterGif");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterVoice::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterVoice::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterVoice>();
+}
+
+void inputMessagesFilterVoice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterVoice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterVoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterVoice");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterMusic::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterMusic::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterMusic>();
+}
+
+void inputMessagesFilterMusic::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterMusic::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterMusic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterMusic");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterChatPhotos::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterChatPhotos::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterChatPhotos>();
+}
+
+void inputMessagesFilterChatPhotos::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterChatPhotos::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterChatPhotos::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterChatPhotos");
+ s.store_class_end();
+ }
+}
+
+inputMessagesFilterPhoneCalls::inputMessagesFilterPhoneCalls()
+ : flags_()
+ , missed_()
+{}
+
+inputMessagesFilterPhoneCalls::inputMessagesFilterPhoneCalls(int32 flags_, bool missed_)
+ : flags_(flags_)
+ , missed_(missed_)
+{}
+
+const std::int32_t inputMessagesFilterPhoneCalls::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterPhoneCalls::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<inputMessagesFilterPhoneCalls> res = make_tl_object<inputMessagesFilterPhoneCalls>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->missed_ = TlFetchTrue::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void inputMessagesFilterPhoneCalls::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void inputMessagesFilterPhoneCalls::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void inputMessagesFilterPhoneCalls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterPhoneCalls");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterRoundVoice::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterRoundVoice::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterRoundVoice>();
+}
+
+void inputMessagesFilterRoundVoice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterRoundVoice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterRoundVoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterRoundVoice");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterRoundVideo::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterRoundVideo::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterRoundVideo>();
+}
+
+void inputMessagesFilterRoundVideo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterRoundVideo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterRoundVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterRoundVideo");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterMyMentions::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterMyMentions::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterMyMentions>();
+}
+
+void inputMessagesFilterMyMentions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterMyMentions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterMyMentions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterMyMentions");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterGeo::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterGeo::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterGeo>();
+}
+
+void inputMessagesFilterGeo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterGeo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterGeo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterGeo");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterContacts::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterContacts::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterContacts>();
+}
+
+void inputMessagesFilterContacts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterContacts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterContacts");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputMessagesFilterPinned::ID;
+
+object_ptr<MessagesFilter> inputMessagesFilterPinned::fetch(TlBufferParser &p) {
+ return make_tl_object<inputMessagesFilterPinned>();
+}
+
+void inputMessagesFilterPinned::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterPinned::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputMessagesFilterPinned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputMessagesFilterPinned");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t nearestDc::ID;
+
+object_ptr<nearestDc> nearestDc::fetch(TlBufferParser &p) {
+ return make_tl_object<nearestDc>(p);
+}
+
+nearestDc::nearestDc(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : country_(TlFetchString<string>::parse(p))
+ , this_dc_(TlFetchInt::parse(p))
+ , nearest_dc_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void nearestDc::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "nearestDc");
+ s.store_field("country", country_);
+ s.store_field("this_dc", this_dc_);
+ s.store_field("nearest_dc", nearest_dc_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<NotificationSound> NotificationSound::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case notificationSoundDefault::ID:
+ return notificationSoundDefault::fetch(p);
+ case notificationSoundNone::ID:
+ return notificationSoundNone::fetch(p);
+ case notificationSoundLocal::ID:
+ return notificationSoundLocal::fetch(p);
+ case notificationSoundRingtone::ID:
+ return notificationSoundRingtone::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t notificationSoundDefault::ID;
+
+object_ptr<NotificationSound> notificationSoundDefault::fetch(TlBufferParser &p) {
+ return make_tl_object<notificationSoundDefault>();
+}
+
+void notificationSoundDefault::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void notificationSoundDefault::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void notificationSoundDefault::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationSoundDefault");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t notificationSoundNone::ID;
+
+object_ptr<NotificationSound> notificationSoundNone::fetch(TlBufferParser &p) {
+ return make_tl_object<notificationSoundNone>();
+}
+
+void notificationSoundNone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void notificationSoundNone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void notificationSoundNone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationSoundNone");
+ s.store_class_end();
+ }
+}
+
+notificationSoundLocal::notificationSoundLocal(string const &title_, string const &data_)
+ : title_(title_)
+ , data_(data_)
+{}
+
+const std::int32_t notificationSoundLocal::ID;
+
+object_ptr<NotificationSound> notificationSoundLocal::fetch(TlBufferParser &p) {
+ return make_tl_object<notificationSoundLocal>(p);
+}
+
+notificationSoundLocal::notificationSoundLocal(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : title_(TlFetchString<string>::parse(p))
+ , data_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void notificationSoundLocal::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(data_, s);
+}
+
+void notificationSoundLocal::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(data_, s);
+}
+
+void notificationSoundLocal::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationSoundLocal");
+ s.store_field("title", title_);
+ s.store_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+notificationSoundRingtone::notificationSoundRingtone(int64 id_)
+ : id_(id_)
+{}
+
+const std::int32_t notificationSoundRingtone::ID;
+
+object_ptr<NotificationSound> notificationSoundRingtone::fetch(TlBufferParser &p) {
+ return make_tl_object<notificationSoundRingtone>(p);
+}
+
+notificationSoundRingtone::notificationSoundRingtone(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void notificationSoundRingtone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+}
+
+void notificationSoundRingtone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(id_, s);
+}
+
+void notificationSoundRingtone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notificationSoundRingtone");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<NotifyPeer> NotifyPeer::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case notifyPeer::ID:
+ return notifyPeer::fetch(p);
+ case notifyUsers::ID:
+ return notifyUsers::fetch(p);
+ case notifyChats::ID:
+ return notifyChats::fetch(p);
+ case notifyBroadcasts::ID:
+ return notifyBroadcasts::fetch(p);
+ case notifyForumTopic::ID:
+ return notifyForumTopic::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t notifyPeer::ID;
+
+object_ptr<NotifyPeer> notifyPeer::fetch(TlBufferParser &p) {
+ return make_tl_object<notifyPeer>(p);
+}
+
+notifyPeer::notifyPeer(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+#undef FAIL
+{}
+
+void notifyPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notifyPeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t notifyUsers::ID;
+
+object_ptr<NotifyPeer> notifyUsers::fetch(TlBufferParser &p) {
+ return make_tl_object<notifyUsers>();
+}
+
+void notifyUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notifyUsers");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t notifyChats::ID;
+
+object_ptr<NotifyPeer> notifyChats::fetch(TlBufferParser &p) {
+ return make_tl_object<notifyChats>();
+}
+
+void notifyChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notifyChats");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t notifyBroadcasts::ID;
+
+object_ptr<NotifyPeer> notifyBroadcasts::fetch(TlBufferParser &p) {
+ return make_tl_object<notifyBroadcasts>();
+}
+
+void notifyBroadcasts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notifyBroadcasts");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t notifyForumTopic::ID;
+
+object_ptr<NotifyPeer> notifyForumTopic::fetch(TlBufferParser &p) {
+ return make_tl_object<notifyForumTopic>(p);
+}
+
+notifyForumTopic::notifyForumTopic(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , top_msg_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void notifyForumTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "notifyForumTopic");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("top_msg_id", top_msg_id_);
+ s.store_class_end();
+ }
+}
+
+page::page()
+ : flags_()
+ , part_()
+ , rtl_()
+ , v2_()
+ , url_()
+ , blocks_()
+ , photos_()
+ , documents_()
+ , views_()
+{}
+
+const std::int32_t page::ID;
+
+object_ptr<page> page::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<page> res = make_tl_object<page>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->part_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->rtl_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->v2_ = TlFetchTrue::parse(p); }
+ res->url_ = TlFetchString<string>::parse(p);
+ res->blocks_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p);
+ res->photos_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Photo>>, 481674261>::parse(p);
+ res->documents_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p);
+ if (var0 & 8) { res->views_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void page::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "page");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("url", url_);
+ { s.store_vector_begin("blocks", blocks_.size()); for (const auto &_value : blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("photos", photos_.size()); for (const auto &_value : photos_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("documents", documents_.size()); for (const auto &_value : documents_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 8) { s.store_field("views", views_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<PageBlock> PageBlock::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case pageBlockUnsupported::ID:
+ return pageBlockUnsupported::fetch(p);
+ case pageBlockTitle::ID:
+ return pageBlockTitle::fetch(p);
+ case pageBlockSubtitle::ID:
+ return pageBlockSubtitle::fetch(p);
+ case pageBlockAuthorDate::ID:
+ return pageBlockAuthorDate::fetch(p);
+ case pageBlockHeader::ID:
+ return pageBlockHeader::fetch(p);
+ case pageBlockSubheader::ID:
+ return pageBlockSubheader::fetch(p);
+ case pageBlockParagraph::ID:
+ return pageBlockParagraph::fetch(p);
+ case pageBlockPreformatted::ID:
+ return pageBlockPreformatted::fetch(p);
+ case pageBlockFooter::ID:
+ return pageBlockFooter::fetch(p);
+ case pageBlockDivider::ID:
+ return pageBlockDivider::fetch(p);
+ case pageBlockAnchor::ID:
+ return pageBlockAnchor::fetch(p);
+ case pageBlockList::ID:
+ return pageBlockList::fetch(p);
+ case pageBlockBlockquote::ID:
+ return pageBlockBlockquote::fetch(p);
+ case pageBlockPullquote::ID:
+ return pageBlockPullquote::fetch(p);
+ case pageBlockPhoto::ID:
+ return pageBlockPhoto::fetch(p);
+ case pageBlockVideo::ID:
+ return pageBlockVideo::fetch(p);
+ case pageBlockCover::ID:
+ return pageBlockCover::fetch(p);
+ case pageBlockEmbed::ID:
+ return pageBlockEmbed::fetch(p);
+ case pageBlockEmbedPost::ID:
+ return pageBlockEmbedPost::fetch(p);
+ case pageBlockCollage::ID:
+ return pageBlockCollage::fetch(p);
+ case pageBlockSlideshow::ID:
+ return pageBlockSlideshow::fetch(p);
+ case pageBlockChannel::ID:
+ return pageBlockChannel::fetch(p);
+ case pageBlockAudio::ID:
+ return pageBlockAudio::fetch(p);
+ case pageBlockKicker::ID:
+ return pageBlockKicker::fetch(p);
+ case pageBlockTable::ID:
+ return pageBlockTable::fetch(p);
+ case pageBlockOrderedList::ID:
+ return pageBlockOrderedList::fetch(p);
+ case pageBlockDetails::ID:
+ return pageBlockDetails::fetch(p);
+ case pageBlockRelatedArticles::ID:
+ return pageBlockRelatedArticles::fetch(p);
+ case pageBlockMap::ID:
+ return pageBlockMap::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t pageBlockUnsupported::ID;
+
+object_ptr<PageBlock> pageBlockUnsupported::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockUnsupported>();
+}
+
+void pageBlockUnsupported::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockUnsupported");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockTitle::ID;
+
+object_ptr<PageBlock> pageBlockTitle::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockTitle>(p);
+}
+
+pageBlockTitle::pageBlockTitle(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockTitle");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockSubtitle::ID;
+
+object_ptr<PageBlock> pageBlockSubtitle::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockSubtitle>(p);
+}
+
+pageBlockSubtitle::pageBlockSubtitle(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockSubtitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockSubtitle");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockAuthorDate::ID;
+
+object_ptr<PageBlock> pageBlockAuthorDate::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockAuthorDate>(p);
+}
+
+pageBlockAuthorDate::pageBlockAuthorDate(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : author_(TlFetchObject<RichText>::parse(p))
+ , published_date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void pageBlockAuthorDate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockAuthorDate");
+ s.store_object_field("author", static_cast<const BaseObject *>(author_.get()));
+ s.store_field("published_date", published_date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockHeader::ID;
+
+object_ptr<PageBlock> pageBlockHeader::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockHeader>(p);
+}
+
+pageBlockHeader::pageBlockHeader(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockHeader::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockHeader");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockSubheader::ID;
+
+object_ptr<PageBlock> pageBlockSubheader::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockSubheader>(p);
+}
+
+pageBlockSubheader::pageBlockSubheader(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockSubheader::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockSubheader");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockParagraph::ID;
+
+object_ptr<PageBlock> pageBlockParagraph::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockParagraph>(p);
+}
+
+pageBlockParagraph::pageBlockParagraph(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockParagraph::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockParagraph");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockPreformatted::ID;
+
+object_ptr<PageBlock> pageBlockPreformatted::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockPreformatted>(p);
+}
+
+pageBlockPreformatted::pageBlockPreformatted(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+ , language_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockPreformatted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockPreformatted");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("language", language_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockFooter::ID;
+
+object_ptr<PageBlock> pageBlockFooter::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockFooter>(p);
+}
+
+pageBlockFooter::pageBlockFooter(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockFooter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockFooter");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockDivider::ID;
+
+object_ptr<PageBlock> pageBlockDivider::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockDivider>();
+}
+
+void pageBlockDivider::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockDivider");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockAnchor::ID;
+
+object_ptr<PageBlock> pageBlockAnchor::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockAnchor>(p);
+}
+
+pageBlockAnchor::pageBlockAnchor(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : name_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockAnchor::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockAnchor");
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockList::ID;
+
+object_ptr<PageBlock> pageBlockList::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockList>(p);
+}
+
+pageBlockList::pageBlockList(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : items_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageListItem>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockList::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockList");
+ { s.store_vector_begin("items", items_.size()); for (const auto &_value : items_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockBlockquote::ID;
+
+object_ptr<PageBlock> pageBlockBlockquote::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockBlockquote>(p);
+}
+
+pageBlockBlockquote::pageBlockBlockquote(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+ , caption_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockBlockquote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockBlockquote");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockPullquote::ID;
+
+object_ptr<PageBlock> pageBlockPullquote::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockPullquote>(p);
+}
+
+pageBlockPullquote::pageBlockPullquote(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+ , caption_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockPullquote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockPullquote");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockPhoto::pageBlockPhoto()
+ : flags_()
+ , photo_id_()
+ , caption_()
+ , url_()
+ , webpage_id_()
+{}
+
+const std::int32_t pageBlockPhoto::ID;
+
+object_ptr<PageBlock> pageBlockPhoto::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<pageBlockPhoto> res = make_tl_object<pageBlockPhoto>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->photo_id_ = TlFetchLong::parse(p);
+ res->caption_ = TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p);
+ if (var0 & 1) { res->url_ = TlFetchString<string>::parse(p); }
+ if (var0 & 1) { res->webpage_id_ = TlFetchLong::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void pageBlockPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockPhoto");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("photo_id", photo_id_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ if (var0 & 1) { s.store_field("url", url_); }
+ if (var0 & 1) { s.store_field("webpage_id", webpage_id_); }
+ s.store_class_end();
+ }
+}
+
+pageBlockVideo::pageBlockVideo()
+ : flags_()
+ , autoplay_()
+ , loop_()
+ , video_id_()
+ , caption_()
+{}
+
+const std::int32_t pageBlockVideo::ID;
+
+object_ptr<PageBlock> pageBlockVideo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<pageBlockVideo> res = make_tl_object<pageBlockVideo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->autoplay_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->loop_ = TlFetchTrue::parse(p); }
+ res->video_id_ = TlFetchLong::parse(p);
+ res->caption_ = TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void pageBlockVideo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockVideo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("video_id", video_id_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockCover::ID;
+
+object_ptr<PageBlock> pageBlockCover::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockCover>(p);
+}
+
+pageBlockCover::pageBlockCover(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : cover_(TlFetchObject<PageBlock>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockCover::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockCover");
+ s.store_object_field("cover", static_cast<const BaseObject *>(cover_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockEmbed::pageBlockEmbed()
+ : flags_()
+ , full_width_()
+ , allow_scrolling_()
+ , url_()
+ , html_()
+ , poster_photo_id_()
+ , w_()
+ , h_()
+ , caption_()
+{}
+
+const std::int32_t pageBlockEmbed::ID;
+
+object_ptr<PageBlock> pageBlockEmbed::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<pageBlockEmbed> res = make_tl_object<pageBlockEmbed>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->full_width_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->allow_scrolling_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->url_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->html_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->poster_photo_id_ = TlFetchLong::parse(p); }
+ if (var0 & 32) { res->w_ = TlFetchInt::parse(p); }
+ if (var0 & 32) { res->h_ = TlFetchInt::parse(p); }
+ res->caption_ = TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void pageBlockEmbed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockEmbed");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { s.store_field("url", url_); }
+ if (var0 & 4) { s.store_field("html", html_); }
+ if (var0 & 16) { s.store_field("poster_photo_id", poster_photo_id_); }
+ if (var0 & 32) { s.store_field("w", w_); }
+ if (var0 & 32) { s.store_field("h", h_); }
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockEmbedPost::ID;
+
+object_ptr<PageBlock> pageBlockEmbedPost::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockEmbedPost>(p);
+}
+
+pageBlockEmbedPost::pageBlockEmbedPost(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+ , webpage_id_(TlFetchLong::parse(p))
+ , author_photo_id_(TlFetchLong::parse(p))
+ , author_(TlFetchString<string>::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , blocks_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p))
+ , caption_(TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockEmbedPost::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockEmbedPost");
+ s.store_field("url", url_);
+ s.store_field("webpage_id", webpage_id_);
+ s.store_field("author_photo_id", author_photo_id_);
+ s.store_field("author", author_);
+ s.store_field("date", date_);
+ { s.store_vector_begin("blocks", blocks_.size()); for (const auto &_value : blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockCollage::ID;
+
+object_ptr<PageBlock> pageBlockCollage::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockCollage>(p);
+}
+
+pageBlockCollage::pageBlockCollage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : items_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p))
+ , caption_(TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockCollage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockCollage");
+ { s.store_vector_begin("items", items_.size()); for (const auto &_value : items_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockSlideshow::ID;
+
+object_ptr<PageBlock> pageBlockSlideshow::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockSlideshow>(p);
+}
+
+pageBlockSlideshow::pageBlockSlideshow(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : items_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p))
+ , caption_(TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockSlideshow::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockSlideshow");
+ { s.store_vector_begin("items", items_.size()); for (const auto &_value : items_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockChannel::ID;
+
+object_ptr<PageBlock> pageBlockChannel::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockChannel>(p);
+}
+
+pageBlockChannel::pageBlockChannel(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_(TlFetchObject<Chat>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockChannel");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockAudio::ID;
+
+object_ptr<PageBlock> pageBlockAudio::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockAudio>(p);
+}
+
+pageBlockAudio::pageBlockAudio(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : audio_id_(TlFetchLong::parse(p))
+ , caption_(TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockAudio");
+ s.store_field("audio_id", audio_id_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockKicker::ID;
+
+object_ptr<PageBlock> pageBlockKicker::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockKicker>(p);
+}
+
+pageBlockKicker::pageBlockKicker(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockKicker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockKicker");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+pageBlockTable::pageBlockTable()
+ : flags_()
+ , bordered_()
+ , striped_()
+ , title_()
+ , rows_()
+{}
+
+const std::int32_t pageBlockTable::ID;
+
+object_ptr<PageBlock> pageBlockTable::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<pageBlockTable> res = make_tl_object<pageBlockTable>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->bordered_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->striped_ = TlFetchTrue::parse(p); }
+ res->title_ = TlFetchObject<RichText>::parse(p);
+ res->rows_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<pageTableRow>, -524237339>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void pageBlockTable::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockTable");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("title", static_cast<const BaseObject *>(title_.get()));
+ { s.store_vector_begin("rows", rows_.size()); for (const auto &_value : rows_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockOrderedList::ID;
+
+object_ptr<PageBlock> pageBlockOrderedList::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockOrderedList>(p);
+}
+
+pageBlockOrderedList::pageBlockOrderedList(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : items_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageListOrderedItem>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockOrderedList::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockOrderedList");
+ { s.store_vector_begin("items", items_.size()); for (const auto &_value : items_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+pageBlockDetails::pageBlockDetails()
+ : flags_()
+ , open_()
+ , blocks_()
+ , title_()
+{}
+
+const std::int32_t pageBlockDetails::ID;
+
+object_ptr<PageBlock> pageBlockDetails::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<pageBlockDetails> res = make_tl_object<pageBlockDetails>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->open_ = TlFetchTrue::parse(p); }
+ res->blocks_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p);
+ res->title_ = TlFetchObject<RichText>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void pageBlockDetails::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockDetails");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ { s.store_vector_begin("blocks", blocks_.size()); for (const auto &_value : blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("title", static_cast<const BaseObject *>(title_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockRelatedArticles::ID;
+
+object_ptr<PageBlock> pageBlockRelatedArticles::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockRelatedArticles>(p);
+}
+
+pageBlockRelatedArticles::pageBlockRelatedArticles(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : title_(TlFetchObject<RichText>::parse(p))
+ , articles_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<pageRelatedArticle>, -1282352120>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockRelatedArticles::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockRelatedArticles");
+ s.store_object_field("title", static_cast<const BaseObject *>(title_.get()));
+ { s.store_vector_begin("articles", articles_.size()); for (const auto &_value : articles_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageBlockMap::ID;
+
+object_ptr<PageBlock> pageBlockMap::fetch(TlBufferParser &p) {
+ return make_tl_object<pageBlockMap>(p);
+}
+
+pageBlockMap::pageBlockMap(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : geo_(TlFetchObject<GeoPoint>::parse(p))
+ , zoom_(TlFetchInt::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , caption_(TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p))
+#undef FAIL
+{}
+
+void pageBlockMap::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageBlockMap");
+ s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get()));
+ s.store_field("zoom", zoom_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageCaption::ID;
+
+object_ptr<pageCaption> pageCaption::fetch(TlBufferParser &p) {
+ return make_tl_object<pageCaption>(p);
+}
+
+pageCaption::pageCaption(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+ , credit_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageCaption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageCaption");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_object_field("credit", static_cast<const BaseObject *>(credit_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<PageListItem> PageListItem::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case pageListItemText::ID:
+ return pageListItemText::fetch(p);
+ case pageListItemBlocks::ID:
+ return pageListItemBlocks::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t pageListItemText::ID;
+
+object_ptr<PageListItem> pageListItemText::fetch(TlBufferParser &p) {
+ return make_tl_object<pageListItemText>(p);
+}
+
+pageListItemText::pageListItemText(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageListItemText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageListItemText");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageListItemBlocks::ID;
+
+object_ptr<PageListItem> pageListItemBlocks::fetch(TlBufferParser &p) {
+ return make_tl_object<pageListItemBlocks>(p);
+}
+
+pageListItemBlocks::pageListItemBlocks(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : blocks_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void pageListItemBlocks::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageListItemBlocks");
+ { s.store_vector_begin("blocks", blocks_.size()); for (const auto &_value : blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<PageListOrderedItem> PageListOrderedItem::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case pageListOrderedItemText::ID:
+ return pageListOrderedItemText::fetch(p);
+ case pageListOrderedItemBlocks::ID:
+ return pageListOrderedItemBlocks::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t pageListOrderedItemText::ID;
+
+object_ptr<PageListOrderedItem> pageListOrderedItemText::fetch(TlBufferParser &p) {
+ return make_tl_object<pageListOrderedItemText>(p);
+}
+
+pageListOrderedItemText::pageListOrderedItemText(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : num_(TlFetchString<string>::parse(p))
+ , text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void pageListOrderedItemText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageListOrderedItemText");
+ s.store_field("num", num_);
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageListOrderedItemBlocks::ID;
+
+object_ptr<PageListOrderedItem> pageListOrderedItemBlocks::fetch(TlBufferParser &p) {
+ return make_tl_object<pageListOrderedItemBlocks>(p);
+}
+
+pageListOrderedItemBlocks::pageListOrderedItemBlocks(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : num_(TlFetchString<string>::parse(p))
+ , blocks_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void pageListOrderedItemBlocks::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageListOrderedItemBlocks");
+ s.store_field("num", num_);
+ { s.store_vector_begin("blocks", blocks_.size()); for (const auto &_value : blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+pageRelatedArticle::pageRelatedArticle()
+ : flags_()
+ , url_()
+ , webpage_id_()
+ , title_()
+ , description_()
+ , photo_id_()
+ , author_()
+ , published_date_()
+{}
+
+const std::int32_t pageRelatedArticle::ID;
+
+object_ptr<pageRelatedArticle> pageRelatedArticle::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<pageRelatedArticle> res = make_tl_object<pageRelatedArticle>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->url_ = TlFetchString<string>::parse(p);
+ res->webpage_id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->title_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2) { res->description_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->photo_id_ = TlFetchLong::parse(p); }
+ if (var0 & 8) { res->author_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->published_date_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void pageRelatedArticle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageRelatedArticle");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("url", url_);
+ s.store_field("webpage_id", webpage_id_);
+ if (var0 & 1) { s.store_field("title", title_); }
+ if (var0 & 2) { s.store_field("description", description_); }
+ if (var0 & 4) { s.store_field("photo_id", photo_id_); }
+ if (var0 & 8) { s.store_field("author", author_); }
+ if (var0 & 16) { s.store_field("published_date", published_date_); }
+ s.store_class_end();
+ }
+}
+
+pageTableCell::pageTableCell()
+ : flags_()
+ , header_()
+ , align_center_()
+ , align_right_()
+ , valign_middle_()
+ , valign_bottom_()
+ , text_()
+ , colspan_()
+ , rowspan_()
+{}
+
+const std::int32_t pageTableCell::ID;
+
+object_ptr<pageTableCell> pageTableCell::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<pageTableCell> res = make_tl_object<pageTableCell>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->header_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->align_center_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->align_right_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->valign_middle_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->valign_bottom_ = TlFetchTrue::parse(p); }
+ if (var0 & 128) { res->text_ = TlFetchObject<RichText>::parse(p); }
+ if (var0 & 2) { res->colspan_ = TlFetchInt::parse(p); }
+ if (var0 & 4) { res->rowspan_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void pageTableCell::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageTableCell");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 128) { s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); }
+ if (var0 & 2) { s.store_field("colspan", colspan_); }
+ if (var0 & 4) { s.store_field("rowspan", rowspan_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t pageTableRow::ID;
+
+object_ptr<pageTableRow> pageTableRow::fetch(TlBufferParser &p) {
+ return make_tl_object<pageTableRow>(p);
+}
+
+pageTableRow::pageTableRow(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : cells_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<pageTableCell>, 878078826>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void pageTableRow::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pageTableRow");
+ { s.store_vector_begin("cells", cells_.size()); for (const auto &_value : cells_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<PasswordKdfAlgo> PasswordKdfAlgo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case passwordKdfAlgoUnknown::ID:
+ return passwordKdfAlgoUnknown::fetch(p);
+ case passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::ID:
+ return passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t passwordKdfAlgoUnknown::ID;
+
+object_ptr<PasswordKdfAlgo> passwordKdfAlgoUnknown::fetch(TlBufferParser &p) {
+ return make_tl_object<passwordKdfAlgoUnknown>();
+}
+
+void passwordKdfAlgoUnknown::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void passwordKdfAlgoUnknown::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void passwordKdfAlgoUnknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passwordKdfAlgoUnknown");
+ s.store_class_end();
+ }
+}
+
+passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow(bytes &&salt1_, bytes &&salt2_, int32 g_, bytes &&p_)
+ : salt1_(std::move(salt1_))
+ , salt2_(std::move(salt2_))
+ , g_(g_)
+ , p_(std::move(p_))
+{}
+
+const std::int32_t passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::ID;
+
+object_ptr<PasswordKdfAlgo> passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::fetch(TlBufferParser &p) {
+ return make_tl_object<passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow>(p);
+}
+
+passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : salt1_(TlFetchBytes<bytes>::parse(p))
+ , salt2_(TlFetchBytes<bytes>::parse(p))
+ , g_(TlFetchInt::parse(p))
+ , p_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(salt1_, s);
+ TlStoreString::store(salt2_, s);
+ TlStoreBinary::store(g_, s);
+ TlStoreString::store(p_, s);
+}
+
+void passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(salt1_, s);
+ TlStoreString::store(salt2_, s);
+ TlStoreBinary::store(g_, s);
+ TlStoreString::store(p_, s);
+}
+
+void passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow");
+ s.store_bytes_field("salt1", salt1_);
+ s.store_bytes_field("salt2", salt2_);
+ s.store_field("g", g_);
+ s.store_bytes_field("p", p_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t paymentCharge::ID;
+
+object_ptr<paymentCharge> paymentCharge::fetch(TlBufferParser &p) {
+ return make_tl_object<paymentCharge>(p);
+}
+
+paymentCharge::paymentCharge(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchString<string>::parse(p))
+ , provider_charge_id_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void paymentCharge::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentCharge");
+ s.store_field("id", id_);
+ s.store_field("provider_charge_id", provider_charge_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t paymentFormMethod::ID;
+
+object_ptr<paymentFormMethod> paymentFormMethod::fetch(TlBufferParser &p) {
+ return make_tl_object<paymentFormMethod>(p);
+}
+
+paymentFormMethod::paymentFormMethod(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+ , title_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void paymentFormMethod::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentFormMethod");
+ s.store_field("url", url_);
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+paymentRequestedInfo::paymentRequestedInfo()
+ : flags_()
+ , name_()
+ , phone_()
+ , email_()
+ , shipping_address_()
+{}
+
+paymentRequestedInfo::paymentRequestedInfo(int32 flags_, string const &name_, string const &phone_, string const &email_, object_ptr<postAddress> &&shipping_address_)
+ : flags_(flags_)
+ , name_(name_)
+ , phone_(phone_)
+ , email_(email_)
+ , shipping_address_(std::move(shipping_address_))
+{}
+
+const std::int32_t paymentRequestedInfo::ID;
+
+object_ptr<paymentRequestedInfo> paymentRequestedInfo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<paymentRequestedInfo> res = make_tl_object<paymentRequestedInfo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->name_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2) { res->phone_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->email_ = TlFetchString<string>::parse(p); }
+ if (var0 & 8) { res->shipping_address_ = TlFetchBoxed<TlFetchObject<postAddress>, 512535275>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void paymentRequestedInfo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreString::store(name_, s); }
+ if (var0 & 2) { TlStoreString::store(phone_, s); }
+ if (var0 & 4) { TlStoreString::store(email_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreObject, 512535275>::store(shipping_address_, s); }
+}
+
+void paymentRequestedInfo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreString::store(name_, s); }
+ if (var0 & 2) { TlStoreString::store(phone_, s); }
+ if (var0 & 4) { TlStoreString::store(email_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreObject, 512535275>::store(shipping_address_, s); }
+}
+
+void paymentRequestedInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentRequestedInfo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("name", name_); }
+ if (var0 & 2) { s.store_field("phone", phone_); }
+ if (var0 & 4) { s.store_field("email", email_); }
+ if (var0 & 8) { s.store_object_field("shipping_address", static_cast<const BaseObject *>(shipping_address_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t paymentSavedCredentialsCard::ID;
+
+object_ptr<paymentSavedCredentialsCard> paymentSavedCredentialsCard::fetch(TlBufferParser &p) {
+ return make_tl_object<paymentSavedCredentialsCard>(p);
+}
+
+paymentSavedCredentialsCard::paymentSavedCredentialsCard(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchString<string>::parse(p))
+ , title_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void paymentSavedCredentialsCard::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "paymentSavedCredentialsCard");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<Peer> Peer::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case peerUser::ID:
+ return peerUser::fetch(p);
+ case peerChat::ID:
+ return peerChat::fetch(p);
+ case peerChannel::ID:
+ return peerChannel::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+peerUser::peerUser(int64 user_id_)
+ : user_id_(user_id_)
+{}
+
+const std::int32_t peerUser::ID;
+
+object_ptr<Peer> peerUser::fetch(TlBufferParser &p) {
+ return make_tl_object<peerUser>(p);
+}
+
+peerUser::peerUser(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void peerUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "peerUser");
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+peerChat::peerChat(int64 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t peerChat::ID;
+
+object_ptr<Peer> peerChat::fetch(TlBufferParser &p) {
+ return make_tl_object<peerChat>(p);
+}
+
+peerChat::peerChat(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void peerChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "peerChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t peerChannel::ID;
+
+object_ptr<Peer> peerChannel::fetch(TlBufferParser &p) {
+ return make_tl_object<peerChannel>(p);
+}
+
+peerChannel::peerChannel(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void peerChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "peerChannel");
+ s.store_field("channel_id", channel_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t peerBlocked::ID;
+
+object_ptr<peerBlocked> peerBlocked::fetch(TlBufferParser &p) {
+ return make_tl_object<peerBlocked>(p);
+}
+
+peerBlocked::peerBlocked(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_id_(TlFetchObject<Peer>::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void peerBlocked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "peerBlocked");
+ s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get()));
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<PeerLocated> PeerLocated::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case peerLocated::ID:
+ return peerLocated::fetch(p);
+ case peerSelfLocated::ID:
+ return peerSelfLocated::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t peerLocated::ID;
+
+object_ptr<PeerLocated> peerLocated::fetch(TlBufferParser &p) {
+ return make_tl_object<peerLocated>(p);
+}
+
+peerLocated::peerLocated(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , expires_(TlFetchInt::parse(p))
+ , distance_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void peerLocated::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "peerLocated");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("expires", expires_);
+ s.store_field("distance", distance_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t peerSelfLocated::ID;
+
+object_ptr<PeerLocated> peerSelfLocated::fetch(TlBufferParser &p) {
+ return make_tl_object<peerSelfLocated>(p);
+}
+
+peerSelfLocated::peerSelfLocated(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : expires_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void peerSelfLocated::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "peerSelfLocated");
+ s.store_field("expires", expires_);
+ s.store_class_end();
+ }
+}
+
+peerNotifySettings::peerNotifySettings()
+ : flags_()
+ , show_previews_()
+ , silent_()
+ , mute_until_()
+ , ios_sound_()
+ , android_sound_()
+ , other_sound_()
+{}
+
+const std::int32_t peerNotifySettings::ID;
+
+object_ptr<peerNotifySettings> peerNotifySettings::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<peerNotifySettings> res = make_tl_object<peerNotifySettings>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->show_previews_ = TlFetchBool::parse(p); }
+ if (var0 & 2) { res->silent_ = TlFetchBool::parse(p); }
+ if (var0 & 4) { res->mute_until_ = TlFetchInt::parse(p); }
+ if (var0 & 8) { res->ios_sound_ = TlFetchObject<NotificationSound>::parse(p); }
+ if (var0 & 16) { res->android_sound_ = TlFetchObject<NotificationSound>::parse(p); }
+ if (var0 & 32) { res->other_sound_ = TlFetchObject<NotificationSound>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void peerNotifySettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "peerNotifySettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("show_previews", show_previews_); }
+ if (var0 & 2) { s.store_field("silent", silent_); }
+ if (var0 & 4) { s.store_field("mute_until", mute_until_); }
+ if (var0 & 8) { s.store_object_field("ios_sound", static_cast<const BaseObject *>(ios_sound_.get())); }
+ if (var0 & 16) { s.store_object_field("android_sound", static_cast<const BaseObject *>(android_sound_.get())); }
+ if (var0 & 32) { s.store_object_field("other_sound", static_cast<const BaseObject *>(other_sound_.get())); }
+ s.store_class_end();
+ }
+}
+
+peerSettings::peerSettings()
+ : flags_()
+ , report_spam_()
+ , add_contact_()
+ , block_contact_()
+ , share_contact_()
+ , need_contacts_exception_()
+ , report_geo_()
+ , autoarchived_()
+ , invite_members_()
+ , request_chat_broadcast_()
+ , geo_distance_()
+ , request_chat_title_()
+ , request_chat_date_()
+{}
+
+const std::int32_t peerSettings::ID;
+
+object_ptr<peerSettings> peerSettings::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<peerSettings> res = make_tl_object<peerSettings>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->report_spam_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->add_contact_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->block_contact_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->share_contact_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->need_contacts_exception_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->report_geo_ = TlFetchTrue::parse(p); }
+ if (var0 & 128) { res->autoarchived_ = TlFetchTrue::parse(p); }
+ if (var0 & 256) { res->invite_members_ = TlFetchTrue::parse(p); }
+ if (var0 & 1024) { res->request_chat_broadcast_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->geo_distance_ = TlFetchInt::parse(p); }
+ if (var0 & 512) { res->request_chat_title_ = TlFetchString<string>::parse(p); }
+ if (var0 & 512) { res->request_chat_date_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void peerSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "peerSettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 64) { s.store_field("geo_distance", geo_distance_); }
+ if (var0 & 512) { s.store_field("request_chat_title", request_chat_title_); }
+ if (var0 & 512) { s.store_field("request_chat_date", request_chat_date_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<PhoneCall> PhoneCall::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case phoneCallEmpty::ID:
+ return phoneCallEmpty::fetch(p);
+ case phoneCallWaiting::ID:
+ return phoneCallWaiting::fetch(p);
+ case phoneCallRequested::ID:
+ return phoneCallRequested::fetch(p);
+ case phoneCallAccepted::ID:
+ return phoneCallAccepted::fetch(p);
+ case phoneCall::ID:
+ return phoneCall::fetch(p);
+ case phoneCallDiscarded::ID:
+ return phoneCallDiscarded::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t phoneCallEmpty::ID;
+
+object_ptr<PhoneCall> phoneCallEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<phoneCallEmpty>(p);
+}
+
+phoneCallEmpty::phoneCallEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void phoneCallEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCallEmpty");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+phoneCallWaiting::phoneCallWaiting()
+ : flags_()
+ , video_()
+ , id_()
+ , access_hash_()
+ , date_()
+ , admin_id_()
+ , participant_id_()
+ , protocol_()
+ , receive_date_()
+{}
+
+const std::int32_t phoneCallWaiting::ID;
+
+object_ptr<PhoneCall> phoneCallWaiting::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<phoneCallWaiting> res = make_tl_object<phoneCallWaiting>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 64) { res->video_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->admin_id_ = TlFetchLong::parse(p);
+ res->participant_id_ = TlFetchLong::parse(p);
+ res->protocol_ = TlFetchBoxed<TlFetchObject<phoneCallProtocol>, -58224696>::parse(p);
+ if (var0 & 1) { res->receive_date_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void phoneCallWaiting::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCallWaiting");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("date", date_);
+ s.store_field("admin_id", admin_id_);
+ s.store_field("participant_id", participant_id_);
+ s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get()));
+ if (var0 & 1) { s.store_field("receive_date", receive_date_); }
+ s.store_class_end();
+ }
+}
+
+phoneCallRequested::phoneCallRequested()
+ : flags_()
+ , video_()
+ , id_()
+ , access_hash_()
+ , date_()
+ , admin_id_()
+ , participant_id_()
+ , g_a_hash_()
+ , protocol_()
+{}
+
+const std::int32_t phoneCallRequested::ID;
+
+object_ptr<PhoneCall> phoneCallRequested::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<phoneCallRequested> res = make_tl_object<phoneCallRequested>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 64) { res->video_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->admin_id_ = TlFetchLong::parse(p);
+ res->participant_id_ = TlFetchLong::parse(p);
+ res->g_a_hash_ = TlFetchBytes<bytes>::parse(p);
+ res->protocol_ = TlFetchBoxed<TlFetchObject<phoneCallProtocol>, -58224696>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void phoneCallRequested::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCallRequested");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("date", date_);
+ s.store_field("admin_id", admin_id_);
+ s.store_field("participant_id", participant_id_);
+ s.store_bytes_field("g_a_hash", g_a_hash_);
+ s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get()));
+ s.store_class_end();
+ }
+}
+
+phoneCallAccepted::phoneCallAccepted()
+ : flags_()
+ , video_()
+ , id_()
+ , access_hash_()
+ , date_()
+ , admin_id_()
+ , participant_id_()
+ , g_b_()
+ , protocol_()
+{}
+
+const std::int32_t phoneCallAccepted::ID;
+
+object_ptr<PhoneCall> phoneCallAccepted::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<phoneCallAccepted> res = make_tl_object<phoneCallAccepted>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 64) { res->video_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->admin_id_ = TlFetchLong::parse(p);
+ res->participant_id_ = TlFetchLong::parse(p);
+ res->g_b_ = TlFetchBytes<bytes>::parse(p);
+ res->protocol_ = TlFetchBoxed<TlFetchObject<phoneCallProtocol>, -58224696>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void phoneCallAccepted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCallAccepted");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("date", date_);
+ s.store_field("admin_id", admin_id_);
+ s.store_field("participant_id", participant_id_);
+ s.store_bytes_field("g_b", g_b_);
+ s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get()));
+ s.store_class_end();
+ }
+}
+
+phoneCall::phoneCall()
+ : flags_()
+ , p2p_allowed_()
+ , video_()
+ , id_()
+ , access_hash_()
+ , date_()
+ , admin_id_()
+ , participant_id_()
+ , g_a_or_b_()
+ , key_fingerprint_()
+ , protocol_()
+ , connections_()
+ , start_date_()
+{}
+
+const std::int32_t phoneCall::ID;
+
+object_ptr<PhoneCall> phoneCall::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<phoneCall> res = make_tl_object<phoneCall>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 32) { res->p2p_allowed_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->video_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->admin_id_ = TlFetchLong::parse(p);
+ res->participant_id_ = TlFetchLong::parse(p);
+ res->g_a_or_b_ = TlFetchBytes<bytes>::parse(p);
+ res->key_fingerprint_ = TlFetchLong::parse(p);
+ res->protocol_ = TlFetchBoxed<TlFetchObject<phoneCallProtocol>, -58224696>::parse(p);
+ res->connections_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PhoneConnection>>, 481674261>::parse(p);
+ res->start_date_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void phoneCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCall");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("date", date_);
+ s.store_field("admin_id", admin_id_);
+ s.store_field("participant_id", participant_id_);
+ s.store_bytes_field("g_a_or_b", g_a_or_b_);
+ s.store_field("key_fingerprint", key_fingerprint_);
+ s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get()));
+ { s.store_vector_begin("connections", connections_.size()); for (const auto &_value : connections_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("start_date", start_date_);
+ s.store_class_end();
+ }
+}
+
+phoneCallDiscarded::phoneCallDiscarded()
+ : flags_()
+ , need_rating_()
+ , need_debug_()
+ , video_()
+ , id_()
+ , reason_()
+ , duration_()
+{}
+
+const std::int32_t phoneCallDiscarded::ID;
+
+object_ptr<PhoneCall> phoneCallDiscarded::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<phoneCallDiscarded> res = make_tl_object<phoneCallDiscarded>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 4) { res->need_rating_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->need_debug_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->video_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->reason_ = TlFetchObject<PhoneCallDiscardReason>::parse(p); }
+ if (var0 & 2) { res->duration_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void phoneCallDiscarded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCallDiscarded");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ if (var0 & 1) { s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); }
+ if (var0 & 2) { s.store_field("duration", duration_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<PhoneCallDiscardReason> PhoneCallDiscardReason::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case phoneCallDiscardReasonMissed::ID:
+ return phoneCallDiscardReasonMissed::fetch(p);
+ case phoneCallDiscardReasonDisconnect::ID:
+ return phoneCallDiscardReasonDisconnect::fetch(p);
+ case phoneCallDiscardReasonHangup::ID:
+ return phoneCallDiscardReasonHangup::fetch(p);
+ case phoneCallDiscardReasonBusy::ID:
+ return phoneCallDiscardReasonBusy::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t phoneCallDiscardReasonMissed::ID;
+
+object_ptr<PhoneCallDiscardReason> phoneCallDiscardReasonMissed::fetch(TlBufferParser &p) {
+ return make_tl_object<phoneCallDiscardReasonMissed>();
+}
+
+void phoneCallDiscardReasonMissed::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void phoneCallDiscardReasonMissed::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void phoneCallDiscardReasonMissed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCallDiscardReasonMissed");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t phoneCallDiscardReasonDisconnect::ID;
+
+object_ptr<PhoneCallDiscardReason> phoneCallDiscardReasonDisconnect::fetch(TlBufferParser &p) {
+ return make_tl_object<phoneCallDiscardReasonDisconnect>();
+}
+
+void phoneCallDiscardReasonDisconnect::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void phoneCallDiscardReasonDisconnect::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void phoneCallDiscardReasonDisconnect::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCallDiscardReasonDisconnect");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t phoneCallDiscardReasonHangup::ID;
+
+object_ptr<PhoneCallDiscardReason> phoneCallDiscardReasonHangup::fetch(TlBufferParser &p) {
+ return make_tl_object<phoneCallDiscardReasonHangup>();
+}
+
+void phoneCallDiscardReasonHangup::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void phoneCallDiscardReasonHangup::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void phoneCallDiscardReasonHangup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCallDiscardReasonHangup");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t phoneCallDiscardReasonBusy::ID;
+
+object_ptr<PhoneCallDiscardReason> phoneCallDiscardReasonBusy::fetch(TlBufferParser &p) {
+ return make_tl_object<phoneCallDiscardReasonBusy>();
+}
+
+void phoneCallDiscardReasonBusy::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void phoneCallDiscardReasonBusy::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void phoneCallDiscardReasonBusy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCallDiscardReasonBusy");
+ s.store_class_end();
+ }
+}
+
+phoneCallProtocol::phoneCallProtocol()
+ : flags_()
+ , udp_p2p_()
+ , udp_reflector_()
+ , min_layer_()
+ , max_layer_()
+ , library_versions_()
+{}
+
+phoneCallProtocol::phoneCallProtocol(int32 flags_, bool udp_p2p_, bool udp_reflector_, int32 min_layer_, int32 max_layer_, array<string> &&library_versions_)
+ : flags_(flags_)
+ , udp_p2p_(udp_p2p_)
+ , udp_reflector_(udp_reflector_)
+ , min_layer_(min_layer_)
+ , max_layer_(max_layer_)
+ , library_versions_(std::move(library_versions_))
+{}
+
+const std::int32_t phoneCallProtocol::ID;
+
+object_ptr<phoneCallProtocol> phoneCallProtocol::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<phoneCallProtocol> res = make_tl_object<phoneCallProtocol>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->udp_p2p_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->udp_reflector_ = TlFetchTrue::parse(p); }
+ res->min_layer_ = TlFetchInt::parse(p);
+ res->max_layer_ = TlFetchInt::parse(p);
+ res->library_versions_ = TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void phoneCallProtocol::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(min_layer_, s);
+ TlStoreBinary::store(max_layer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(library_versions_, s);
+}
+
+void phoneCallProtocol::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(min_layer_, s);
+ TlStoreBinary::store(max_layer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(library_versions_, s);
+}
+
+void phoneCallProtocol::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneCallProtocol");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("min_layer", min_layer_);
+ s.store_field("max_layer", max_layer_);
+ { s.store_vector_begin("library_versions", library_versions_.size()); for (const auto &_value : library_versions_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<PhoneConnection> PhoneConnection::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case phoneConnection::ID:
+ return phoneConnection::fetch(p);
+ case phoneConnectionWebrtc::ID:
+ return phoneConnectionWebrtc::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+phoneConnection::phoneConnection()
+ : flags_()
+ , tcp_()
+ , id_()
+ , ip_()
+ , ipv6_()
+ , port_()
+ , peer_tag_()
+{}
+
+const std::int32_t phoneConnection::ID;
+
+object_ptr<PhoneConnection> phoneConnection::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<phoneConnection> res = make_tl_object<phoneConnection>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->tcp_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->ip_ = TlFetchString<string>::parse(p);
+ res->ipv6_ = TlFetchString<string>::parse(p);
+ res->port_ = TlFetchInt::parse(p);
+ res->peer_tag_ = TlFetchBytes<bytes>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void phoneConnection::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneConnection");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("ip", ip_);
+ s.store_field("ipv6", ipv6_);
+ s.store_field("port", port_);
+ s.store_bytes_field("peer_tag", peer_tag_);
+ s.store_class_end();
+ }
+}
+
+phoneConnectionWebrtc::phoneConnectionWebrtc()
+ : flags_()
+ , turn_()
+ , stun_()
+ , id_()
+ , ip_()
+ , ipv6_()
+ , port_()
+ , username_()
+ , password_()
+{}
+
+const std::int32_t phoneConnectionWebrtc::ID;
+
+object_ptr<PhoneConnection> phoneConnectionWebrtc::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<phoneConnectionWebrtc> res = make_tl_object<phoneConnectionWebrtc>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->turn_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->stun_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->ip_ = TlFetchString<string>::parse(p);
+ res->ipv6_ = TlFetchString<string>::parse(p);
+ res->port_ = TlFetchInt::parse(p);
+ res->username_ = TlFetchString<string>::parse(p);
+ res->password_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void phoneConnectionWebrtc::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phoneConnectionWebrtc");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("ip", ip_);
+ s.store_field("ipv6", ipv6_);
+ s.store_field("port", port_);
+ s.store_field("username", username_);
+ s.store_field("password", password_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<Photo> Photo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case photoEmpty::ID:
+ return photoEmpty::fetch(p);
+ case photo::ID:
+ return photo::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t photoEmpty::ID;
+
+object_ptr<Photo> photoEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<photoEmpty>(p);
+}
+
+photoEmpty::photoEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void photoEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoEmpty");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+photo::photo()
+ : flags_()
+ , has_stickers_()
+ , id_()
+ , access_hash_()
+ , file_reference_()
+ , date_()
+ , sizes_()
+ , video_sizes_()
+ , dc_id_()
+{}
+
+const std::int32_t photo::ID;
+
+object_ptr<Photo> photo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<photo> res = make_tl_object<photo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->has_stickers_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->file_reference_ = TlFetchBytes<bytes>::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->sizes_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PhotoSize>>, 481674261>::parse(p);
+ if (var0 & 2) { res->video_sizes_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<videoSize>, -567037804>>, 481674261>::parse(p); }
+ res->dc_id_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void photo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_bytes_field("file_reference", file_reference_);
+ s.store_field("date", date_);
+ { s.store_vector_begin("sizes", sizes_.size()); for (const auto &_value : sizes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 2) { { s.store_vector_begin("video_sizes", video_sizes_.size()); for (const auto &_value : video_sizes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_field("dc_id", dc_id_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<PhotoSize> PhotoSize::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case photoSizeEmpty::ID:
+ return photoSizeEmpty::fetch(p);
+ case photoSize::ID:
+ return photoSize::fetch(p);
+ case photoCachedSize::ID:
+ return photoCachedSize::fetch(p);
+ case photoStrippedSize::ID:
+ return photoStrippedSize::fetch(p);
+ case photoSizeProgressive::ID:
+ return photoSizeProgressive::fetch(p);
+ case photoPathSize::ID:
+ return photoPathSize::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+photoSizeEmpty::photoSizeEmpty(string const &type_)
+ : type_(type_)
+{}
+
+const std::int32_t photoSizeEmpty::ID;
+
+object_ptr<PhotoSize> photoSizeEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<photoSizeEmpty>(p);
+}
+
+photoSizeEmpty::photoSizeEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void photoSizeEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoSizeEmpty");
+ s.store_field("type", type_);
+ s.store_class_end();
+ }
+}
+
+photoSize::photoSize(string const &type_, int32 w_, int32 h_, int32 size_)
+ : type_(type_)
+ , w_(w_)
+ , h_(h_)
+ , size_(size_)
+{}
+
+const std::int32_t photoSize::ID;
+
+object_ptr<PhotoSize> photoSize::fetch(TlBufferParser &p) {
+ return make_tl_object<photoSize>(p);
+}
+
+photoSize::photoSize(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchString<string>::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , size_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void photoSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoSize");
+ s.store_field("type", type_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_field("size", size_);
+ s.store_class_end();
+ }
+}
+
+photoCachedSize::photoCachedSize(string const &type_, int32 w_, int32 h_, bytes &&bytes_)
+ : type_(type_)
+ , w_(w_)
+ , h_(h_)
+ , bytes_(std::move(bytes_))
+{}
+
+const std::int32_t photoCachedSize::ID;
+
+object_ptr<PhotoSize> photoCachedSize::fetch(TlBufferParser &p) {
+ return make_tl_object<photoCachedSize>(p);
+}
+
+photoCachedSize::photoCachedSize(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchString<string>::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , bytes_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void photoCachedSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoCachedSize");
+ s.store_field("type", type_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t photoStrippedSize::ID;
+
+object_ptr<PhotoSize> photoStrippedSize::fetch(TlBufferParser &p) {
+ return make_tl_object<photoStrippedSize>(p);
+}
+
+photoStrippedSize::photoStrippedSize(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchString<string>::parse(p))
+ , bytes_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void photoStrippedSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoStrippedSize");
+ s.store_field("type", type_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t photoSizeProgressive::ID;
+
+object_ptr<PhotoSize> photoSizeProgressive::fetch(TlBufferParser &p) {
+ return make_tl_object<photoSizeProgressive>(p);
+}
+
+photoSizeProgressive::photoSizeProgressive(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchString<string>::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+ , sizes_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void photoSizeProgressive::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoSizeProgressive");
+ s.store_field("type", type_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ { s.store_vector_begin("sizes", sizes_.size()); for (const auto &_value : sizes_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t photoPathSize::ID;
+
+object_ptr<PhotoSize> photoPathSize::fetch(TlBufferParser &p) {
+ return make_tl_object<photoPathSize>(p);
+}
+
+photoPathSize::photoPathSize(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchString<string>::parse(p))
+ , bytes_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void photoPathSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photoPathSize");
+ s.store_field("type", type_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+poll::poll()
+ : id_()
+ , flags_()
+ , closed_()
+ , public_voters_()
+ , multiple_choice_()
+ , quiz_()
+ , question_()
+ , answers_()
+ , close_period_()
+ , close_date_()
+{}
+
+poll::poll(int64 id_, int32 flags_, bool closed_, bool public_voters_, bool multiple_choice_, bool quiz_, string const &question_, array<object_ptr<pollAnswer>> &&answers_, int32 close_period_, int32 close_date_)
+ : id_(id_)
+ , flags_(flags_)
+ , closed_(closed_)
+ , public_voters_(public_voters_)
+ , multiple_choice_(multiple_choice_)
+ , quiz_(quiz_)
+ , question_(question_)
+ , answers_(std::move(answers_))
+ , close_period_(close_period_)
+ , close_date_(close_date_)
+{}
+
+const std::int32_t poll::ID;
+
+object_ptr<poll> poll::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<poll> res = make_tl_object<poll>();
+ int32 var0;
+ res->id_ = TlFetchLong::parse(p);
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->closed_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->public_voters_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->multiple_choice_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->quiz_ = TlFetchTrue::parse(p); }
+ res->question_ = TlFetchString<string>::parse(p);
+ res->answers_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<pollAnswer>, 1823064809>>, 481674261>::parse(p);
+ if (var0 & 16) { res->close_period_ = TlFetchInt::parse(p); }
+ if (var0 & 32) { res->close_date_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void poll::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(question_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 1823064809>>, 481674261>::store(answers_, s);
+ if (var0 & 16) { TlStoreBinary::store(close_period_, s); }
+ if (var0 & 32) { TlStoreBinary::store(close_date_, s); }
+}
+
+void poll::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store(id_, s);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(question_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 1823064809>>, 481674261>::store(answers_, s);
+ if (var0 & 16) { TlStoreBinary::store(close_period_, s); }
+ if (var0 & 32) { TlStoreBinary::store(close_date_, s); }
+}
+
+void poll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "poll");
+ int32 var0;
+ s.store_field("id", id_);
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("question", question_);
+ { s.store_vector_begin("answers", answers_.size()); for (const auto &_value : answers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 16) { s.store_field("close_period", close_period_); }
+ if (var0 & 32) { s.store_field("close_date", close_date_); }
+ s.store_class_end();
+ }
+}
+
+pollAnswer::pollAnswer(string const &text_, bytes &&option_)
+ : text_(text_)
+ , option_(std::move(option_))
+{}
+
+const std::int32_t pollAnswer::ID;
+
+object_ptr<pollAnswer> pollAnswer::fetch(TlBufferParser &p) {
+ return make_tl_object<pollAnswer>(p);
+}
+
+pollAnswer::pollAnswer(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+ , option_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void pollAnswer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(option_, s);
+}
+
+void pollAnswer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(text_, s);
+ TlStoreString::store(option_, s);
+}
+
+void pollAnswer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pollAnswer");
+ s.store_field("text", text_);
+ s.store_bytes_field("option", option_);
+ s.store_class_end();
+ }
+}
+
+pollAnswerVoters::pollAnswerVoters()
+ : flags_()
+ , chosen_()
+ , correct_()
+ , option_()
+ , voters_()
+{}
+
+const std::int32_t pollAnswerVoters::ID;
+
+object_ptr<pollAnswerVoters> pollAnswerVoters::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<pollAnswerVoters> res = make_tl_object<pollAnswerVoters>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->chosen_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->correct_ = TlFetchTrue::parse(p); }
+ res->option_ = TlFetchBytes<bytes>::parse(p);
+ res->voters_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void pollAnswerVoters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pollAnswerVoters");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_bytes_field("option", option_);
+ s.store_field("voters", voters_);
+ s.store_class_end();
+ }
+}
+
+pollResults::pollResults()
+ : flags_()
+ , min_()
+ , results_()
+ , total_voters_()
+ , recent_voters_()
+ , solution_()
+ , solution_entities_()
+{}
+
+const std::int32_t pollResults::ID;
+
+object_ptr<pollResults> pollResults::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<pollResults> res = make_tl_object<pollResults>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->min_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->results_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<pollAnswerVoters>, 997055186>>, 481674261>::parse(p); }
+ if (var0 & 4) { res->total_voters_ = TlFetchInt::parse(p); }
+ if (var0 & 8) { res->recent_voters_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); }
+ if (var0 & 16) { res->solution_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->solution_entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void pollResults::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "pollResults");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 4) { s.store_field("total_voters", total_voters_); }
+ if (var0 & 8) { { s.store_vector_begin("recent_voters", recent_voters_.size()); for (const auto &_value : recent_voters_) { s.store_field("", _value); } s.store_class_end(); } }
+ if (var0 & 16) { s.store_field("solution", solution_); }
+ if (var0 & 16) { { s.store_vector_begin("solution_entities", solution_entities_.size()); for (const auto &_value : solution_entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t popularContact::ID;
+
+object_ptr<popularContact> popularContact::fetch(TlBufferParser &p) {
+ return make_tl_object<popularContact>(p);
+}
+
+popularContact::popularContact(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : client_id_(TlFetchLong::parse(p))
+ , importers_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void popularContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "popularContact");
+ s.store_field("client_id", client_id_);
+ s.store_field("importers", importers_);
+ s.store_class_end();
+ }
+}
+
+postAddress::postAddress(string const &street_line1_, string const &street_line2_, string const &city_, string const &state_, string const &country_iso2_, string const &post_code_)
+ : street_line1_(street_line1_)
+ , street_line2_(street_line2_)
+ , city_(city_)
+ , state_(state_)
+ , country_iso2_(country_iso2_)
+ , post_code_(post_code_)
+{}
+
+const std::int32_t postAddress::ID;
+
+object_ptr<postAddress> postAddress::fetch(TlBufferParser &p) {
+ return make_tl_object<postAddress>(p);
+}
+
+postAddress::postAddress(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : street_line1_(TlFetchString<string>::parse(p))
+ , street_line2_(TlFetchString<string>::parse(p))
+ , city_(TlFetchString<string>::parse(p))
+ , state_(TlFetchString<string>::parse(p))
+ , country_iso2_(TlFetchString<string>::parse(p))
+ , post_code_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void postAddress::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(street_line1_, s);
+ TlStoreString::store(street_line2_, s);
+ TlStoreString::store(city_, s);
+ TlStoreString::store(state_, s);
+ TlStoreString::store(country_iso2_, s);
+ TlStoreString::store(post_code_, s);
+}
+
+void postAddress::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(street_line1_, s);
+ TlStoreString::store(street_line2_, s);
+ TlStoreString::store(city_, s);
+ TlStoreString::store(state_, s);
+ TlStoreString::store(country_iso2_, s);
+ TlStoreString::store(post_code_, s);
+}
+
+void postAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "postAddress");
+ s.store_field("street_line1", street_line1_);
+ s.store_field("street_line2", street_line2_);
+ s.store_field("city", city_);
+ s.store_field("state", state_);
+ s.store_field("country_iso2", country_iso2_);
+ s.store_field("post_code", post_code_);
+ s.store_class_end();
+ }
+}
+
+premiumGiftOption::premiumGiftOption()
+ : flags_()
+ , months_()
+ , currency_()
+ , amount_()
+ , bot_url_()
+ , store_product_()
+{}
+
+const std::int32_t premiumGiftOption::ID;
+
+object_ptr<premiumGiftOption> premiumGiftOption::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<premiumGiftOption> res = make_tl_object<premiumGiftOption>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->months_ = TlFetchInt::parse(p);
+ res->currency_ = TlFetchString<string>::parse(p);
+ res->amount_ = TlFetchLong::parse(p);
+ res->bot_url_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->store_product_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void premiumGiftOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumGiftOption");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("months", months_);
+ s.store_field("currency", currency_);
+ s.store_field("amount", amount_);
+ s.store_field("bot_url", bot_url_);
+ if (var0 & 1) { s.store_field("store_product", store_product_); }
+ s.store_class_end();
+ }
+}
+
+premiumSubscriptionOption::premiumSubscriptionOption()
+ : flags_()
+ , current_()
+ , can_purchase_upgrade_()
+ , months_()
+ , currency_()
+ , amount_()
+ , bot_url_()
+ , store_product_()
+{}
+
+const std::int32_t premiumSubscriptionOption::ID;
+
+object_ptr<premiumSubscriptionOption> premiumSubscriptionOption::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<premiumSubscriptionOption> res = make_tl_object<premiumSubscriptionOption>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->current_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->can_purchase_upgrade_ = TlFetchTrue::parse(p); }
+ res->months_ = TlFetchInt::parse(p);
+ res->currency_ = TlFetchString<string>::parse(p);
+ res->amount_ = TlFetchLong::parse(p);
+ res->bot_url_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->store_product_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void premiumSubscriptionOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "premiumSubscriptionOption");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("months", months_);
+ s.store_field("currency", currency_);
+ s.store_field("amount", amount_);
+ s.store_field("bot_url", bot_url_);
+ if (var0 & 1) { s.store_field("store_product", store_product_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<PrivacyKey> PrivacyKey::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case privacyKeyStatusTimestamp::ID:
+ return privacyKeyStatusTimestamp::fetch(p);
+ case privacyKeyChatInvite::ID:
+ return privacyKeyChatInvite::fetch(p);
+ case privacyKeyPhoneCall::ID:
+ return privacyKeyPhoneCall::fetch(p);
+ case privacyKeyPhoneP2P::ID:
+ return privacyKeyPhoneP2P::fetch(p);
+ case privacyKeyForwards::ID:
+ return privacyKeyForwards::fetch(p);
+ case privacyKeyProfilePhoto::ID:
+ return privacyKeyProfilePhoto::fetch(p);
+ case privacyKeyPhoneNumber::ID:
+ return privacyKeyPhoneNumber::fetch(p);
+ case privacyKeyAddedByPhone::ID:
+ return privacyKeyAddedByPhone::fetch(p);
+ case privacyKeyVoiceMessages::ID:
+ return privacyKeyVoiceMessages::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t privacyKeyStatusTimestamp::ID;
+
+object_ptr<PrivacyKey> privacyKeyStatusTimestamp::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyKeyStatusTimestamp>();
+}
+
+void privacyKeyStatusTimestamp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyKeyStatusTimestamp");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyKeyChatInvite::ID;
+
+object_ptr<PrivacyKey> privacyKeyChatInvite::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyKeyChatInvite>();
+}
+
+void privacyKeyChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyKeyChatInvite");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyKeyPhoneCall::ID;
+
+object_ptr<PrivacyKey> privacyKeyPhoneCall::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyKeyPhoneCall>();
+}
+
+void privacyKeyPhoneCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyKeyPhoneCall");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyKeyPhoneP2P::ID;
+
+object_ptr<PrivacyKey> privacyKeyPhoneP2P::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyKeyPhoneP2P>();
+}
+
+void privacyKeyPhoneP2P::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyKeyPhoneP2P");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyKeyForwards::ID;
+
+object_ptr<PrivacyKey> privacyKeyForwards::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyKeyForwards>();
+}
+
+void privacyKeyForwards::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyKeyForwards");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyKeyProfilePhoto::ID;
+
+object_ptr<PrivacyKey> privacyKeyProfilePhoto::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyKeyProfilePhoto>();
+}
+
+void privacyKeyProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyKeyProfilePhoto");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyKeyPhoneNumber::ID;
+
+object_ptr<PrivacyKey> privacyKeyPhoneNumber::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyKeyPhoneNumber>();
+}
+
+void privacyKeyPhoneNumber::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyKeyPhoneNumber");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyKeyAddedByPhone::ID;
+
+object_ptr<PrivacyKey> privacyKeyAddedByPhone::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyKeyAddedByPhone>();
+}
+
+void privacyKeyAddedByPhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyKeyAddedByPhone");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyKeyVoiceMessages::ID;
+
+object_ptr<PrivacyKey> privacyKeyVoiceMessages::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyKeyVoiceMessages>();
+}
+
+void privacyKeyVoiceMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyKeyVoiceMessages");
+ s.store_class_end();
+ }
+}
+
+object_ptr<PrivacyRule> PrivacyRule::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case privacyValueAllowContacts::ID:
+ return privacyValueAllowContacts::fetch(p);
+ case privacyValueAllowAll::ID:
+ return privacyValueAllowAll::fetch(p);
+ case privacyValueAllowUsers::ID:
+ return privacyValueAllowUsers::fetch(p);
+ case privacyValueDisallowContacts::ID:
+ return privacyValueDisallowContacts::fetch(p);
+ case privacyValueDisallowAll::ID:
+ return privacyValueDisallowAll::fetch(p);
+ case privacyValueDisallowUsers::ID:
+ return privacyValueDisallowUsers::fetch(p);
+ case privacyValueAllowChatParticipants::ID:
+ return privacyValueAllowChatParticipants::fetch(p);
+ case privacyValueDisallowChatParticipants::ID:
+ return privacyValueDisallowChatParticipants::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t privacyValueAllowContacts::ID;
+
+object_ptr<PrivacyRule> privacyValueAllowContacts::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyValueAllowContacts>();
+}
+
+void privacyValueAllowContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyValueAllowContacts");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyValueAllowAll::ID;
+
+object_ptr<PrivacyRule> privacyValueAllowAll::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyValueAllowAll>();
+}
+
+void privacyValueAllowAll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyValueAllowAll");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyValueAllowUsers::ID;
+
+object_ptr<PrivacyRule> privacyValueAllowUsers::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyValueAllowUsers>(p);
+}
+
+privacyValueAllowUsers::privacyValueAllowUsers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : users_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void privacyValueAllowUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyValueAllowUsers");
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyValueDisallowContacts::ID;
+
+object_ptr<PrivacyRule> privacyValueDisallowContacts::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyValueDisallowContacts>();
+}
+
+void privacyValueDisallowContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyValueDisallowContacts");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyValueDisallowAll::ID;
+
+object_ptr<PrivacyRule> privacyValueDisallowAll::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyValueDisallowAll>();
+}
+
+void privacyValueDisallowAll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyValueDisallowAll");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyValueDisallowUsers::ID;
+
+object_ptr<PrivacyRule> privacyValueDisallowUsers::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyValueDisallowUsers>(p);
+}
+
+privacyValueDisallowUsers::privacyValueDisallowUsers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : users_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void privacyValueDisallowUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyValueDisallowUsers");
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyValueAllowChatParticipants::ID;
+
+object_ptr<PrivacyRule> privacyValueAllowChatParticipants::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyValueAllowChatParticipants>(p);
+}
+
+privacyValueAllowChatParticipants::privacyValueAllowChatParticipants(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chats_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void privacyValueAllowChatParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyValueAllowChatParticipants");
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t privacyValueDisallowChatParticipants::ID;
+
+object_ptr<PrivacyRule> privacyValueDisallowChatParticipants::fetch(TlBufferParser &p) {
+ return make_tl_object<privacyValueDisallowChatParticipants>(p);
+}
+
+privacyValueDisallowChatParticipants::privacyValueDisallowChatParticipants(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chats_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void privacyValueDisallowChatParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "privacyValueDisallowChatParticipants");
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<Reaction> Reaction::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case reactionEmpty::ID:
+ return reactionEmpty::fetch(p);
+ case reactionEmoji::ID:
+ return reactionEmoji::fetch(p);
+ case reactionCustomEmoji::ID:
+ return reactionCustomEmoji::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t reactionEmpty::ID;
+
+object_ptr<Reaction> reactionEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<reactionEmpty>();
+}
+
+void reactionEmpty::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void reactionEmpty::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void reactionEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reactionEmpty");
+ s.store_class_end();
+ }
+}
+
+reactionEmoji::reactionEmoji(string const &emoticon_)
+ : emoticon_(emoticon_)
+{}
+
+const std::int32_t reactionEmoji::ID;
+
+object_ptr<Reaction> reactionEmoji::fetch(TlBufferParser &p) {
+ return make_tl_object<reactionEmoji>(p);
+}
+
+reactionEmoji::reactionEmoji(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : emoticon_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void reactionEmoji::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(emoticon_, s);
+}
+
+void reactionEmoji::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(emoticon_, s);
+}
+
+void reactionEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reactionEmoji");
+ s.store_field("emoticon", emoticon_);
+ s.store_class_end();
+ }
+}
+
+reactionCustomEmoji::reactionCustomEmoji(int64 document_id_)
+ : document_id_(document_id_)
+{}
+
+const std::int32_t reactionCustomEmoji::ID;
+
+object_ptr<Reaction> reactionCustomEmoji::fetch(TlBufferParser &p) {
+ return make_tl_object<reactionCustomEmoji>(p);
+}
+
+reactionCustomEmoji::reactionCustomEmoji(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : document_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void reactionCustomEmoji::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(document_id_, s);
+}
+
+void reactionCustomEmoji::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(document_id_, s);
+}
+
+void reactionCustomEmoji::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reactionCustomEmoji");
+ s.store_field("document_id", document_id_);
+ s.store_class_end();
+ }
+}
+
+reactionCount::reactionCount()
+ : flags_()
+ , chosen_order_()
+ , reaction_()
+ , count_()
+{}
+
+const std::int32_t reactionCount::ID;
+
+object_ptr<reactionCount> reactionCount::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<reactionCount> res = make_tl_object<reactionCount>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->chosen_order_ = TlFetchInt::parse(p); }
+ res->reaction_ = TlFetchObject<Reaction>::parse(p);
+ res->count_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void reactionCount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "reactionCount");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("chosen_order", chosen_order_); }
+ s.store_object_field("reaction", static_cast<const BaseObject *>(reaction_.get()));
+ s.store_field("count", count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t receivedNotifyMessage::ID;
+
+object_ptr<receivedNotifyMessage> receivedNotifyMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<receivedNotifyMessage>(p);
+}
+
+receivedNotifyMessage::receivedNotifyMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchInt::parse(p))
+ , flags_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void receivedNotifyMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "receivedNotifyMessage");
+ s.store_field("id", id_);
+ s.store_field("flags", flags_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<RecentMeUrl> RecentMeUrl::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case recentMeUrlUnknown::ID:
+ return recentMeUrlUnknown::fetch(p);
+ case recentMeUrlUser::ID:
+ return recentMeUrlUser::fetch(p);
+ case recentMeUrlChat::ID:
+ return recentMeUrlChat::fetch(p);
+ case recentMeUrlChatInvite::ID:
+ return recentMeUrlChatInvite::fetch(p);
+ case recentMeUrlStickerSet::ID:
+ return recentMeUrlStickerSet::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t recentMeUrlUnknown::ID;
+
+object_ptr<RecentMeUrl> recentMeUrlUnknown::fetch(TlBufferParser &p) {
+ return make_tl_object<recentMeUrlUnknown>(p);
+}
+
+recentMeUrlUnknown::recentMeUrlUnknown(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void recentMeUrlUnknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recentMeUrlUnknown");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t recentMeUrlUser::ID;
+
+object_ptr<RecentMeUrl> recentMeUrlUser::fetch(TlBufferParser &p) {
+ return make_tl_object<recentMeUrlUser>(p);
+}
+
+recentMeUrlUser::recentMeUrlUser(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void recentMeUrlUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recentMeUrlUser");
+ s.store_field("url", url_);
+ s.store_field("user_id", user_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t recentMeUrlChat::ID;
+
+object_ptr<RecentMeUrl> recentMeUrlChat::fetch(TlBufferParser &p) {
+ return make_tl_object<recentMeUrlChat>(p);
+}
+
+recentMeUrlChat::recentMeUrlChat(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+ , chat_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void recentMeUrlChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recentMeUrlChat");
+ s.store_field("url", url_);
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t recentMeUrlChatInvite::ID;
+
+object_ptr<RecentMeUrl> recentMeUrlChatInvite::fetch(TlBufferParser &p) {
+ return make_tl_object<recentMeUrlChatInvite>(p);
+}
+
+recentMeUrlChatInvite::recentMeUrlChatInvite(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+ , chat_invite_(TlFetchObject<ChatInvite>::parse(p))
+#undef FAIL
+{}
+
+void recentMeUrlChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recentMeUrlChatInvite");
+ s.store_field("url", url_);
+ s.store_object_field("chat_invite", static_cast<const BaseObject *>(chat_invite_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t recentMeUrlStickerSet::ID;
+
+object_ptr<RecentMeUrl> recentMeUrlStickerSet::fetch(TlBufferParser &p) {
+ return make_tl_object<recentMeUrlStickerSet>(p);
+}
+
+recentMeUrlStickerSet::recentMeUrlStickerSet(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+ , set_(TlFetchObject<StickerSetCovered>::parse(p))
+#undef FAIL
+{}
+
+void recentMeUrlStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "recentMeUrlStickerSet");
+ s.store_field("url", url_);
+ s.store_object_field("set", static_cast<const BaseObject *>(set_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<ReplyMarkup> ReplyMarkup::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case replyKeyboardHide::ID:
+ return replyKeyboardHide::fetch(p);
+ case replyKeyboardForceReply::ID:
+ return replyKeyboardForceReply::fetch(p);
+ case replyKeyboardMarkup::ID:
+ return replyKeyboardMarkup::fetch(p);
+ case replyInlineMarkup::ID:
+ return replyInlineMarkup::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+replyKeyboardHide::replyKeyboardHide()
+ : flags_()
+ , selective_()
+{}
+
+replyKeyboardHide::replyKeyboardHide(int32 flags_, bool selective_)
+ : flags_(flags_)
+ , selective_(selective_)
+{}
+
+const std::int32_t replyKeyboardHide::ID;
+
+object_ptr<ReplyMarkup> replyKeyboardHide::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<replyKeyboardHide> res = make_tl_object<replyKeyboardHide>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 4) { res->selective_ = TlFetchTrue::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void replyKeyboardHide::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void replyKeyboardHide::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void replyKeyboardHide::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "replyKeyboardHide");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+replyKeyboardForceReply::replyKeyboardForceReply()
+ : flags_()
+ , single_use_()
+ , selective_()
+ , placeholder_()
+{}
+
+replyKeyboardForceReply::replyKeyboardForceReply(int32 flags_, bool single_use_, bool selective_, string const &placeholder_)
+ : flags_(flags_)
+ , single_use_(single_use_)
+ , selective_(selective_)
+ , placeholder_(placeholder_)
+{}
+
+const std::int32_t replyKeyboardForceReply::ID;
+
+object_ptr<ReplyMarkup> replyKeyboardForceReply::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<replyKeyboardForceReply> res = make_tl_object<replyKeyboardForceReply>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->single_use_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->selective_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->placeholder_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void replyKeyboardForceReply::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 8) { TlStoreString::store(placeholder_, s); }
+}
+
+void replyKeyboardForceReply::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 8) { TlStoreString::store(placeholder_, s); }
+}
+
+void replyKeyboardForceReply::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "replyKeyboardForceReply");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 8) { s.store_field("placeholder", placeholder_); }
+ s.store_class_end();
+ }
+}
+
+replyKeyboardMarkup::replyKeyboardMarkup()
+ : flags_()
+ , resize_()
+ , single_use_()
+ , selective_()
+ , rows_()
+ , placeholder_()
+{}
+
+replyKeyboardMarkup::replyKeyboardMarkup(int32 flags_, bool resize_, bool single_use_, bool selective_, array<object_ptr<keyboardButtonRow>> &&rows_, string const &placeholder_)
+ : flags_(flags_)
+ , resize_(resize_)
+ , single_use_(single_use_)
+ , selective_(selective_)
+ , rows_(std::move(rows_))
+ , placeholder_(placeholder_)
+{}
+
+const std::int32_t replyKeyboardMarkup::ID;
+
+object_ptr<ReplyMarkup> replyKeyboardMarkup::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<replyKeyboardMarkup> res = make_tl_object<replyKeyboardMarkup>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->resize_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->single_use_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->selective_ = TlFetchTrue::parse(p); }
+ res->rows_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<keyboardButtonRow>, 2002815875>>, 481674261>::parse(p);
+ if (var0 & 8) { res->placeholder_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void replyKeyboardMarkup::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 2002815875>>, 481674261>::store(rows_, s);
+ if (var0 & 8) { TlStoreString::store(placeholder_, s); }
+}
+
+void replyKeyboardMarkup::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 2002815875>>, 481674261>::store(rows_, s);
+ if (var0 & 8) { TlStoreString::store(placeholder_, s); }
+}
+
+void replyKeyboardMarkup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "replyKeyboardMarkup");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ { s.store_vector_begin("rows", rows_.size()); for (const auto &_value : rows_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 8) { s.store_field("placeholder", placeholder_); }
+ s.store_class_end();
+ }
+}
+
+replyInlineMarkup::replyInlineMarkup(array<object_ptr<keyboardButtonRow>> &&rows_)
+ : rows_(std::move(rows_))
+{}
+
+const std::int32_t replyInlineMarkup::ID;
+
+object_ptr<ReplyMarkup> replyInlineMarkup::fetch(TlBufferParser &p) {
+ return make_tl_object<replyInlineMarkup>(p);
+}
+
+replyInlineMarkup::replyInlineMarkup(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : rows_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<keyboardButtonRow>, 2002815875>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void replyInlineMarkup::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 2002815875>>, 481674261>::store(rows_, s);
+}
+
+void replyInlineMarkup::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 2002815875>>, 481674261>::store(rows_, s);
+}
+
+void replyInlineMarkup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "replyInlineMarkup");
+ { s.store_vector_begin("rows", rows_.size()); for (const auto &_value : rows_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputReportReasonSpam::ID;
+
+void inputReportReasonSpam::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonSpam::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonSpam::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputReportReasonSpam");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputReportReasonViolence::ID;
+
+void inputReportReasonViolence::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonViolence::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonViolence::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputReportReasonViolence");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputReportReasonPornography::ID;
+
+void inputReportReasonPornography::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonPornography::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonPornography::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputReportReasonPornography");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputReportReasonChildAbuse::ID;
+
+void inputReportReasonChildAbuse::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonChildAbuse::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonChildAbuse::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputReportReasonChildAbuse");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputReportReasonOther::ID;
+
+void inputReportReasonOther::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonOther::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonOther::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputReportReasonOther");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputReportReasonCopyright::ID;
+
+void inputReportReasonCopyright::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonCopyright::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonCopyright::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputReportReasonCopyright");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputReportReasonGeoIrrelevant::ID;
+
+void inputReportReasonGeoIrrelevant::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonGeoIrrelevant::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonGeoIrrelevant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputReportReasonGeoIrrelevant");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputReportReasonFake::ID;
+
+void inputReportReasonFake::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonFake::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonFake::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputReportReasonFake");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputReportReasonIllegalDrugs::ID;
+
+void inputReportReasonIllegalDrugs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonIllegalDrugs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonIllegalDrugs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputReportReasonIllegalDrugs");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t inputReportReasonPersonalDetails::ID;
+
+void inputReportReasonPersonalDetails::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonPersonalDetails::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void inputReportReasonPersonalDetails::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "inputReportReasonPersonalDetails");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t restrictionReason::ID;
+
+object_ptr<restrictionReason> restrictionReason::fetch(TlBufferParser &p) {
+ return make_tl_object<restrictionReason>(p);
+}
+
+restrictionReason::restrictionReason(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : platform_(TlFetchString<string>::parse(p))
+ , reason_(TlFetchString<string>::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void restrictionReason::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "restrictionReason");
+ s.store_field("platform", platform_);
+ s.store_field("reason", reason_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<RichText> RichText::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case textEmpty::ID:
+ return textEmpty::fetch(p);
+ case textPlain::ID:
+ return textPlain::fetch(p);
+ case textBold::ID:
+ return textBold::fetch(p);
+ case textItalic::ID:
+ return textItalic::fetch(p);
+ case textUnderline::ID:
+ return textUnderline::fetch(p);
+ case textStrike::ID:
+ return textStrike::fetch(p);
+ case textFixed::ID:
+ return textFixed::fetch(p);
+ case textUrl::ID:
+ return textUrl::fetch(p);
+ case textEmail::ID:
+ return textEmail::fetch(p);
+ case textConcat::ID:
+ return textConcat::fetch(p);
+ case textSubscript::ID:
+ return textSubscript::fetch(p);
+ case textSuperscript::ID:
+ return textSuperscript::fetch(p);
+ case textMarked::ID:
+ return textMarked::fetch(p);
+ case textPhone::ID:
+ return textPhone::fetch(p);
+ case textImage::ID:
+ return textImage::fetch(p);
+ case textAnchor::ID:
+ return textAnchor::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t textEmpty::ID;
+
+object_ptr<RichText> textEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<textEmpty>();
+}
+
+void textEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEmpty");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textPlain::ID;
+
+object_ptr<RichText> textPlain::fetch(TlBufferParser &p) {
+ return make_tl_object<textPlain>(p);
+}
+
+textPlain::textPlain(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void textPlain::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textPlain");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textBold::ID;
+
+object_ptr<RichText> textBold::fetch(TlBufferParser &p) {
+ return make_tl_object<textBold>(p);
+}
+
+textBold::textBold(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void textBold::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textBold");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textItalic::ID;
+
+object_ptr<RichText> textItalic::fetch(TlBufferParser &p) {
+ return make_tl_object<textItalic>(p);
+}
+
+textItalic::textItalic(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void textItalic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textItalic");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textUnderline::ID;
+
+object_ptr<RichText> textUnderline::fetch(TlBufferParser &p) {
+ return make_tl_object<textUnderline>(p);
+}
+
+textUnderline::textUnderline(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void textUnderline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textUnderline");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textStrike::ID;
+
+object_ptr<RichText> textStrike::fetch(TlBufferParser &p) {
+ return make_tl_object<textStrike>(p);
+}
+
+textStrike::textStrike(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void textStrike::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textStrike");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textFixed::ID;
+
+object_ptr<RichText> textFixed::fetch(TlBufferParser &p) {
+ return make_tl_object<textFixed>(p);
+}
+
+textFixed::textFixed(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void textFixed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textFixed");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textUrl::ID;
+
+object_ptr<RichText> textUrl::fetch(TlBufferParser &p) {
+ return make_tl_object<textUrl>(p);
+}
+
+textUrl::textUrl(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+ , url_(TlFetchString<string>::parse(p))
+ , webpage_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void textUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textUrl");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("url", url_);
+ s.store_field("webpage_id", webpage_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textEmail::ID;
+
+object_ptr<RichText> textEmail::fetch(TlBufferParser &p) {
+ return make_tl_object<textEmail>(p);
+}
+
+textEmail::textEmail(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+ , email_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void textEmail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textEmail");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("email", email_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textConcat::ID;
+
+object_ptr<RichText> textConcat::fetch(TlBufferParser &p) {
+ return make_tl_object<textConcat>(p);
+}
+
+textConcat::textConcat(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : texts_(TlFetchBoxed<TlFetchVector<TlFetchObject<RichText>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void textConcat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textConcat");
+ { s.store_vector_begin("texts", texts_.size()); for (const auto &_value : texts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textSubscript::ID;
+
+object_ptr<RichText> textSubscript::fetch(TlBufferParser &p) {
+ return make_tl_object<textSubscript>(p);
+}
+
+textSubscript::textSubscript(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void textSubscript::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textSubscript");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textSuperscript::ID;
+
+object_ptr<RichText> textSuperscript::fetch(TlBufferParser &p) {
+ return make_tl_object<textSuperscript>(p);
+}
+
+textSuperscript::textSuperscript(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void textSuperscript::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textSuperscript");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textMarked::ID;
+
+object_ptr<RichText> textMarked::fetch(TlBufferParser &p) {
+ return make_tl_object<textMarked>(p);
+}
+
+textMarked::textMarked(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+#undef FAIL
+{}
+
+void textMarked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textMarked");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textPhone::ID;
+
+object_ptr<RichText> textPhone::fetch(TlBufferParser &p) {
+ return make_tl_object<textPhone>(p);
+}
+
+textPhone::textPhone(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+ , phone_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void textPhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textPhone");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("phone", phone_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textImage::ID;
+
+object_ptr<RichText> textImage::fetch(TlBufferParser &p) {
+ return make_tl_object<textImage>(p);
+}
+
+textImage::textImage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : document_id_(TlFetchLong::parse(p))
+ , w_(TlFetchInt::parse(p))
+ , h_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void textImage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textImage");
+ s.store_field("document_id", document_id_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t textAnchor::ID;
+
+object_ptr<RichText> textAnchor::fetch(TlBufferParser &p) {
+ return make_tl_object<textAnchor>(p);
+}
+
+textAnchor::textAnchor(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchObject<RichText>::parse(p))
+ , name_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void textAnchor::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "textAnchor");
+ s.store_object_field("text", static_cast<const BaseObject *>(text_.get()));
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t savedPhoneContact::ID;
+
+object_ptr<savedPhoneContact> savedPhoneContact::fetch(TlBufferParser &p) {
+ return make_tl_object<savedPhoneContact>(p);
+}
+
+savedPhoneContact::savedPhoneContact(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : phone_(TlFetchString<string>::parse(p))
+ , first_name_(TlFetchString<string>::parse(p))
+ , last_name_(TlFetchString<string>::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void savedPhoneContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "savedPhoneContact");
+ s.store_field("phone", phone_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t searchResultsCalendarPeriod::ID;
+
+object_ptr<searchResultsCalendarPeriod> searchResultsCalendarPeriod::fetch(TlBufferParser &p) {
+ return make_tl_object<searchResultsCalendarPeriod>(p);
+}
+
+searchResultsCalendarPeriod::searchResultsCalendarPeriod(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : date_(TlFetchInt::parse(p))
+ , min_msg_id_(TlFetchInt::parse(p))
+ , max_msg_id_(TlFetchInt::parse(p))
+ , count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void searchResultsCalendarPeriod::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchResultsCalendarPeriod");
+ s.store_field("date", date_);
+ s.store_field("min_msg_id", min_msg_id_);
+ s.store_field("max_msg_id", max_msg_id_);
+ s.store_field("count", count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t searchResultPosition::ID;
+
+object_ptr<searchResultPosition> searchResultPosition::fetch(TlBufferParser &p) {
+ return make_tl_object<searchResultPosition>(p);
+}
+
+searchResultPosition::searchResultPosition(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : msg_id_(TlFetchInt::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , offset_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void searchResultPosition::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "searchResultPosition");
+ s.store_field("msg_id", msg_id_);
+ s.store_field("date", date_);
+ s.store_field("offset", offset_);
+ s.store_class_end();
+ }
+}
+
+secureCredentialsEncrypted::secureCredentialsEncrypted(bytes &&data_, bytes &&hash_, bytes &&secret_)
+ : data_(std::move(data_))
+ , hash_(std::move(hash_))
+ , secret_(std::move(secret_))
+{}
+
+const std::int32_t secureCredentialsEncrypted::ID;
+
+object_ptr<secureCredentialsEncrypted> secureCredentialsEncrypted::fetch(TlBufferParser &p) {
+ return make_tl_object<secureCredentialsEncrypted>(p);
+}
+
+secureCredentialsEncrypted::secureCredentialsEncrypted(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : data_(TlFetchBytes<bytes>::parse(p))
+ , hash_(TlFetchBytes<bytes>::parse(p))
+ , secret_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void secureCredentialsEncrypted::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(data_, s);
+ TlStoreString::store(hash_, s);
+ TlStoreString::store(secret_, s);
+}
+
+void secureCredentialsEncrypted::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(data_, s);
+ TlStoreString::store(hash_, s);
+ TlStoreString::store(secret_, s);
+}
+
+void secureCredentialsEncrypted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureCredentialsEncrypted");
+ s.store_bytes_field("data", data_);
+ s.store_bytes_field("hash", hash_);
+ s.store_bytes_field("secret", secret_);
+ s.store_class_end();
+ }
+}
+
+secureData::secureData(bytes &&data_, bytes &&data_hash_, bytes &&secret_)
+ : data_(std::move(data_))
+ , data_hash_(std::move(data_hash_))
+ , secret_(std::move(secret_))
+{}
+
+const std::int32_t secureData::ID;
+
+object_ptr<secureData> secureData::fetch(TlBufferParser &p) {
+ return make_tl_object<secureData>(p);
+}
+
+secureData::secureData(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : data_(TlFetchBytes<bytes>::parse(p))
+ , data_hash_(TlFetchBytes<bytes>::parse(p))
+ , secret_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void secureData::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(data_, s);
+ TlStoreString::store(data_hash_, s);
+ TlStoreString::store(secret_, s);
+}
+
+void secureData::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(data_, s);
+ TlStoreString::store(data_hash_, s);
+ TlStoreString::store(secret_, s);
+}
+
+void secureData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureData");
+ s.store_bytes_field("data", data_);
+ s.store_bytes_field("data_hash", data_hash_);
+ s.store_bytes_field("secret", secret_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<SecureFile> SecureFile::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case secureFileEmpty::ID:
+ return secureFileEmpty::fetch(p);
+ case secureFile::ID:
+ return secureFile::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t secureFileEmpty::ID;
+
+object_ptr<SecureFile> secureFileEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<secureFileEmpty>();
+}
+
+void secureFileEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureFileEmpty");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureFile::ID;
+
+object_ptr<SecureFile> secureFile::fetch(TlBufferParser &p) {
+ return make_tl_object<secureFile>(p);
+}
+
+secureFile::secureFile(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+ , size_(TlFetchLong::parse(p))
+ , dc_id_(TlFetchInt::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , file_hash_(TlFetchBytes<bytes>::parse(p))
+ , secret_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void secureFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureFile");
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("size", size_);
+ s.store_field("dc_id", dc_id_);
+ s.store_field("date", date_);
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_bytes_field("secret", secret_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<SecurePasswordKdfAlgo> SecurePasswordKdfAlgo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case securePasswordKdfAlgoUnknown::ID:
+ return securePasswordKdfAlgoUnknown::fetch(p);
+ case securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::ID:
+ return securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::fetch(p);
+ case securePasswordKdfAlgoSHA512::ID:
+ return securePasswordKdfAlgoSHA512::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t securePasswordKdfAlgoUnknown::ID;
+
+object_ptr<SecurePasswordKdfAlgo> securePasswordKdfAlgoUnknown::fetch(TlBufferParser &p) {
+ return make_tl_object<securePasswordKdfAlgoUnknown>();
+}
+
+void securePasswordKdfAlgoUnknown::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void securePasswordKdfAlgoUnknown::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void securePasswordKdfAlgoUnknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "securePasswordKdfAlgoUnknown");
+ s.store_class_end();
+ }
+}
+
+securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::securePasswordKdfAlgoPBKDF2HMACSHA512iter100000(bytes &&salt_)
+ : salt_(std::move(salt_))
+{}
+
+const std::int32_t securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::ID;
+
+object_ptr<SecurePasswordKdfAlgo> securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::fetch(TlBufferParser &p) {
+ return make_tl_object<securePasswordKdfAlgoPBKDF2HMACSHA512iter100000>(p);
+}
+
+securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::securePasswordKdfAlgoPBKDF2HMACSHA512iter100000(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : salt_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(salt_, s);
+}
+
+void securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(salt_, s);
+}
+
+void securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "securePasswordKdfAlgoPBKDF2HMACSHA512iter100000");
+ s.store_bytes_field("salt", salt_);
+ s.store_class_end();
+ }
+}
+
+securePasswordKdfAlgoSHA512::securePasswordKdfAlgoSHA512(bytes &&salt_)
+ : salt_(std::move(salt_))
+{}
+
+const std::int32_t securePasswordKdfAlgoSHA512::ID;
+
+object_ptr<SecurePasswordKdfAlgo> securePasswordKdfAlgoSHA512::fetch(TlBufferParser &p) {
+ return make_tl_object<securePasswordKdfAlgoSHA512>(p);
+}
+
+securePasswordKdfAlgoSHA512::securePasswordKdfAlgoSHA512(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : salt_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void securePasswordKdfAlgoSHA512::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(salt_, s);
+}
+
+void securePasswordKdfAlgoSHA512::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(salt_, s);
+}
+
+void securePasswordKdfAlgoSHA512::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "securePasswordKdfAlgoSHA512");
+ s.store_bytes_field("salt", salt_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<SecurePlainData> SecurePlainData::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case securePlainPhone::ID:
+ return securePlainPhone::fetch(p);
+ case securePlainEmail::ID:
+ return securePlainEmail::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+securePlainPhone::securePlainPhone(string const &phone_)
+ : phone_(phone_)
+{}
+
+const std::int32_t securePlainPhone::ID;
+
+object_ptr<SecurePlainData> securePlainPhone::fetch(TlBufferParser &p) {
+ return make_tl_object<securePlainPhone>(p);
+}
+
+securePlainPhone::securePlainPhone(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : phone_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void securePlainPhone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(phone_, s);
+}
+
+void securePlainPhone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(phone_, s);
+}
+
+void securePlainPhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "securePlainPhone");
+ s.store_field("phone", phone_);
+ s.store_class_end();
+ }
+}
+
+securePlainEmail::securePlainEmail(string const &email_)
+ : email_(email_)
+{}
+
+const std::int32_t securePlainEmail::ID;
+
+object_ptr<SecurePlainData> securePlainEmail::fetch(TlBufferParser &p) {
+ return make_tl_object<securePlainEmail>(p);
+}
+
+securePlainEmail::securePlainEmail(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : email_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void securePlainEmail::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(email_, s);
+}
+
+void securePlainEmail::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(email_, s);
+}
+
+void securePlainEmail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "securePlainEmail");
+ s.store_field("email", email_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<SecureRequiredType> SecureRequiredType::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case secureRequiredType::ID:
+ return secureRequiredType::fetch(p);
+ case secureRequiredTypeOneOf::ID:
+ return secureRequiredTypeOneOf::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+secureRequiredType::secureRequiredType()
+ : flags_()
+ , native_names_()
+ , selfie_required_()
+ , translation_required_()
+ , type_()
+{}
+
+const std::int32_t secureRequiredType::ID;
+
+object_ptr<SecureRequiredType> secureRequiredType::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<secureRequiredType> res = make_tl_object<secureRequiredType>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->native_names_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->selfie_required_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->translation_required_ = TlFetchTrue::parse(p); }
+ res->type_ = TlFetchObject<SecureValueType>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void secureRequiredType::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureRequiredType");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureRequiredTypeOneOf::ID;
+
+object_ptr<SecureRequiredType> secureRequiredTypeOneOf::fetch(TlBufferParser &p) {
+ return make_tl_object<secureRequiredTypeOneOf>(p);
+}
+
+secureRequiredTypeOneOf::secureRequiredTypeOneOf(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : types_(TlFetchBoxed<TlFetchVector<TlFetchObject<SecureRequiredType>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void secureRequiredTypeOneOf::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureRequiredTypeOneOf");
+ { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+secureSecretSettings::secureSecretSettings(object_ptr<SecurePasswordKdfAlgo> &&secure_algo_, bytes &&secure_secret_, int64 secure_secret_id_)
+ : secure_algo_(std::move(secure_algo_))
+ , secure_secret_(std::move(secure_secret_))
+ , secure_secret_id_(secure_secret_id_)
+{}
+
+const std::int32_t secureSecretSettings::ID;
+
+object_ptr<secureSecretSettings> secureSecretSettings::fetch(TlBufferParser &p) {
+ return make_tl_object<secureSecretSettings>(p);
+}
+
+secureSecretSettings::secureSecretSettings(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : secure_algo_(TlFetchObject<SecurePasswordKdfAlgo>::parse(p))
+ , secure_secret_(TlFetchBytes<bytes>::parse(p))
+ , secure_secret_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void secureSecretSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(secure_algo_, s);
+ TlStoreString::store(secure_secret_, s);
+ TlStoreBinary::store(secure_secret_id_, s);
+}
+
+void secureSecretSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(secure_algo_, s);
+ TlStoreString::store(secure_secret_, s);
+ TlStoreBinary::store(secure_secret_id_, s);
+}
+
+void secureSecretSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureSecretSettings");
+ s.store_object_field("secure_algo", static_cast<const BaseObject *>(secure_algo_.get()));
+ s.store_bytes_field("secure_secret", secure_secret_);
+ s.store_field("secure_secret_id", secure_secret_id_);
+ s.store_class_end();
+ }
+}
+
+secureValue::secureValue()
+ : flags_()
+ , type_()
+ , data_()
+ , front_side_()
+ , reverse_side_()
+ , selfie_()
+ , translation_()
+ , files_()
+ , plain_data_()
+ , hash_()
+{}
+
+const std::int32_t secureValue::ID;
+
+object_ptr<secureValue> secureValue::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<secureValue> res = make_tl_object<secureValue>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->type_ = TlFetchObject<SecureValueType>::parse(p);
+ if (var0 & 1) { res->data_ = TlFetchBoxed<TlFetchObject<secureData>, -1964327229>::parse(p); }
+ if (var0 & 2) { res->front_side_ = TlFetchObject<SecureFile>::parse(p); }
+ if (var0 & 4) { res->reverse_side_ = TlFetchObject<SecureFile>::parse(p); }
+ if (var0 & 8) { res->selfie_ = TlFetchObject<SecureFile>::parse(p); }
+ if (var0 & 64) { res->translation_ = TlFetchBoxed<TlFetchVector<TlFetchObject<SecureFile>>, 481674261>::parse(p); }
+ if (var0 & 16) { res->files_ = TlFetchBoxed<TlFetchVector<TlFetchObject<SecureFile>>, 481674261>::parse(p); }
+ if (var0 & 32) { res->plain_data_ = TlFetchObject<SecurePlainData>::parse(p); }
+ res->hash_ = TlFetchBytes<bytes>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void secureValue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValue");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ if (var0 & 1) { s.store_object_field("data", static_cast<const BaseObject *>(data_.get())); }
+ if (var0 & 2) { s.store_object_field("front_side", static_cast<const BaseObject *>(front_side_.get())); }
+ if (var0 & 4) { s.store_object_field("reverse_side", static_cast<const BaseObject *>(reverse_side_.get())); }
+ if (var0 & 8) { s.store_object_field("selfie", static_cast<const BaseObject *>(selfie_.get())); }
+ if (var0 & 64) { { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 16) { { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 32) { s.store_object_field("plain_data", static_cast<const BaseObject *>(plain_data_.get())); }
+ s.store_bytes_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<SecureValueError> SecureValueError::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case secureValueErrorData::ID:
+ return secureValueErrorData::fetch(p);
+ case secureValueErrorFrontSide::ID:
+ return secureValueErrorFrontSide::fetch(p);
+ case secureValueErrorReverseSide::ID:
+ return secureValueErrorReverseSide::fetch(p);
+ case secureValueErrorSelfie::ID:
+ return secureValueErrorSelfie::fetch(p);
+ case secureValueErrorFile::ID:
+ return secureValueErrorFile::fetch(p);
+ case secureValueErrorFiles::ID:
+ return secureValueErrorFiles::fetch(p);
+ case secureValueError::ID:
+ return secureValueError::fetch(p);
+ case secureValueErrorTranslationFile::ID:
+ return secureValueErrorTranslationFile::fetch(p);
+ case secureValueErrorTranslationFiles::ID:
+ return secureValueErrorTranslationFiles::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+secureValueErrorData::secureValueErrorData(object_ptr<SecureValueType> &&type_, bytes &&data_hash_, string const &field_, string const &text_)
+ : type_(std::move(type_))
+ , data_hash_(std::move(data_hash_))
+ , field_(field_)
+ , text_(text_)
+{}
+
+const std::int32_t secureValueErrorData::ID;
+
+object_ptr<SecureValueError> secureValueErrorData::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueErrorData>(p);
+}
+
+secureValueErrorData::secureValueErrorData(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchObject<SecureValueType>::parse(p))
+ , data_hash_(TlFetchBytes<bytes>::parse(p))
+ , field_(TlFetchString<string>::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void secureValueErrorData::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(data_hash_, s);
+ TlStoreString::store(field_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorData::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(data_hash_, s);
+ TlStoreString::store(field_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueErrorData");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_bytes_field("data_hash", data_hash_);
+ s.store_field("field", field_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+secureValueErrorFrontSide::secureValueErrorFrontSide(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_)
+ : type_(std::move(type_))
+ , file_hash_(std::move(file_hash_))
+ , text_(text_)
+{}
+
+const std::int32_t secureValueErrorFrontSide::ID;
+
+object_ptr<SecureValueError> secureValueErrorFrontSide::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueErrorFrontSide>(p);
+}
+
+secureValueErrorFrontSide::secureValueErrorFrontSide(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchObject<SecureValueType>::parse(p))
+ , file_hash_(TlFetchBytes<bytes>::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void secureValueErrorFrontSide::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorFrontSide::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorFrontSide::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueErrorFrontSide");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+secureValueErrorReverseSide::secureValueErrorReverseSide(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_)
+ : type_(std::move(type_))
+ , file_hash_(std::move(file_hash_))
+ , text_(text_)
+{}
+
+const std::int32_t secureValueErrorReverseSide::ID;
+
+object_ptr<SecureValueError> secureValueErrorReverseSide::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueErrorReverseSide>(p);
+}
+
+secureValueErrorReverseSide::secureValueErrorReverseSide(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchObject<SecureValueType>::parse(p))
+ , file_hash_(TlFetchBytes<bytes>::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void secureValueErrorReverseSide::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorReverseSide::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorReverseSide::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueErrorReverseSide");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+secureValueErrorSelfie::secureValueErrorSelfie(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_)
+ : type_(std::move(type_))
+ , file_hash_(std::move(file_hash_))
+ , text_(text_)
+{}
+
+const std::int32_t secureValueErrorSelfie::ID;
+
+object_ptr<SecureValueError> secureValueErrorSelfie::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueErrorSelfie>(p);
+}
+
+secureValueErrorSelfie::secureValueErrorSelfie(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchObject<SecureValueType>::parse(p))
+ , file_hash_(TlFetchBytes<bytes>::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void secureValueErrorSelfie::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorSelfie::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorSelfie::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueErrorSelfie");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+secureValueErrorFile::secureValueErrorFile(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_)
+ : type_(std::move(type_))
+ , file_hash_(std::move(file_hash_))
+ , text_(text_)
+{}
+
+const std::int32_t secureValueErrorFile::ID;
+
+object_ptr<SecureValueError> secureValueErrorFile::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueErrorFile>(p);
+}
+
+secureValueErrorFile::secureValueErrorFile(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchObject<SecureValueType>::parse(p))
+ , file_hash_(TlFetchBytes<bytes>::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void secureValueErrorFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueErrorFile");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+secureValueErrorFiles::secureValueErrorFiles(object_ptr<SecureValueType> &&type_, array<bytes> &&file_hash_, string const &text_)
+ : type_(std::move(type_))
+ , file_hash_(std::move(file_hash_))
+ , text_(text_)
+{}
+
+const std::int32_t secureValueErrorFiles::ID;
+
+object_ptr<SecureValueError> secureValueErrorFiles::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueErrorFiles>(p);
+}
+
+secureValueErrorFiles::secureValueErrorFiles(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchObject<SecureValueType>::parse(p))
+ , file_hash_(TlFetchBoxed<TlFetchVector<TlFetchBytes<bytes>>, 481674261>::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void secureValueErrorFiles::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorFiles::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorFiles::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueErrorFiles");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ { s.store_vector_begin("file_hash", file_hash_.size()); for (const auto &_value : file_hash_) { s.store_bytes_field("", _value); } s.store_class_end(); }
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+secureValueError::secureValueError(object_ptr<SecureValueType> &&type_, bytes &&hash_, string const &text_)
+ : type_(std::move(type_))
+ , hash_(std::move(hash_))
+ , text_(text_)
+{}
+
+const std::int32_t secureValueError::ID;
+
+object_ptr<SecureValueError> secureValueError::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueError>(p);
+}
+
+secureValueError::secureValueError(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchObject<SecureValueType>::parse(p))
+ , hash_(TlFetchBytes<bytes>::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void secureValueError::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueError::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueError::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueError");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_bytes_field("hash", hash_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+secureValueErrorTranslationFile::secureValueErrorTranslationFile(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_)
+ : type_(std::move(type_))
+ , file_hash_(std::move(file_hash_))
+ , text_(text_)
+{}
+
+const std::int32_t secureValueErrorTranslationFile::ID;
+
+object_ptr<SecureValueError> secureValueErrorTranslationFile::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueErrorTranslationFile>(p);
+}
+
+secureValueErrorTranslationFile::secureValueErrorTranslationFile(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchObject<SecureValueType>::parse(p))
+ , file_hash_(TlFetchBytes<bytes>::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void secureValueErrorTranslationFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorTranslationFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorTranslationFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueErrorTranslationFile");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_bytes_field("file_hash", file_hash_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+secureValueErrorTranslationFiles::secureValueErrorTranslationFiles(object_ptr<SecureValueType> &&type_, array<bytes> &&file_hash_, string const &text_)
+ : type_(std::move(type_))
+ , file_hash_(std::move(file_hash_))
+ , text_(text_)
+{}
+
+const std::int32_t secureValueErrorTranslationFiles::ID;
+
+object_ptr<SecureValueError> secureValueErrorTranslationFiles::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueErrorTranslationFiles>(p);
+}
+
+secureValueErrorTranslationFiles::secureValueErrorTranslationFiles(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchObject<SecureValueType>::parse(p))
+ , file_hash_(TlFetchBoxed<TlFetchVector<TlFetchBytes<bytes>>, 481674261>::parse(p))
+ , text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void secureValueErrorTranslationFiles::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorTranslationFiles::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(file_hash_, s);
+ TlStoreString::store(text_, s);
+}
+
+void secureValueErrorTranslationFiles::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueErrorTranslationFiles");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ { s.store_vector_begin("file_hash", file_hash_.size()); for (const auto &_value : file_hash_) { s.store_bytes_field("", _value); } s.store_class_end(); }
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+secureValueHash::secureValueHash(object_ptr<SecureValueType> &&type_, bytes &&hash_)
+ : type_(std::move(type_))
+ , hash_(std::move(hash_))
+{}
+
+const std::int32_t secureValueHash::ID;
+
+void secureValueHash::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(hash_, s);
+}
+
+void secureValueHash::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(type_, s);
+ TlStoreString::store(hash_, s);
+}
+
+void secureValueHash::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueHash");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_bytes_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<SecureValueType> SecureValueType::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case secureValueTypePersonalDetails::ID:
+ return secureValueTypePersonalDetails::fetch(p);
+ case secureValueTypePassport::ID:
+ return secureValueTypePassport::fetch(p);
+ case secureValueTypeDriverLicense::ID:
+ return secureValueTypeDriverLicense::fetch(p);
+ case secureValueTypeIdentityCard::ID:
+ return secureValueTypeIdentityCard::fetch(p);
+ case secureValueTypeInternalPassport::ID:
+ return secureValueTypeInternalPassport::fetch(p);
+ case secureValueTypeAddress::ID:
+ return secureValueTypeAddress::fetch(p);
+ case secureValueTypeUtilityBill::ID:
+ return secureValueTypeUtilityBill::fetch(p);
+ case secureValueTypeBankStatement::ID:
+ return secureValueTypeBankStatement::fetch(p);
+ case secureValueTypeRentalAgreement::ID:
+ return secureValueTypeRentalAgreement::fetch(p);
+ case secureValueTypePassportRegistration::ID:
+ return secureValueTypePassportRegistration::fetch(p);
+ case secureValueTypeTemporaryRegistration::ID:
+ return secureValueTypeTemporaryRegistration::fetch(p);
+ case secureValueTypePhone::ID:
+ return secureValueTypePhone::fetch(p);
+ case secureValueTypeEmail::ID:
+ return secureValueTypeEmail::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t secureValueTypePersonalDetails::ID;
+
+object_ptr<SecureValueType> secureValueTypePersonalDetails::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypePersonalDetails>();
+}
+
+void secureValueTypePersonalDetails::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypePersonalDetails::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypePersonalDetails::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypePersonalDetails");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypePassport::ID;
+
+object_ptr<SecureValueType> secureValueTypePassport::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypePassport>();
+}
+
+void secureValueTypePassport::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypePassport::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypePassport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypePassport");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypeDriverLicense::ID;
+
+object_ptr<SecureValueType> secureValueTypeDriverLicense::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypeDriverLicense>();
+}
+
+void secureValueTypeDriverLicense::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeDriverLicense::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeDriverLicense::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypeDriverLicense");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypeIdentityCard::ID;
+
+object_ptr<SecureValueType> secureValueTypeIdentityCard::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypeIdentityCard>();
+}
+
+void secureValueTypeIdentityCard::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeIdentityCard::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeIdentityCard::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypeIdentityCard");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypeInternalPassport::ID;
+
+object_ptr<SecureValueType> secureValueTypeInternalPassport::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypeInternalPassport>();
+}
+
+void secureValueTypeInternalPassport::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeInternalPassport::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeInternalPassport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypeInternalPassport");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypeAddress::ID;
+
+object_ptr<SecureValueType> secureValueTypeAddress::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypeAddress>();
+}
+
+void secureValueTypeAddress::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeAddress::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeAddress::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypeAddress");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypeUtilityBill::ID;
+
+object_ptr<SecureValueType> secureValueTypeUtilityBill::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypeUtilityBill>();
+}
+
+void secureValueTypeUtilityBill::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeUtilityBill::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeUtilityBill::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypeUtilityBill");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypeBankStatement::ID;
+
+object_ptr<SecureValueType> secureValueTypeBankStatement::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypeBankStatement>();
+}
+
+void secureValueTypeBankStatement::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeBankStatement::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeBankStatement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypeBankStatement");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypeRentalAgreement::ID;
+
+object_ptr<SecureValueType> secureValueTypeRentalAgreement::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypeRentalAgreement>();
+}
+
+void secureValueTypeRentalAgreement::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeRentalAgreement::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeRentalAgreement::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypeRentalAgreement");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypePassportRegistration::ID;
+
+object_ptr<SecureValueType> secureValueTypePassportRegistration::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypePassportRegistration>();
+}
+
+void secureValueTypePassportRegistration::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypePassportRegistration::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypePassportRegistration::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypePassportRegistration");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypeTemporaryRegistration::ID;
+
+object_ptr<SecureValueType> secureValueTypeTemporaryRegistration::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypeTemporaryRegistration>();
+}
+
+void secureValueTypeTemporaryRegistration::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeTemporaryRegistration::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeTemporaryRegistration::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypeTemporaryRegistration");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypePhone::ID;
+
+object_ptr<SecureValueType> secureValueTypePhone::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypePhone>();
+}
+
+void secureValueTypePhone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypePhone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypePhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypePhone");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t secureValueTypeEmail::ID;
+
+object_ptr<SecureValueType> secureValueTypeEmail::fetch(TlBufferParser &p) {
+ return make_tl_object<secureValueTypeEmail>();
+}
+
+void secureValueTypeEmail::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeEmail::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void secureValueTypeEmail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "secureValueTypeEmail");
+ s.store_class_end();
+ }
+}
+
+sendAsPeer::sendAsPeer()
+ : flags_()
+ , premium_required_()
+ , peer_()
+{}
+
+const std::int32_t sendAsPeer::ID;
+
+object_ptr<sendAsPeer> sendAsPeer::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<sendAsPeer> res = make_tl_object<sendAsPeer>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->premium_required_ = TlFetchTrue::parse(p); }
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void sendAsPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendAsPeer");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<SendMessageAction> SendMessageAction::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case sendMessageTypingAction::ID:
+ return sendMessageTypingAction::fetch(p);
+ case sendMessageCancelAction::ID:
+ return sendMessageCancelAction::fetch(p);
+ case sendMessageRecordVideoAction::ID:
+ return sendMessageRecordVideoAction::fetch(p);
+ case sendMessageUploadVideoAction::ID:
+ return sendMessageUploadVideoAction::fetch(p);
+ case sendMessageRecordAudioAction::ID:
+ return sendMessageRecordAudioAction::fetch(p);
+ case sendMessageUploadAudioAction::ID:
+ return sendMessageUploadAudioAction::fetch(p);
+ case sendMessageUploadPhotoAction::ID:
+ return sendMessageUploadPhotoAction::fetch(p);
+ case sendMessageUploadDocumentAction::ID:
+ return sendMessageUploadDocumentAction::fetch(p);
+ case sendMessageGeoLocationAction::ID:
+ return sendMessageGeoLocationAction::fetch(p);
+ case sendMessageChooseContactAction::ID:
+ return sendMessageChooseContactAction::fetch(p);
+ case sendMessageGamePlayAction::ID:
+ return sendMessageGamePlayAction::fetch(p);
+ case sendMessageRecordRoundAction::ID:
+ return sendMessageRecordRoundAction::fetch(p);
+ case sendMessageUploadRoundAction::ID:
+ return sendMessageUploadRoundAction::fetch(p);
+ case speakingInGroupCallAction::ID:
+ return speakingInGroupCallAction::fetch(p);
+ case sendMessageHistoryImportAction::ID:
+ return sendMessageHistoryImportAction::fetch(p);
+ case sendMessageChooseStickerAction::ID:
+ return sendMessageChooseStickerAction::fetch(p);
+ case sendMessageEmojiInteraction::ID:
+ return sendMessageEmojiInteraction::fetch(p);
+ case sendMessageEmojiInteractionSeen::ID:
+ return sendMessageEmojiInteractionSeen::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t sendMessageTypingAction::ID;
+
+object_ptr<SendMessageAction> sendMessageTypingAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageTypingAction>();
+}
+
+void sendMessageTypingAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageTypingAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageTypingAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageTypingAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageCancelAction::ID;
+
+object_ptr<SendMessageAction> sendMessageCancelAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageCancelAction>();
+}
+
+void sendMessageCancelAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageCancelAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageCancelAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageCancelAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageRecordVideoAction::ID;
+
+object_ptr<SendMessageAction> sendMessageRecordVideoAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageRecordVideoAction>();
+}
+
+void sendMessageRecordVideoAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordVideoAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordVideoAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageRecordVideoAction");
+ s.store_class_end();
+ }
+}
+
+sendMessageUploadVideoAction::sendMessageUploadVideoAction(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t sendMessageUploadVideoAction::ID;
+
+object_ptr<SendMessageAction> sendMessageUploadVideoAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageUploadVideoAction>(p);
+}
+
+sendMessageUploadVideoAction::sendMessageUploadVideoAction(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : progress_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void sendMessageUploadVideoAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageUploadVideoAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageUploadVideoAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageUploadVideoAction");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageRecordAudioAction::ID;
+
+object_ptr<SendMessageAction> sendMessageRecordAudioAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageRecordAudioAction>();
+}
+
+void sendMessageRecordAudioAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordAudioAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordAudioAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageRecordAudioAction");
+ s.store_class_end();
+ }
+}
+
+sendMessageUploadAudioAction::sendMessageUploadAudioAction(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t sendMessageUploadAudioAction::ID;
+
+object_ptr<SendMessageAction> sendMessageUploadAudioAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageUploadAudioAction>(p);
+}
+
+sendMessageUploadAudioAction::sendMessageUploadAudioAction(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : progress_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void sendMessageUploadAudioAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageUploadAudioAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageUploadAudioAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageUploadAudioAction");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+sendMessageUploadPhotoAction::sendMessageUploadPhotoAction(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t sendMessageUploadPhotoAction::ID;
+
+object_ptr<SendMessageAction> sendMessageUploadPhotoAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageUploadPhotoAction>(p);
+}
+
+sendMessageUploadPhotoAction::sendMessageUploadPhotoAction(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : progress_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void sendMessageUploadPhotoAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageUploadPhotoAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageUploadPhotoAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageUploadPhotoAction");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+sendMessageUploadDocumentAction::sendMessageUploadDocumentAction(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t sendMessageUploadDocumentAction::ID;
+
+object_ptr<SendMessageAction> sendMessageUploadDocumentAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageUploadDocumentAction>(p);
+}
+
+sendMessageUploadDocumentAction::sendMessageUploadDocumentAction(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : progress_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void sendMessageUploadDocumentAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageUploadDocumentAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageUploadDocumentAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageUploadDocumentAction");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageGeoLocationAction::ID;
+
+object_ptr<SendMessageAction> sendMessageGeoLocationAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageGeoLocationAction>();
+}
+
+void sendMessageGeoLocationAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageGeoLocationAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageGeoLocationAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageGeoLocationAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageChooseContactAction::ID;
+
+object_ptr<SendMessageAction> sendMessageChooseContactAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageChooseContactAction>();
+}
+
+void sendMessageChooseContactAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageChooseContactAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageChooseContactAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageChooseContactAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageGamePlayAction::ID;
+
+object_ptr<SendMessageAction> sendMessageGamePlayAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageGamePlayAction>();
+}
+
+void sendMessageGamePlayAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageGamePlayAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageGamePlayAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageGamePlayAction");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageRecordRoundAction::ID;
+
+object_ptr<SendMessageAction> sendMessageRecordRoundAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageRecordRoundAction>();
+}
+
+void sendMessageRecordRoundAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordRoundAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageRecordRoundAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageRecordRoundAction");
+ s.store_class_end();
+ }
+}
+
+sendMessageUploadRoundAction::sendMessageUploadRoundAction(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t sendMessageUploadRoundAction::ID;
+
+object_ptr<SendMessageAction> sendMessageUploadRoundAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageUploadRoundAction>(p);
+}
+
+sendMessageUploadRoundAction::sendMessageUploadRoundAction(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : progress_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void sendMessageUploadRoundAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageUploadRoundAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageUploadRoundAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageUploadRoundAction");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t speakingInGroupCallAction::ID;
+
+object_ptr<SendMessageAction> speakingInGroupCallAction::fetch(TlBufferParser &p) {
+ return make_tl_object<speakingInGroupCallAction>();
+}
+
+void speakingInGroupCallAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void speakingInGroupCallAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void speakingInGroupCallAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "speakingInGroupCallAction");
+ s.store_class_end();
+ }
+}
+
+sendMessageHistoryImportAction::sendMessageHistoryImportAction(int32 progress_)
+ : progress_(progress_)
+{}
+
+const std::int32_t sendMessageHistoryImportAction::ID;
+
+object_ptr<SendMessageAction> sendMessageHistoryImportAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageHistoryImportAction>(p);
+}
+
+sendMessageHistoryImportAction::sendMessageHistoryImportAction(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : progress_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void sendMessageHistoryImportAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageHistoryImportAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreBinary::store(progress_, s);
+}
+
+void sendMessageHistoryImportAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageHistoryImportAction");
+ s.store_field("progress", progress_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t sendMessageChooseStickerAction::ID;
+
+object_ptr<SendMessageAction> sendMessageChooseStickerAction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageChooseStickerAction>();
+}
+
+void sendMessageChooseStickerAction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageChooseStickerAction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void sendMessageChooseStickerAction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageChooseStickerAction");
+ s.store_class_end();
+ }
+}
+
+sendMessageEmojiInteraction::sendMessageEmojiInteraction(string const &emoticon_, int32 msg_id_, object_ptr<dataJSON> &&interaction_)
+ : emoticon_(emoticon_)
+ , msg_id_(msg_id_)
+ , interaction_(std::move(interaction_))
+{}
+
+const std::int32_t sendMessageEmojiInteraction::ID;
+
+object_ptr<SendMessageAction> sendMessageEmojiInteraction::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageEmojiInteraction>(p);
+}
+
+sendMessageEmojiInteraction::sendMessageEmojiInteraction(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : emoticon_(TlFetchString<string>::parse(p))
+ , msg_id_(TlFetchInt::parse(p))
+ , interaction_(TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p))
+#undef FAIL
+{}
+
+void sendMessageEmojiInteraction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(emoticon_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(interaction_, s);
+}
+
+void sendMessageEmojiInteraction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(emoticon_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(interaction_, s);
+}
+
+void sendMessageEmojiInteraction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageEmojiInteraction");
+ s.store_field("emoticon", emoticon_);
+ s.store_field("msg_id", msg_id_);
+ s.store_object_field("interaction", static_cast<const BaseObject *>(interaction_.get()));
+ s.store_class_end();
+ }
+}
+
+sendMessageEmojiInteractionSeen::sendMessageEmojiInteractionSeen(string const &emoticon_)
+ : emoticon_(emoticon_)
+{}
+
+const std::int32_t sendMessageEmojiInteractionSeen::ID;
+
+object_ptr<SendMessageAction> sendMessageEmojiInteractionSeen::fetch(TlBufferParser &p) {
+ return make_tl_object<sendMessageEmojiInteractionSeen>(p);
+}
+
+sendMessageEmojiInteractionSeen::sendMessageEmojiInteractionSeen(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : emoticon_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void sendMessageEmojiInteractionSeen::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(emoticon_, s);
+}
+
+void sendMessageEmojiInteractionSeen::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(emoticon_, s);
+}
+
+void sendMessageEmojiInteractionSeen::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sendMessageEmojiInteractionSeen");
+ s.store_field("emoticon", emoticon_);
+ s.store_class_end();
+ }
+}
+
+shippingOption::shippingOption(string const &id_, string const &title_, array<object_ptr<labeledPrice>> &&prices_)
+ : id_(id_)
+ , title_(title_)
+ , prices_(std::move(prices_))
+{}
+
+const std::int32_t shippingOption::ID;
+
+object_ptr<shippingOption> shippingOption::fetch(TlBufferParser &p) {
+ return make_tl_object<shippingOption>(p);
+}
+
+shippingOption::shippingOption(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchString<string>::parse(p))
+ , title_(TlFetchString<string>::parse(p))
+ , prices_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<labeledPrice>, -886477832>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void shippingOption::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(title_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -886477832>>, 481674261>::store(prices_, s);
+}
+
+void shippingOption::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ TlStoreString::store(id_, s);
+ TlStoreString::store(title_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -886477832>>, 481674261>::store(prices_, s);
+}
+
+void shippingOption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "shippingOption");
+ s.store_field("id", id_);
+ s.store_field("title", title_);
+ { s.store_vector_begin("prices", prices_.size()); for (const auto &_value : prices_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t simpleWebViewResultUrl::ID;
+
+object_ptr<simpleWebViewResultUrl> simpleWebViewResultUrl::fetch(TlBufferParser &p) {
+ return make_tl_object<simpleWebViewResultUrl>(p);
+}
+
+simpleWebViewResultUrl::simpleWebViewResultUrl(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void simpleWebViewResultUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "simpleWebViewResultUrl");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+sponsoredMessage::sponsoredMessage()
+ : flags_()
+ , recommended_()
+ , show_peer_photo_()
+ , random_id_()
+ , from_id_()
+ , chat_invite_()
+ , chat_invite_hash_()
+ , channel_post_()
+ , start_param_()
+ , message_()
+ , entities_()
+{}
+
+const std::int32_t sponsoredMessage::ID;
+
+object_ptr<sponsoredMessage> sponsoredMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<sponsoredMessage> res = make_tl_object<sponsoredMessage>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 32) { res->recommended_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->show_peer_photo_ = TlFetchTrue::parse(p); }
+ res->random_id_ = TlFetchBytes<bytes>::parse(p);
+ if (var0 & 8) { res->from_id_ = TlFetchObject<Peer>::parse(p); }
+ if (var0 & 16) { res->chat_invite_ = TlFetchObject<ChatInvite>::parse(p); }
+ if (var0 & 16) { res->chat_invite_hash_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->channel_post_ = TlFetchInt::parse(p); }
+ if (var0 & 1) { res->start_param_ = TlFetchString<string>::parse(p); }
+ res->message_ = TlFetchString<string>::parse(p);
+ if (var0 & 2) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void sponsoredMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "sponsoredMessage");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_bytes_field("random_id", random_id_);
+ if (var0 & 8) { s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); }
+ if (var0 & 16) { s.store_object_field("chat_invite", static_cast<const BaseObject *>(chat_invite_.get())); }
+ if (var0 & 16) { s.store_field("chat_invite_hash", chat_invite_hash_); }
+ if (var0 & 4) { s.store_field("channel_post", channel_post_); }
+ if (var0 & 1) { s.store_field("start_param", start_param_); }
+ s.store_field("message", message_);
+ if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t statsAbsValueAndPrev::ID;
+
+object_ptr<statsAbsValueAndPrev> statsAbsValueAndPrev::fetch(TlBufferParser &p) {
+ return make_tl_object<statsAbsValueAndPrev>(p);
+}
+
+statsAbsValueAndPrev::statsAbsValueAndPrev(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : current_(TlFetchDouble::parse(p))
+ , previous_(TlFetchDouble::parse(p))
+#undef FAIL
+{}
+
+void statsAbsValueAndPrev::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statsAbsValueAndPrev");
+ s.store_field("current", current_);
+ s.store_field("previous", previous_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t statsDateRangeDays::ID;
+
+object_ptr<statsDateRangeDays> statsDateRangeDays::fetch(TlBufferParser &p) {
+ return make_tl_object<statsDateRangeDays>(p);
+}
+
+statsDateRangeDays::statsDateRangeDays(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : min_date_(TlFetchInt::parse(p))
+ , max_date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void statsDateRangeDays::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statsDateRangeDays");
+ s.store_field("min_date", min_date_);
+ s.store_field("max_date", max_date_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<StatsGraph> StatsGraph::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case statsGraphAsync::ID:
+ return statsGraphAsync::fetch(p);
+ case statsGraphError::ID:
+ return statsGraphError::fetch(p);
+ case statsGraph::ID:
+ return statsGraph::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t statsGraphAsync::ID;
+
+object_ptr<StatsGraph> statsGraphAsync::fetch(TlBufferParser &p) {
+ return make_tl_object<statsGraphAsync>(p);
+}
+
+statsGraphAsync::statsGraphAsync(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : token_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void statsGraphAsync::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statsGraphAsync");
+ s.store_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t statsGraphError::ID;
+
+object_ptr<StatsGraph> statsGraphError::fetch(TlBufferParser &p) {
+ return make_tl_object<statsGraphError>(p);
+}
+
+statsGraphError::statsGraphError(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : error_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void statsGraphError::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statsGraphError");
+ s.store_field("error", error_);
+ s.store_class_end();
+ }
+}
+
+statsGraph::statsGraph()
+ : flags_()
+ , json_()
+ , zoom_token_()
+{}
+
+const std::int32_t statsGraph::ID;
+
+object_ptr<StatsGraph> statsGraph::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<statsGraph> res = make_tl_object<statsGraph>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->json_ = TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p);
+ if (var0 & 1) { res->zoom_token_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void statsGraph::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statsGraph");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("json", static_cast<const BaseObject *>(json_.get()));
+ if (var0 & 1) { s.store_field("zoom_token", zoom_token_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t statsGroupTopAdmin::ID;
+
+object_ptr<statsGroupTopAdmin> statsGroupTopAdmin::fetch(TlBufferParser &p) {
+ return make_tl_object<statsGroupTopAdmin>(p);
+}
+
+statsGroupTopAdmin::statsGroupTopAdmin(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , deleted_(TlFetchInt::parse(p))
+ , kicked_(TlFetchInt::parse(p))
+ , banned_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void statsGroupTopAdmin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statsGroupTopAdmin");
+ s.store_field("user_id", user_id_);
+ s.store_field("deleted", deleted_);
+ s.store_field("kicked", kicked_);
+ s.store_field("banned", banned_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t statsGroupTopInviter::ID;
+
+object_ptr<statsGroupTopInviter> statsGroupTopInviter::fetch(TlBufferParser &p) {
+ return make_tl_object<statsGroupTopInviter>(p);
+}
+
+statsGroupTopInviter::statsGroupTopInviter(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , invitations_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void statsGroupTopInviter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statsGroupTopInviter");
+ s.store_field("user_id", user_id_);
+ s.store_field("invitations", invitations_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t statsGroupTopPoster::ID;
+
+object_ptr<statsGroupTopPoster> statsGroupTopPoster::fetch(TlBufferParser &p) {
+ return make_tl_object<statsGroupTopPoster>(p);
+}
+
+statsGroupTopPoster::statsGroupTopPoster(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , messages_(TlFetchInt::parse(p))
+ , avg_chars_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void statsGroupTopPoster::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statsGroupTopPoster");
+ s.store_field("user_id", user_id_);
+ s.store_field("messages", messages_);
+ s.store_field("avg_chars", avg_chars_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t statsPercentValue::ID;
+
+object_ptr<statsPercentValue> statsPercentValue::fetch(TlBufferParser &p) {
+ return make_tl_object<statsPercentValue>(p);
+}
+
+statsPercentValue::statsPercentValue(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : part_(TlFetchDouble::parse(p))
+ , total_(TlFetchDouble::parse(p))
+#undef FAIL
+{}
+
+void statsPercentValue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statsPercentValue");
+ s.store_field("part", part_);
+ s.store_field("total", total_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t statsURL::ID;
+
+void statsURL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "statsURL");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t stickerKeyword::ID;
+
+object_ptr<stickerKeyword> stickerKeyword::fetch(TlBufferParser &p) {
+ return make_tl_object<stickerKeyword>(p);
+}
+
+stickerKeyword::stickerKeyword(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : document_id_(TlFetchLong::parse(p))
+ , keyword_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void stickerKeyword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerKeyword");
+ s.store_field("document_id", document_id_);
+ { s.store_vector_begin("keyword", keyword_.size()); for (const auto &_value : keyword_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t stickerPack::ID;
+
+object_ptr<stickerPack> stickerPack::fetch(TlBufferParser &p) {
+ return make_tl_object<stickerPack>(p);
+}
+
+stickerPack::stickerPack(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : emoticon_(TlFetchString<string>::parse(p))
+ , documents_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void stickerPack::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerPack");
+ s.store_field("emoticon", emoticon_);
+ { s.store_vector_begin("documents", documents_.size()); for (const auto &_value : documents_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+stickerSet::stickerSet()
+ : flags_()
+ , archived_()
+ , official_()
+ , masks_()
+ , animated_()
+ , videos_()
+ , emojis_()
+ , installed_date_()
+ , id_()
+ , access_hash_()
+ , title_()
+ , short_name_()
+ , thumbs_()
+ , thumb_dc_id_()
+ , thumb_version_()
+ , thumb_document_id_()
+ , count_()
+ , hash_()
+{}
+
+const std::int32_t stickerSet::ID;
+
+object_ptr<stickerSet> stickerSet::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<stickerSet> res = make_tl_object<stickerSet>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->archived_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->official_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->masks_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->animated_ = TlFetchTrue::parse(p); }
+ if (var0 & 64) { res->videos_ = TlFetchTrue::parse(p); }
+ if (var0 & 128) { res->emojis_ = TlFetchTrue::parse(p); }
+ if (var0 & 1) { res->installed_date_ = TlFetchInt::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ res->short_name_ = TlFetchString<string>::parse(p);
+ if (var0 & 16) { res->thumbs_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PhotoSize>>, 481674261>::parse(p); }
+ if (var0 & 16) { res->thumb_dc_id_ = TlFetchInt::parse(p); }
+ if (var0 & 16) { res->thumb_version_ = TlFetchInt::parse(p); }
+ if (var0 & 256) { res->thumb_document_id_ = TlFetchLong::parse(p); }
+ res->count_ = TlFetchInt::parse(p);
+ res->hash_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void stickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerSet");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("installed_date", installed_date_); }
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("title", title_);
+ s.store_field("short_name", short_name_);
+ if (var0 & 16) { { s.store_vector_begin("thumbs", thumbs_.size()); for (const auto &_value : thumbs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 16) { s.store_field("thumb_dc_id", thumb_dc_id_); }
+ if (var0 & 16) { s.store_field("thumb_version", thumb_version_); }
+ if (var0 & 256) { s.store_field("thumb_document_id", thumb_document_id_); }
+ s.store_field("count", count_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<StickerSetCovered> StickerSetCovered::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case stickerSetCovered::ID:
+ return stickerSetCovered::fetch(p);
+ case stickerSetMultiCovered::ID:
+ return stickerSetMultiCovered::fetch(p);
+ case stickerSetFullCovered::ID:
+ return stickerSetFullCovered::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t stickerSetCovered::ID;
+
+object_ptr<StickerSetCovered> stickerSetCovered::fetch(TlBufferParser &p) {
+ return make_tl_object<stickerSetCovered>(p);
+}
+
+stickerSetCovered::stickerSetCovered(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : set_(TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>::parse(p))
+ , cover_(TlFetchObject<Document>::parse(p))
+#undef FAIL
+{}
+
+void stickerSetCovered::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerSetCovered");
+ s.store_object_field("set", static_cast<const BaseObject *>(set_.get()));
+ s.store_object_field("cover", static_cast<const BaseObject *>(cover_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t stickerSetMultiCovered::ID;
+
+object_ptr<StickerSetCovered> stickerSetMultiCovered::fetch(TlBufferParser &p) {
+ return make_tl_object<stickerSetMultiCovered>(p);
+}
+
+stickerSetMultiCovered::stickerSetMultiCovered(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : set_(TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>::parse(p))
+ , covers_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void stickerSetMultiCovered::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerSetMultiCovered");
+ s.store_object_field("set", static_cast<const BaseObject *>(set_.get()));
+ { s.store_vector_begin("covers", covers_.size()); for (const auto &_value : covers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t stickerSetFullCovered::ID;
+
+object_ptr<StickerSetCovered> stickerSetFullCovered::fetch(TlBufferParser &p) {
+ return make_tl_object<stickerSetFullCovered>(p);
+}
+
+stickerSetFullCovered::stickerSetFullCovered(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : set_(TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>::parse(p))
+ , packs_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerPack>, 313694676>>, 481674261>::parse(p))
+ , keywords_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerKeyword>, -50416996>>, 481674261>::parse(p))
+ , documents_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void stickerSetFullCovered::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickerSetFullCovered");
+ s.store_object_field("set", static_cast<const BaseObject *>(set_.get()));
+ { s.store_vector_begin("packs", packs_.size()); for (const auto &_value : packs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("keywords", keywords_.size()); for (const auto &_value : keywords_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("documents", documents_.size()); for (const auto &_value : documents_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+theme::theme()
+ : flags_()
+ , creator_()
+ , default_()
+ , for_chat_()
+ , id_()
+ , access_hash_()
+ , slug_()
+ , title_()
+ , document_()
+ , settings_()
+ , emoticon_()
+ , installs_count_()
+{}
+
+const std::int32_t theme::ID;
+
+object_ptr<theme> theme::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<theme> res = make_tl_object<theme>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->creator_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->default_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->for_chat_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->slug_ = TlFetchString<string>::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ if (var0 & 4) { res->document_ = TlFetchObject<Document>::parse(p); }
+ if (var0 & 8) { res->settings_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<themeSettings>, -94849324>>, 481674261>::parse(p); }
+ if (var0 & 64) { res->emoticon_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->installs_count_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void theme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "theme");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("slug", slug_);
+ s.store_field("title", title_);
+ if (var0 & 4) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); }
+ if (var0 & 8) { { s.store_vector_begin("settings", settings_.size()); for (const auto &_value : settings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 64) { s.store_field("emoticon", emoticon_); }
+ if (var0 & 16) { s.store_field("installs_count", installs_count_); }
+ s.store_class_end();
+ }
+}
+
+themeSettings::themeSettings()
+ : flags_()
+ , message_colors_animated_()
+ , base_theme_()
+ , accent_color_()
+ , outbox_accent_color_()
+ , message_colors_()
+ , wallpaper_()
+{}
+
+const std::int32_t themeSettings::ID;
+
+object_ptr<themeSettings> themeSettings::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<themeSettings> res = make_tl_object<themeSettings>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 4) { res->message_colors_animated_ = TlFetchTrue::parse(p); }
+ res->base_theme_ = TlFetchObject<BaseTheme>::parse(p);
+ res->accent_color_ = TlFetchInt::parse(p);
+ if (var0 & 8) { res->outbox_accent_color_ = TlFetchInt::parse(p); }
+ if (var0 & 1) { res->message_colors_ = TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p); }
+ if (var0 & 2) { res->wallpaper_ = TlFetchObject<WallPaper>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void themeSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "themeSettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("base_theme", static_cast<const BaseObject *>(base_theme_.get()));
+ s.store_field("accent_color", accent_color_);
+ if (var0 & 8) { s.store_field("outbox_accent_color", outbox_accent_color_); }
+ if (var0 & 1) { { s.store_vector_begin("message_colors", message_colors_.size()); for (const auto &_value : message_colors_) { s.store_field("", _value); } s.store_class_end(); } }
+ if (var0 & 2) { s.store_object_field("wallpaper", static_cast<const BaseObject *>(wallpaper_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t topPeer::ID;
+
+object_ptr<topPeer> topPeer::fetch(TlBufferParser &p) {
+ return make_tl_object<topPeer>(p);
+}
+
+topPeer::topPeer(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , rating_(TlFetchDouble::parse(p))
+#undef FAIL
+{}
+
+void topPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topPeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("rating", rating_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<TopPeerCategory> TopPeerCategory::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case topPeerCategoryBotsPM::ID:
+ return topPeerCategoryBotsPM::fetch(p);
+ case topPeerCategoryBotsInline::ID:
+ return topPeerCategoryBotsInline::fetch(p);
+ case topPeerCategoryCorrespondents::ID:
+ return topPeerCategoryCorrespondents::fetch(p);
+ case topPeerCategoryGroups::ID:
+ return topPeerCategoryGroups::fetch(p);
+ case topPeerCategoryChannels::ID:
+ return topPeerCategoryChannels::fetch(p);
+ case topPeerCategoryPhoneCalls::ID:
+ return topPeerCategoryPhoneCalls::fetch(p);
+ case topPeerCategoryForwardUsers::ID:
+ return topPeerCategoryForwardUsers::fetch(p);
+ case topPeerCategoryForwardChats::ID:
+ return topPeerCategoryForwardChats::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t topPeerCategoryBotsPM::ID;
+
+object_ptr<TopPeerCategory> topPeerCategoryBotsPM::fetch(TlBufferParser &p) {
+ return make_tl_object<topPeerCategoryBotsPM>();
+}
+
+void topPeerCategoryBotsPM::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryBotsPM::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryBotsPM::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topPeerCategoryBotsPM");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t topPeerCategoryBotsInline::ID;
+
+object_ptr<TopPeerCategory> topPeerCategoryBotsInline::fetch(TlBufferParser &p) {
+ return make_tl_object<topPeerCategoryBotsInline>();
+}
+
+void topPeerCategoryBotsInline::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryBotsInline::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryBotsInline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topPeerCategoryBotsInline");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t topPeerCategoryCorrespondents::ID;
+
+object_ptr<TopPeerCategory> topPeerCategoryCorrespondents::fetch(TlBufferParser &p) {
+ return make_tl_object<topPeerCategoryCorrespondents>();
+}
+
+void topPeerCategoryCorrespondents::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryCorrespondents::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryCorrespondents::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topPeerCategoryCorrespondents");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t topPeerCategoryGroups::ID;
+
+object_ptr<TopPeerCategory> topPeerCategoryGroups::fetch(TlBufferParser &p) {
+ return make_tl_object<topPeerCategoryGroups>();
+}
+
+void topPeerCategoryGroups::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryGroups::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryGroups::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topPeerCategoryGroups");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t topPeerCategoryChannels::ID;
+
+object_ptr<TopPeerCategory> topPeerCategoryChannels::fetch(TlBufferParser &p) {
+ return make_tl_object<topPeerCategoryChannels>();
+}
+
+void topPeerCategoryChannels::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryChannels::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryChannels::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topPeerCategoryChannels");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t topPeerCategoryPhoneCalls::ID;
+
+object_ptr<TopPeerCategory> topPeerCategoryPhoneCalls::fetch(TlBufferParser &p) {
+ return make_tl_object<topPeerCategoryPhoneCalls>();
+}
+
+void topPeerCategoryPhoneCalls::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryPhoneCalls::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryPhoneCalls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topPeerCategoryPhoneCalls");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t topPeerCategoryForwardUsers::ID;
+
+object_ptr<TopPeerCategory> topPeerCategoryForwardUsers::fetch(TlBufferParser &p) {
+ return make_tl_object<topPeerCategoryForwardUsers>();
+}
+
+void topPeerCategoryForwardUsers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryForwardUsers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryForwardUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topPeerCategoryForwardUsers");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t topPeerCategoryForwardChats::ID;
+
+object_ptr<TopPeerCategory> topPeerCategoryForwardChats::fetch(TlBufferParser &p) {
+ return make_tl_object<topPeerCategoryForwardChats>();
+}
+
+void topPeerCategoryForwardChats::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryForwardChats::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+}
+
+void topPeerCategoryForwardChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topPeerCategoryForwardChats");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t topPeerCategoryPeers::ID;
+
+object_ptr<topPeerCategoryPeers> topPeerCategoryPeers::fetch(TlBufferParser &p) {
+ return make_tl_object<topPeerCategoryPeers>(p);
+}
+
+topPeerCategoryPeers::topPeerCategoryPeers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : category_(TlFetchObject<TopPeerCategory>::parse(p))
+ , count_(TlFetchInt::parse(p))
+ , peers_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<topPeer>, -305282981>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void topPeerCategoryPeers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "topPeerCategoryPeers");
+ s.store_object_field("category", static_cast<const BaseObject *>(category_.get()));
+ s.store_field("count", count_);
+ { s.store_vector_begin("peers", peers_.size()); for (const auto &_value : peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<Update> Update::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case updateNewMessage::ID:
+ return updateNewMessage::fetch(p);
+ case updateMessageID::ID:
+ return updateMessageID::fetch(p);
+ case updateDeleteMessages::ID:
+ return updateDeleteMessages::fetch(p);
+ case updateUserTyping::ID:
+ return updateUserTyping::fetch(p);
+ case updateChatUserTyping::ID:
+ return updateChatUserTyping::fetch(p);
+ case updateChatParticipants::ID:
+ return updateChatParticipants::fetch(p);
+ case updateUserStatus::ID:
+ return updateUserStatus::fetch(p);
+ case updateUserName::ID:
+ return updateUserName::fetch(p);
+ case updateUserPhoto::ID:
+ return updateUserPhoto::fetch(p);
+ case updateNewEncryptedMessage::ID:
+ return updateNewEncryptedMessage::fetch(p);
+ case updateEncryptedChatTyping::ID:
+ return updateEncryptedChatTyping::fetch(p);
+ case updateEncryption::ID:
+ return updateEncryption::fetch(p);
+ case updateEncryptedMessagesRead::ID:
+ return updateEncryptedMessagesRead::fetch(p);
+ case updateChatParticipantAdd::ID:
+ return updateChatParticipantAdd::fetch(p);
+ case updateChatParticipantDelete::ID:
+ return updateChatParticipantDelete::fetch(p);
+ case updateDcOptions::ID:
+ return updateDcOptions::fetch(p);
+ case updateNotifySettings::ID:
+ return updateNotifySettings::fetch(p);
+ case updateServiceNotification::ID:
+ return updateServiceNotification::fetch(p);
+ case updatePrivacy::ID:
+ return updatePrivacy::fetch(p);
+ case updateUserPhone::ID:
+ return updateUserPhone::fetch(p);
+ case updateReadHistoryInbox::ID:
+ return updateReadHistoryInbox::fetch(p);
+ case updateReadHistoryOutbox::ID:
+ return updateReadHistoryOutbox::fetch(p);
+ case updateWebPage::ID:
+ return updateWebPage::fetch(p);
+ case updateReadMessagesContents::ID:
+ return updateReadMessagesContents::fetch(p);
+ case updateChannelTooLong::ID:
+ return updateChannelTooLong::fetch(p);
+ case updateChannel::ID:
+ return updateChannel::fetch(p);
+ case updateNewChannelMessage::ID:
+ return updateNewChannelMessage::fetch(p);
+ case updateReadChannelInbox::ID:
+ return updateReadChannelInbox::fetch(p);
+ case updateDeleteChannelMessages::ID:
+ return updateDeleteChannelMessages::fetch(p);
+ case updateChannelMessageViews::ID:
+ return updateChannelMessageViews::fetch(p);
+ case updateChatParticipantAdmin::ID:
+ return updateChatParticipantAdmin::fetch(p);
+ case updateNewStickerSet::ID:
+ return updateNewStickerSet::fetch(p);
+ case updateStickerSetsOrder::ID:
+ return updateStickerSetsOrder::fetch(p);
+ case updateStickerSets::ID:
+ return updateStickerSets::fetch(p);
+ case updateSavedGifs::ID:
+ return updateSavedGifs::fetch(p);
+ case updateBotInlineQuery::ID:
+ return updateBotInlineQuery::fetch(p);
+ case updateBotInlineSend::ID:
+ return updateBotInlineSend::fetch(p);
+ case updateEditChannelMessage::ID:
+ return updateEditChannelMessage::fetch(p);
+ case updateBotCallbackQuery::ID:
+ return updateBotCallbackQuery::fetch(p);
+ case updateEditMessage::ID:
+ return updateEditMessage::fetch(p);
+ case updateInlineBotCallbackQuery::ID:
+ return updateInlineBotCallbackQuery::fetch(p);
+ case updateReadChannelOutbox::ID:
+ return updateReadChannelOutbox::fetch(p);
+ case updateDraftMessage::ID:
+ return updateDraftMessage::fetch(p);
+ case updateReadFeaturedStickers::ID:
+ return updateReadFeaturedStickers::fetch(p);
+ case updateRecentStickers::ID:
+ return updateRecentStickers::fetch(p);
+ case updateConfig::ID:
+ return updateConfig::fetch(p);
+ case updatePtsChanged::ID:
+ return updatePtsChanged::fetch(p);
+ case updateChannelWebPage::ID:
+ return updateChannelWebPage::fetch(p);
+ case updateDialogPinned::ID:
+ return updateDialogPinned::fetch(p);
+ case updatePinnedDialogs::ID:
+ return updatePinnedDialogs::fetch(p);
+ case updateBotWebhookJSON::ID:
+ return updateBotWebhookJSON::fetch(p);
+ case updateBotWebhookJSONQuery::ID:
+ return updateBotWebhookJSONQuery::fetch(p);
+ case updateBotShippingQuery::ID:
+ return updateBotShippingQuery::fetch(p);
+ case updateBotPrecheckoutQuery::ID:
+ return updateBotPrecheckoutQuery::fetch(p);
+ case updatePhoneCall::ID:
+ return updatePhoneCall::fetch(p);
+ case updateLangPackTooLong::ID:
+ return updateLangPackTooLong::fetch(p);
+ case updateLangPack::ID:
+ return updateLangPack::fetch(p);
+ case updateFavedStickers::ID:
+ return updateFavedStickers::fetch(p);
+ case updateChannelReadMessagesContents::ID:
+ return updateChannelReadMessagesContents::fetch(p);
+ case updateContactsReset::ID:
+ return updateContactsReset::fetch(p);
+ case updateChannelAvailableMessages::ID:
+ return updateChannelAvailableMessages::fetch(p);
+ case updateDialogUnreadMark::ID:
+ return updateDialogUnreadMark::fetch(p);
+ case updateMessagePoll::ID:
+ return updateMessagePoll::fetch(p);
+ case updateChatDefaultBannedRights::ID:
+ return updateChatDefaultBannedRights::fetch(p);
+ case updateFolderPeers::ID:
+ return updateFolderPeers::fetch(p);
+ case updatePeerSettings::ID:
+ return updatePeerSettings::fetch(p);
+ case updatePeerLocated::ID:
+ return updatePeerLocated::fetch(p);
+ case updateNewScheduledMessage::ID:
+ return updateNewScheduledMessage::fetch(p);
+ case updateDeleteScheduledMessages::ID:
+ return updateDeleteScheduledMessages::fetch(p);
+ case updateTheme::ID:
+ return updateTheme::fetch(p);
+ case updateGeoLiveViewed::ID:
+ return updateGeoLiveViewed::fetch(p);
+ case updateLoginToken::ID:
+ return updateLoginToken::fetch(p);
+ case updateMessagePollVote::ID:
+ return updateMessagePollVote::fetch(p);
+ case updateDialogFilter::ID:
+ return updateDialogFilter::fetch(p);
+ case updateDialogFilterOrder::ID:
+ return updateDialogFilterOrder::fetch(p);
+ case updateDialogFilters::ID:
+ return updateDialogFilters::fetch(p);
+ case updatePhoneCallSignalingData::ID:
+ return updatePhoneCallSignalingData::fetch(p);
+ case updateChannelMessageForwards::ID:
+ return updateChannelMessageForwards::fetch(p);
+ case updateReadChannelDiscussionInbox::ID:
+ return updateReadChannelDiscussionInbox::fetch(p);
+ case updateReadChannelDiscussionOutbox::ID:
+ return updateReadChannelDiscussionOutbox::fetch(p);
+ case updatePeerBlocked::ID:
+ return updatePeerBlocked::fetch(p);
+ case updateChannelUserTyping::ID:
+ return updateChannelUserTyping::fetch(p);
+ case updatePinnedMessages::ID:
+ return updatePinnedMessages::fetch(p);
+ case updatePinnedChannelMessages::ID:
+ return updatePinnedChannelMessages::fetch(p);
+ case updateChat::ID:
+ return updateChat::fetch(p);
+ case updateGroupCallParticipants::ID:
+ return updateGroupCallParticipants::fetch(p);
+ case updateGroupCall::ID:
+ return updateGroupCall::fetch(p);
+ case updatePeerHistoryTTL::ID:
+ return updatePeerHistoryTTL::fetch(p);
+ case updateChatParticipant::ID:
+ return updateChatParticipant::fetch(p);
+ case updateChannelParticipant::ID:
+ return updateChannelParticipant::fetch(p);
+ case updateBotStopped::ID:
+ return updateBotStopped::fetch(p);
+ case updateGroupCallConnection::ID:
+ return updateGroupCallConnection::fetch(p);
+ case updateBotCommands::ID:
+ return updateBotCommands::fetch(p);
+ case updatePendingJoinRequests::ID:
+ return updatePendingJoinRequests::fetch(p);
+ case updateBotChatInviteRequester::ID:
+ return updateBotChatInviteRequester::fetch(p);
+ case updateMessageReactions::ID:
+ return updateMessageReactions::fetch(p);
+ case updateAttachMenuBots::ID:
+ return updateAttachMenuBots::fetch(p);
+ case updateWebViewResultSent::ID:
+ return updateWebViewResultSent::fetch(p);
+ case updateBotMenuButton::ID:
+ return updateBotMenuButton::fetch(p);
+ case updateSavedRingtones::ID:
+ return updateSavedRingtones::fetch(p);
+ case updateTranscribedAudio::ID:
+ return updateTranscribedAudio::fetch(p);
+ case updateReadFeaturedEmojiStickers::ID:
+ return updateReadFeaturedEmojiStickers::fetch(p);
+ case updateUserEmojiStatus::ID:
+ return updateUserEmojiStatus::fetch(p);
+ case updateRecentEmojiStatuses::ID:
+ return updateRecentEmojiStatuses::fetch(p);
+ case updateRecentReactions::ID:
+ return updateRecentReactions::fetch(p);
+ case updateMoveStickerSetToTop::ID:
+ return updateMoveStickerSetToTop::fetch(p);
+ case updateMessageExtendedMedia::ID:
+ return updateMessageExtendedMedia::fetch(p);
+ case updateChannelPinnedTopic::ID:
+ return updateChannelPinnedTopic::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+updateNewMessage::updateNewMessage(object_ptr<Message> &&message_, int32 pts_, int32 pts_count_)
+ : message_(std::move(message_))
+ , pts_(pts_)
+ , pts_count_(pts_count_)
+{}
+
+const std::int32_t updateNewMessage::ID;
+
+object_ptr<Update> updateNewMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<updateNewMessage>(p);
+}
+
+updateNewMessage::updateNewMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchObject<Message>::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateNewMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewMessage");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateMessageID::ID;
+
+object_ptr<Update> updateMessageID::fetch(TlBufferParser &p) {
+ return make_tl_object<updateMessageID>(p);
+}
+
+updateMessageID::updateMessageID(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchInt::parse(p))
+ , random_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void updateMessageID::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageID");
+ s.store_field("id", id_);
+ s.store_field("random_id", random_id_);
+ s.store_class_end();
+ }
+}
+
+updateDeleteMessages::updateDeleteMessages(array<int32> &&messages_, int32 pts_, int32 pts_count_)
+ : messages_(std::move(messages_))
+ , pts_(pts_)
+ , pts_count_(pts_count_)
+{}
+
+const std::int32_t updateDeleteMessages::ID;
+
+object_ptr<Update> updateDeleteMessages::fetch(TlBufferParser &p) {
+ return make_tl_object<updateDeleteMessages>(p);
+}
+
+updateDeleteMessages::updateDeleteMessages(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : messages_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateDeleteMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDeleteMessages");
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateUserTyping::ID;
+
+object_ptr<Update> updateUserTyping::fetch(TlBufferParser &p) {
+ return make_tl_object<updateUserTyping>(p);
+}
+
+updateUserTyping::updateUserTyping(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , action_(TlFetchObject<SendMessageAction>::parse(p))
+#undef FAIL
+{}
+
+void updateUserTyping::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUserTyping");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChatUserTyping::ID;
+
+object_ptr<Update> updateChatUserTyping::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChatUserTyping>(p);
+}
+
+updateChatUserTyping::updateChatUserTyping(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchLong::parse(p))
+ , from_id_(TlFetchObject<Peer>::parse(p))
+ , action_(TlFetchObject<SendMessageAction>::parse(p))
+#undef FAIL
+{}
+
+void updateChatUserTyping::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatUserTyping");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get()));
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChatParticipants::ID;
+
+object_ptr<Update> updateChatParticipants::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChatParticipants>(p);
+}
+
+updateChatParticipants::updateChatParticipants(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : participants_(TlFetchObject<ChatParticipants>::parse(p))
+#undef FAIL
+{}
+
+void updateChatParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatParticipants");
+ s.store_object_field("participants", static_cast<const BaseObject *>(participants_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateUserStatus::ID;
+
+object_ptr<Update> updateUserStatus::fetch(TlBufferParser &p) {
+ return make_tl_object<updateUserStatus>(p);
+}
+
+updateUserStatus::updateUserStatus(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , status_(TlFetchObject<UserStatus>::parse(p))
+#undef FAIL
+{}
+
+void updateUserStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUserStatus");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("status", static_cast<const BaseObject *>(status_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateUserName::ID;
+
+object_ptr<Update> updateUserName::fetch(TlBufferParser &p) {
+ return make_tl_object<updateUserName>(p);
+}
+
+updateUserName::updateUserName(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , first_name_(TlFetchString<string>::parse(p))
+ , last_name_(TlFetchString<string>::parse(p))
+ , usernames_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<username>, -1274595769>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void updateUserName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUserName");
+ s.store_field("user_id", user_id_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ { s.store_vector_begin("usernames", usernames_.size()); for (const auto &_value : usernames_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateUserPhoto::ID;
+
+object_ptr<Update> updateUserPhoto::fetch(TlBufferParser &p) {
+ return make_tl_object<updateUserPhoto>(p);
+}
+
+updateUserPhoto::updateUserPhoto(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , photo_(TlFetchObject<UserProfilePhoto>::parse(p))
+ , previous_(TlFetchBool::parse(p))
+#undef FAIL
+{}
+
+void updateUserPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUserPhoto");
+ s.store_field("user_id", user_id_);
+ s.store_field("date", date_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_field("previous", previous_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateNewEncryptedMessage::ID;
+
+object_ptr<Update> updateNewEncryptedMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<updateNewEncryptedMessage>(p);
+}
+
+updateNewEncryptedMessage::updateNewEncryptedMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchObject<EncryptedMessage>::parse(p))
+ , qts_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateNewEncryptedMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewEncryptedMessage");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("qts", qts_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateEncryptedChatTyping::ID;
+
+object_ptr<Update> updateEncryptedChatTyping::fetch(TlBufferParser &p) {
+ return make_tl_object<updateEncryptedChatTyping>(p);
+}
+
+updateEncryptedChatTyping::updateEncryptedChatTyping(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateEncryptedChatTyping::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateEncryptedChatTyping");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateEncryption::ID;
+
+object_ptr<Update> updateEncryption::fetch(TlBufferParser &p) {
+ return make_tl_object<updateEncryption>(p);
+}
+
+updateEncryption::updateEncryption(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_(TlFetchObject<EncryptedChat>::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateEncryption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateEncryption");
+ s.store_object_field("chat", static_cast<const BaseObject *>(chat_.get()));
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateEncryptedMessagesRead::ID;
+
+object_ptr<Update> updateEncryptedMessagesRead::fetch(TlBufferParser &p) {
+ return make_tl_object<updateEncryptedMessagesRead>(p);
+}
+
+updateEncryptedMessagesRead::updateEncryptedMessagesRead(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchInt::parse(p))
+ , max_date_(TlFetchInt::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateEncryptedMessagesRead::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateEncryptedMessagesRead");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("max_date", max_date_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChatParticipantAdd::ID;
+
+object_ptr<Update> updateChatParticipantAdd::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChatParticipantAdd>(p);
+}
+
+updateChatParticipantAdd::updateChatParticipantAdd(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchLong::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+ , inviter_id_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , version_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateChatParticipantAdd::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatParticipantAdd");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("user_id", user_id_);
+ s.store_field("inviter_id", inviter_id_);
+ s.store_field("date", date_);
+ s.store_field("version", version_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChatParticipantDelete::ID;
+
+object_ptr<Update> updateChatParticipantDelete::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChatParticipantDelete>(p);
+}
+
+updateChatParticipantDelete::updateChatParticipantDelete(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchLong::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+ , version_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateChatParticipantDelete::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatParticipantDelete");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("user_id", user_id_);
+ s.store_field("version", version_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateDcOptions::ID;
+
+object_ptr<Update> updateDcOptions::fetch(TlBufferParser &p) {
+ return make_tl_object<updateDcOptions>(p);
+}
+
+updateDcOptions::updateDcOptions(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : dc_options_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<dcOption>, 414687501>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void updateDcOptions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDcOptions");
+ { s.store_vector_begin("dc_options", dc_options_.size()); for (const auto &_value : dc_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateNotifySettings::ID;
+
+object_ptr<Update> updateNotifySettings::fetch(TlBufferParser &p) {
+ return make_tl_object<updateNotifySettings>(p);
+}
+
+updateNotifySettings::updateNotifySettings(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<NotifyPeer>::parse(p))
+ , notify_settings_(TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p))
+#undef FAIL
+{}
+
+void updateNotifySettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNotifySettings");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get()));
+ s.store_class_end();
+ }
+}
+
+updateServiceNotification::updateServiceNotification()
+ : flags_()
+ , popup_()
+ , inbox_date_()
+ , type_()
+ , message_()
+ , media_()
+ , entities_()
+{}
+
+updateServiceNotification::updateServiceNotification(int32 flags_, bool popup_, int32 inbox_date_, string const &type_, string const &message_, object_ptr<MessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_)
+ : flags_(flags_)
+ , popup_(popup_)
+ , inbox_date_(inbox_date_)
+ , type_(type_)
+ , message_(message_)
+ , media_(std::move(media_))
+ , entities_(std::move(entities_))
+{}
+
+const std::int32_t updateServiceNotification::ID;
+
+object_ptr<Update> updateServiceNotification::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateServiceNotification> res = make_tl_object<updateServiceNotification>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->popup_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->inbox_date_ = TlFetchInt::parse(p); }
+ res->type_ = TlFetchString<string>::parse(p);
+ res->message_ = TlFetchString<string>::parse(p);
+ res->media_ = TlFetchObject<MessageMedia>::parse(p);
+ res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateServiceNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateServiceNotification");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { s.store_field("inbox_date", inbox_date_); }
+ s.store_field("type", type_);
+ s.store_field("message", message_);
+ s.store_object_field("media", static_cast<const BaseObject *>(media_.get()));
+ { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updatePrivacy::ID;
+
+object_ptr<Update> updatePrivacy::fetch(TlBufferParser &p) {
+ return make_tl_object<updatePrivacy>(p);
+}
+
+updatePrivacy::updatePrivacy(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : key_(TlFetchObject<PrivacyKey>::parse(p))
+ , rules_(TlFetchBoxed<TlFetchVector<TlFetchObject<PrivacyRule>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void updatePrivacy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePrivacy");
+ s.store_object_field("key", static_cast<const BaseObject *>(key_.get()));
+ { s.store_vector_begin("rules", rules_.size()); for (const auto &_value : rules_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateUserPhone::ID;
+
+object_ptr<Update> updateUserPhone::fetch(TlBufferParser &p) {
+ return make_tl_object<updateUserPhone>(p);
+}
+
+updateUserPhone::updateUserPhone(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , phone_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void updateUserPhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUserPhone");
+ s.store_field("user_id", user_id_);
+ s.store_field("phone", phone_);
+ s.store_class_end();
+ }
+}
+
+updateReadHistoryInbox::updateReadHistoryInbox()
+ : flags_()
+ , folder_id_()
+ , peer_()
+ , max_id_()
+ , still_unread_count_()
+ , pts_()
+ , pts_count_()
+{}
+
+const std::int32_t updateReadHistoryInbox::ID;
+
+object_ptr<Update> updateReadHistoryInbox::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateReadHistoryInbox> res = make_tl_object<updateReadHistoryInbox>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->folder_id_ = TlFetchInt::parse(p); }
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ res->max_id_ = TlFetchInt::parse(p);
+ res->still_unread_count_ = TlFetchInt::parse(p);
+ res->pts_ = TlFetchInt::parse(p);
+ res->pts_count_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateReadHistoryInbox::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateReadHistoryInbox");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("folder_id", folder_id_); }
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("max_id", max_id_);
+ s.store_field("still_unread_count", still_unread_count_);
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateReadHistoryOutbox::ID;
+
+object_ptr<Update> updateReadHistoryOutbox::fetch(TlBufferParser &p) {
+ return make_tl_object<updateReadHistoryOutbox>(p);
+}
+
+updateReadHistoryOutbox::updateReadHistoryOutbox(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , max_id_(TlFetchInt::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateReadHistoryOutbox::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateReadHistoryOutbox");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("max_id", max_id_);
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateWebPage::ID;
+
+object_ptr<Update> updateWebPage::fetch(TlBufferParser &p) {
+ return make_tl_object<updateWebPage>(p);
+}
+
+updateWebPage::updateWebPage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : webpage_(TlFetchObject<WebPage>::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateWebPage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateWebPage");
+ s.store_object_field("webpage", static_cast<const BaseObject *>(webpage_.get()));
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateReadMessagesContents::ID;
+
+object_ptr<Update> updateReadMessagesContents::fetch(TlBufferParser &p) {
+ return make_tl_object<updateReadMessagesContents>(p);
+}
+
+updateReadMessagesContents::updateReadMessagesContents(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : messages_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateReadMessagesContents::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateReadMessagesContents");
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+updateChannelTooLong::updateChannelTooLong()
+ : flags_()
+ , channel_id_()
+ , pts_()
+{}
+
+updateChannelTooLong::updateChannelTooLong(int32 flags_, int64 channel_id_, int32 pts_)
+ : flags_(flags_)
+ , channel_id_(channel_id_)
+ , pts_(pts_)
+{}
+
+const std::int32_t updateChannelTooLong::ID;
+
+object_ptr<Update> updateChannelTooLong::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateChannelTooLong> res = make_tl_object<updateChannelTooLong>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->channel_id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->pts_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateChannelTooLong::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChannelTooLong");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("channel_id", channel_id_);
+ if (var0 & 1) { s.store_field("pts", pts_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChannel::ID;
+
+object_ptr<Update> updateChannel::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChannel>(p);
+}
+
+updateChannel::updateChannel(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void updateChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChannel");
+ s.store_field("channel_id", channel_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateNewChannelMessage::ID;
+
+object_ptr<Update> updateNewChannelMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<updateNewChannelMessage>(p);
+}
+
+updateNewChannelMessage::updateNewChannelMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchObject<Message>::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateNewChannelMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewChannelMessage");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+updateReadChannelInbox::updateReadChannelInbox()
+ : flags_()
+ , folder_id_()
+ , channel_id_()
+ , max_id_()
+ , still_unread_count_()
+ , pts_()
+{}
+
+const std::int32_t updateReadChannelInbox::ID;
+
+object_ptr<Update> updateReadChannelInbox::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateReadChannelInbox> res = make_tl_object<updateReadChannelInbox>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->folder_id_ = TlFetchInt::parse(p); }
+ res->channel_id_ = TlFetchLong::parse(p);
+ res->max_id_ = TlFetchInt::parse(p);
+ res->still_unread_count_ = TlFetchInt::parse(p);
+ res->pts_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateReadChannelInbox::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateReadChannelInbox");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("folder_id", folder_id_); }
+ s.store_field("channel_id", channel_id_);
+ s.store_field("max_id", max_id_);
+ s.store_field("still_unread_count", still_unread_count_);
+ s.store_field("pts", pts_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateDeleteChannelMessages::ID;
+
+object_ptr<Update> updateDeleteChannelMessages::fetch(TlBufferParser &p) {
+ return make_tl_object<updateDeleteChannelMessages>(p);
+}
+
+updateDeleteChannelMessages::updateDeleteChannelMessages(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+ , messages_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateDeleteChannelMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDeleteChannelMessages");
+ s.store_field("channel_id", channel_id_);
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChannelMessageViews::ID;
+
+object_ptr<Update> updateChannelMessageViews::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChannelMessageViews>(p);
+}
+
+updateChannelMessageViews::updateChannelMessageViews(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+ , id_(TlFetchInt::parse(p))
+ , views_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateChannelMessageViews::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChannelMessageViews");
+ s.store_field("channel_id", channel_id_);
+ s.store_field("id", id_);
+ s.store_field("views", views_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChatParticipantAdmin::ID;
+
+object_ptr<Update> updateChatParticipantAdmin::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChatParticipantAdmin>(p);
+}
+
+updateChatParticipantAdmin::updateChatParticipantAdmin(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchLong::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+ , is_admin_(TlFetchBool::parse(p))
+ , version_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateChatParticipantAdmin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatParticipantAdmin");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("user_id", user_id_);
+ s.store_field("is_admin", is_admin_);
+ s.store_field("version", version_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateNewStickerSet::ID;
+
+object_ptr<Update> updateNewStickerSet::fetch(TlBufferParser &p) {
+ return make_tl_object<updateNewStickerSet>(p);
+}
+
+updateNewStickerSet::updateNewStickerSet(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : stickerset_(TlFetchObject<messages_StickerSet>::parse(p))
+#undef FAIL
+{}
+
+void updateNewStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewStickerSet");
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_class_end();
+ }
+}
+
+updateStickerSetsOrder::updateStickerSetsOrder()
+ : flags_()
+ , masks_()
+ , emojis_()
+ , order_()
+{}
+
+const std::int32_t updateStickerSetsOrder::ID;
+
+object_ptr<Update> updateStickerSetsOrder::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateStickerSetsOrder> res = make_tl_object<updateStickerSetsOrder>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->masks_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->emojis_ = TlFetchTrue::parse(p); }
+ res->order_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateStickerSetsOrder::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateStickerSetsOrder");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updateStickerSets::updateStickerSets()
+ : flags_()
+ , masks_()
+ , emojis_()
+{}
+
+const std::int32_t updateStickerSets::ID;
+
+object_ptr<Update> updateStickerSets::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateStickerSets> res = make_tl_object<updateStickerSets>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->masks_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->emojis_ = TlFetchTrue::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateStickerSets");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateSavedGifs::ID;
+
+object_ptr<Update> updateSavedGifs::fetch(TlBufferParser &p) {
+ return make_tl_object<updateSavedGifs>();
+}
+
+void updateSavedGifs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateSavedGifs");
+ s.store_class_end();
+ }
+}
+
+updateBotInlineQuery::updateBotInlineQuery()
+ : flags_()
+ , query_id_()
+ , user_id_()
+ , query_()
+ , geo_()
+ , peer_type_()
+ , offset_()
+{}
+
+const std::int32_t updateBotInlineQuery::ID;
+
+object_ptr<Update> updateBotInlineQuery::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateBotInlineQuery> res = make_tl_object<updateBotInlineQuery>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->query_id_ = TlFetchLong::parse(p);
+ res->user_id_ = TlFetchLong::parse(p);
+ res->query_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->geo_ = TlFetchObject<GeoPoint>::parse(p); }
+ if (var0 & 2) { res->peer_type_ = TlFetchObject<InlineQueryPeerType>::parse(p); }
+ res->offset_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateBotInlineQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotInlineQuery");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("query_id", query_id_);
+ s.store_field("user_id", user_id_);
+ s.store_field("query", query_);
+ if (var0 & 1) { s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get())); }
+ if (var0 & 2) { s.store_object_field("peer_type", static_cast<const BaseObject *>(peer_type_.get())); }
+ s.store_field("offset", offset_);
+ s.store_class_end();
+ }
+}
+
+updateBotInlineSend::updateBotInlineSend()
+ : flags_()
+ , user_id_()
+ , query_()
+ , geo_()
+ , id_()
+ , msg_id_()
+{}
+
+const std::int32_t updateBotInlineSend::ID;
+
+object_ptr<Update> updateBotInlineSend::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateBotInlineSend> res = make_tl_object<updateBotInlineSend>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->user_id_ = TlFetchLong::parse(p);
+ res->query_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->geo_ = TlFetchObject<GeoPoint>::parse(p); }
+ res->id_ = TlFetchString<string>::parse(p);
+ if (var0 & 2) { res->msg_id_ = TlFetchObject<InputBotInlineMessageID>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateBotInlineSend::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotInlineSend");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("user_id", user_id_);
+ s.store_field("query", query_);
+ if (var0 & 1) { s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get())); }
+ s.store_field("id", id_);
+ if (var0 & 2) { s.store_object_field("msg_id", static_cast<const BaseObject *>(msg_id_.get())); }
+ s.store_class_end();
+ }
+}
+
+updateEditChannelMessage::updateEditChannelMessage(object_ptr<Message> &&message_, int32 pts_, int32 pts_count_)
+ : message_(std::move(message_))
+ , pts_(pts_)
+ , pts_count_(pts_count_)
+{}
+
+const std::int32_t updateEditChannelMessage::ID;
+
+object_ptr<Update> updateEditChannelMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<updateEditChannelMessage>(p);
+}
+
+updateEditChannelMessage::updateEditChannelMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchObject<Message>::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateEditChannelMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateEditChannelMessage");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+updateBotCallbackQuery::updateBotCallbackQuery()
+ : flags_()
+ , query_id_()
+ , user_id_()
+ , peer_()
+ , msg_id_()
+ , chat_instance_()
+ , data_()
+ , game_short_name_()
+{}
+
+const std::int32_t updateBotCallbackQuery::ID;
+
+object_ptr<Update> updateBotCallbackQuery::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateBotCallbackQuery> res = make_tl_object<updateBotCallbackQuery>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->query_id_ = TlFetchLong::parse(p);
+ res->user_id_ = TlFetchLong::parse(p);
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ res->msg_id_ = TlFetchInt::parse(p);
+ res->chat_instance_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->data_ = TlFetchBytes<bytes>::parse(p); }
+ if (var0 & 2) { res->game_short_name_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateBotCallbackQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotCallbackQuery");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("query_id", query_id_);
+ s.store_field("user_id", user_id_);
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_field("chat_instance", chat_instance_);
+ if (var0 & 1) { s.store_bytes_field("data", data_); }
+ if (var0 & 2) { s.store_field("game_short_name", game_short_name_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateEditMessage::ID;
+
+object_ptr<Update> updateEditMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<updateEditMessage>(p);
+}
+
+updateEditMessage::updateEditMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchObject<Message>::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateEditMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateEditMessage");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+updateInlineBotCallbackQuery::updateInlineBotCallbackQuery()
+ : flags_()
+ , query_id_()
+ , user_id_()
+ , msg_id_()
+ , chat_instance_()
+ , data_()
+ , game_short_name_()
+{}
+
+const std::int32_t updateInlineBotCallbackQuery::ID;
+
+object_ptr<Update> updateInlineBotCallbackQuery::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateInlineBotCallbackQuery> res = make_tl_object<updateInlineBotCallbackQuery>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->query_id_ = TlFetchLong::parse(p);
+ res->user_id_ = TlFetchLong::parse(p);
+ res->msg_id_ = TlFetchObject<InputBotInlineMessageID>::parse(p);
+ res->chat_instance_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->data_ = TlFetchBytes<bytes>::parse(p); }
+ if (var0 & 2) { res->game_short_name_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateInlineBotCallbackQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateInlineBotCallbackQuery");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("query_id", query_id_);
+ s.store_field("user_id", user_id_);
+ s.store_object_field("msg_id", static_cast<const BaseObject *>(msg_id_.get()));
+ s.store_field("chat_instance", chat_instance_);
+ if (var0 & 1) { s.store_bytes_field("data", data_); }
+ if (var0 & 2) { s.store_field("game_short_name", game_short_name_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateReadChannelOutbox::ID;
+
+object_ptr<Update> updateReadChannelOutbox::fetch(TlBufferParser &p) {
+ return make_tl_object<updateReadChannelOutbox>(p);
+}
+
+updateReadChannelOutbox::updateReadChannelOutbox(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+ , max_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateReadChannelOutbox::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateReadChannelOutbox");
+ s.store_field("channel_id", channel_id_);
+ s.store_field("max_id", max_id_);
+ s.store_class_end();
+ }
+}
+
+updateDraftMessage::updateDraftMessage()
+ : flags_()
+ , peer_()
+ , top_msg_id_()
+ , draft_()
+{}
+
+const std::int32_t updateDraftMessage::ID;
+
+object_ptr<Update> updateDraftMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateDraftMessage> res = make_tl_object<updateDraftMessage>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ if (var0 & 1) { res->top_msg_id_ = TlFetchInt::parse(p); }
+ res->draft_ = TlFetchObject<DraftMessage>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateDraftMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDraftMessage");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_object_field("draft", static_cast<const BaseObject *>(draft_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateReadFeaturedStickers::ID;
+
+object_ptr<Update> updateReadFeaturedStickers::fetch(TlBufferParser &p) {
+ return make_tl_object<updateReadFeaturedStickers>();
+}
+
+void updateReadFeaturedStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateReadFeaturedStickers");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateRecentStickers::ID;
+
+object_ptr<Update> updateRecentStickers::fetch(TlBufferParser &p) {
+ return make_tl_object<updateRecentStickers>();
+}
+
+void updateRecentStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateRecentStickers");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateConfig::ID;
+
+object_ptr<Update> updateConfig::fetch(TlBufferParser &p) {
+ return make_tl_object<updateConfig>();
+}
+
+void updateConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateConfig");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updatePtsChanged::ID;
+
+object_ptr<Update> updatePtsChanged::fetch(TlBufferParser &p) {
+ return make_tl_object<updatePtsChanged>();
+}
+
+void updatePtsChanged::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePtsChanged");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChannelWebPage::ID;
+
+object_ptr<Update> updateChannelWebPage::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChannelWebPage>(p);
+}
+
+updateChannelWebPage::updateChannelWebPage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+ , webpage_(TlFetchObject<WebPage>::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateChannelWebPage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChannelWebPage");
+ s.store_field("channel_id", channel_id_);
+ s.store_object_field("webpage", static_cast<const BaseObject *>(webpage_.get()));
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+updateDialogPinned::updateDialogPinned()
+ : flags_()
+ , pinned_()
+ , folder_id_()
+ , peer_()
+{}
+
+const std::int32_t updateDialogPinned::ID;
+
+object_ptr<Update> updateDialogPinned::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateDialogPinned> res = make_tl_object<updateDialogPinned>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->pinned_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->folder_id_ = TlFetchInt::parse(p); }
+ res->peer_ = TlFetchObject<DialogPeer>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateDialogPinned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDialogPinned");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { s.store_field("folder_id", folder_id_); }
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+updatePinnedDialogs::updatePinnedDialogs()
+ : flags_()
+ , folder_id_()
+ , order_()
+{}
+
+const std::int32_t updatePinnedDialogs::ID;
+
+object_ptr<Update> updatePinnedDialogs::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updatePinnedDialogs> res = make_tl_object<updatePinnedDialogs>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->folder_id_ = TlFetchInt::parse(p); }
+ if (var0 & 1) { res->order_ = TlFetchBoxed<TlFetchVector<TlFetchObject<DialogPeer>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updatePinnedDialogs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePinnedDialogs");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { s.store_field("folder_id", folder_id_); }
+ if (var0 & 1) { { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateBotWebhookJSON::ID;
+
+object_ptr<Update> updateBotWebhookJSON::fetch(TlBufferParser &p) {
+ return make_tl_object<updateBotWebhookJSON>(p);
+}
+
+updateBotWebhookJSON::updateBotWebhookJSON(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : data_(TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p))
+#undef FAIL
+{}
+
+void updateBotWebhookJSON::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotWebhookJSON");
+ s.store_object_field("data", static_cast<const BaseObject *>(data_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateBotWebhookJSONQuery::ID;
+
+object_ptr<Update> updateBotWebhookJSONQuery::fetch(TlBufferParser &p) {
+ return make_tl_object<updateBotWebhookJSONQuery>(p);
+}
+
+updateBotWebhookJSONQuery::updateBotWebhookJSONQuery(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : query_id_(TlFetchLong::parse(p))
+ , data_(TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p))
+ , timeout_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateBotWebhookJSONQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotWebhookJSONQuery");
+ s.store_field("query_id", query_id_);
+ s.store_object_field("data", static_cast<const BaseObject *>(data_.get()));
+ s.store_field("timeout", timeout_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateBotShippingQuery::ID;
+
+object_ptr<Update> updateBotShippingQuery::fetch(TlBufferParser &p) {
+ return make_tl_object<updateBotShippingQuery>(p);
+}
+
+updateBotShippingQuery::updateBotShippingQuery(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : query_id_(TlFetchLong::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+ , payload_(TlFetchBytes<bytes>::parse(p))
+ , shipping_address_(TlFetchBoxed<TlFetchObject<postAddress>, 512535275>::parse(p))
+#undef FAIL
+{}
+
+void updateBotShippingQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotShippingQuery");
+ s.store_field("query_id", query_id_);
+ s.store_field("user_id", user_id_);
+ s.store_bytes_field("payload", payload_);
+ s.store_object_field("shipping_address", static_cast<const BaseObject *>(shipping_address_.get()));
+ s.store_class_end();
+ }
+}
+
+updateBotPrecheckoutQuery::updateBotPrecheckoutQuery()
+ : flags_()
+ , query_id_()
+ , user_id_()
+ , payload_()
+ , info_()
+ , shipping_option_id_()
+ , currency_()
+ , total_amount_()
+{}
+
+const std::int32_t updateBotPrecheckoutQuery::ID;
+
+object_ptr<Update> updateBotPrecheckoutQuery::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateBotPrecheckoutQuery> res = make_tl_object<updateBotPrecheckoutQuery>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->query_id_ = TlFetchLong::parse(p);
+ res->user_id_ = TlFetchLong::parse(p);
+ res->payload_ = TlFetchBytes<bytes>::parse(p);
+ if (var0 & 1) { res->info_ = TlFetchBoxed<TlFetchObject<paymentRequestedInfo>, -1868808300>::parse(p); }
+ if (var0 & 2) { res->shipping_option_id_ = TlFetchString<string>::parse(p); }
+ res->currency_ = TlFetchString<string>::parse(p);
+ res->total_amount_ = TlFetchLong::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateBotPrecheckoutQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotPrecheckoutQuery");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("query_id", query_id_);
+ s.store_field("user_id", user_id_);
+ s.store_bytes_field("payload", payload_);
+ if (var0 & 1) { s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); }
+ if (var0 & 2) { s.store_field("shipping_option_id", shipping_option_id_); }
+ s.store_field("currency", currency_);
+ s.store_field("total_amount", total_amount_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updatePhoneCall::ID;
+
+object_ptr<Update> updatePhoneCall::fetch(TlBufferParser &p) {
+ return make_tl_object<updatePhoneCall>(p);
+}
+
+updatePhoneCall::updatePhoneCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : phone_call_(TlFetchObject<PhoneCall>::parse(p))
+#undef FAIL
+{}
+
+void updatePhoneCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePhoneCall");
+ s.store_object_field("phone_call", static_cast<const BaseObject *>(phone_call_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateLangPackTooLong::ID;
+
+object_ptr<Update> updateLangPackTooLong::fetch(TlBufferParser &p) {
+ return make_tl_object<updateLangPackTooLong>(p);
+}
+
+updateLangPackTooLong::updateLangPackTooLong(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : lang_code_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void updateLangPackTooLong::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateLangPackTooLong");
+ s.store_field("lang_code", lang_code_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateLangPack::ID;
+
+object_ptr<Update> updateLangPack::fetch(TlBufferParser &p) {
+ return make_tl_object<updateLangPack>(p);
+}
+
+updateLangPack::updateLangPack(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : difference_(TlFetchBoxed<TlFetchObject<langPackDifference>, -209337866>::parse(p))
+#undef FAIL
+{}
+
+void updateLangPack::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateLangPack");
+ s.store_object_field("difference", static_cast<const BaseObject *>(difference_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateFavedStickers::ID;
+
+object_ptr<Update> updateFavedStickers::fetch(TlBufferParser &p) {
+ return make_tl_object<updateFavedStickers>();
+}
+
+void updateFavedStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateFavedStickers");
+ s.store_class_end();
+ }
+}
+
+updateChannelReadMessagesContents::updateChannelReadMessagesContents()
+ : flags_()
+ , channel_id_()
+ , top_msg_id_()
+ , messages_()
+{}
+
+const std::int32_t updateChannelReadMessagesContents::ID;
+
+object_ptr<Update> updateChannelReadMessagesContents::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateChannelReadMessagesContents> res = make_tl_object<updateChannelReadMessagesContents>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->channel_id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->top_msg_id_ = TlFetchInt::parse(p); }
+ res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateChannelReadMessagesContents::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChannelReadMessagesContents");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("channel_id", channel_id_);
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateContactsReset::ID;
+
+object_ptr<Update> updateContactsReset::fetch(TlBufferParser &p) {
+ return make_tl_object<updateContactsReset>();
+}
+
+void updateContactsReset::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateContactsReset");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChannelAvailableMessages::ID;
+
+object_ptr<Update> updateChannelAvailableMessages::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChannelAvailableMessages>(p);
+}
+
+updateChannelAvailableMessages::updateChannelAvailableMessages(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+ , available_min_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateChannelAvailableMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChannelAvailableMessages");
+ s.store_field("channel_id", channel_id_);
+ s.store_field("available_min_id", available_min_id_);
+ s.store_class_end();
+ }
+}
+
+updateDialogUnreadMark::updateDialogUnreadMark()
+ : flags_()
+ , unread_()
+ , peer_()
+{}
+
+const std::int32_t updateDialogUnreadMark::ID;
+
+object_ptr<Update> updateDialogUnreadMark::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateDialogUnreadMark> res = make_tl_object<updateDialogUnreadMark>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->unread_ = TlFetchTrue::parse(p); }
+ res->peer_ = TlFetchObject<DialogPeer>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateDialogUnreadMark::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDialogUnreadMark");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+updateMessagePoll::updateMessagePoll()
+ : flags_()
+ , poll_id_()
+ , poll_()
+ , results_()
+{}
+
+const std::int32_t updateMessagePoll::ID;
+
+object_ptr<Update> updateMessagePoll::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateMessagePoll> res = make_tl_object<updateMessagePoll>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->poll_id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->poll_ = TlFetchBoxed<TlFetchObject<poll>, -2032041631>::parse(p); }
+ res->results_ = TlFetchBoxed<TlFetchObject<pollResults>, -591909213>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateMessagePoll::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessagePoll");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("poll_id", poll_id_);
+ if (var0 & 1) { s.store_object_field("poll", static_cast<const BaseObject *>(poll_.get())); }
+ s.store_object_field("results", static_cast<const BaseObject *>(results_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChatDefaultBannedRights::ID;
+
+object_ptr<Update> updateChatDefaultBannedRights::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChatDefaultBannedRights>(p);
+}
+
+updateChatDefaultBannedRights::updateChatDefaultBannedRights(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , default_banned_rights_(TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p))
+ , version_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateChatDefaultBannedRights::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatDefaultBannedRights");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("default_banned_rights", static_cast<const BaseObject *>(default_banned_rights_.get()));
+ s.store_field("version", version_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateFolderPeers::ID;
+
+object_ptr<Update> updateFolderPeers::fetch(TlBufferParser &p) {
+ return make_tl_object<updateFolderPeers>(p);
+}
+
+updateFolderPeers::updateFolderPeers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : folder_peers_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<folderPeer>, -373643672>>, 481674261>::parse(p))
+ , pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateFolderPeers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateFolderPeers");
+ { s.store_vector_begin("folder_peers", folder_peers_.size()); for (const auto &_value : folder_peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updatePeerSettings::ID;
+
+object_ptr<Update> updatePeerSettings::fetch(TlBufferParser &p) {
+ return make_tl_object<updatePeerSettings>(p);
+}
+
+updatePeerSettings::updatePeerSettings(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , settings_(TlFetchBoxed<TlFetchObject<peerSettings>, -1525149427>::parse(p))
+#undef FAIL
+{}
+
+void updatePeerSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePeerSettings");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updatePeerLocated::ID;
+
+object_ptr<Update> updatePeerLocated::fetch(TlBufferParser &p) {
+ return make_tl_object<updatePeerLocated>(p);
+}
+
+updatePeerLocated::updatePeerLocated(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peers_(TlFetchBoxed<TlFetchVector<TlFetchObject<PeerLocated>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void updatePeerLocated::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePeerLocated");
+ { s.store_vector_begin("peers", peers_.size()); for (const auto &_value : peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateNewScheduledMessage::ID;
+
+object_ptr<Update> updateNewScheduledMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<updateNewScheduledMessage>(p);
+}
+
+updateNewScheduledMessage::updateNewScheduledMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchObject<Message>::parse(p))
+#undef FAIL
+{}
+
+void updateNewScheduledMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateNewScheduledMessage");
+ s.store_object_field("message", static_cast<const BaseObject *>(message_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateDeleteScheduledMessages::ID;
+
+object_ptr<Update> updateDeleteScheduledMessages::fetch(TlBufferParser &p) {
+ return make_tl_object<updateDeleteScheduledMessages>(p);
+}
+
+updateDeleteScheduledMessages::updateDeleteScheduledMessages(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , messages_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void updateDeleteScheduledMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDeleteScheduledMessages");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateTheme::ID;
+
+object_ptr<Update> updateTheme::fetch(TlBufferParser &p) {
+ return make_tl_object<updateTheme>(p);
+}
+
+updateTheme::updateTheme(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : theme_(TlFetchBoxed<TlFetchObject<theme>, -1609668650>::parse(p))
+#undef FAIL
+{}
+
+void updateTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateTheme");
+ s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateGeoLiveViewed::ID;
+
+object_ptr<Update> updateGeoLiveViewed::fetch(TlBufferParser &p) {
+ return make_tl_object<updateGeoLiveViewed>(p);
+}
+
+updateGeoLiveViewed::updateGeoLiveViewed(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , msg_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateGeoLiveViewed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateGeoLiveViewed");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateLoginToken::ID;
+
+object_ptr<Update> updateLoginToken::fetch(TlBufferParser &p) {
+ return make_tl_object<updateLoginToken>();
+}
+
+void updateLoginToken::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateLoginToken");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateMessagePollVote::ID;
+
+object_ptr<Update> updateMessagePollVote::fetch(TlBufferParser &p) {
+ return make_tl_object<updateMessagePollVote>(p);
+}
+
+updateMessagePollVote::updateMessagePollVote(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : poll_id_(TlFetchLong::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+ , options_(TlFetchBoxed<TlFetchVector<TlFetchBytes<bytes>>, 481674261>::parse(p))
+ , qts_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateMessagePollVote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessagePollVote");
+ s.store_field("poll_id", poll_id_);
+ s.store_field("user_id", user_id_);
+ { s.store_vector_begin("options", options_.size()); for (const auto &_value : options_) { s.store_bytes_field("", _value); } s.store_class_end(); }
+ s.store_field("qts", qts_);
+ s.store_class_end();
+ }
+}
+
+updateDialogFilter::updateDialogFilter()
+ : flags_()
+ , id_()
+ , filter_()
+{}
+
+const std::int32_t updateDialogFilter::ID;
+
+object_ptr<Update> updateDialogFilter::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateDialogFilter> res = make_tl_object<updateDialogFilter>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->id_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->filter_ = TlFetchObject<DialogFilter>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateDialogFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDialogFilter");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ if (var0 & 1) { s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateDialogFilterOrder::ID;
+
+object_ptr<Update> updateDialogFilterOrder::fetch(TlBufferParser &p) {
+ return make_tl_object<updateDialogFilterOrder>(p);
+}
+
+updateDialogFilterOrder::updateDialogFilterOrder(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : order_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void updateDialogFilterOrder::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDialogFilterOrder");
+ { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateDialogFilters::ID;
+
+object_ptr<Update> updateDialogFilters::fetch(TlBufferParser &p) {
+ return make_tl_object<updateDialogFilters>();
+}
+
+void updateDialogFilters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateDialogFilters");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updatePhoneCallSignalingData::ID;
+
+object_ptr<Update> updatePhoneCallSignalingData::fetch(TlBufferParser &p) {
+ return make_tl_object<updatePhoneCallSignalingData>(p);
+}
+
+updatePhoneCallSignalingData::updatePhoneCallSignalingData(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : phone_call_id_(TlFetchLong::parse(p))
+ , data_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void updatePhoneCallSignalingData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePhoneCallSignalingData");
+ s.store_field("phone_call_id", phone_call_id_);
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChannelMessageForwards::ID;
+
+object_ptr<Update> updateChannelMessageForwards::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChannelMessageForwards>(p);
+}
+
+updateChannelMessageForwards::updateChannelMessageForwards(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+ , id_(TlFetchInt::parse(p))
+ , forwards_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateChannelMessageForwards::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChannelMessageForwards");
+ s.store_field("channel_id", channel_id_);
+ s.store_field("id", id_);
+ s.store_field("forwards", forwards_);
+ s.store_class_end();
+ }
+}
+
+updateReadChannelDiscussionInbox::updateReadChannelDiscussionInbox()
+ : flags_()
+ , channel_id_()
+ , top_msg_id_()
+ , read_max_id_()
+ , broadcast_id_()
+ , broadcast_post_()
+{}
+
+const std::int32_t updateReadChannelDiscussionInbox::ID;
+
+object_ptr<Update> updateReadChannelDiscussionInbox::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateReadChannelDiscussionInbox> res = make_tl_object<updateReadChannelDiscussionInbox>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->channel_id_ = TlFetchLong::parse(p);
+ res->top_msg_id_ = TlFetchInt::parse(p);
+ res->read_max_id_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->broadcast_id_ = TlFetchLong::parse(p); }
+ if (var0 & 1) { res->broadcast_post_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateReadChannelDiscussionInbox::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateReadChannelDiscussionInbox");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("channel_id", channel_id_);
+ s.store_field("top_msg_id", top_msg_id_);
+ s.store_field("read_max_id", read_max_id_);
+ if (var0 & 1) { s.store_field("broadcast_id", broadcast_id_); }
+ if (var0 & 1) { s.store_field("broadcast_post", broadcast_post_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateReadChannelDiscussionOutbox::ID;
+
+object_ptr<Update> updateReadChannelDiscussionOutbox::fetch(TlBufferParser &p) {
+ return make_tl_object<updateReadChannelDiscussionOutbox>(p);
+}
+
+updateReadChannelDiscussionOutbox::updateReadChannelDiscussionOutbox(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channel_id_(TlFetchLong::parse(p))
+ , top_msg_id_(TlFetchInt::parse(p))
+ , read_max_id_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateReadChannelDiscussionOutbox::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateReadChannelDiscussionOutbox");
+ s.store_field("channel_id", channel_id_);
+ s.store_field("top_msg_id", top_msg_id_);
+ s.store_field("read_max_id", read_max_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updatePeerBlocked::ID;
+
+object_ptr<Update> updatePeerBlocked::fetch(TlBufferParser &p) {
+ return make_tl_object<updatePeerBlocked>(p);
+}
+
+updatePeerBlocked::updatePeerBlocked(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_id_(TlFetchObject<Peer>::parse(p))
+ , blocked_(TlFetchBool::parse(p))
+#undef FAIL
+{}
+
+void updatePeerBlocked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePeerBlocked");
+ s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get()));
+ s.store_field("blocked", blocked_);
+ s.store_class_end();
+ }
+}
+
+updateChannelUserTyping::updateChannelUserTyping()
+ : flags_()
+ , channel_id_()
+ , top_msg_id_()
+ , from_id_()
+ , action_()
+{}
+
+const std::int32_t updateChannelUserTyping::ID;
+
+object_ptr<Update> updateChannelUserTyping::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateChannelUserTyping> res = make_tl_object<updateChannelUserTyping>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->channel_id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->top_msg_id_ = TlFetchInt::parse(p); }
+ res->from_id_ = TlFetchObject<Peer>::parse(p);
+ res->action_ = TlFetchObject<SendMessageAction>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateChannelUserTyping::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChannelUserTyping");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("channel_id", channel_id_);
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get()));
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+updatePinnedMessages::updatePinnedMessages()
+ : flags_()
+ , pinned_()
+ , peer_()
+ , messages_()
+ , pts_()
+ , pts_count_()
+{}
+
+const std::int32_t updatePinnedMessages::ID;
+
+object_ptr<Update> updatePinnedMessages::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updatePinnedMessages> res = make_tl_object<updatePinnedMessages>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->pinned_ = TlFetchTrue::parse(p); }
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p);
+ res->pts_ = TlFetchInt::parse(p);
+ res->pts_count_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updatePinnedMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePinnedMessages");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+updatePinnedChannelMessages::updatePinnedChannelMessages()
+ : flags_()
+ , pinned_()
+ , channel_id_()
+ , messages_()
+ , pts_()
+ , pts_count_()
+{}
+
+const std::int32_t updatePinnedChannelMessages::ID;
+
+object_ptr<Update> updatePinnedChannelMessages::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updatePinnedChannelMessages> res = make_tl_object<updatePinnedChannelMessages>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->pinned_ = TlFetchTrue::parse(p); }
+ res->channel_id_ = TlFetchLong::parse(p);
+ res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p);
+ res->pts_ = TlFetchInt::parse(p);
+ res->pts_count_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updatePinnedChannelMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePinnedChannelMessages");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("channel_id", channel_id_);
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateChat::ID;
+
+object_ptr<Update> updateChat::fetch(TlBufferParser &p) {
+ return make_tl_object<updateChat>(p);
+}
+
+updateChat::updateChat(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void updateChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateGroupCallParticipants::ID;
+
+object_ptr<Update> updateGroupCallParticipants::fetch(TlBufferParser &p) {
+ return make_tl_object<updateGroupCallParticipants>(p);
+}
+
+updateGroupCallParticipants::updateGroupCallParticipants(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : call_(TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p))
+ , participants_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>>, 481674261>::parse(p))
+ , version_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateGroupCallParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateGroupCallParticipants");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("version", version_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateGroupCall::ID;
+
+object_ptr<Update> updateGroupCall::fetch(TlBufferParser &p) {
+ return make_tl_object<updateGroupCall>(p);
+}
+
+updateGroupCall::updateGroupCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chat_id_(TlFetchLong::parse(p))
+ , call_(TlFetchObject<GroupCall>::parse(p))
+#undef FAIL
+{}
+
+void updateGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateGroupCall");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_class_end();
+ }
+}
+
+updatePeerHistoryTTL::updatePeerHistoryTTL()
+ : flags_()
+ , peer_()
+ , ttl_period_()
+{}
+
+const std::int32_t updatePeerHistoryTTL::ID;
+
+object_ptr<Update> updatePeerHistoryTTL::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updatePeerHistoryTTL> res = make_tl_object<updatePeerHistoryTTL>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ if (var0 & 1) { res->ttl_period_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updatePeerHistoryTTL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePeerHistoryTTL");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("ttl_period", ttl_period_); }
+ s.store_class_end();
+ }
+}
+
+updateChatParticipant::updateChatParticipant()
+ : flags_()
+ , chat_id_()
+ , date_()
+ , actor_id_()
+ , user_id_()
+ , prev_participant_()
+ , new_participant_()
+ , invite_()
+ , qts_()
+{}
+
+const std::int32_t updateChatParticipant::ID;
+
+object_ptr<Update> updateChatParticipant::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateChatParticipant> res = make_tl_object<updateChatParticipant>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->chat_id_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->actor_id_ = TlFetchLong::parse(p);
+ res->user_id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->prev_participant_ = TlFetchObject<ChatParticipant>::parse(p); }
+ if (var0 & 2) { res->new_participant_ = TlFetchObject<ChatParticipant>::parse(p); }
+ if (var0 & 4) { res->invite_ = TlFetchObject<ExportedChatInvite>::parse(p); }
+ res->qts_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateChatParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChatParticipant");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("chat_id", chat_id_);
+ s.store_field("date", date_);
+ s.store_field("actor_id", actor_id_);
+ s.store_field("user_id", user_id_);
+ if (var0 & 1) { s.store_object_field("prev_participant", static_cast<const BaseObject *>(prev_participant_.get())); }
+ if (var0 & 2) { s.store_object_field("new_participant", static_cast<const BaseObject *>(new_participant_.get())); }
+ if (var0 & 4) { s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); }
+ s.store_field("qts", qts_);
+ s.store_class_end();
+ }
+}
+
+updateChannelParticipant::updateChannelParticipant()
+ : flags_()
+ , channel_id_()
+ , date_()
+ , actor_id_()
+ , user_id_()
+ , prev_participant_()
+ , new_participant_()
+ , invite_()
+ , qts_()
+{}
+
+const std::int32_t updateChannelParticipant::ID;
+
+object_ptr<Update> updateChannelParticipant::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateChannelParticipant> res = make_tl_object<updateChannelParticipant>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->channel_id_ = TlFetchLong::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ res->actor_id_ = TlFetchLong::parse(p);
+ res->user_id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->prev_participant_ = TlFetchObject<ChannelParticipant>::parse(p); }
+ if (var0 & 2) { res->new_participant_ = TlFetchObject<ChannelParticipant>::parse(p); }
+ if (var0 & 4) { res->invite_ = TlFetchObject<ExportedChatInvite>::parse(p); }
+ res->qts_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateChannelParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChannelParticipant");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("channel_id", channel_id_);
+ s.store_field("date", date_);
+ s.store_field("actor_id", actor_id_);
+ s.store_field("user_id", user_id_);
+ if (var0 & 1) { s.store_object_field("prev_participant", static_cast<const BaseObject *>(prev_participant_.get())); }
+ if (var0 & 2) { s.store_object_field("new_participant", static_cast<const BaseObject *>(new_participant_.get())); }
+ if (var0 & 4) { s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); }
+ s.store_field("qts", qts_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateBotStopped::ID;
+
+object_ptr<Update> updateBotStopped::fetch(TlBufferParser &p) {
+ return make_tl_object<updateBotStopped>(p);
+}
+
+updateBotStopped::updateBotStopped(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , stopped_(TlFetchBool::parse(p))
+ , qts_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateBotStopped::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotStopped");
+ s.store_field("user_id", user_id_);
+ s.store_field("date", date_);
+ s.store_field("stopped", stopped_);
+ s.store_field("qts", qts_);
+ s.store_class_end();
+ }
+}
+
+updateGroupCallConnection::updateGroupCallConnection()
+ : flags_()
+ , presentation_()
+ , params_()
+{}
+
+const std::int32_t updateGroupCallConnection::ID;
+
+object_ptr<Update> updateGroupCallConnection::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateGroupCallConnection> res = make_tl_object<updateGroupCallConnection>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->presentation_ = TlFetchTrue::parse(p); }
+ res->params_ = TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateGroupCallConnection::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateGroupCallConnection");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("params", static_cast<const BaseObject *>(params_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateBotCommands::ID;
+
+object_ptr<Update> updateBotCommands::fetch(TlBufferParser &p) {
+ return make_tl_object<updateBotCommands>(p);
+}
+
+updateBotCommands::updateBotCommands(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , bot_id_(TlFetchLong::parse(p))
+ , commands_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<botCommand>, -1032140601>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void updateBotCommands::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotCommands");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("bot_id", bot_id_);
+ { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updatePendingJoinRequests::ID;
+
+object_ptr<Update> updatePendingJoinRequests::fetch(TlBufferParser &p) {
+ return make_tl_object<updatePendingJoinRequests>(p);
+}
+
+updatePendingJoinRequests::updatePendingJoinRequests(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , requests_pending_(TlFetchInt::parse(p))
+ , recent_requesters_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void updatePendingJoinRequests::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatePendingJoinRequests");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("requests_pending", requests_pending_);
+ { s.store_vector_begin("recent_requesters", recent_requesters_.size()); for (const auto &_value : recent_requesters_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateBotChatInviteRequester::ID;
+
+object_ptr<Update> updateBotChatInviteRequester::fetch(TlBufferParser &p) {
+ return make_tl_object<updateBotChatInviteRequester>(p);
+}
+
+updateBotChatInviteRequester::updateBotChatInviteRequester(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , user_id_(TlFetchLong::parse(p))
+ , about_(TlFetchString<string>::parse(p))
+ , invite_(TlFetchObject<ExportedChatInvite>::parse(p))
+ , qts_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateBotChatInviteRequester::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotChatInviteRequester");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("date", date_);
+ s.store_field("user_id", user_id_);
+ s.store_field("about", about_);
+ s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get()));
+ s.store_field("qts", qts_);
+ s.store_class_end();
+ }
+}
+
+updateMessageReactions::updateMessageReactions()
+ : flags_()
+ , peer_()
+ , msg_id_()
+ , top_msg_id_()
+ , reactions_()
+{}
+
+const std::int32_t updateMessageReactions::ID;
+
+object_ptr<Update> updateMessageReactions::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateMessageReactions> res = make_tl_object<updateMessageReactions>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ res->msg_id_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->top_msg_id_ = TlFetchInt::parse(p); }
+ res->reactions_ = TlFetchBoxed<TlFetchObject<messageReactions>, 1328256121>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateMessageReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageReactions");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_object_field("reactions", static_cast<const BaseObject *>(reactions_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateAttachMenuBots::ID;
+
+object_ptr<Update> updateAttachMenuBots::fetch(TlBufferParser &p) {
+ return make_tl_object<updateAttachMenuBots>();
+}
+
+void updateAttachMenuBots::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateAttachMenuBots");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateWebViewResultSent::ID;
+
+object_ptr<Update> updateWebViewResultSent::fetch(TlBufferParser &p) {
+ return make_tl_object<updateWebViewResultSent>(p);
+}
+
+updateWebViewResultSent::updateWebViewResultSent(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : query_id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void updateWebViewResultSent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateWebViewResultSent");
+ s.store_field("query_id", query_id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateBotMenuButton::ID;
+
+object_ptr<Update> updateBotMenuButton::fetch(TlBufferParser &p) {
+ return make_tl_object<updateBotMenuButton>(p);
+}
+
+updateBotMenuButton::updateBotMenuButton(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : bot_id_(TlFetchLong::parse(p))
+ , button_(TlFetchObject<BotMenuButton>::parse(p))
+#undef FAIL
+{}
+
+void updateBotMenuButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateBotMenuButton");
+ s.store_field("bot_id", bot_id_);
+ s.store_object_field("button", static_cast<const BaseObject *>(button_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateSavedRingtones::ID;
+
+object_ptr<Update> updateSavedRingtones::fetch(TlBufferParser &p) {
+ return make_tl_object<updateSavedRingtones>();
+}
+
+void updateSavedRingtones::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateSavedRingtones");
+ s.store_class_end();
+ }
+}
+
+updateTranscribedAudio::updateTranscribedAudio()
+ : flags_()
+ , pending_()
+ , peer_()
+ , msg_id_()
+ , transcription_id_()
+ , text_()
+{}
+
+const std::int32_t updateTranscribedAudio::ID;
+
+object_ptr<Update> updateTranscribedAudio::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateTranscribedAudio> res = make_tl_object<updateTranscribedAudio>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->pending_ = TlFetchTrue::parse(p); }
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ res->msg_id_ = TlFetchInt::parse(p);
+ res->transcription_id_ = TlFetchLong::parse(p);
+ res->text_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateTranscribedAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateTranscribedAudio");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_field("transcription_id", transcription_id_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateReadFeaturedEmojiStickers::ID;
+
+object_ptr<Update> updateReadFeaturedEmojiStickers::fetch(TlBufferParser &p) {
+ return make_tl_object<updateReadFeaturedEmojiStickers>();
+}
+
+void updateReadFeaturedEmojiStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateReadFeaturedEmojiStickers");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateUserEmojiStatus::ID;
+
+object_ptr<Update> updateUserEmojiStatus::fetch(TlBufferParser &p) {
+ return make_tl_object<updateUserEmojiStatus>(p);
+}
+
+updateUserEmojiStatus::updateUserEmojiStatus(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : user_id_(TlFetchLong::parse(p))
+ , emoji_status_(TlFetchObject<EmojiStatus>::parse(p))
+#undef FAIL
+{}
+
+void updateUserEmojiStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateUserEmojiStatus");
+ s.store_field("user_id", user_id_);
+ s.store_object_field("emoji_status", static_cast<const BaseObject *>(emoji_status_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateRecentEmojiStatuses::ID;
+
+object_ptr<Update> updateRecentEmojiStatuses::fetch(TlBufferParser &p) {
+ return make_tl_object<updateRecentEmojiStatuses>();
+}
+
+void updateRecentEmojiStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateRecentEmojiStatuses");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateRecentReactions::ID;
+
+object_ptr<Update> updateRecentReactions::fetch(TlBufferParser &p) {
+ return make_tl_object<updateRecentReactions>();
+}
+
+void updateRecentReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateRecentReactions");
+ s.store_class_end();
+ }
+}
+
+updateMoveStickerSetToTop::updateMoveStickerSetToTop()
+ : flags_()
+ , masks_()
+ , emojis_()
+ , stickerset_()
+{}
+
+const std::int32_t updateMoveStickerSetToTop::ID;
+
+object_ptr<Update> updateMoveStickerSetToTop::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateMoveStickerSetToTop> res = make_tl_object<updateMoveStickerSetToTop>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->masks_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->emojis_ = TlFetchTrue::parse(p); }
+ res->stickerset_ = TlFetchLong::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateMoveStickerSetToTop::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMoveStickerSetToTop");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("stickerset", stickerset_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateMessageExtendedMedia::ID;
+
+object_ptr<Update> updateMessageExtendedMedia::fetch(TlBufferParser &p) {
+ return make_tl_object<updateMessageExtendedMedia>(p);
+}
+
+updateMessageExtendedMedia::updateMessageExtendedMedia(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , msg_id_(TlFetchInt::parse(p))
+ , extended_media_(TlFetchObject<MessageExtendedMedia>::parse(p))
+#undef FAIL
+{}
+
+void updateMessageExtendedMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateMessageExtendedMedia");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_object_field("extended_media", static_cast<const BaseObject *>(extended_media_.get()));
+ s.store_class_end();
+ }
+}
+
+updateChannelPinnedTopic::updateChannelPinnedTopic()
+ : flags_()
+ , channel_id_()
+ , topic_id_()
+{}
+
+const std::int32_t updateChannelPinnedTopic::ID;
+
+object_ptr<Update> updateChannelPinnedTopic::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateChannelPinnedTopic> res = make_tl_object<updateChannelPinnedTopic>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->channel_id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->topic_id_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateChannelPinnedTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateChannelPinnedTopic");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("channel_id", channel_id_);
+ if (var0 & 1) { s.store_field("topic_id", topic_id_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<Updates> Updates::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case updatesTooLong::ID:
+ return updatesTooLong::fetch(p);
+ case updateShortMessage::ID:
+ return updateShortMessage::fetch(p);
+ case updateShortChatMessage::ID:
+ return updateShortChatMessage::fetch(p);
+ case updateShort::ID:
+ return updateShort::fetch(p);
+ case updatesCombined::ID:
+ return updatesCombined::fetch(p);
+ case updates::ID:
+ return updates::fetch(p);
+ case updateShortSentMessage::ID:
+ return updateShortSentMessage::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t updatesTooLong::ID;
+
+object_ptr<Updates> updatesTooLong::fetch(TlBufferParser &p) {
+ return make_tl_object<updatesTooLong>();
+}
+
+void updatesTooLong::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatesTooLong");
+ s.store_class_end();
+ }
+}
+
+updateShortMessage::updateShortMessage()
+ : flags_()
+ , out_()
+ , mentioned_()
+ , media_unread_()
+ , silent_()
+ , id_()
+ , user_id_()
+ , message_()
+ , pts_()
+ , pts_count_()
+ , date_()
+ , fwd_from_()
+ , via_bot_id_()
+ , reply_to_()
+ , entities_()
+ , ttl_period_()
+{}
+
+const std::int32_t updateShortMessage::ID;
+
+object_ptr<Updates> updateShortMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateShortMessage> res = make_tl_object<updateShortMessage>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->out_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->mentioned_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->media_unread_ = TlFetchTrue::parse(p); }
+ if (var0 & 8192) { res->silent_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ res->user_id_ = TlFetchLong::parse(p);
+ res->message_ = TlFetchString<string>::parse(p);
+ res->pts_ = TlFetchInt::parse(p);
+ res->pts_count_ = TlFetchInt::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ if (var0 & 4) { res->fwd_from_ = TlFetchBoxed<TlFetchObject<messageFwdHeader>, 1601666510>::parse(p); }
+ if (var0 & 2048) { res->via_bot_id_ = TlFetchLong::parse(p); }
+ if (var0 & 8) { res->reply_to_ = TlFetchBoxed<TlFetchObject<messageReplyHeader>, -1495959709>::parse(p); }
+ if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (var0 & 33554432) { res->ttl_period_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateShortMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateShortMessage");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("user_id", user_id_);
+ s.store_field("message", message_);
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_field("date", date_);
+ if (var0 & 4) { s.store_object_field("fwd_from", static_cast<const BaseObject *>(fwd_from_.get())); }
+ if (var0 & 2048) { s.store_field("via_bot_id", via_bot_id_); }
+ if (var0 & 8) { s.store_object_field("reply_to", static_cast<const BaseObject *>(reply_to_.get())); }
+ if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 33554432) { s.store_field("ttl_period", ttl_period_); }
+ s.store_class_end();
+ }
+}
+
+updateShortChatMessage::updateShortChatMessage()
+ : flags_()
+ , out_()
+ , mentioned_()
+ , media_unread_()
+ , silent_()
+ , id_()
+ , from_id_()
+ , chat_id_()
+ , message_()
+ , pts_()
+ , pts_count_()
+ , date_()
+ , fwd_from_()
+ , via_bot_id_()
+ , reply_to_()
+ , entities_()
+ , ttl_period_()
+{}
+
+const std::int32_t updateShortChatMessage::ID;
+
+object_ptr<Updates> updateShortChatMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateShortChatMessage> res = make_tl_object<updateShortChatMessage>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->out_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->mentioned_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->media_unread_ = TlFetchTrue::parse(p); }
+ if (var0 & 8192) { res->silent_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ res->from_id_ = TlFetchLong::parse(p);
+ res->chat_id_ = TlFetchLong::parse(p);
+ res->message_ = TlFetchString<string>::parse(p);
+ res->pts_ = TlFetchInt::parse(p);
+ res->pts_count_ = TlFetchInt::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ if (var0 & 4) { res->fwd_from_ = TlFetchBoxed<TlFetchObject<messageFwdHeader>, 1601666510>::parse(p); }
+ if (var0 & 2048) { res->via_bot_id_ = TlFetchLong::parse(p); }
+ if (var0 & 8) { res->reply_to_ = TlFetchBoxed<TlFetchObject<messageReplyHeader>, -1495959709>::parse(p); }
+ if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (var0 & 33554432) { res->ttl_period_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateShortChatMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateShortChatMessage");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("from_id", from_id_);
+ s.store_field("chat_id", chat_id_);
+ s.store_field("message", message_);
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_field("date", date_);
+ if (var0 & 4) { s.store_object_field("fwd_from", static_cast<const BaseObject *>(fwd_from_.get())); }
+ if (var0 & 2048) { s.store_field("via_bot_id", via_bot_id_); }
+ if (var0 & 8) { s.store_object_field("reply_to", static_cast<const BaseObject *>(reply_to_.get())); }
+ if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 33554432) { s.store_field("ttl_period", ttl_period_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updateShort::ID;
+
+object_ptr<Updates> updateShort::fetch(TlBufferParser &p) {
+ return make_tl_object<updateShort>(p);
+}
+
+updateShort::updateShort(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : update_(TlFetchObject<Update>::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updateShort::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateShort");
+ s.store_object_field("update", static_cast<const BaseObject *>(update_.get()));
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updatesCombined::ID;
+
+object_ptr<Updates> updatesCombined::fetch(TlBufferParser &p) {
+ return make_tl_object<updatesCombined>(p);
+}
+
+updatesCombined::updatesCombined(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : updates_(TlFetchBoxed<TlFetchVector<TlFetchObject<Update>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , seq_start_(TlFetchInt::parse(p))
+ , seq_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updatesCombined::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updatesCombined");
+ { s.store_vector_begin("updates", updates_.size()); for (const auto &_value : updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("date", date_);
+ s.store_field("seq_start", seq_start_);
+ s.store_field("seq", seq_);
+ s.store_class_end();
+ }
+}
+
+updates::updates()
+ : updates_()
+ , users_()
+ , chats_()
+ , date_()
+ , seq_()
+{}
+
+const std::int32_t updates::ID;
+
+object_ptr<Updates> updates::fetch(TlBufferParser &p) {
+ return make_tl_object<updates>(p);
+}
+
+updates::updates(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : updates_(TlFetchBoxed<TlFetchVector<TlFetchObject<Update>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , seq_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updates::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates");
+ { s.store_vector_begin("updates", updates_.size()); for (const auto &_value : updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("date", date_);
+ s.store_field("seq", seq_);
+ s.store_class_end();
+ }
+}
+
+updateShortSentMessage::updateShortSentMessage()
+ : flags_()
+ , out_()
+ , id_()
+ , pts_()
+ , pts_count_()
+ , date_()
+ , media_()
+ , entities_()
+ , ttl_period_()
+{}
+
+const std::int32_t updateShortSentMessage::ID;
+
+object_ptr<Updates> updateShortSentMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updateShortSentMessage> res = make_tl_object<updateShortSentMessage>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->out_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ res->pts_ = TlFetchInt::parse(p);
+ res->pts_count_ = TlFetchInt::parse(p);
+ res->date_ = TlFetchInt::parse(p);
+ if (var0 & 512) { res->media_ = TlFetchObject<MessageMedia>::parse(p); }
+ if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (var0 & 33554432) { res->ttl_period_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updateShortSentMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updateShortSentMessage");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_field("date", date_);
+ if (var0 & 512) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); }
+ if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 33554432) { s.store_field("ttl_period", ttl_period_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<UrlAuthResult> UrlAuthResult::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case urlAuthResultRequest::ID:
+ return urlAuthResultRequest::fetch(p);
+ case urlAuthResultAccepted::ID:
+ return urlAuthResultAccepted::fetch(p);
+ case urlAuthResultDefault::ID:
+ return urlAuthResultDefault::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+urlAuthResultRequest::urlAuthResultRequest()
+ : flags_()
+ , request_write_access_()
+ , bot_()
+ , domain_()
+{}
+
+const std::int32_t urlAuthResultRequest::ID;
+
+object_ptr<UrlAuthResult> urlAuthResultRequest::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<urlAuthResultRequest> res = make_tl_object<urlAuthResultRequest>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->request_write_access_ = TlFetchTrue::parse(p); }
+ res->bot_ = TlFetchObject<User>::parse(p);
+ res->domain_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void urlAuthResultRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "urlAuthResultRequest");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ s.store_field("domain", domain_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t urlAuthResultAccepted::ID;
+
+object_ptr<UrlAuthResult> urlAuthResultAccepted::fetch(TlBufferParser &p) {
+ return make_tl_object<urlAuthResultAccepted>(p);
+}
+
+urlAuthResultAccepted::urlAuthResultAccepted(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void urlAuthResultAccepted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "urlAuthResultAccepted");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t urlAuthResultDefault::ID;
+
+object_ptr<UrlAuthResult> urlAuthResultDefault::fetch(TlBufferParser &p) {
+ return make_tl_object<urlAuthResultDefault>();
+}
+
+void urlAuthResultDefault::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "urlAuthResultDefault");
+ s.store_class_end();
+ }
+}
+
+object_ptr<User> User::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case userEmpty::ID:
+ return userEmpty::fetch(p);
+ case user::ID:
+ return user::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t userEmpty::ID;
+
+object_ptr<User> userEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<userEmpty>(p);
+}
+
+userEmpty::userEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void userEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userEmpty");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+user::user()
+ : flags_()
+ , self_()
+ , contact_()
+ , mutual_contact_()
+ , deleted_()
+ , bot_()
+ , bot_chat_history_()
+ , bot_nochats_()
+ , verified_()
+ , restricted_()
+ , min_()
+ , bot_inline_geo_()
+ , support_()
+ , scam_()
+ , apply_min_photo_()
+ , fake_()
+ , bot_attach_menu_()
+ , premium_()
+ , attach_menu_enabled_()
+ , flags2_()
+ , id_()
+ , access_hash_()
+ , first_name_()
+ , last_name_()
+ , username_()
+ , phone_()
+ , photo_()
+ , status_()
+ , bot_info_version_()
+ , restriction_reason_()
+ , bot_inline_placeholder_()
+ , lang_code_()
+ , emoji_status_()
+ , usernames_()
+{}
+
+user::user(int32 flags_, bool self_, bool contact_, bool mutual_contact_, bool deleted_, bool bot_, bool bot_chat_history_, bool bot_nochats_, bool verified_, bool restricted_, bool min_, bool bot_inline_geo_, bool support_, bool scam_, bool apply_min_photo_, bool fake_, bool bot_attach_menu_, bool premium_, bool attach_menu_enabled_, int32 flags2_, int64 id_, int64 access_hash_, string const &first_name_, string const &last_name_, string const &username_, string const &phone_, object_ptr<UserProfilePhoto> &&photo_, object_ptr<UserStatus> &&status_, int32 bot_info_version_, array<object_ptr<restrictionReason>> &&restriction_reason_, string const &bot_inline_placeholder_, string const &lang_code_, object_ptr<EmojiStatus> &&emoji_status_, array<object_ptr<username>> &&usernames_)
+ : flags_(flags_)
+ , self_(self_)
+ , contact_(contact_)
+ , mutual_contact_(mutual_contact_)
+ , deleted_(deleted_)
+ , bot_(bot_)
+ , bot_chat_history_(bot_chat_history_)
+ , bot_nochats_(bot_nochats_)
+ , verified_(verified_)
+ , restricted_(restricted_)
+ , min_(min_)
+ , bot_inline_geo_(bot_inline_geo_)
+ , support_(support_)
+ , scam_(scam_)
+ , apply_min_photo_(apply_min_photo_)
+ , fake_(fake_)
+ , bot_attach_menu_(bot_attach_menu_)
+ , premium_(premium_)
+ , attach_menu_enabled_(attach_menu_enabled_)
+ , flags2_(flags2_)
+ , id_(id_)
+ , access_hash_(access_hash_)
+ , first_name_(first_name_)
+ , last_name_(last_name_)
+ , username_(username_)
+ , phone_(phone_)
+ , photo_(std::move(photo_))
+ , status_(std::move(status_))
+ , bot_info_version_(bot_info_version_)
+ , restriction_reason_(std::move(restriction_reason_))
+ , bot_inline_placeholder_(bot_inline_placeholder_)
+ , lang_code_(lang_code_)
+ , emoji_status_(std::move(emoji_status_))
+ , usernames_(std::move(usernames_))
+{}
+
+const std::int32_t user::ID;
+
+object_ptr<User> user::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<user> res = make_tl_object<user>();
+ int32 var0;
+ int32 var1;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1024) { res->self_ = TlFetchTrue::parse(p); }
+ if (var0 & 2048) { res->contact_ = TlFetchTrue::parse(p); }
+ if (var0 & 4096) { res->mutual_contact_ = TlFetchTrue::parse(p); }
+ if (var0 & 8192) { res->deleted_ = TlFetchTrue::parse(p); }
+ if (var0 & 16384) { res->bot_ = TlFetchTrue::parse(p); }
+ if (var0 & 32768) { res->bot_chat_history_ = TlFetchTrue::parse(p); }
+ if (var0 & 65536) { res->bot_nochats_ = TlFetchTrue::parse(p); }
+ if (var0 & 131072) { res->verified_ = TlFetchTrue::parse(p); }
+ if (var0 & 262144) { res->restricted_ = TlFetchTrue::parse(p); }
+ if (var0 & 1048576) { res->min_ = TlFetchTrue::parse(p); }
+ if (var0 & 2097152) { res->bot_inline_geo_ = TlFetchTrue::parse(p); }
+ if (var0 & 8388608) { res->support_ = TlFetchTrue::parse(p); }
+ if (var0 & 16777216) { res->scam_ = TlFetchTrue::parse(p); }
+ if (var0 & 33554432) { res->apply_min_photo_ = TlFetchTrue::parse(p); }
+ if (var0 & 67108864) { res->fake_ = TlFetchTrue::parse(p); }
+ if (var0 & 134217728) { res->bot_attach_menu_ = TlFetchTrue::parse(p); }
+ if (var0 & 268435456) { res->premium_ = TlFetchTrue::parse(p); }
+ if (var0 & 536870912) { res->attach_menu_enabled_ = TlFetchTrue::parse(p); }
+ if ((var1 = res->flags2_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->id_ = TlFetchLong::parse(p);
+ if (var0 & 1) { res->access_hash_ = TlFetchLong::parse(p); }
+ if (var0 & 2) { res->first_name_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->last_name_ = TlFetchString<string>::parse(p); }
+ if (var0 & 8) { res->username_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->phone_ = TlFetchString<string>::parse(p); }
+ if (var0 & 32) { res->photo_ = TlFetchObject<UserProfilePhoto>::parse(p); }
+ if (var0 & 64) { res->status_ = TlFetchObject<UserStatus>::parse(p); }
+ if (var0 & 16384) { res->bot_info_version_ = TlFetchInt::parse(p); }
+ if (var0 & 262144) { res->restriction_reason_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<restrictionReason>, -797791052>>, 481674261>::parse(p); }
+ if (var0 & 524288) { res->bot_inline_placeholder_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4194304) { res->lang_code_ = TlFetchString<string>::parse(p); }
+ if (var0 & 1073741824) { res->emoji_status_ = TlFetchObject<EmojiStatus>::parse(p); }
+ if (var1 & 1) { res->usernames_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<username>, -1274595769>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void user::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "user");
+ int32 var0;
+ int32 var1;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("flags2", (var1 = flags2_));
+ s.store_field("id", id_);
+ if (var0 & 1) { s.store_field("access_hash", access_hash_); }
+ if (var0 & 2) { s.store_field("first_name", first_name_); }
+ if (var0 & 4) { s.store_field("last_name", last_name_); }
+ if (var0 & 8) { s.store_field("username", username_); }
+ if (var0 & 16) { s.store_field("phone", phone_); }
+ if (var0 & 32) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ if (var0 & 64) { s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); }
+ if (var0 & 16384) { s.store_field("bot_info_version", bot_info_version_); }
+ if (var0 & 262144) { { s.store_vector_begin("restriction_reason", restriction_reason_.size()); for (const auto &_value : restriction_reason_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 524288) { s.store_field("bot_inline_placeholder", bot_inline_placeholder_); }
+ if (var0 & 4194304) { s.store_field("lang_code", lang_code_); }
+ if (var0 & 1073741824) { s.store_object_field("emoji_status", static_cast<const BaseObject *>(emoji_status_.get())); }
+ if (var1 & 1) { { s.store_vector_begin("usernames", usernames_.size()); for (const auto &_value : usernames_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+userFull::userFull()
+ : flags_()
+ , blocked_()
+ , phone_calls_available_()
+ , phone_calls_private_()
+ , can_pin_message_()
+ , has_scheduled_()
+ , video_calls_available_()
+ , voice_messages_forbidden_()
+ , id_()
+ , about_()
+ , settings_()
+ , profile_photo_()
+ , notify_settings_()
+ , bot_info_()
+ , pinned_msg_id_()
+ , common_chats_count_()
+ , folder_id_()
+ , ttl_period_()
+ , theme_emoticon_()
+ , private_forward_name_()
+ , bot_group_admin_rights_()
+ , bot_broadcast_admin_rights_()
+ , premium_gifts_()
+{}
+
+const std::int32_t userFull::ID;
+
+object_ptr<userFull> userFull::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<userFull> res = make_tl_object<userFull>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->blocked_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->phone_calls_available_ = TlFetchTrue::parse(p); }
+ if (var0 & 32) { res->phone_calls_private_ = TlFetchTrue::parse(p); }
+ if (var0 & 128) { res->can_pin_message_ = TlFetchTrue::parse(p); }
+ if (var0 & 4096) { res->has_scheduled_ = TlFetchTrue::parse(p); }
+ if (var0 & 8192) { res->video_calls_available_ = TlFetchTrue::parse(p); }
+ if (var0 & 1048576) { res->voice_messages_forbidden_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchLong::parse(p);
+ if (var0 & 2) { res->about_ = TlFetchString<string>::parse(p); }
+ res->settings_ = TlFetchBoxed<TlFetchObject<peerSettings>, -1525149427>::parse(p);
+ if (var0 & 4) { res->profile_photo_ = TlFetchObject<Photo>::parse(p); }
+ res->notify_settings_ = TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p);
+ if (var0 & 8) { res->bot_info_ = TlFetchBoxed<TlFetchObject<botInfo>, -1892676777>::parse(p); }
+ if (var0 & 64) { res->pinned_msg_id_ = TlFetchInt::parse(p); }
+ res->common_chats_count_ = TlFetchInt::parse(p);
+ if (var0 & 2048) { res->folder_id_ = TlFetchInt::parse(p); }
+ if (var0 & 16384) { res->ttl_period_ = TlFetchInt::parse(p); }
+ if (var0 & 32768) { res->theme_emoticon_ = TlFetchString<string>::parse(p); }
+ if (var0 & 65536) { res->private_forward_name_ = TlFetchString<string>::parse(p); }
+ if (var0 & 131072) { res->bot_group_admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p); }
+ if (var0 & 262144) { res->bot_broadcast_admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p); }
+ if (var0 & 524288) { res->premium_gifts_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<premiumGiftOption>, 1958953753>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void userFull::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userFull");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ if (var0 & 2) { s.store_field("about", about_); }
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ if (var0 & 4) { s.store_object_field("profile_photo", static_cast<const BaseObject *>(profile_photo_.get())); }
+ s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get()));
+ if (var0 & 8) { s.store_object_field("bot_info", static_cast<const BaseObject *>(bot_info_.get())); }
+ if (var0 & 64) { s.store_field("pinned_msg_id", pinned_msg_id_); }
+ s.store_field("common_chats_count", common_chats_count_);
+ if (var0 & 2048) { s.store_field("folder_id", folder_id_); }
+ if (var0 & 16384) { s.store_field("ttl_period", ttl_period_); }
+ if (var0 & 32768) { s.store_field("theme_emoticon", theme_emoticon_); }
+ if (var0 & 65536) { s.store_field("private_forward_name", private_forward_name_); }
+ if (var0 & 131072) { s.store_object_field("bot_group_admin_rights", static_cast<const BaseObject *>(bot_group_admin_rights_.get())); }
+ if (var0 & 262144) { s.store_object_field("bot_broadcast_admin_rights", static_cast<const BaseObject *>(bot_broadcast_admin_rights_.get())); }
+ if (var0 & 524288) { { s.store_vector_begin("premium_gifts", premium_gifts_.size()); for (const auto &_value : premium_gifts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+object_ptr<UserProfilePhoto> UserProfilePhoto::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case userProfilePhotoEmpty::ID:
+ return userProfilePhotoEmpty::fetch(p);
+ case userProfilePhoto::ID:
+ return userProfilePhoto::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t userProfilePhotoEmpty::ID;
+
+object_ptr<UserProfilePhoto> userProfilePhotoEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<userProfilePhotoEmpty>();
+}
+
+void userProfilePhotoEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userProfilePhotoEmpty");
+ s.store_class_end();
+ }
+}
+
+userProfilePhoto::userProfilePhoto()
+ : flags_()
+ , has_video_()
+ , photo_id_()
+ , stripped_thumb_()
+ , dc_id_()
+{}
+
+userProfilePhoto::userProfilePhoto(int32 flags_, bool has_video_, int64 photo_id_, bytes &&stripped_thumb_, int32 dc_id_)
+ : flags_(flags_)
+ , has_video_(has_video_)
+ , photo_id_(photo_id_)
+ , stripped_thumb_(std::move(stripped_thumb_))
+ , dc_id_(dc_id_)
+{}
+
+const std::int32_t userProfilePhoto::ID;
+
+object_ptr<UserProfilePhoto> userProfilePhoto::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<userProfilePhoto> res = make_tl_object<userProfilePhoto>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->has_video_ = TlFetchTrue::parse(p); }
+ res->photo_id_ = TlFetchLong::parse(p);
+ if (var0 & 2) { res->stripped_thumb_ = TlFetchBytes<bytes>::parse(p); }
+ res->dc_id_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void userProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userProfilePhoto");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("photo_id", photo_id_);
+ if (var0 & 2) { s.store_bytes_field("stripped_thumb", stripped_thumb_); }
+ s.store_field("dc_id", dc_id_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<UserStatus> UserStatus::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case userStatusEmpty::ID:
+ return userStatusEmpty::fetch(p);
+ case userStatusOnline::ID:
+ return userStatusOnline::fetch(p);
+ case userStatusOffline::ID:
+ return userStatusOffline::fetch(p);
+ case userStatusRecently::ID:
+ return userStatusRecently::fetch(p);
+ case userStatusLastWeek::ID:
+ return userStatusLastWeek::fetch(p);
+ case userStatusLastMonth::ID:
+ return userStatusLastMonth::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t userStatusEmpty::ID;
+
+object_ptr<UserStatus> userStatusEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<userStatusEmpty>();
+}
+
+void userStatusEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusEmpty");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t userStatusOnline::ID;
+
+object_ptr<UserStatus> userStatusOnline::fetch(TlBufferParser &p) {
+ return make_tl_object<userStatusOnline>(p);
+}
+
+userStatusOnline::userStatusOnline(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : expires_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void userStatusOnline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusOnline");
+ s.store_field("expires", expires_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t userStatusOffline::ID;
+
+object_ptr<UserStatus> userStatusOffline::fetch(TlBufferParser &p) {
+ return make_tl_object<userStatusOffline>(p);
+}
+
+userStatusOffline::userStatusOffline(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : was_online_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void userStatusOffline::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusOffline");
+ s.store_field("was_online", was_online_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t userStatusRecently::ID;
+
+object_ptr<UserStatus> userStatusRecently::fetch(TlBufferParser &p) {
+ return make_tl_object<userStatusRecently>();
+}
+
+void userStatusRecently::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusRecently");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t userStatusLastWeek::ID;
+
+object_ptr<UserStatus> userStatusLastWeek::fetch(TlBufferParser &p) {
+ return make_tl_object<userStatusLastWeek>();
+}
+
+void userStatusLastWeek::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusLastWeek");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t userStatusLastMonth::ID;
+
+object_ptr<UserStatus> userStatusLastMonth::fetch(TlBufferParser &p) {
+ return make_tl_object<userStatusLastMonth>();
+}
+
+void userStatusLastMonth::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "userStatusLastMonth");
+ s.store_class_end();
+ }
+}
+
+username::username()
+ : flags_()
+ , editable_()
+ , active_()
+ , username_()
+{}
+
+const std::int32_t username::ID;
+
+object_ptr<username> username::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<username> res = make_tl_object<username>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->editable_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->active_ = TlFetchTrue::parse(p); }
+ res->username_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void username::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "username");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+videoSize::videoSize()
+ : flags_()
+ , type_()
+ , w_()
+ , h_()
+ , size_()
+ , video_start_ts_()
+{}
+
+const std::int32_t videoSize::ID;
+
+object_ptr<videoSize> videoSize::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<videoSize> res = make_tl_object<videoSize>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->type_ = TlFetchString<string>::parse(p);
+ res->w_ = TlFetchInt::parse(p);
+ res->h_ = TlFetchInt::parse(p);
+ res->size_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->video_start_ts_ = TlFetchDouble::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void videoSize::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "videoSize");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("type", type_);
+ s.store_field("w", w_);
+ s.store_field("h", h_);
+ s.store_field("size", size_);
+ if (var0 & 1) { s.store_field("video_start_ts", video_start_ts_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<WallPaper> WallPaper::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case wallPaper::ID:
+ return wallPaper::fetch(p);
+ case wallPaperNoFile::ID:
+ return wallPaperNoFile::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+wallPaper::wallPaper()
+ : id_()
+ , flags_()
+ , creator_()
+ , default_()
+ , pattern_()
+ , dark_()
+ , access_hash_()
+ , slug_()
+ , document_()
+ , settings_()
+{}
+
+const std::int32_t wallPaper::ID;
+
+object_ptr<WallPaper> wallPaper::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<wallPaper> res = make_tl_object<wallPaper>();
+ int32 var0;
+ res->id_ = TlFetchLong::parse(p);
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->creator_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->default_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->pattern_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->dark_ = TlFetchTrue::parse(p); }
+ res->access_hash_ = TlFetchLong::parse(p);
+ res->slug_ = TlFetchString<string>::parse(p);
+ res->document_ = TlFetchObject<Document>::parse(p);
+ if (var0 & 4) { res->settings_ = TlFetchBoxed<TlFetchObject<wallPaperSettings>, 499236004>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void wallPaper::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "wallPaper");
+ int32 var0;
+ s.store_field("id", id_);
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("access_hash", access_hash_);
+ s.store_field("slug", slug_);
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ if (var0 & 4) { s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); }
+ s.store_class_end();
+ }
+}
+
+wallPaperNoFile::wallPaperNoFile()
+ : id_()
+ , flags_()
+ , default_()
+ , dark_()
+ , settings_()
+{}
+
+const std::int32_t wallPaperNoFile::ID;
+
+object_ptr<WallPaper> wallPaperNoFile::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<wallPaperNoFile> res = make_tl_object<wallPaperNoFile>();
+ int32 var0;
+ res->id_ = TlFetchLong::parse(p);
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->default_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->dark_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->settings_ = TlFetchBoxed<TlFetchObject<wallPaperSettings>, 499236004>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void wallPaperNoFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "wallPaperNoFile");
+ int32 var0;
+ s.store_field("id", id_);
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 4) { s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); }
+ s.store_class_end();
+ }
+}
+
+wallPaperSettings::wallPaperSettings()
+ : flags_()
+ , blur_()
+ , motion_()
+ , background_color_()
+ , second_background_color_()
+ , third_background_color_()
+ , fourth_background_color_()
+ , intensity_()
+ , rotation_()
+{}
+
+wallPaperSettings::wallPaperSettings(int32 flags_, bool blur_, bool motion_, int32 background_color_, int32 second_background_color_, int32 third_background_color_, int32 fourth_background_color_, int32 intensity_, int32 rotation_)
+ : flags_(flags_)
+ , blur_(blur_)
+ , motion_(motion_)
+ , background_color_(background_color_)
+ , second_background_color_(second_background_color_)
+ , third_background_color_(third_background_color_)
+ , fourth_background_color_(fourth_background_color_)
+ , intensity_(intensity_)
+ , rotation_(rotation_)
+{}
+
+const std::int32_t wallPaperSettings::ID;
+
+object_ptr<wallPaperSettings> wallPaperSettings::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<wallPaperSettings> res = make_tl_object<wallPaperSettings>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->blur_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->motion_ = TlFetchTrue::parse(p); }
+ if (var0 & 1) { res->background_color_ = TlFetchInt::parse(p); }
+ if (var0 & 16) { res->second_background_color_ = TlFetchInt::parse(p); }
+ if (var0 & 32) { res->third_background_color_ = TlFetchInt::parse(p); }
+ if (var0 & 64) { res->fourth_background_color_ = TlFetchInt::parse(p); }
+ if (var0 & 8) { res->intensity_ = TlFetchInt::parse(p); }
+ if (var0 & 16) { res->rotation_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void wallPaperSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBinary::store(background_color_, s); }
+ if (var0 & 16) { TlStoreBinary::store(second_background_color_, s); }
+ if (var0 & 32) { TlStoreBinary::store(third_background_color_, s); }
+ if (var0 & 64) { TlStoreBinary::store(fourth_background_color_, s); }
+ if (var0 & 8) { TlStoreBinary::store(intensity_, s); }
+ if (var0 & 16) { TlStoreBinary::store(rotation_, s); }
+}
+
+void wallPaperSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBinary::store(background_color_, s); }
+ if (var0 & 16) { TlStoreBinary::store(second_background_color_, s); }
+ if (var0 & 32) { TlStoreBinary::store(third_background_color_, s); }
+ if (var0 & 64) { TlStoreBinary::store(fourth_background_color_, s); }
+ if (var0 & 8) { TlStoreBinary::store(intensity_, s); }
+ if (var0 & 16) { TlStoreBinary::store(rotation_, s); }
+}
+
+void wallPaperSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "wallPaperSettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("background_color", background_color_); }
+ if (var0 & 16) { s.store_field("second_background_color", second_background_color_); }
+ if (var0 & 32) { s.store_field("third_background_color", third_background_color_); }
+ if (var0 & 64) { s.store_field("fourth_background_color", fourth_background_color_); }
+ if (var0 & 8) { s.store_field("intensity", intensity_); }
+ if (var0 & 16) { s.store_field("rotation", rotation_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t webAuthorization::ID;
+
+object_ptr<webAuthorization> webAuthorization::fetch(TlBufferParser &p) {
+ return make_tl_object<webAuthorization>(p);
+}
+
+webAuthorization::webAuthorization(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , bot_id_(TlFetchLong::parse(p))
+ , domain_(TlFetchString<string>::parse(p))
+ , browser_(TlFetchString<string>::parse(p))
+ , platform_(TlFetchString<string>::parse(p))
+ , date_created_(TlFetchInt::parse(p))
+ , date_active_(TlFetchInt::parse(p))
+ , ip_(TlFetchString<string>::parse(p))
+ , region_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void webAuthorization::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webAuthorization");
+ s.store_field("hash", hash_);
+ s.store_field("bot_id", bot_id_);
+ s.store_field("domain", domain_);
+ s.store_field("browser", browser_);
+ s.store_field("platform", platform_);
+ s.store_field("date_created", date_created_);
+ s.store_field("date_active", date_active_);
+ s.store_field("ip", ip_);
+ s.store_field("region", region_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<WebDocument> WebDocument::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case webDocument::ID:
+ return webDocument::fetch(p);
+ case webDocumentNoProxy::ID:
+ return webDocumentNoProxy::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t webDocument::ID;
+
+object_ptr<WebDocument> webDocument::fetch(TlBufferParser &p) {
+ return make_tl_object<webDocument>(p);
+}
+
+webDocument::webDocument(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+ , access_hash_(TlFetchLong::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , mime_type_(TlFetchString<string>::parse(p))
+ , attributes_(TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void webDocument::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webDocument");
+ s.store_field("url", url_);
+ s.store_field("access_hash", access_hash_);
+ s.store_field("size", size_);
+ s.store_field("mime_type", mime_type_);
+ { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t webDocumentNoProxy::ID;
+
+object_ptr<WebDocument> webDocumentNoProxy::fetch(TlBufferParser &p) {
+ return make_tl_object<webDocumentNoProxy>(p);
+}
+
+webDocumentNoProxy::webDocumentNoProxy(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+ , size_(TlFetchInt::parse(p))
+ , mime_type_(TlFetchString<string>::parse(p))
+ , attributes_(TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void webDocumentNoProxy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webDocumentNoProxy");
+ s.store_field("url", url_);
+ s.store_field("size", size_);
+ s.store_field("mime_type", mime_type_);
+ { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<WebPage> WebPage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case webPageEmpty::ID:
+ return webPageEmpty::fetch(p);
+ case webPagePending::ID:
+ return webPagePending::fetch(p);
+ case webPage::ID:
+ return webPage::fetch(p);
+ case webPageNotModified::ID:
+ return webPageNotModified::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t webPageEmpty::ID;
+
+object_ptr<WebPage> webPageEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<webPageEmpty>(p);
+}
+
+webPageEmpty::webPageEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void webPageEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webPageEmpty");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t webPagePending::ID;
+
+object_ptr<WebPage> webPagePending::fetch(TlBufferParser &p) {
+ return make_tl_object<webPagePending>(p);
+}
+
+webPagePending::webPagePending(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void webPagePending::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webPagePending");
+ s.store_field("id", id_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+webPage::webPage()
+ : flags_()
+ , id_()
+ , url_()
+ , display_url_()
+ , hash_()
+ , type_()
+ , site_name_()
+ , title_()
+ , description_()
+ , photo_()
+ , embed_url_()
+ , embed_type_()
+ , embed_width_()
+ , embed_height_()
+ , duration_()
+ , author_()
+ , document_()
+ , cached_page_()
+ , attributes_()
+{}
+
+const std::int32_t webPage::ID;
+
+object_ptr<WebPage> webPage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<webPage> res = make_tl_object<webPage>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->id_ = TlFetchLong::parse(p);
+ res->url_ = TlFetchString<string>::parse(p);
+ res->display_url_ = TlFetchString<string>::parse(p);
+ res->hash_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->type_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2) { res->site_name_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->title_ = TlFetchString<string>::parse(p); }
+ if (var0 & 8) { res->description_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->photo_ = TlFetchObject<Photo>::parse(p); }
+ if (var0 & 32) { res->embed_url_ = TlFetchString<string>::parse(p); }
+ if (var0 & 32) { res->embed_type_ = TlFetchString<string>::parse(p); }
+ if (var0 & 64) { res->embed_width_ = TlFetchInt::parse(p); }
+ if (var0 & 64) { res->embed_height_ = TlFetchInt::parse(p); }
+ if (var0 & 128) { res->duration_ = TlFetchInt::parse(p); }
+ if (var0 & 256) { res->author_ = TlFetchString<string>::parse(p); }
+ if (var0 & 512) { res->document_ = TlFetchObject<Document>::parse(p); }
+ if (var0 & 1024) { res->cached_page_ = TlFetchBoxed<TlFetchObject<page>, -1738178803>::parse(p); }
+ if (var0 & 4096) { res->attributes_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<webPageAttributeTheme>, 1421174295>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void webPage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webPage");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("url", url_);
+ s.store_field("display_url", display_url_);
+ s.store_field("hash", hash_);
+ if (var0 & 1) { s.store_field("type", type_); }
+ if (var0 & 2) { s.store_field("site_name", site_name_); }
+ if (var0 & 4) { s.store_field("title", title_); }
+ if (var0 & 8) { s.store_field("description", description_); }
+ if (var0 & 16) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ if (var0 & 32) { s.store_field("embed_url", embed_url_); }
+ if (var0 & 32) { s.store_field("embed_type", embed_type_); }
+ if (var0 & 64) { s.store_field("embed_width", embed_width_); }
+ if (var0 & 64) { s.store_field("embed_height", embed_height_); }
+ if (var0 & 128) { s.store_field("duration", duration_); }
+ if (var0 & 256) { s.store_field("author", author_); }
+ if (var0 & 512) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); }
+ if (var0 & 1024) { s.store_object_field("cached_page", static_cast<const BaseObject *>(cached_page_.get())); }
+ if (var0 & 4096) { { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+webPageNotModified::webPageNotModified()
+ : flags_()
+ , cached_page_views_()
+{}
+
+const std::int32_t webPageNotModified::ID;
+
+object_ptr<WebPage> webPageNotModified::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<webPageNotModified> res = make_tl_object<webPageNotModified>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->cached_page_views_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void webPageNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webPageNotModified");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("cached_page_views", cached_page_views_); }
+ s.store_class_end();
+ }
+}
+
+webPageAttributeTheme::webPageAttributeTheme()
+ : flags_()
+ , documents_()
+ , settings_()
+{}
+
+const std::int32_t webPageAttributeTheme::ID;
+
+object_ptr<webPageAttributeTheme> webPageAttributeTheme::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<webPageAttributeTheme> res = make_tl_object<webPageAttributeTheme>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->documents_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p); }
+ if (var0 & 2) { res->settings_ = TlFetchBoxed<TlFetchObject<themeSettings>, -94849324>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void webPageAttributeTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webPageAttributeTheme");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { { s.store_vector_begin("documents", documents_.size()); for (const auto &_value : documents_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 2) { s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); }
+ s.store_class_end();
+ }
+}
+
+webViewMessageSent::webViewMessageSent()
+ : flags_()
+ , msg_id_()
+{}
+
+const std::int32_t webViewMessageSent::ID;
+
+object_ptr<webViewMessageSent> webViewMessageSent::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<webViewMessageSent> res = make_tl_object<webViewMessageSent>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->msg_id_ = TlFetchObject<InputBotInlineMessageID>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void webViewMessageSent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webViewMessageSent");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("msg_id", static_cast<const BaseObject *>(msg_id_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t webViewResultUrl::ID;
+
+object_ptr<webViewResultUrl> webViewResultUrl::fetch(TlBufferParser &p) {
+ return make_tl_object<webViewResultUrl>(p);
+}
+
+webViewResultUrl::webViewResultUrl(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : query_id_(TlFetchLong::parse(p))
+ , url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void webViewResultUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "webViewResultUrl");
+ s.store_field("query_id", query_id_);
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+account_authorizationForm::account_authorizationForm()
+ : flags_()
+ , required_types_()
+ , values_()
+ , errors_()
+ , users_()
+ , privacy_policy_url_()
+{}
+
+const std::int32_t account_authorizationForm::ID;
+
+object_ptr<account_authorizationForm> account_authorizationForm::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<account_authorizationForm> res = make_tl_object<account_authorizationForm>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->required_types_ = TlFetchBoxed<TlFetchVector<TlFetchObject<SecureRequiredType>>, 481674261>::parse(p);
+ res->values_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<secureValue>, 411017418>>, 481674261>::parse(p);
+ res->errors_ = TlFetchBoxed<TlFetchVector<TlFetchObject<SecureValueError>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (var0 & 1) { res->privacy_policy_url_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void account_authorizationForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.authorizationForm");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ { s.store_vector_begin("required_types", required_types_.size()); for (const auto &_value : required_types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("values", values_.size()); for (const auto &_value : values_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("errors", errors_.size()); for (const auto &_value : errors_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 1) { s.store_field("privacy_policy_url", privacy_policy_url_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_authorizations::ID;
+
+object_ptr<account_authorizations> account_authorizations::fetch(TlBufferParser &p) {
+ return make_tl_object<account_authorizations>(p);
+}
+
+account_authorizations::account_authorizations(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : authorization_ttl_days_(TlFetchInt::parse(p))
+ , authorizations_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<authorization>, -1392388579>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void account_authorizations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.authorizations");
+ s.store_field("authorization_ttl_days", authorization_ttl_days_);
+ { s.store_vector_begin("authorizations", authorizations_.size()); for (const auto &_value : authorizations_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_autoDownloadSettings::ID;
+
+object_ptr<account_autoDownloadSettings> account_autoDownloadSettings::fetch(TlBufferParser &p) {
+ return make_tl_object<account_autoDownloadSettings>(p);
+}
+
+account_autoDownloadSettings::account_autoDownloadSettings(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : low_(TlFetchBoxed<TlFetchObject<autoDownloadSettings>, -1896171181>::parse(p))
+ , medium_(TlFetchBoxed<TlFetchObject<autoDownloadSettings>, -1896171181>::parse(p))
+ , high_(TlFetchBoxed<TlFetchObject<autoDownloadSettings>, -1896171181>::parse(p))
+#undef FAIL
+{}
+
+void account_autoDownloadSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.autoDownloadSettings");
+ s.store_object_field("low", static_cast<const BaseObject *>(low_.get()));
+ s.store_object_field("medium", static_cast<const BaseObject *>(medium_.get()));
+ s.store_object_field("high", static_cast<const BaseObject *>(high_.get()));
+ s.store_class_end();
+ }
+}
+
+account_contentSettings::account_contentSettings()
+ : flags_()
+ , sensitive_enabled_()
+ , sensitive_can_change_()
+{}
+
+const std::int32_t account_contentSettings::ID;
+
+object_ptr<account_contentSettings> account_contentSettings::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<account_contentSettings> res = make_tl_object<account_contentSettings>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->sensitive_enabled_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->sensitive_can_change_ = TlFetchTrue::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void account_contentSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.contentSettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+object_ptr<account_EmailVerified> account_EmailVerified::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case account_emailVerified::ID:
+ return account_emailVerified::fetch(p);
+ case account_emailVerifiedLogin::ID:
+ return account_emailVerifiedLogin::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t account_emailVerified::ID;
+
+object_ptr<account_EmailVerified> account_emailVerified::fetch(TlBufferParser &p) {
+ return make_tl_object<account_emailVerified>(p);
+}
+
+account_emailVerified::account_emailVerified(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : email_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void account_emailVerified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.emailVerified");
+ s.store_field("email", email_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_emailVerifiedLogin::ID;
+
+object_ptr<account_EmailVerified> account_emailVerifiedLogin::fetch(TlBufferParser &p) {
+ return make_tl_object<account_emailVerifiedLogin>(p);
+}
+
+account_emailVerifiedLogin::account_emailVerifiedLogin(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : email_(TlFetchString<string>::parse(p))
+ , sent_code_(TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p))
+#undef FAIL
+{}
+
+void account_emailVerifiedLogin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.emailVerifiedLogin");
+ s.store_field("email", email_);
+ s.store_object_field("sent_code", static_cast<const BaseObject *>(sent_code_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<account_EmojiStatuses> account_EmojiStatuses::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case account_emojiStatusesNotModified::ID:
+ return account_emojiStatusesNotModified::fetch(p);
+ case account_emojiStatuses::ID:
+ return account_emojiStatuses::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t account_emojiStatusesNotModified::ID;
+
+object_ptr<account_EmojiStatuses> account_emojiStatusesNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<account_emojiStatusesNotModified>();
+}
+
+void account_emojiStatusesNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.emojiStatusesNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_emojiStatuses::ID;
+
+object_ptr<account_EmojiStatuses> account_emojiStatuses::fetch(TlBufferParser &p) {
+ return make_tl_object<account_emojiStatuses>(p);
+}
+
+account_emojiStatuses::account_emojiStatuses(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , statuses_(TlFetchBoxed<TlFetchVector<TlFetchObject<EmojiStatus>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void account_emojiStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.emojiStatuses");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("statuses", statuses_.size()); for (const auto &_value : statuses_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+account_password::account_password()
+ : flags_()
+ , has_recovery_()
+ , has_secure_values_()
+ , has_password_()
+ , current_algo_()
+ , srp_B_()
+ , srp_id_()
+ , hint_()
+ , email_unconfirmed_pattern_()
+ , new_algo_()
+ , new_secure_algo_()
+ , secure_random_()
+ , pending_reset_date_()
+ , login_email_pattern_()
+{}
+
+const std::int32_t account_password::ID;
+
+object_ptr<account_password> account_password::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<account_password> res = make_tl_object<account_password>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->has_recovery_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->has_secure_values_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->has_password_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->current_algo_ = TlFetchObject<PasswordKdfAlgo>::parse(p); }
+ if (var0 & 4) { res->srp_B_ = TlFetchBytes<bytes>::parse(p); }
+ if (var0 & 4) { res->srp_id_ = TlFetchLong::parse(p); }
+ if (var0 & 8) { res->hint_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->email_unconfirmed_pattern_ = TlFetchString<string>::parse(p); }
+ res->new_algo_ = TlFetchObject<PasswordKdfAlgo>::parse(p);
+ res->new_secure_algo_ = TlFetchObject<SecurePasswordKdfAlgo>::parse(p);
+ res->secure_random_ = TlFetchBytes<bytes>::parse(p);
+ if (var0 & 32) { res->pending_reset_date_ = TlFetchInt::parse(p); }
+ if (var0 & 64) { res->login_email_pattern_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void account_password::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.password");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 4) { s.store_object_field("current_algo", static_cast<const BaseObject *>(current_algo_.get())); }
+ if (var0 & 4) { s.store_bytes_field("srp_B", srp_B_); }
+ if (var0 & 4) { s.store_field("srp_id", srp_id_); }
+ if (var0 & 8) { s.store_field("hint", hint_); }
+ if (var0 & 16) { s.store_field("email_unconfirmed_pattern", email_unconfirmed_pattern_); }
+ s.store_object_field("new_algo", static_cast<const BaseObject *>(new_algo_.get()));
+ s.store_object_field("new_secure_algo", static_cast<const BaseObject *>(new_secure_algo_.get()));
+ s.store_bytes_field("secure_random", secure_random_);
+ if (var0 & 32) { s.store_field("pending_reset_date", pending_reset_date_); }
+ if (var0 & 64) { s.store_field("login_email_pattern", login_email_pattern_); }
+ s.store_class_end();
+ }
+}
+
+account_passwordInputSettings::account_passwordInputSettings(int32 flags_, object_ptr<PasswordKdfAlgo> &&new_algo_, bytes &&new_password_hash_, string const &hint_, string const &email_, object_ptr<secureSecretSettings> &&new_secure_settings_)
+ : flags_(flags_)
+ , new_algo_(std::move(new_algo_))
+ , new_password_hash_(std::move(new_password_hash_))
+ , hint_(hint_)
+ , email_(email_)
+ , new_secure_settings_(std::move(new_secure_settings_))
+{}
+
+const std::int32_t account_passwordInputSettings::ID;
+
+void account_passwordInputSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(new_algo_, s); }
+ if (var0 & 1) { TlStoreString::store(new_password_hash_, s); }
+ if (var0 & 1) { TlStoreString::store(hint_, s); }
+ if (var0 & 2) { TlStoreString::store(email_, s); }
+ if (var0 & 4) { TlStoreBoxed<TlStoreObject, 354925740>::store(new_secure_settings_, s); }
+}
+
+void account_passwordInputSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ int32 var0;
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(new_algo_, s); }
+ if (var0 & 1) { TlStoreString::store(new_password_hash_, s); }
+ if (var0 & 1) { TlStoreString::store(hint_, s); }
+ if (var0 & 2) { TlStoreString::store(email_, s); }
+ if (var0 & 4) { TlStoreBoxed<TlStoreObject, 354925740>::store(new_secure_settings_, s); }
+}
+
+void account_passwordInputSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.passwordInputSettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("new_algo", static_cast<const BaseObject *>(new_algo_.get())); }
+ if (var0 & 1) { s.store_bytes_field("new_password_hash", new_password_hash_); }
+ if (var0 & 1) { s.store_field("hint", hint_); }
+ if (var0 & 2) { s.store_field("email", email_); }
+ if (var0 & 4) { s.store_object_field("new_secure_settings", static_cast<const BaseObject *>(new_secure_settings_.get())); }
+ s.store_class_end();
+ }
+}
+
+account_passwordSettings::account_passwordSettings()
+ : flags_()
+ , email_()
+ , secure_settings_()
+{}
+
+const std::int32_t account_passwordSettings::ID;
+
+object_ptr<account_passwordSettings> account_passwordSettings::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<account_passwordSettings> res = make_tl_object<account_passwordSettings>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->email_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2) { res->secure_settings_ = TlFetchBoxed<TlFetchObject<secureSecretSettings>, 354925740>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void account_passwordSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.passwordSettings");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("email", email_); }
+ if (var0 & 2) { s.store_object_field("secure_settings", static_cast<const BaseObject *>(secure_settings_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_privacyRules::ID;
+
+object_ptr<account_privacyRules> account_privacyRules::fetch(TlBufferParser &p) {
+ return make_tl_object<account_privacyRules>(p);
+}
+
+account_privacyRules::account_privacyRules(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : rules_(TlFetchBoxed<TlFetchVector<TlFetchObject<PrivacyRule>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void account_privacyRules::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.privacyRules");
+ { s.store_vector_begin("rules", rules_.size()); for (const auto &_value : rules_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<account_ResetPasswordResult> account_ResetPasswordResult::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case account_resetPasswordFailedWait::ID:
+ return account_resetPasswordFailedWait::fetch(p);
+ case account_resetPasswordRequestedWait::ID:
+ return account_resetPasswordRequestedWait::fetch(p);
+ case account_resetPasswordOk::ID:
+ return account_resetPasswordOk::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t account_resetPasswordFailedWait::ID;
+
+object_ptr<account_ResetPasswordResult> account_resetPasswordFailedWait::fetch(TlBufferParser &p) {
+ return make_tl_object<account_resetPasswordFailedWait>(p);
+}
+
+account_resetPasswordFailedWait::account_resetPasswordFailedWait(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : retry_date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void account_resetPasswordFailedWait::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.resetPasswordFailedWait");
+ s.store_field("retry_date", retry_date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_resetPasswordRequestedWait::ID;
+
+object_ptr<account_ResetPasswordResult> account_resetPasswordRequestedWait::fetch(TlBufferParser &p) {
+ return make_tl_object<account_resetPasswordRequestedWait>(p);
+}
+
+account_resetPasswordRequestedWait::account_resetPasswordRequestedWait(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : until_date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void account_resetPasswordRequestedWait::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.resetPasswordRequestedWait");
+ s.store_field("until_date", until_date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_resetPasswordOk::ID;
+
+object_ptr<account_ResetPasswordResult> account_resetPasswordOk::fetch(TlBufferParser &p) {
+ return make_tl_object<account_resetPasswordOk>();
+}
+
+void account_resetPasswordOk::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.resetPasswordOk");
+ s.store_class_end();
+ }
+}
+
+object_ptr<account_SavedRingtone> account_SavedRingtone::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case account_savedRingtone::ID:
+ return account_savedRingtone::fetch(p);
+ case account_savedRingtoneConverted::ID:
+ return account_savedRingtoneConverted::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t account_savedRingtone::ID;
+
+object_ptr<account_SavedRingtone> account_savedRingtone::fetch(TlBufferParser &p) {
+ return make_tl_object<account_savedRingtone>();
+}
+
+void account_savedRingtone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.savedRingtone");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_savedRingtoneConverted::ID;
+
+object_ptr<account_SavedRingtone> account_savedRingtoneConverted::fetch(TlBufferParser &p) {
+ return make_tl_object<account_savedRingtoneConverted>(p);
+}
+
+account_savedRingtoneConverted::account_savedRingtoneConverted(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : document_(TlFetchObject<Document>::parse(p))
+#undef FAIL
+{}
+
+void account_savedRingtoneConverted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.savedRingtoneConverted");
+ s.store_object_field("document", static_cast<const BaseObject *>(document_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<account_SavedRingtones> account_SavedRingtones::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case account_savedRingtonesNotModified::ID:
+ return account_savedRingtonesNotModified::fetch(p);
+ case account_savedRingtones::ID:
+ return account_savedRingtones::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t account_savedRingtonesNotModified::ID;
+
+object_ptr<account_SavedRingtones> account_savedRingtonesNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<account_savedRingtonesNotModified>();
+}
+
+void account_savedRingtonesNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.savedRingtonesNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_savedRingtones::ID;
+
+object_ptr<account_SavedRingtones> account_savedRingtones::fetch(TlBufferParser &p) {
+ return make_tl_object<account_savedRingtones>(p);
+}
+
+account_savedRingtones::account_savedRingtones(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , ringtones_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void account_savedRingtones::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.savedRingtones");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("ringtones", ringtones_.size()); for (const auto &_value : ringtones_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_sentEmailCode::ID;
+
+object_ptr<account_sentEmailCode> account_sentEmailCode::fetch(TlBufferParser &p) {
+ return make_tl_object<account_sentEmailCode>(p);
+}
+
+account_sentEmailCode::account_sentEmailCode(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : email_pattern_(TlFetchString<string>::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void account_sentEmailCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.sentEmailCode");
+ s.store_field("email_pattern", email_pattern_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_takeout::ID;
+
+object_ptr<account_takeout> account_takeout::fetch(TlBufferParser &p) {
+ return make_tl_object<account_takeout>(p);
+}
+
+account_takeout::account_takeout(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void account_takeout::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.takeout");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<account_Themes> account_Themes::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case account_themesNotModified::ID:
+ return account_themesNotModified::fetch(p);
+ case account_themes::ID:
+ return account_themes::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t account_themesNotModified::ID;
+
+object_ptr<account_Themes> account_themesNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<account_themesNotModified>();
+}
+
+void account_themesNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.themesNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_themes::ID;
+
+object_ptr<account_Themes> account_themes::fetch(TlBufferParser &p) {
+ return make_tl_object<account_themes>(p);
+}
+
+account_themes::account_themes(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , themes_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<theme>, -1609668650>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void account_themes::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.themes");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("themes", themes_.size()); for (const auto &_value : themes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_tmpPassword::ID;
+
+object_ptr<account_tmpPassword> account_tmpPassword::fetch(TlBufferParser &p) {
+ return make_tl_object<account_tmpPassword>(p);
+}
+
+account_tmpPassword::account_tmpPassword(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : tmp_password_(TlFetchBytes<bytes>::parse(p))
+ , valid_until_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void account_tmpPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.tmpPassword");
+ s.store_bytes_field("tmp_password", tmp_password_);
+ s.store_field("valid_until", valid_until_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<account_WallPapers> account_WallPapers::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case account_wallPapersNotModified::ID:
+ return account_wallPapersNotModified::fetch(p);
+ case account_wallPapers::ID:
+ return account_wallPapers::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t account_wallPapersNotModified::ID;
+
+object_ptr<account_WallPapers> account_wallPapersNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<account_wallPapersNotModified>();
+}
+
+void account_wallPapersNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.wallPapersNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_wallPapers::ID;
+
+object_ptr<account_WallPapers> account_wallPapers::fetch(TlBufferParser &p) {
+ return make_tl_object<account_wallPapers>(p);
+}
+
+account_wallPapers::account_wallPapers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , wallpapers_(TlFetchBoxed<TlFetchVector<TlFetchObject<WallPaper>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void account_wallPapers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.wallPapers");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("wallpapers", wallpapers_.size()); for (const auto &_value : wallpapers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t account_webAuthorizations::ID;
+
+object_ptr<account_webAuthorizations> account_webAuthorizations::fetch(TlBufferParser &p) {
+ return make_tl_object<account_webAuthorizations>(p);
+}
+
+account_webAuthorizations::account_webAuthorizations(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : authorizations_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<webAuthorization>, -1493633966>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void account_webAuthorizations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.webAuthorizations");
+ { s.store_vector_begin("authorizations", authorizations_.size()); for (const auto &_value : authorizations_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<auth_Authorization> auth_Authorization::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case auth_authorization::ID:
+ return auth_authorization::fetch(p);
+ case auth_authorizationSignUpRequired::ID:
+ return auth_authorizationSignUpRequired::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+auth_authorization::auth_authorization()
+ : flags_()
+ , setup_password_required_()
+ , otherwise_relogin_days_()
+ , tmp_sessions_()
+ , user_()
+{}
+
+const std::int32_t auth_authorization::ID;
+
+object_ptr<auth_Authorization> auth_authorization::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<auth_authorization> res = make_tl_object<auth_authorization>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->setup_password_required_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->otherwise_relogin_days_ = TlFetchInt::parse(p); }
+ if (var0 & 1) { res->tmp_sessions_ = TlFetchInt::parse(p); }
+ res->user_ = TlFetchObject<User>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void auth_authorization::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.authorization");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { s.store_field("otherwise_relogin_days", otherwise_relogin_days_); }
+ if (var0 & 1) { s.store_field("tmp_sessions", tmp_sessions_); }
+ s.store_object_field("user", static_cast<const BaseObject *>(user_.get()));
+ s.store_class_end();
+ }
+}
+
+auth_authorizationSignUpRequired::auth_authorizationSignUpRequired()
+ : flags_()
+ , terms_of_service_()
+{}
+
+const std::int32_t auth_authorizationSignUpRequired::ID;
+
+object_ptr<auth_Authorization> auth_authorizationSignUpRequired::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<auth_authorizationSignUpRequired> res = make_tl_object<auth_authorizationSignUpRequired>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->terms_of_service_ = TlFetchBoxed<TlFetchObject<help_termsOfService>, 2013922064>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void auth_authorizationSignUpRequired::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.authorizationSignUpRequired");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("terms_of_service", static_cast<const BaseObject *>(terms_of_service_.get())); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<auth_CodeType> auth_CodeType::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case auth_codeTypeSms::ID:
+ return auth_codeTypeSms::fetch(p);
+ case auth_codeTypeCall::ID:
+ return auth_codeTypeCall::fetch(p);
+ case auth_codeTypeFlashCall::ID:
+ return auth_codeTypeFlashCall::fetch(p);
+ case auth_codeTypeMissedCall::ID:
+ return auth_codeTypeMissedCall::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t auth_codeTypeSms::ID;
+
+object_ptr<auth_CodeType> auth_codeTypeSms::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_codeTypeSms>();
+}
+
+void auth_codeTypeSms::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.codeTypeSms");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_codeTypeCall::ID;
+
+object_ptr<auth_CodeType> auth_codeTypeCall::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_codeTypeCall>();
+}
+
+void auth_codeTypeCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.codeTypeCall");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_codeTypeFlashCall::ID;
+
+object_ptr<auth_CodeType> auth_codeTypeFlashCall::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_codeTypeFlashCall>();
+}
+
+void auth_codeTypeFlashCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.codeTypeFlashCall");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_codeTypeMissedCall::ID;
+
+object_ptr<auth_CodeType> auth_codeTypeMissedCall::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_codeTypeMissedCall>();
+}
+
+void auth_codeTypeMissedCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.codeTypeMissedCall");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_exportedAuthorization::ID;
+
+object_ptr<auth_exportedAuthorization> auth_exportedAuthorization::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_exportedAuthorization>(p);
+}
+
+auth_exportedAuthorization::auth_exportedAuthorization(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+ , bytes_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void auth_exportedAuthorization::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.exportedAuthorization");
+ s.store_field("id", id_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+auth_loggedOut::auth_loggedOut()
+ : flags_()
+ , future_auth_token_()
+{}
+
+const std::int32_t auth_loggedOut::ID;
+
+object_ptr<auth_loggedOut> auth_loggedOut::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<auth_loggedOut> res = make_tl_object<auth_loggedOut>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->future_auth_token_ = TlFetchBytes<bytes>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void auth_loggedOut::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.loggedOut");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_bytes_field("future_auth_token", future_auth_token_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<auth_LoginToken> auth_LoginToken::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case auth_loginToken::ID:
+ return auth_loginToken::fetch(p);
+ case auth_loginTokenMigrateTo::ID:
+ return auth_loginTokenMigrateTo::fetch(p);
+ case auth_loginTokenSuccess::ID:
+ return auth_loginTokenSuccess::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t auth_loginToken::ID;
+
+object_ptr<auth_LoginToken> auth_loginToken::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_loginToken>(p);
+}
+
+auth_loginToken::auth_loginToken(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : expires_(TlFetchInt::parse(p))
+ , token_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void auth_loginToken::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.loginToken");
+ s.store_field("expires", expires_);
+ s.store_bytes_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_loginTokenMigrateTo::ID;
+
+object_ptr<auth_LoginToken> auth_loginTokenMigrateTo::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_loginTokenMigrateTo>(p);
+}
+
+auth_loginTokenMigrateTo::auth_loginTokenMigrateTo(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : dc_id_(TlFetchInt::parse(p))
+ , token_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void auth_loginTokenMigrateTo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.loginTokenMigrateTo");
+ s.store_field("dc_id", dc_id_);
+ s.store_bytes_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_loginTokenSuccess::ID;
+
+object_ptr<auth_LoginToken> auth_loginTokenSuccess::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_loginTokenSuccess>(p);
+}
+
+auth_loginTokenSuccess::auth_loginTokenSuccess(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : authorization_(TlFetchObject<auth_Authorization>::parse(p))
+#undef FAIL
+{}
+
+void auth_loginTokenSuccess::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.loginTokenSuccess");
+ s.store_object_field("authorization", static_cast<const BaseObject *>(authorization_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_passwordRecovery::ID;
+
+object_ptr<auth_passwordRecovery> auth_passwordRecovery::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_passwordRecovery>(p);
+}
+
+auth_passwordRecovery::auth_passwordRecovery(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : email_pattern_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void auth_passwordRecovery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.passwordRecovery");
+ s.store_field("email_pattern", email_pattern_);
+ s.store_class_end();
+ }
+}
+
+auth_sentCode::auth_sentCode()
+ : flags_()
+ , type_()
+ , phone_code_hash_()
+ , next_type_()
+ , timeout_()
+{}
+
+const std::int32_t auth_sentCode::ID;
+
+object_ptr<auth_sentCode> auth_sentCode::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<auth_sentCode> res = make_tl_object<auth_sentCode>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->type_ = TlFetchObject<auth_SentCodeType>::parse(p);
+ res->phone_code_hash_ = TlFetchString<string>::parse(p);
+ if (var0 & 2) { res->next_type_ = TlFetchObject<auth_CodeType>::parse(p); }
+ if (var0 & 4) { res->timeout_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void auth_sentCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.sentCode");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("phone_code_hash", phone_code_hash_);
+ if (var0 & 2) { s.store_object_field("next_type", static_cast<const BaseObject *>(next_type_.get())); }
+ if (var0 & 4) { s.store_field("timeout", timeout_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<auth_SentCodeType> auth_SentCodeType::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case auth_sentCodeTypeApp::ID:
+ return auth_sentCodeTypeApp::fetch(p);
+ case auth_sentCodeTypeSms::ID:
+ return auth_sentCodeTypeSms::fetch(p);
+ case auth_sentCodeTypeCall::ID:
+ return auth_sentCodeTypeCall::fetch(p);
+ case auth_sentCodeTypeFlashCall::ID:
+ return auth_sentCodeTypeFlashCall::fetch(p);
+ case auth_sentCodeTypeMissedCall::ID:
+ return auth_sentCodeTypeMissedCall::fetch(p);
+ case auth_sentCodeTypeEmailCode::ID:
+ return auth_sentCodeTypeEmailCode::fetch(p);
+ case auth_sentCodeTypeSetUpEmailRequired::ID:
+ return auth_sentCodeTypeSetUpEmailRequired::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t auth_sentCodeTypeApp::ID;
+
+object_ptr<auth_SentCodeType> auth_sentCodeTypeApp::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_sentCodeTypeApp>(p);
+}
+
+auth_sentCodeTypeApp::auth_sentCodeTypeApp(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void auth_sentCodeTypeApp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.sentCodeTypeApp");
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_sentCodeTypeSms::ID;
+
+object_ptr<auth_SentCodeType> auth_sentCodeTypeSms::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_sentCodeTypeSms>(p);
+}
+
+auth_sentCodeTypeSms::auth_sentCodeTypeSms(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void auth_sentCodeTypeSms::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.sentCodeTypeSms");
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_sentCodeTypeCall::ID;
+
+object_ptr<auth_SentCodeType> auth_sentCodeTypeCall::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_sentCodeTypeCall>(p);
+}
+
+auth_sentCodeTypeCall::auth_sentCodeTypeCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void auth_sentCodeTypeCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.sentCodeTypeCall");
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_sentCodeTypeFlashCall::ID;
+
+object_ptr<auth_SentCodeType> auth_sentCodeTypeFlashCall::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_sentCodeTypeFlashCall>(p);
+}
+
+auth_sentCodeTypeFlashCall::auth_sentCodeTypeFlashCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : pattern_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void auth_sentCodeTypeFlashCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.sentCodeTypeFlashCall");
+ s.store_field("pattern", pattern_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t auth_sentCodeTypeMissedCall::ID;
+
+object_ptr<auth_SentCodeType> auth_sentCodeTypeMissedCall::fetch(TlBufferParser &p) {
+ return make_tl_object<auth_sentCodeTypeMissedCall>(p);
+}
+
+auth_sentCodeTypeMissedCall::auth_sentCodeTypeMissedCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : prefix_(TlFetchString<string>::parse(p))
+ , length_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void auth_sentCodeTypeMissedCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.sentCodeTypeMissedCall");
+ s.store_field("prefix", prefix_);
+ s.store_field("length", length_);
+ s.store_class_end();
+ }
+}
+
+auth_sentCodeTypeEmailCode::auth_sentCodeTypeEmailCode()
+ : flags_()
+ , apple_signin_allowed_()
+ , google_signin_allowed_()
+ , email_pattern_()
+ , length_()
+ , next_phone_login_date_()
+{}
+
+const std::int32_t auth_sentCodeTypeEmailCode::ID;
+
+object_ptr<auth_SentCodeType> auth_sentCodeTypeEmailCode::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<auth_sentCodeTypeEmailCode> res = make_tl_object<auth_sentCodeTypeEmailCode>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->apple_signin_allowed_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->google_signin_allowed_ = TlFetchTrue::parse(p); }
+ res->email_pattern_ = TlFetchString<string>::parse(p);
+ res->length_ = TlFetchInt::parse(p);
+ if (var0 & 4) { res->next_phone_login_date_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void auth_sentCodeTypeEmailCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.sentCodeTypeEmailCode");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("email_pattern", email_pattern_);
+ s.store_field("length", length_);
+ if (var0 & 4) { s.store_field("next_phone_login_date", next_phone_login_date_); }
+ s.store_class_end();
+ }
+}
+
+auth_sentCodeTypeSetUpEmailRequired::auth_sentCodeTypeSetUpEmailRequired()
+ : flags_()
+ , apple_signin_allowed_()
+ , google_signin_allowed_()
+{}
+
+const std::int32_t auth_sentCodeTypeSetUpEmailRequired::ID;
+
+object_ptr<auth_SentCodeType> auth_sentCodeTypeSetUpEmailRequired::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<auth_sentCodeTypeSetUpEmailRequired> res = make_tl_object<auth_sentCodeTypeSetUpEmailRequired>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->apple_signin_allowed_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->google_signin_allowed_ = TlFetchTrue::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void auth_sentCodeTypeSetUpEmailRequired::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.sentCodeTypeSetUpEmailRequired");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channels_adminLogResults::ID;
+
+object_ptr<channels_adminLogResults> channels_adminLogResults::fetch(TlBufferParser &p) {
+ return make_tl_object<channels_adminLogResults>(p);
+}
+
+channels_adminLogResults::channels_adminLogResults(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : events_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<channelAdminLogEvent>, 531458253>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void channels_adminLogResults::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.adminLogResults");
+ { s.store_vector_begin("events", events_.size()); for (const auto &_value : events_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channels_channelParticipant::ID;
+
+object_ptr<channels_channelParticipant> channels_channelParticipant::fetch(TlBufferParser &p) {
+ return make_tl_object<channels_channelParticipant>(p);
+}
+
+channels_channelParticipant::channels_channelParticipant(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : participant_(TlFetchObject<ChannelParticipant>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void channels_channelParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.channelParticipant");
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<channels_ChannelParticipants> channels_ChannelParticipants::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case channels_channelParticipants::ID:
+ return channels_channelParticipants::fetch(p);
+ case channels_channelParticipantsNotModified::ID:
+ return channels_channelParticipantsNotModified::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t channels_channelParticipants::ID;
+
+object_ptr<channels_ChannelParticipants> channels_channelParticipants::fetch(TlBufferParser &p) {
+ return make_tl_object<channels_channelParticipants>(p);
+}
+
+channels_channelParticipants::channels_channelParticipants(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+ , participants_(TlFetchBoxed<TlFetchVector<TlFetchObject<ChannelParticipant>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void channels_channelParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.channelParticipants");
+ s.store_field("count", count_);
+ { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channels_channelParticipantsNotModified::ID;
+
+object_ptr<channels_ChannelParticipants> channels_channelParticipantsNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<channels_channelParticipantsNotModified>();
+}
+
+void channels_channelParticipantsNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.channelParticipantsNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t channels_sendAsPeers::ID;
+
+object_ptr<channels_sendAsPeers> channels_sendAsPeers::fetch(TlBufferParser &p) {
+ return make_tl_object<channels_sendAsPeers>(p);
+}
+
+channels_sendAsPeers::channels_sendAsPeers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peers_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<sendAsPeer>, -1206095820>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void channels_sendAsPeers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.sendAsPeers");
+ { s.store_vector_begin("peers", peers_.size()); for (const auto &_value : peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<contacts_Blocked> contacts_Blocked::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case contacts_blocked::ID:
+ return contacts_blocked::fetch(p);
+ case contacts_blockedSlice::ID:
+ return contacts_blockedSlice::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t contacts_blocked::ID;
+
+object_ptr<contacts_Blocked> contacts_blocked::fetch(TlBufferParser &p) {
+ return make_tl_object<contacts_blocked>(p);
+}
+
+contacts_blocked::contacts_blocked(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : blocked_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<peerBlocked>, -386039788>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void contacts_blocked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.blocked");
+ { s.store_vector_begin("blocked", blocked_.size()); for (const auto &_value : blocked_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t contacts_blockedSlice::ID;
+
+object_ptr<contacts_Blocked> contacts_blockedSlice::fetch(TlBufferParser &p) {
+ return make_tl_object<contacts_blockedSlice>(p);
+}
+
+contacts_blockedSlice::contacts_blockedSlice(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+ , blocked_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<peerBlocked>, -386039788>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void contacts_blockedSlice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.blockedSlice");
+ s.store_field("count", count_);
+ { s.store_vector_begin("blocked", blocked_.size()); for (const auto &_value : blocked_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<contacts_Contacts> contacts_Contacts::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case contacts_contactsNotModified::ID:
+ return contacts_contactsNotModified::fetch(p);
+ case contacts_contacts::ID:
+ return contacts_contacts::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t contacts_contactsNotModified::ID;
+
+object_ptr<contacts_Contacts> contacts_contactsNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<contacts_contactsNotModified>();
+}
+
+void contacts_contactsNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.contactsNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t contacts_contacts::ID;
+
+object_ptr<contacts_Contacts> contacts_contacts::fetch(TlBufferParser &p) {
+ return make_tl_object<contacts_contacts>(p);
+}
+
+contacts_contacts::contacts_contacts(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : contacts_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<contact>, 341499403>>, 481674261>::parse(p))
+ , saved_count_(TlFetchInt::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void contacts_contacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.contacts");
+ { s.store_vector_begin("contacts", contacts_.size()); for (const auto &_value : contacts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("saved_count", saved_count_);
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t contacts_found::ID;
+
+object_ptr<contacts_found> contacts_found::fetch(TlBufferParser &p) {
+ return make_tl_object<contacts_found>(p);
+}
+
+contacts_found::contacts_found(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : my_results_(TlFetchBoxed<TlFetchVector<TlFetchObject<Peer>>, 481674261>::parse(p))
+ , results_(TlFetchBoxed<TlFetchVector<TlFetchObject<Peer>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void contacts_found::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.found");
+ { s.store_vector_begin("my_results", my_results_.size()); for (const auto &_value : my_results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t contacts_importedContacts::ID;
+
+object_ptr<contacts_importedContacts> contacts_importedContacts::fetch(TlBufferParser &p) {
+ return make_tl_object<contacts_importedContacts>(p);
+}
+
+contacts_importedContacts::contacts_importedContacts(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : imported_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<importedContact>, -1052885936>>, 481674261>::parse(p))
+ , popular_invites_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<popularContact>, 1558266229>>, 481674261>::parse(p))
+ , retry_contacts_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void contacts_importedContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.importedContacts");
+ { s.store_vector_begin("imported", imported_.size()); for (const auto &_value : imported_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("popular_invites", popular_invites_.size()); for (const auto &_value : popular_invites_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("retry_contacts", retry_contacts_.size()); for (const auto &_value : retry_contacts_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t contacts_resolvedPeer::ID;
+
+object_ptr<contacts_resolvedPeer> contacts_resolvedPeer::fetch(TlBufferParser &p) {
+ return make_tl_object<contacts_resolvedPeer>(p);
+}
+
+contacts_resolvedPeer::contacts_resolvedPeer(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peer_(TlFetchObject<Peer>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void contacts_resolvedPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.resolvedPeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<contacts_TopPeers> contacts_TopPeers::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case contacts_topPeersNotModified::ID:
+ return contacts_topPeersNotModified::fetch(p);
+ case contacts_topPeers::ID:
+ return contacts_topPeers::fetch(p);
+ case contacts_topPeersDisabled::ID:
+ return contacts_topPeersDisabled::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t contacts_topPeersNotModified::ID;
+
+object_ptr<contacts_TopPeers> contacts_topPeersNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<contacts_topPeersNotModified>();
+}
+
+void contacts_topPeersNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.topPeersNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t contacts_topPeers::ID;
+
+object_ptr<contacts_TopPeers> contacts_topPeers::fetch(TlBufferParser &p) {
+ return make_tl_object<contacts_topPeers>(p);
+}
+
+contacts_topPeers::contacts_topPeers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : categories_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<topPeerCategoryPeers>, -75283823>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void contacts_topPeers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.topPeers");
+ { s.store_vector_begin("categories", categories_.size()); for (const auto &_value : categories_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t contacts_topPeersDisabled::ID;
+
+object_ptr<contacts_TopPeers> contacts_topPeersDisabled::fetch(TlBufferParser &p) {
+ return make_tl_object<contacts_topPeersDisabled>();
+}
+
+void contacts_topPeersDisabled::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.topPeersDisabled");
+ s.store_class_end();
+ }
+}
+
+object_ptr<help_AppUpdate> help_AppUpdate::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case help_appUpdate::ID:
+ return help_appUpdate::fetch(p);
+ case help_noAppUpdate::ID:
+ return help_noAppUpdate::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+help_appUpdate::help_appUpdate()
+ : flags_()
+ , can_not_skip_()
+ , id_()
+ , version_()
+ , text_()
+ , entities_()
+ , document_()
+ , url_()
+ , sticker_()
+{}
+
+const std::int32_t help_appUpdate::ID;
+
+object_ptr<help_AppUpdate> help_appUpdate::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<help_appUpdate> res = make_tl_object<help_appUpdate>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->can_not_skip_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchInt::parse(p);
+ res->version_ = TlFetchString<string>::parse(p);
+ res->text_ = TlFetchString<string>::parse(p);
+ res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p);
+ if (var0 & 2) { res->document_ = TlFetchObject<Document>::parse(p); }
+ if (var0 & 4) { res->url_ = TlFetchString<string>::parse(p); }
+ if (var0 & 8) { res->sticker_ = TlFetchObject<Document>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void help_appUpdate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.appUpdate");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ s.store_field("version", version_);
+ s.store_field("text", text_);
+ { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 2) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); }
+ if (var0 & 4) { s.store_field("url", url_); }
+ if (var0 & 8) { s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_noAppUpdate::ID;
+
+object_ptr<help_AppUpdate> help_noAppUpdate::fetch(TlBufferParser &p) {
+ return make_tl_object<help_noAppUpdate>();
+}
+
+void help_noAppUpdate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.noAppUpdate");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_configSimple::ID;
+
+object_ptr<help_configSimple> help_configSimple::fetch(TlBufferParser &p) {
+ return make_tl_object<help_configSimple>(p);
+}
+
+help_configSimple::help_configSimple(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : date_(TlFetchInt::parse(p))
+ , expires_(TlFetchInt::parse(p))
+ , rules_(TlFetchVector<TlFetchBoxed<TlFetchObject<accessPointRule>, 1182381663>>::parse(p))
+#undef FAIL
+{}
+
+void help_configSimple::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.configSimple");
+ s.store_field("date", date_);
+ s.store_field("expires", expires_);
+ { s.store_vector_begin("rules", rules_.size()); for (const auto &_value : rules_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<help_CountriesList> help_CountriesList::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case help_countriesListNotModified::ID:
+ return help_countriesListNotModified::fetch(p);
+ case help_countriesList::ID:
+ return help_countriesList::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t help_countriesListNotModified::ID;
+
+object_ptr<help_CountriesList> help_countriesListNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<help_countriesListNotModified>();
+}
+
+void help_countriesListNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.countriesListNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_countriesList::ID;
+
+object_ptr<help_CountriesList> help_countriesList::fetch(TlBufferParser &p) {
+ return make_tl_object<help_countriesList>(p);
+}
+
+help_countriesList::help_countriesList(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : countries_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<help_country>, -1014526429>>, 481674261>::parse(p))
+ , hash_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void help_countriesList::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.countriesList");
+ { s.store_vector_begin("countries", countries_.size()); for (const auto &_value : countries_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+help_country::help_country()
+ : flags_()
+ , hidden_()
+ , iso2_()
+ , default_name_()
+ , name_()
+ , country_codes_()
+{}
+
+const std::int32_t help_country::ID;
+
+object_ptr<help_country> help_country::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<help_country> res = make_tl_object<help_country>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->hidden_ = TlFetchTrue::parse(p); }
+ res->iso2_ = TlFetchString<string>::parse(p);
+ res->default_name_ = TlFetchString<string>::parse(p);
+ if (var0 & 2) { res->name_ = TlFetchString<string>::parse(p); }
+ res->country_codes_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<help_countryCode>, 1107543535>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void help_country::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.country");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("iso2", iso2_);
+ s.store_field("default_name", default_name_);
+ if (var0 & 2) { s.store_field("name", name_); }
+ { s.store_vector_begin("country_codes", country_codes_.size()); for (const auto &_value : country_codes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+help_countryCode::help_countryCode()
+ : flags_()
+ , country_code_()
+ , prefixes_()
+ , patterns_()
+{}
+
+const std::int32_t help_countryCode::ID;
+
+object_ptr<help_countryCode> help_countryCode::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<help_countryCode> res = make_tl_object<help_countryCode>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->country_code_ = TlFetchString<string>::parse(p);
+ if (var0 & 1) { res->prefixes_ = TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p); }
+ if (var0 & 2) { res->patterns_ = TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void help_countryCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.countryCode");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("country_code", country_code_);
+ if (var0 & 1) { { s.store_vector_begin("prefixes", prefixes_.size()); for (const auto &_value : prefixes_) { s.store_field("", _value); } s.store_class_end(); } }
+ if (var0 & 2) { { s.store_vector_begin("patterns", patterns_.size()); for (const auto &_value : patterns_) { s.store_field("", _value); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+object_ptr<help_DeepLinkInfo> help_DeepLinkInfo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case help_deepLinkInfoEmpty::ID:
+ return help_deepLinkInfoEmpty::fetch(p);
+ case help_deepLinkInfo::ID:
+ return help_deepLinkInfo::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t help_deepLinkInfoEmpty::ID;
+
+object_ptr<help_DeepLinkInfo> help_deepLinkInfoEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<help_deepLinkInfoEmpty>();
+}
+
+void help_deepLinkInfoEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.deepLinkInfoEmpty");
+ s.store_class_end();
+ }
+}
+
+help_deepLinkInfo::help_deepLinkInfo()
+ : flags_()
+ , update_app_()
+ , message_()
+ , entities_()
+{}
+
+const std::int32_t help_deepLinkInfo::ID;
+
+object_ptr<help_DeepLinkInfo> help_deepLinkInfo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<help_deepLinkInfo> res = make_tl_object<help_deepLinkInfo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->update_app_ = TlFetchTrue::parse(p); }
+ res->message_ = TlFetchString<string>::parse(p);
+ if (var0 & 2) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void help_deepLinkInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.deepLinkInfo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("message", message_);
+ if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_inviteText::ID;
+
+object_ptr<help_inviteText> help_inviteText::fetch(TlBufferParser &p) {
+ return make_tl_object<help_inviteText>(p);
+}
+
+help_inviteText::help_inviteText(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void help_inviteText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.inviteText");
+ s.store_field("message", message_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<help_PassportConfig> help_PassportConfig::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case help_passportConfigNotModified::ID:
+ return help_passportConfigNotModified::fetch(p);
+ case help_passportConfig::ID:
+ return help_passportConfig::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t help_passportConfigNotModified::ID;
+
+object_ptr<help_PassportConfig> help_passportConfigNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<help_passportConfigNotModified>();
+}
+
+void help_passportConfigNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.passportConfigNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_passportConfig::ID;
+
+object_ptr<help_PassportConfig> help_passportConfig::fetch(TlBufferParser &p) {
+ return make_tl_object<help_passportConfig>(p);
+}
+
+help_passportConfig::help_passportConfig(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchInt::parse(p))
+ , countries_langs_(TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p))
+#undef FAIL
+{}
+
+void help_passportConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.passportConfig");
+ s.store_field("hash", hash_);
+ s.store_object_field("countries_langs", static_cast<const BaseObject *>(countries_langs_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_premiumPromo::ID;
+
+object_ptr<help_premiumPromo> help_premiumPromo::fetch(TlBufferParser &p) {
+ return make_tl_object<help_premiumPromo>(p);
+}
+
+help_premiumPromo::help_premiumPromo(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : status_text_(TlFetchString<string>::parse(p))
+ , status_entities_(TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p))
+ , video_sections_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p))
+ , videos_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p))
+ , period_options_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<premiumSubscriptionOption>, -1225711938>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void help_premiumPromo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.premiumPromo");
+ s.store_field("status_text", status_text_);
+ { s.store_vector_begin("status_entities", status_entities_.size()); for (const auto &_value : status_entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("video_sections", video_sections_.size()); for (const auto &_value : video_sections_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("videos", videos_.size()); for (const auto &_value : videos_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("period_options", period_options_.size()); for (const auto &_value : period_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<help_PromoData> help_PromoData::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case help_promoDataEmpty::ID:
+ return help_promoDataEmpty::fetch(p);
+ case help_promoData::ID:
+ return help_promoData::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t help_promoDataEmpty::ID;
+
+object_ptr<help_PromoData> help_promoDataEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<help_promoDataEmpty>(p);
+}
+
+help_promoDataEmpty::help_promoDataEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : expires_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void help_promoDataEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.promoDataEmpty");
+ s.store_field("expires", expires_);
+ s.store_class_end();
+ }
+}
+
+help_promoData::help_promoData()
+ : flags_()
+ , proxy_()
+ , expires_()
+ , peer_()
+ , chats_()
+ , users_()
+ , psa_type_()
+ , psa_message_()
+{}
+
+const std::int32_t help_promoData::ID;
+
+object_ptr<help_PromoData> help_promoData::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<help_promoData> res = make_tl_object<help_promoData>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->proxy_ = TlFetchTrue::parse(p); }
+ res->expires_ = TlFetchInt::parse(p);
+ res->peer_ = TlFetchObject<Peer>::parse(p);
+ res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (var0 & 2) { res->psa_type_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->psa_message_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void help_promoData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.promoData");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("expires", expires_);
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 2) { s.store_field("psa_type", psa_type_); }
+ if (var0 & 4) { s.store_field("psa_message", psa_message_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_recentMeUrls::ID;
+
+object_ptr<help_recentMeUrls> help_recentMeUrls::fetch(TlBufferParser &p) {
+ return make_tl_object<help_recentMeUrls>(p);
+}
+
+help_recentMeUrls::help_recentMeUrls(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : urls_(TlFetchBoxed<TlFetchVector<TlFetchObject<RecentMeUrl>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void help_recentMeUrls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.recentMeUrls");
+ { s.store_vector_begin("urls", urls_.size()); for (const auto &_value : urls_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_support::ID;
+
+object_ptr<help_support> help_support::fetch(TlBufferParser &p) {
+ return make_tl_object<help_support>(p);
+}
+
+help_support::help_support(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : phone_number_(TlFetchString<string>::parse(p))
+ , user_(TlFetchObject<User>::parse(p))
+#undef FAIL
+{}
+
+void help_support::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.support");
+ s.store_field("phone_number", phone_number_);
+ s.store_object_field("user", static_cast<const BaseObject *>(user_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_supportName::ID;
+
+object_ptr<help_supportName> help_supportName::fetch(TlBufferParser &p) {
+ return make_tl_object<help_supportName>(p);
+}
+
+help_supportName::help_supportName(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : name_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void help_supportName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.supportName");
+ s.store_field("name", name_);
+ s.store_class_end();
+ }
+}
+
+help_termsOfService::help_termsOfService()
+ : flags_()
+ , popup_()
+ , id_()
+ , text_()
+ , entities_()
+ , min_age_confirm_()
+{}
+
+const std::int32_t help_termsOfService::ID;
+
+object_ptr<help_termsOfService> help_termsOfService::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<help_termsOfService> res = make_tl_object<help_termsOfService>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->popup_ = TlFetchTrue::parse(p); }
+ res->id_ = TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p);
+ res->text_ = TlFetchString<string>::parse(p);
+ res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p);
+ if (var0 & 2) { res->min_age_confirm_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void help_termsOfService::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.termsOfService");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_field("text", text_);
+ { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 2) { s.store_field("min_age_confirm", min_age_confirm_); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<help_TermsOfServiceUpdate> help_TermsOfServiceUpdate::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case help_termsOfServiceUpdateEmpty::ID:
+ return help_termsOfServiceUpdateEmpty::fetch(p);
+ case help_termsOfServiceUpdate::ID:
+ return help_termsOfServiceUpdate::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t help_termsOfServiceUpdateEmpty::ID;
+
+object_ptr<help_TermsOfServiceUpdate> help_termsOfServiceUpdateEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<help_termsOfServiceUpdateEmpty>(p);
+}
+
+help_termsOfServiceUpdateEmpty::help_termsOfServiceUpdateEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : expires_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void help_termsOfServiceUpdateEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.termsOfServiceUpdateEmpty");
+ s.store_field("expires", expires_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_termsOfServiceUpdate::ID;
+
+object_ptr<help_TermsOfServiceUpdate> help_termsOfServiceUpdate::fetch(TlBufferParser &p) {
+ return make_tl_object<help_termsOfServiceUpdate>(p);
+}
+
+help_termsOfServiceUpdate::help_termsOfServiceUpdate(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : expires_(TlFetchInt::parse(p))
+ , terms_of_service_(TlFetchBoxed<TlFetchObject<help_termsOfService>, 2013922064>::parse(p))
+#undef FAIL
+{}
+
+void help_termsOfServiceUpdate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.termsOfServiceUpdate");
+ s.store_field("expires", expires_);
+ s.store_object_field("terms_of_service", static_cast<const BaseObject *>(terms_of_service_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<help_UserInfo> help_UserInfo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case help_userInfoEmpty::ID:
+ return help_userInfoEmpty::fetch(p);
+ case help_userInfo::ID:
+ return help_userInfo::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t help_userInfoEmpty::ID;
+
+object_ptr<help_UserInfo> help_userInfoEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<help_userInfoEmpty>();
+}
+
+void help_userInfoEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.userInfoEmpty");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t help_userInfo::ID;
+
+object_ptr<help_UserInfo> help_userInfo::fetch(TlBufferParser &p) {
+ return make_tl_object<help_userInfo>(p);
+}
+
+help_userInfo::help_userInfo(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : message_(TlFetchString<string>::parse(p))
+ , entities_(TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p))
+ , author_(TlFetchString<string>::parse(p))
+ , date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void help_userInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.userInfo");
+ s.store_field("message", message_);
+ { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("author", author_);
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_affectedFoundMessages::ID;
+
+object_ptr<messages_affectedFoundMessages> messages_affectedFoundMessages::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_affectedFoundMessages>(p);
+}
+
+messages_affectedFoundMessages::messages_affectedFoundMessages(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+ , offset_(TlFetchInt::parse(p))
+ , messages_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_affectedFoundMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.affectedFoundMessages");
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_field("offset", offset_);
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_affectedHistory::ID;
+
+object_ptr<messages_affectedHistory> messages_affectedHistory::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_affectedHistory>(p);
+}
+
+messages_affectedHistory::messages_affectedHistory(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+ , offset_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messages_affectedHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.affectedHistory");
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_field("offset", offset_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_affectedMessages::ID;
+
+object_ptr<messages_affectedMessages> messages_affectedMessages::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_affectedMessages>(p);
+}
+
+messages_affectedMessages::messages_affectedMessages(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : pts_(TlFetchInt::parse(p))
+ , pts_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messages_affectedMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.affectedMessages");
+ s.store_field("pts", pts_);
+ s.store_field("pts_count", pts_count_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_AllStickers> messages_AllStickers::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_allStickersNotModified::ID:
+ return messages_allStickersNotModified::fetch(p);
+ case messages_allStickers::ID:
+ return messages_allStickers::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_allStickersNotModified::ID;
+
+object_ptr<messages_AllStickers> messages_allStickersNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_allStickersNotModified>();
+}
+
+void messages_allStickersNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.allStickersNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_allStickers::ID;
+
+object_ptr<messages_AllStickers> messages_allStickers::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_allStickers>(p);
+}
+
+messages_allStickers::messages_allStickers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , sets_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_allStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.allStickers");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_archivedStickers::ID;
+
+object_ptr<messages_archivedStickers> messages_archivedStickers::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_archivedStickers>(p);
+}
+
+messages_archivedStickers::messages_archivedStickers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+ , sets_(TlFetchBoxed<TlFetchVector<TlFetchObject<StickerSetCovered>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_archivedStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.archivedStickers");
+ s.store_field("count", count_);
+ { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_AvailableReactions> messages_AvailableReactions::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_availableReactionsNotModified::ID:
+ return messages_availableReactionsNotModified::fetch(p);
+ case messages_availableReactions::ID:
+ return messages_availableReactions::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_availableReactionsNotModified::ID;
+
+object_ptr<messages_AvailableReactions> messages_availableReactionsNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_availableReactionsNotModified>();
+}
+
+void messages_availableReactionsNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.availableReactionsNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_availableReactions::ID;
+
+object_ptr<messages_AvailableReactions> messages_availableReactions::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_availableReactions>(p);
+}
+
+messages_availableReactions::messages_availableReactions(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchInt::parse(p))
+ , reactions_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<availableReaction>, -1065882623>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_availableReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.availableReactions");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_botCallbackAnswer::messages_botCallbackAnswer()
+ : flags_()
+ , alert_()
+ , has_url_()
+ , native_ui_()
+ , message_()
+ , url_()
+ , cache_time_()
+{}
+
+const std::int32_t messages_botCallbackAnswer::ID;
+
+object_ptr<messages_botCallbackAnswer> messages_botCallbackAnswer::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_botCallbackAnswer> res = make_tl_object<messages_botCallbackAnswer>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->alert_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->has_url_ = TlFetchTrue::parse(p); }
+ if (var0 & 16) { res->native_ui_ = TlFetchTrue::parse(p); }
+ if (var0 & 1) { res->message_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->url_ = TlFetchString<string>::parse(p); }
+ res->cache_time_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_botCallbackAnswer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.botCallbackAnswer");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("message", message_); }
+ if (var0 & 4) { s.store_field("url", url_); }
+ s.store_field("cache_time", cache_time_);
+ s.store_class_end();
+ }
+}
+
+messages_botResults::messages_botResults()
+ : flags_()
+ , gallery_()
+ , query_id_()
+ , next_offset_()
+ , switch_pm_()
+ , results_()
+ , cache_time_()
+ , users_()
+{}
+
+const std::int32_t messages_botResults::ID;
+
+object_ptr<messages_botResults> messages_botResults::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_botResults> res = make_tl_object<messages_botResults>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->gallery_ = TlFetchTrue::parse(p); }
+ res->query_id_ = TlFetchLong::parse(p);
+ if (var0 & 2) { res->next_offset_ = TlFetchString<string>::parse(p); }
+ if (var0 & 4) { res->switch_pm_ = TlFetchBoxed<TlFetchObject<inlineBotSwitchPM>, 1008755359>::parse(p); }
+ res->results_ = TlFetchBoxed<TlFetchVector<TlFetchObject<BotInlineResult>>, 481674261>::parse(p);
+ res->cache_time_ = TlFetchInt::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_botResults::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.botResults");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("query_id", query_id_);
+ if (var0 & 2) { s.store_field("next_offset", next_offset_); }
+ if (var0 & 4) { s.store_object_field("switch_pm", static_cast<const BaseObject *>(switch_pm_.get())); }
+ { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("cache_time", cache_time_);
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_chatAdminsWithInvites::ID;
+
+object_ptr<messages_chatAdminsWithInvites> messages_chatAdminsWithInvites::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_chatAdminsWithInvites>(p);
+}
+
+messages_chatAdminsWithInvites::messages_chatAdminsWithInvites(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : admins_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<chatAdminWithInvites>, -219353309>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_chatAdminsWithInvites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.chatAdminsWithInvites");
+ { s.store_vector_begin("admins", admins_.size()); for (const auto &_value : admins_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_chatFull::ID;
+
+object_ptr<messages_chatFull> messages_chatFull::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_chatFull>(p);
+}
+
+messages_chatFull::messages_chatFull(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : full_chat_(TlFetchObject<ChatFull>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_chatFull::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.chatFull");
+ s.store_object_field("full_chat", static_cast<const BaseObject *>(full_chat_.get()));
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_chatInviteImporters::ID;
+
+object_ptr<messages_chatInviteImporters> messages_chatInviteImporters::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_chatInviteImporters>(p);
+}
+
+messages_chatInviteImporters::messages_chatInviteImporters(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+ , importers_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<chatInviteImporter>, -1940201511>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_chatInviteImporters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.chatInviteImporters");
+ s.store_field("count", count_);
+ { s.store_vector_begin("importers", importers_.size()); for (const auto &_value : importers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_Chats> messages_Chats::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_chats::ID:
+ return messages_chats::fetch(p);
+ case messages_chatsSlice::ID:
+ return messages_chatsSlice::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_chats::ID;
+
+object_ptr<messages_Chats> messages_chats::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_chats>(p);
+}
+
+messages_chats::messages_chats(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_chats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.chats");
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_chatsSlice::ID;
+
+object_ptr<messages_Chats> messages_chatsSlice::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_chatsSlice>(p);
+}
+
+messages_chatsSlice::messages_chatsSlice(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_chatsSlice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.chatsSlice");
+ s.store_field("count", count_);
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_checkedHistoryImportPeer::ID;
+
+object_ptr<messages_checkedHistoryImportPeer> messages_checkedHistoryImportPeer::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_checkedHistoryImportPeer>(p);
+}
+
+messages_checkedHistoryImportPeer::messages_checkedHistoryImportPeer(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : confirm_text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messages_checkedHistoryImportPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.checkedHistoryImportPeer");
+ s.store_field("confirm_text", confirm_text_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_DhConfig> messages_DhConfig::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_dhConfigNotModified::ID:
+ return messages_dhConfigNotModified::fetch(p);
+ case messages_dhConfig::ID:
+ return messages_dhConfig::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_dhConfigNotModified::ID;
+
+object_ptr<messages_DhConfig> messages_dhConfigNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_dhConfigNotModified>(p);
+}
+
+messages_dhConfigNotModified::messages_dhConfigNotModified(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : random_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void messages_dhConfigNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.dhConfigNotModified");
+ s.store_bytes_field("random", random_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_dhConfig::ID;
+
+object_ptr<messages_DhConfig> messages_dhConfig::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_dhConfig>(p);
+}
+
+messages_dhConfig::messages_dhConfig(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : g_(TlFetchInt::parse(p))
+ , p_(TlFetchBytes<bytes>::parse(p))
+ , version_(TlFetchInt::parse(p))
+ , random_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void messages_dhConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.dhConfig");
+ s.store_field("g", g_);
+ s.store_bytes_field("p", p_);
+ s.store_field("version", version_);
+ s.store_bytes_field("random", random_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_Dialogs> messages_Dialogs::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_dialogs::ID:
+ return messages_dialogs::fetch(p);
+ case messages_dialogsSlice::ID:
+ return messages_dialogsSlice::fetch(p);
+ case messages_dialogsNotModified::ID:
+ return messages_dialogsNotModified::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_dialogs::ID;
+
+object_ptr<messages_Dialogs> messages_dialogs::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_dialogs>(p);
+}
+
+messages_dialogs::messages_dialogs(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : dialogs_(TlFetchBoxed<TlFetchVector<TlFetchObject<Dialog>>, 481674261>::parse(p))
+ , messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_dialogs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.dialogs");
+ { s.store_vector_begin("dialogs", dialogs_.size()); for (const auto &_value : dialogs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_dialogsSlice::ID;
+
+object_ptr<messages_Dialogs> messages_dialogsSlice::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_dialogsSlice>(p);
+}
+
+messages_dialogsSlice::messages_dialogsSlice(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+ , dialogs_(TlFetchBoxed<TlFetchVector<TlFetchObject<Dialog>>, 481674261>::parse(p))
+ , messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_dialogsSlice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.dialogsSlice");
+ s.store_field("count", count_);
+ { s.store_vector_begin("dialogs", dialogs_.size()); for (const auto &_value : dialogs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_dialogsNotModified::ID;
+
+object_ptr<messages_Dialogs> messages_dialogsNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_dialogsNotModified>(p);
+}
+
+messages_dialogsNotModified::messages_dialogsNotModified(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messages_dialogsNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.dialogsNotModified");
+ s.store_field("count", count_);
+ s.store_class_end();
+ }
+}
+
+messages_discussionMessage::messages_discussionMessage()
+ : flags_()
+ , messages_()
+ , max_id_()
+ , read_inbox_max_id_()
+ , read_outbox_max_id_()
+ , unread_count_()
+ , chats_()
+ , users_()
+{}
+
+const std::int32_t messages_discussionMessage::ID;
+
+object_ptr<messages_discussionMessage> messages_discussionMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_discussionMessage> res = make_tl_object<messages_discussionMessage>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p);
+ if (var0 & 1) { res->max_id_ = TlFetchInt::parse(p); }
+ if (var0 & 2) { res->read_inbox_max_id_ = TlFetchInt::parse(p); }
+ if (var0 & 4) { res->read_outbox_max_id_ = TlFetchInt::parse(p); }
+ res->unread_count_ = TlFetchInt::parse(p);
+ res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_discussionMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.discussionMessage");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 1) { s.store_field("max_id", max_id_); }
+ if (var0 & 2) { s.store_field("read_inbox_max_id", read_inbox_max_id_); }
+ if (var0 & 4) { s.store_field("read_outbox_max_id", read_outbox_max_id_); }
+ s.store_field("unread_count", unread_count_);
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_ExportedChatInvite> messages_ExportedChatInvite::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_exportedChatInvite::ID:
+ return messages_exportedChatInvite::fetch(p);
+ case messages_exportedChatInviteReplaced::ID:
+ return messages_exportedChatInviteReplaced::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_exportedChatInvite::ID;
+
+object_ptr<messages_ExportedChatInvite> messages_exportedChatInvite::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_exportedChatInvite>(p);
+}
+
+messages_exportedChatInvite::messages_exportedChatInvite(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : invite_(TlFetchObject<ExportedChatInvite>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_exportedChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.exportedChatInvite");
+ s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get()));
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_exportedChatInviteReplaced::ID;
+
+object_ptr<messages_ExportedChatInvite> messages_exportedChatInviteReplaced::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_exportedChatInviteReplaced>(p);
+}
+
+messages_exportedChatInviteReplaced::messages_exportedChatInviteReplaced(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : invite_(TlFetchObject<ExportedChatInvite>::parse(p))
+ , new_invite_(TlFetchObject<ExportedChatInvite>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_exportedChatInviteReplaced::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.exportedChatInviteReplaced");
+ s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get()));
+ s.store_object_field("new_invite", static_cast<const BaseObject *>(new_invite_.get()));
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_exportedChatInvites::ID;
+
+object_ptr<messages_exportedChatInvites> messages_exportedChatInvites::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_exportedChatInvites>(p);
+}
+
+messages_exportedChatInvites::messages_exportedChatInvites(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+ , invites_(TlFetchBoxed<TlFetchVector<TlFetchObject<ExportedChatInvite>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_exportedChatInvites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.exportedChatInvites");
+ s.store_field("count", count_);
+ { s.store_vector_begin("invites", invites_.size()); for (const auto &_value : invites_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_FavedStickers> messages_FavedStickers::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_favedStickersNotModified::ID:
+ return messages_favedStickersNotModified::fetch(p);
+ case messages_favedStickers::ID:
+ return messages_favedStickers::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_favedStickersNotModified::ID;
+
+object_ptr<messages_FavedStickers> messages_favedStickersNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_favedStickersNotModified>();
+}
+
+void messages_favedStickersNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.favedStickersNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_favedStickers::ID;
+
+object_ptr<messages_FavedStickers> messages_favedStickers::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_favedStickers>(p);
+}
+
+messages_favedStickers::messages_favedStickers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , packs_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerPack>, 313694676>>, 481674261>::parse(p))
+ , stickers_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_favedStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.favedStickers");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("packs", packs_.size()); for (const auto &_value : packs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_FeaturedStickers> messages_FeaturedStickers::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_featuredStickersNotModified::ID:
+ return messages_featuredStickersNotModified::fetch(p);
+ case messages_featuredStickers::ID:
+ return messages_featuredStickers::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_featuredStickersNotModified::ID;
+
+object_ptr<messages_FeaturedStickers> messages_featuredStickersNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_featuredStickersNotModified>(p);
+}
+
+messages_featuredStickersNotModified::messages_featuredStickersNotModified(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messages_featuredStickersNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.featuredStickersNotModified");
+ s.store_field("count", count_);
+ s.store_class_end();
+ }
+}
+
+messages_featuredStickers::messages_featuredStickers()
+ : flags_()
+ , premium_()
+ , hash_()
+ , count_()
+ , sets_()
+ , unread_()
+{}
+
+const std::int32_t messages_featuredStickers::ID;
+
+object_ptr<messages_FeaturedStickers> messages_featuredStickers::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_featuredStickers> res = make_tl_object<messages_featuredStickers>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->premium_ = TlFetchTrue::parse(p); }
+ res->hash_ = TlFetchLong::parse(p);
+ res->count_ = TlFetchInt::parse(p);
+ res->sets_ = TlFetchBoxed<TlFetchVector<TlFetchObject<StickerSetCovered>>, 481674261>::parse(p);
+ res->unread_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messages_featuredStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.featuredStickers");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("hash", hash_);
+ s.store_field("count", count_);
+ { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("unread", unread_.size()); for (const auto &_value : unread_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_forumTopics::messages_forumTopics()
+ : flags_()
+ , order_by_create_date_()
+ , count_()
+ , topics_()
+ , messages_()
+ , chats_()
+ , users_()
+ , pts_()
+{}
+
+const std::int32_t messages_forumTopics::ID;
+
+object_ptr<messages_forumTopics> messages_forumTopics::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_forumTopics> res = make_tl_object<messages_forumTopics>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->order_by_create_date_ = TlFetchTrue::parse(p); }
+ res->count_ = TlFetchInt::parse(p);
+ res->topics_ = TlFetchBoxed<TlFetchVector<TlFetchObject<ForumTopic>>, 481674261>::parse(p);
+ res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p);
+ res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ res->pts_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_forumTopics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.forumTopics");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("count", count_);
+ { s.store_vector_begin("topics", topics_.size()); for (const auto &_value : topics_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("pts", pts_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_FoundStickerSets> messages_FoundStickerSets::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_foundStickerSetsNotModified::ID:
+ return messages_foundStickerSetsNotModified::fetch(p);
+ case messages_foundStickerSets::ID:
+ return messages_foundStickerSets::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_foundStickerSetsNotModified::ID;
+
+object_ptr<messages_FoundStickerSets> messages_foundStickerSetsNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_foundStickerSetsNotModified>();
+}
+
+void messages_foundStickerSetsNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.foundStickerSetsNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_foundStickerSets::ID;
+
+object_ptr<messages_FoundStickerSets> messages_foundStickerSets::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_foundStickerSets>(p);
+}
+
+messages_foundStickerSets::messages_foundStickerSets(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , sets_(TlFetchBoxed<TlFetchVector<TlFetchObject<StickerSetCovered>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_foundStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.foundStickerSets");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_highScores::ID;
+
+object_ptr<messages_highScores> messages_highScores::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_highScores>(p);
+}
+
+messages_highScores::messages_highScores(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : scores_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<highScore>, 1940093419>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_highScores::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.highScores");
+ { s.store_vector_begin("scores", scores_.size()); for (const auto &_value : scores_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_historyImport::ID;
+
+object_ptr<messages_historyImport> messages_historyImport::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_historyImport>(p);
+}
+
+messages_historyImport::messages_historyImport(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : id_(TlFetchLong::parse(p))
+#undef FAIL
+{}
+
+void messages_historyImport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.historyImport");
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+messages_historyImportParsed::messages_historyImportParsed()
+ : flags_()
+ , pm_()
+ , group_()
+ , title_()
+{}
+
+const std::int32_t messages_historyImportParsed::ID;
+
+object_ptr<messages_historyImportParsed> messages_historyImportParsed::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_historyImportParsed> res = make_tl_object<messages_historyImportParsed>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->pm_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->group_ = TlFetchTrue::parse(p); }
+ if (var0 & 4) { res->title_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_historyImportParsed::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.historyImportParsed");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 4) { s.store_field("title", title_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_inactiveChats::ID;
+
+object_ptr<messages_inactiveChats> messages_inactiveChats::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_inactiveChats>(p);
+}
+
+messages_inactiveChats::messages_inactiveChats(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : dates_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_inactiveChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.inactiveChats");
+ { s.store_vector_begin("dates", dates_.size()); for (const auto &_value : dates_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_messageEditData::messages_messageEditData()
+ : flags_()
+ , caption_()
+{}
+
+const std::int32_t messages_messageEditData::ID;
+
+object_ptr<messages_messageEditData> messages_messageEditData::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_messageEditData> res = make_tl_object<messages_messageEditData>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->caption_ = TlFetchTrue::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_messageEditData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.messageEditData");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+messages_messageReactionsList::messages_messageReactionsList()
+ : flags_()
+ , count_()
+ , reactions_()
+ , chats_()
+ , users_()
+ , next_offset_()
+{}
+
+const std::int32_t messages_messageReactionsList::ID;
+
+object_ptr<messages_messageReactionsList> messages_messageReactionsList::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_messageReactionsList> res = make_tl_object<messages_messageReactionsList>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->count_ = TlFetchInt::parse(p);
+ res->reactions_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messagePeerReaction>, -1319698788>>, 481674261>::parse(p);
+ res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (var0 & 1) { res->next_offset_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_messageReactionsList::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.messageReactionsList");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("count", count_);
+ { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 1) { s.store_field("next_offset", next_offset_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_messageViews::ID;
+
+object_ptr<messages_messageViews> messages_messageViews::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_messageViews>(p);
+}
+
+messages_messageViews::messages_messageViews(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : views_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messageViews>, 1163625789>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_messageViews::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.messageViews");
+ { s.store_vector_begin("views", views_.size()); for (const auto &_value : views_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_Messages> messages_Messages::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_messages::ID:
+ return messages_messages::fetch(p);
+ case messages_messagesSlice::ID:
+ return messages_messagesSlice::fetch(p);
+ case messages_channelMessages::ID:
+ return messages_channelMessages::fetch(p);
+ case messages_messagesNotModified::ID:
+ return messages_messagesNotModified::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_messages::ID;
+
+object_ptr<messages_Messages> messages_messages::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_messages>(p);
+}
+
+messages_messages::messages_messages(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_messages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.messages");
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_messagesSlice::messages_messagesSlice()
+ : flags_()
+ , inexact_()
+ , count_()
+ , next_rate_()
+ , offset_id_offset_()
+ , messages_()
+ , chats_()
+ , users_()
+{}
+
+const std::int32_t messages_messagesSlice::ID;
+
+object_ptr<messages_Messages> messages_messagesSlice::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_messagesSlice> res = make_tl_object<messages_messagesSlice>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->inexact_ = TlFetchTrue::parse(p); }
+ res->count_ = TlFetchInt::parse(p);
+ if (var0 & 1) { res->next_rate_ = TlFetchInt::parse(p); }
+ if (var0 & 4) { res->offset_id_offset_ = TlFetchInt::parse(p); }
+ res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p);
+ res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messages_messagesSlice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.messagesSlice");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("count", count_);
+ if (var0 & 1) { s.store_field("next_rate", next_rate_); }
+ if (var0 & 4) { s.store_field("offset_id_offset", offset_id_offset_); }
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_channelMessages::messages_channelMessages()
+ : flags_()
+ , inexact_()
+ , pts_()
+ , count_()
+ , offset_id_offset_()
+ , messages_()
+ , chats_()
+ , users_()
+{}
+
+const std::int32_t messages_channelMessages::ID;
+
+object_ptr<messages_Messages> messages_channelMessages::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_channelMessages> res = make_tl_object<messages_channelMessages>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->inexact_ = TlFetchTrue::parse(p); }
+ res->pts_ = TlFetchInt::parse(p);
+ res->count_ = TlFetchInt::parse(p);
+ if (var0 & 4) { res->offset_id_offset_ = TlFetchInt::parse(p); }
+ res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p);
+ res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messages_channelMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.channelMessages");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("pts", pts_);
+ s.store_field("count", count_);
+ if (var0 & 4) { s.store_field("offset_id_offset", offset_id_offset_); }
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_messagesNotModified::ID;
+
+object_ptr<messages_Messages> messages_messagesNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_messagesNotModified>(p);
+}
+
+messages_messagesNotModified::messages_messagesNotModified(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messages_messagesNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.messagesNotModified");
+ s.store_field("count", count_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_peerDialogs::ID;
+
+object_ptr<messages_peerDialogs> messages_peerDialogs::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_peerDialogs>(p);
+}
+
+messages_peerDialogs::messages_peerDialogs(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : dialogs_(TlFetchBoxed<TlFetchVector<TlFetchObject<Dialog>>, 481674261>::parse(p))
+ , messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+ , state_(TlFetchBoxed<TlFetchObject<updates_state>, -1519637954>::parse(p))
+#undef FAIL
+{}
+
+void messages_peerDialogs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.peerDialogs");
+ { s.store_vector_begin("dialogs", dialogs_.size()); for (const auto &_value : dialogs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("state", static_cast<const BaseObject *>(state_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_peerSettings::ID;
+
+object_ptr<messages_peerSettings> messages_peerSettings::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_peerSettings>(p);
+}
+
+messages_peerSettings::messages_peerSettings(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : settings_(TlFetchBoxed<TlFetchObject<peerSettings>, -1525149427>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_peerSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.peerSettings");
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_Reactions> messages_Reactions::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_reactionsNotModified::ID:
+ return messages_reactionsNotModified::fetch(p);
+ case messages_reactions::ID:
+ return messages_reactions::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_reactionsNotModified::ID;
+
+object_ptr<messages_Reactions> messages_reactionsNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_reactionsNotModified>();
+}
+
+void messages_reactionsNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.reactionsNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_reactions::ID;
+
+object_ptr<messages_Reactions> messages_reactions::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_reactions>(p);
+}
+
+messages_reactions::messages_reactions(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , reactions_(TlFetchBoxed<TlFetchVector<TlFetchObject<Reaction>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_reactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.reactions");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_RecentStickers> messages_RecentStickers::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_recentStickersNotModified::ID:
+ return messages_recentStickersNotModified::fetch(p);
+ case messages_recentStickers::ID:
+ return messages_recentStickers::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_recentStickersNotModified::ID;
+
+object_ptr<messages_RecentStickers> messages_recentStickersNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_recentStickersNotModified>();
+}
+
+void messages_recentStickersNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.recentStickersNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_recentStickers::ID;
+
+object_ptr<messages_RecentStickers> messages_recentStickers::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_recentStickers>(p);
+}
+
+messages_recentStickers::messages_recentStickers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , packs_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerPack>, 313694676>>, 481674261>::parse(p))
+ , stickers_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p))
+ , dates_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_recentStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.recentStickers");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("packs", packs_.size()); for (const auto &_value : packs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("dates", dates_.size()); for (const auto &_value : dates_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_SavedGifs> messages_SavedGifs::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_savedGifsNotModified::ID:
+ return messages_savedGifsNotModified::fetch(p);
+ case messages_savedGifs::ID:
+ return messages_savedGifs::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_savedGifsNotModified::ID;
+
+object_ptr<messages_SavedGifs> messages_savedGifsNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_savedGifsNotModified>();
+}
+
+void messages_savedGifsNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.savedGifsNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_savedGifs::ID;
+
+object_ptr<messages_SavedGifs> messages_savedGifs::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_savedGifs>(p);
+}
+
+messages_savedGifs::messages_savedGifs(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , gifs_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_savedGifs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.savedGifs");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("gifs", gifs_.size()); for (const auto &_value : gifs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_searchCounter::messages_searchCounter()
+ : flags_()
+ , inexact_()
+ , filter_()
+ , count_()
+{}
+
+const std::int32_t messages_searchCounter::ID;
+
+object_ptr<messages_searchCounter> messages_searchCounter::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_searchCounter> res = make_tl_object<messages_searchCounter>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->inexact_ = TlFetchTrue::parse(p); }
+ res->filter_ = TlFetchObject<MessagesFilter>::parse(p);
+ res->count_ = TlFetchInt::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_searchCounter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.searchCounter");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("count", count_);
+ s.store_class_end();
+ }
+}
+
+messages_searchResultsCalendar::messages_searchResultsCalendar()
+ : flags_()
+ , inexact_()
+ , count_()
+ , min_date_()
+ , min_msg_id_()
+ , offset_id_offset_()
+ , periods_()
+ , messages_()
+ , chats_()
+ , users_()
+{}
+
+const std::int32_t messages_searchResultsCalendar::ID;
+
+object_ptr<messages_searchResultsCalendar> messages_searchResultsCalendar::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_searchResultsCalendar> res = make_tl_object<messages_searchResultsCalendar>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->inexact_ = TlFetchTrue::parse(p); }
+ res->count_ = TlFetchInt::parse(p);
+ res->min_date_ = TlFetchInt::parse(p);
+ res->min_msg_id_ = TlFetchInt::parse(p);
+ if (var0 & 2) { res->offset_id_offset_ = TlFetchInt::parse(p); }
+ res->periods_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<searchResultsCalendarPeriod>, -911191137>>, 481674261>::parse(p);
+ res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p);
+ res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_searchResultsCalendar::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.searchResultsCalendar");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("count", count_);
+ s.store_field("min_date", min_date_);
+ s.store_field("min_msg_id", min_msg_id_);
+ if (var0 & 2) { s.store_field("offset_id_offset", offset_id_offset_); }
+ { s.store_vector_begin("periods", periods_.size()); for (const auto &_value : periods_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_searchResultsPositions::ID;
+
+object_ptr<messages_searchResultsPositions> messages_searchResultsPositions::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_searchResultsPositions>(p);
+}
+
+messages_searchResultsPositions::messages_searchResultsPositions(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+ , positions_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<searchResultPosition>, 2137295719>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_searchResultsPositions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.searchResultsPositions");
+ s.store_field("count", count_);
+ { s.store_vector_begin("positions", positions_.size()); for (const auto &_value : positions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_SentEncryptedMessage> messages_SentEncryptedMessage::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_sentEncryptedMessage::ID:
+ return messages_sentEncryptedMessage::fetch(p);
+ case messages_sentEncryptedFile::ID:
+ return messages_sentEncryptedFile::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_sentEncryptedMessage::ID;
+
+object_ptr<messages_SentEncryptedMessage> messages_sentEncryptedMessage::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_sentEncryptedMessage>(p);
+}
+
+messages_sentEncryptedMessage::messages_sentEncryptedMessage(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : date_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void messages_sentEncryptedMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sentEncryptedMessage");
+ s.store_field("date", date_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_sentEncryptedFile::ID;
+
+object_ptr<messages_SentEncryptedMessage> messages_sentEncryptedFile::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_sentEncryptedFile>(p);
+}
+
+messages_sentEncryptedFile::messages_sentEncryptedFile(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : date_(TlFetchInt::parse(p))
+ , file_(TlFetchObject<EncryptedFile>::parse(p))
+#undef FAIL
+{}
+
+void messages_sentEncryptedFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sentEncryptedFile");
+ s.store_field("date", date_);
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_SponsoredMessages> messages_SponsoredMessages::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_sponsoredMessages::ID:
+ return messages_sponsoredMessages::fetch(p);
+ case messages_sponsoredMessagesEmpty::ID:
+ return messages_sponsoredMessagesEmpty::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+messages_sponsoredMessages::messages_sponsoredMessages()
+ : flags_()
+ , posts_between_()
+ , messages_()
+ , chats_()
+ , users_()
+{}
+
+const std::int32_t messages_sponsoredMessages::ID;
+
+object_ptr<messages_SponsoredMessages> messages_sponsoredMessages::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_sponsoredMessages> res = make_tl_object<messages_sponsoredMessages>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->posts_between_ = TlFetchInt::parse(p); }
+ res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<sponsoredMessage>, 981691896>>, 481674261>::parse(p);
+ res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void messages_sponsoredMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sponsoredMessages");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("posts_between", posts_between_); }
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_sponsoredMessagesEmpty::ID;
+
+object_ptr<messages_SponsoredMessages> messages_sponsoredMessagesEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_sponsoredMessagesEmpty>();
+}
+
+void messages_sponsoredMessagesEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sponsoredMessagesEmpty");
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_StickerSet> messages_StickerSet::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_stickerSet::ID:
+ return messages_stickerSet::fetch(p);
+ case messages_stickerSetNotModified::ID:
+ return messages_stickerSetNotModified::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+messages_stickerSet::messages_stickerSet(object_ptr<stickerSet> &&set_, array<object_ptr<stickerPack>> &&packs_, array<object_ptr<stickerKeyword>> &&keywords_, array<object_ptr<Document>> &&documents_)
+ : set_(std::move(set_))
+ , packs_(std::move(packs_))
+ , keywords_(std::move(keywords_))
+ , documents_(std::move(documents_))
+{}
+
+const std::int32_t messages_stickerSet::ID;
+
+object_ptr<messages_StickerSet> messages_stickerSet::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_stickerSet>(p);
+}
+
+messages_stickerSet::messages_stickerSet(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : set_(TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>::parse(p))
+ , packs_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerPack>, 313694676>>, 481674261>::parse(p))
+ , keywords_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerKeyword>, -50416996>>, 481674261>::parse(p))
+ , documents_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_stickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.stickerSet");
+ s.store_object_field("set", static_cast<const BaseObject *>(set_.get()));
+ { s.store_vector_begin("packs", packs_.size()); for (const auto &_value : packs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("keywords", keywords_.size()); for (const auto &_value : keywords_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("documents", documents_.size()); for (const auto &_value : documents_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_stickerSetNotModified::ID;
+
+object_ptr<messages_StickerSet> messages_stickerSetNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_stickerSetNotModified>();
+}
+
+void messages_stickerSetNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.stickerSetNotModified");
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_StickerSetInstallResult> messages_StickerSetInstallResult::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_stickerSetInstallResultSuccess::ID:
+ return messages_stickerSetInstallResultSuccess::fetch(p);
+ case messages_stickerSetInstallResultArchive::ID:
+ return messages_stickerSetInstallResultArchive::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_stickerSetInstallResultSuccess::ID;
+
+object_ptr<messages_StickerSetInstallResult> messages_stickerSetInstallResultSuccess::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_stickerSetInstallResultSuccess>();
+}
+
+void messages_stickerSetInstallResultSuccess::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.stickerSetInstallResultSuccess");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_stickerSetInstallResultArchive::ID;
+
+object_ptr<messages_StickerSetInstallResult> messages_stickerSetInstallResultArchive::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_stickerSetInstallResultArchive>(p);
+}
+
+messages_stickerSetInstallResultArchive::messages_stickerSetInstallResultArchive(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : sets_(TlFetchBoxed<TlFetchVector<TlFetchObject<StickerSetCovered>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_stickerSetInstallResultArchive::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.stickerSetInstallResultArchive");
+ { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_Stickers> messages_Stickers::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_stickersNotModified::ID:
+ return messages_stickersNotModified::fetch(p);
+ case messages_stickers::ID:
+ return messages_stickers::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_stickersNotModified::ID;
+
+object_ptr<messages_Stickers> messages_stickersNotModified::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_stickersNotModified>();
+}
+
+void messages_stickersNotModified::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.stickersNotModified");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_stickers::ID;
+
+object_ptr<messages_Stickers> messages_stickers::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_stickers>(p);
+}
+
+messages_stickers::messages_stickers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : hash_(TlFetchLong::parse(p))
+ , stickers_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void messages_stickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.stickers");
+ s.store_field("hash", hash_);
+ { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_transcribedAudio::messages_transcribedAudio()
+ : flags_()
+ , pending_()
+ , transcription_id_()
+ , text_()
+{}
+
+const std::int32_t messages_transcribedAudio::ID;
+
+object_ptr<messages_transcribedAudio> messages_transcribedAudio::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_transcribedAudio> res = make_tl_object<messages_transcribedAudio>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->pending_ = TlFetchTrue::parse(p); }
+ res->transcription_id_ = TlFetchLong::parse(p);
+ res->text_ = TlFetchString<string>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_transcribedAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.transcribedAudio");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("transcription_id", transcription_id_);
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<messages_TranslatedText> messages_TranslatedText::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case messages_translateNoResult::ID:
+ return messages_translateNoResult::fetch(p);
+ case messages_translateResultText::ID:
+ return messages_translateResultText::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t messages_translateNoResult::ID;
+
+object_ptr<messages_TranslatedText> messages_translateNoResult::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_translateNoResult>();
+}
+
+void messages_translateNoResult::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.translateNoResult");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t messages_translateResultText::ID;
+
+object_ptr<messages_TranslatedText> messages_translateResultText::fetch(TlBufferParser &p) {
+ return make_tl_object<messages_translateResultText>(p);
+}
+
+messages_translateResultText::messages_translateResultText(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : text_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void messages_translateResultText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.translateResultText");
+ s.store_field("text", text_);
+ s.store_class_end();
+ }
+}
+
+messages_votesList::messages_votesList()
+ : flags_()
+ , count_()
+ , votes_()
+ , users_()
+ , next_offset_()
+{}
+
+const std::int32_t messages_votesList::ID;
+
+object_ptr<messages_votesList> messages_votesList::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<messages_votesList> res = make_tl_object<messages_votesList>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->count_ = TlFetchInt::parse(p);
+ res->votes_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageUserVote>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (var0 & 1) { res->next_offset_ = TlFetchString<string>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void messages_votesList::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.votesList");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("count", count_);
+ { s.store_vector_begin("votes", votes_.size()); for (const auto &_value : votes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 1) { s.store_field("next_offset", next_offset_); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t payments_bankCardData::ID;
+
+object_ptr<payments_bankCardData> payments_bankCardData::fetch(TlBufferParser &p) {
+ return make_tl_object<payments_bankCardData>(p);
+}
+
+payments_bankCardData::payments_bankCardData(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : title_(TlFetchString<string>::parse(p))
+ , open_urls_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<bankCardOpenUrl>, -177732982>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void payments_bankCardData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.bankCardData");
+ s.store_field("title", title_);
+ { s.store_vector_begin("open_urls", open_urls_.size()); for (const auto &_value : open_urls_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t payments_exportedInvoice::ID;
+
+object_ptr<payments_exportedInvoice> payments_exportedInvoice::fetch(TlBufferParser &p) {
+ return make_tl_object<payments_exportedInvoice>(p);
+}
+
+payments_exportedInvoice::payments_exportedInvoice(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void payments_exportedInvoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.exportedInvoice");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+payments_paymentForm::payments_paymentForm()
+ : flags_()
+ , can_save_credentials_()
+ , password_missing_()
+ , form_id_()
+ , bot_id_()
+ , title_()
+ , description_()
+ , photo_()
+ , invoice_()
+ , provider_id_()
+ , url_()
+ , native_provider_()
+ , native_params_()
+ , additional_methods_()
+ , saved_info_()
+ , saved_credentials_()
+ , users_()
+{}
+
+const std::int32_t payments_paymentForm::ID;
+
+object_ptr<payments_paymentForm> payments_paymentForm::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<payments_paymentForm> res = make_tl_object<payments_paymentForm>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 4) { res->can_save_credentials_ = TlFetchTrue::parse(p); }
+ if (var0 & 8) { res->password_missing_ = TlFetchTrue::parse(p); }
+ res->form_id_ = TlFetchLong::parse(p);
+ res->bot_id_ = TlFetchLong::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ res->description_ = TlFetchString<string>::parse(p);
+ if (var0 & 32) { res->photo_ = TlFetchObject<WebDocument>::parse(p); }
+ res->invoice_ = TlFetchBoxed<TlFetchObject<invoice>, 1048946971>::parse(p);
+ res->provider_id_ = TlFetchLong::parse(p);
+ res->url_ = TlFetchString<string>::parse(p);
+ if (var0 & 16) { res->native_provider_ = TlFetchString<string>::parse(p); }
+ if (var0 & 16) { res->native_params_ = TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p); }
+ if (var0 & 64) { res->additional_methods_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<paymentFormMethod>, -1996951013>>, 481674261>::parse(p); }
+ if (var0 & 1) { res->saved_info_ = TlFetchBoxed<TlFetchObject<paymentRequestedInfo>, -1868808300>::parse(p); }
+ if (var0 & 2) { res->saved_credentials_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<paymentSavedCredentialsCard>, -842892769>>, 481674261>::parse(p); }
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void payments_paymentForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.paymentForm");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("form_id", form_id_);
+ s.store_field("bot_id", bot_id_);
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ if (var0 & 32) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ s.store_field("provider_id", provider_id_);
+ s.store_field("url", url_);
+ if (var0 & 16) { s.store_field("native_provider", native_provider_); }
+ if (var0 & 16) { s.store_object_field("native_params", static_cast<const BaseObject *>(native_params_.get())); }
+ if (var0 & 64) { { s.store_vector_begin("additional_methods", additional_methods_.size()); for (const auto &_value : additional_methods_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 1) { s.store_object_field("saved_info", static_cast<const BaseObject *>(saved_info_.get())); }
+ if (var0 & 2) { { s.store_vector_begin("saved_credentials", saved_credentials_.size()); for (const auto &_value : saved_credentials_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+payments_paymentReceipt::payments_paymentReceipt()
+ : flags_()
+ , date_()
+ , bot_id_()
+ , provider_id_()
+ , title_()
+ , description_()
+ , photo_()
+ , invoice_()
+ , info_()
+ , shipping_()
+ , tip_amount_()
+ , currency_()
+ , total_amount_()
+ , credentials_title_()
+ , users_()
+{}
+
+const std::int32_t payments_paymentReceipt::ID;
+
+object_ptr<payments_paymentReceipt> payments_paymentReceipt::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<payments_paymentReceipt> res = make_tl_object<payments_paymentReceipt>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ res->date_ = TlFetchInt::parse(p);
+ res->bot_id_ = TlFetchLong::parse(p);
+ res->provider_id_ = TlFetchLong::parse(p);
+ res->title_ = TlFetchString<string>::parse(p);
+ res->description_ = TlFetchString<string>::parse(p);
+ if (var0 & 4) { res->photo_ = TlFetchObject<WebDocument>::parse(p); }
+ res->invoice_ = TlFetchBoxed<TlFetchObject<invoice>, 1048946971>::parse(p);
+ if (var0 & 1) { res->info_ = TlFetchBoxed<TlFetchObject<paymentRequestedInfo>, -1868808300>::parse(p); }
+ if (var0 & 2) { res->shipping_ = TlFetchBoxed<TlFetchObject<shippingOption>, -1239335713>::parse(p); }
+ if (var0 & 8) { res->tip_amount_ = TlFetchLong::parse(p); }
+ res->currency_ = TlFetchString<string>::parse(p);
+ res->total_amount_ = TlFetchLong::parse(p);
+ res->credentials_title_ = TlFetchString<string>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void payments_paymentReceipt::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.paymentReceipt");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("date", date_);
+ s.store_field("bot_id", bot_id_);
+ s.store_field("provider_id", provider_id_);
+ s.store_field("title", title_);
+ s.store_field("description", description_);
+ if (var0 & 4) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); }
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ if (var0 & 1) { s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); }
+ if (var0 & 2) { s.store_object_field("shipping", static_cast<const BaseObject *>(shipping_.get())); }
+ if (var0 & 8) { s.store_field("tip_amount", tip_amount_); }
+ s.store_field("currency", currency_);
+ s.store_field("total_amount", total_amount_);
+ s.store_field("credentials_title", credentials_title_);
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<payments_PaymentResult> payments_PaymentResult::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case payments_paymentResult::ID:
+ return payments_paymentResult::fetch(p);
+ case payments_paymentVerificationNeeded::ID:
+ return payments_paymentVerificationNeeded::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t payments_paymentResult::ID;
+
+object_ptr<payments_PaymentResult> payments_paymentResult::fetch(TlBufferParser &p) {
+ return make_tl_object<payments_paymentResult>(p);
+}
+
+payments_paymentResult::payments_paymentResult(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : updates_(TlFetchObject<Updates>::parse(p))
+#undef FAIL
+{}
+
+void payments_paymentResult::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.paymentResult");
+ s.store_object_field("updates", static_cast<const BaseObject *>(updates_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t payments_paymentVerificationNeeded::ID;
+
+object_ptr<payments_PaymentResult> payments_paymentVerificationNeeded::fetch(TlBufferParser &p) {
+ return make_tl_object<payments_paymentVerificationNeeded>(p);
+}
+
+payments_paymentVerificationNeeded::payments_paymentVerificationNeeded(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void payments_paymentVerificationNeeded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.paymentVerificationNeeded");
+ s.store_field("url", url_);
+ s.store_class_end();
+ }
+}
+
+payments_savedInfo::payments_savedInfo()
+ : flags_()
+ , has_saved_credentials_()
+ , saved_info_()
+{}
+
+const std::int32_t payments_savedInfo::ID;
+
+object_ptr<payments_savedInfo> payments_savedInfo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<payments_savedInfo> res = make_tl_object<payments_savedInfo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 2) { res->has_saved_credentials_ = TlFetchTrue::parse(p); }
+ if (var0 & 1) { res->saved_info_ = TlFetchBoxed<TlFetchObject<paymentRequestedInfo>, -1868808300>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void payments_savedInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.savedInfo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("saved_info", static_cast<const BaseObject *>(saved_info_.get())); }
+ s.store_class_end();
+ }
+}
+
+payments_validatedRequestedInfo::payments_validatedRequestedInfo()
+ : flags_()
+ , id_()
+ , shipping_options_()
+{}
+
+const std::int32_t payments_validatedRequestedInfo::ID;
+
+object_ptr<payments_validatedRequestedInfo> payments_validatedRequestedInfo::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<payments_validatedRequestedInfo> res = make_tl_object<payments_validatedRequestedInfo>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->id_ = TlFetchString<string>::parse(p); }
+ if (var0 & 2) { res->shipping_options_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<shippingOption>, -1239335713>>, 481674261>::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return res;
+#undef FAIL
+}
+
+void payments_validatedRequestedInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.validatedRequestedInfo");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("id", id_); }
+ if (var0 & 2) { { s.store_vector_begin("shipping_options", shipping_options_.size()); for (const auto &_value : shipping_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t phone_exportedGroupCallInvite::ID;
+
+object_ptr<phone_exportedGroupCallInvite> phone_exportedGroupCallInvite::fetch(TlBufferParser &p) {
+ return make_tl_object<phone_exportedGroupCallInvite>(p);
+}
+
+phone_exportedGroupCallInvite::phone_exportedGroupCallInvite(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : link_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void phone_exportedGroupCallInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.exportedGroupCallInvite");
+ s.store_field("link", link_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t phone_groupCall::ID;
+
+object_ptr<phone_groupCall> phone_groupCall::fetch(TlBufferParser &p) {
+ return make_tl_object<phone_groupCall>(p);
+}
+
+phone_groupCall::phone_groupCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : call_(TlFetchObject<GroupCall>::parse(p))
+ , participants_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>>, 481674261>::parse(p))
+ , participants_next_offset_(TlFetchString<string>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void phone_groupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.groupCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("participants_next_offset", participants_next_offset_);
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t phone_groupCallStreamChannels::ID;
+
+object_ptr<phone_groupCallStreamChannels> phone_groupCallStreamChannels::fetch(TlBufferParser &p) {
+ return make_tl_object<phone_groupCallStreamChannels>(p);
+}
+
+phone_groupCallStreamChannels::phone_groupCallStreamChannels(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : channels_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<groupCallStreamChannel>, -2132064081>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void phone_groupCallStreamChannels::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.groupCallStreamChannels");
+ { s.store_vector_begin("channels", channels_.size()); for (const auto &_value : channels_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t phone_groupCallStreamRtmpUrl::ID;
+
+object_ptr<phone_groupCallStreamRtmpUrl> phone_groupCallStreamRtmpUrl::fetch(TlBufferParser &p) {
+ return make_tl_object<phone_groupCallStreamRtmpUrl>(p);
+}
+
+phone_groupCallStreamRtmpUrl::phone_groupCallStreamRtmpUrl(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : url_(TlFetchString<string>::parse(p))
+ , key_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void phone_groupCallStreamRtmpUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.groupCallStreamRtmpUrl");
+ s.store_field("url", url_);
+ s.store_field("key", key_);
+ s.store_class_end();
+ }
+}
+
+phone_groupParticipants::phone_groupParticipants(int32 count_, array<object_ptr<groupCallParticipant>> &&participants_, string const &next_offset_, array<object_ptr<Chat>> &&chats_, array<object_ptr<User>> &&users_, int32 version_)
+ : count_(count_)
+ , participants_(std::move(participants_))
+ , next_offset_(next_offset_)
+ , chats_(std::move(chats_))
+ , users_(std::move(users_))
+ , version_(version_)
+{}
+
+const std::int32_t phone_groupParticipants::ID;
+
+object_ptr<phone_groupParticipants> phone_groupParticipants::fetch(TlBufferParser &p) {
+ return make_tl_object<phone_groupParticipants>(p);
+}
+
+phone_groupParticipants::phone_groupParticipants(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+ , participants_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>>, 481674261>::parse(p))
+ , next_offset_(TlFetchString<string>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+ , version_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void phone_groupParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.groupParticipants");
+ s.store_field("count", count_);
+ { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("next_offset", next_offset_);
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("version", version_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t phone_joinAsPeers::ID;
+
+object_ptr<phone_joinAsPeers> phone_joinAsPeers::fetch(TlBufferParser &p) {
+ return make_tl_object<phone_joinAsPeers>(p);
+}
+
+phone_joinAsPeers::phone_joinAsPeers(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : peers_(TlFetchBoxed<TlFetchVector<TlFetchObject<Peer>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void phone_joinAsPeers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.joinAsPeers");
+ { s.store_vector_begin("peers", peers_.size()); for (const auto &_value : peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t phone_phoneCall::ID;
+
+object_ptr<phone_phoneCall> phone_phoneCall::fetch(TlBufferParser &p) {
+ return make_tl_object<phone_phoneCall>(p);
+}
+
+phone_phoneCall::phone_phoneCall(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : phone_call_(TlFetchObject<PhoneCall>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void phone_phoneCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.phoneCall");
+ s.store_object_field("phone_call", static_cast<const BaseObject *>(phone_call_.get()));
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t photos_photo::ID;
+
+object_ptr<photos_photo> photos_photo::fetch(TlBufferParser &p) {
+ return make_tl_object<photos_photo>(p);
+}
+
+photos_photo::photos_photo(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : photo_(TlFetchObject<Photo>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void photos_photo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photos.photo");
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<photos_Photos> photos_Photos::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case photos_photos::ID:
+ return photos_photos::fetch(p);
+ case photos_photosSlice::ID:
+ return photos_photosSlice::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t photos_photos::ID;
+
+object_ptr<photos_Photos> photos_photos::fetch(TlBufferParser &p) {
+ return make_tl_object<photos_photos>(p);
+}
+
+photos_photos::photos_photos(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : photos_(TlFetchBoxed<TlFetchVector<TlFetchObject<Photo>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void photos_photos::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photos.photos");
+ { s.store_vector_begin("photos", photos_.size()); for (const auto &_value : photos_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t photos_photosSlice::ID;
+
+object_ptr<photos_Photos> photos_photosSlice::fetch(TlBufferParser &p) {
+ return make_tl_object<photos_photosSlice>(p);
+}
+
+photos_photosSlice::photos_photosSlice(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : count_(TlFetchInt::parse(p))
+ , photos_(TlFetchBoxed<TlFetchVector<TlFetchObject<Photo>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void photos_photosSlice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photos.photosSlice");
+ s.store_field("count", count_);
+ { s.store_vector_begin("photos", photos_.size()); for (const auto &_value : photos_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t stats_broadcastStats::ID;
+
+object_ptr<stats_broadcastStats> stats_broadcastStats::fetch(TlBufferParser &p) {
+ return make_tl_object<stats_broadcastStats>(p);
+}
+
+stats_broadcastStats::stats_broadcastStats(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : period_(TlFetchBoxed<TlFetchObject<statsDateRangeDays>, -1237848657>::parse(p))
+ , followers_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p))
+ , views_per_post_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p))
+ , shares_per_post_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p))
+ , enabled_notifications_(TlFetchBoxed<TlFetchObject<statsPercentValue>, -875679776>::parse(p))
+ , growth_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , followers_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , mute_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , top_hours_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , interactions_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , iv_interactions_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , views_by_source_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , new_followers_by_source_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , languages_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , recent_message_interactions_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messageInteractionCounters>, -1387279939>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void stats_broadcastStats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stats.broadcastStats");
+ s.store_object_field("period", static_cast<const BaseObject *>(period_.get()));
+ s.store_object_field("followers", static_cast<const BaseObject *>(followers_.get()));
+ s.store_object_field("views_per_post", static_cast<const BaseObject *>(views_per_post_.get()));
+ s.store_object_field("shares_per_post", static_cast<const BaseObject *>(shares_per_post_.get()));
+ s.store_object_field("enabled_notifications", static_cast<const BaseObject *>(enabled_notifications_.get()));
+ s.store_object_field("growth_graph", static_cast<const BaseObject *>(growth_graph_.get()));
+ s.store_object_field("followers_graph", static_cast<const BaseObject *>(followers_graph_.get()));
+ s.store_object_field("mute_graph", static_cast<const BaseObject *>(mute_graph_.get()));
+ s.store_object_field("top_hours_graph", static_cast<const BaseObject *>(top_hours_graph_.get()));
+ s.store_object_field("interactions_graph", static_cast<const BaseObject *>(interactions_graph_.get()));
+ s.store_object_field("iv_interactions_graph", static_cast<const BaseObject *>(iv_interactions_graph_.get()));
+ s.store_object_field("views_by_source_graph", static_cast<const BaseObject *>(views_by_source_graph_.get()));
+ s.store_object_field("new_followers_by_source_graph", static_cast<const BaseObject *>(new_followers_by_source_graph_.get()));
+ s.store_object_field("languages_graph", static_cast<const BaseObject *>(languages_graph_.get()));
+ { s.store_vector_begin("recent_message_interactions", recent_message_interactions_.size()); for (const auto &_value : recent_message_interactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t stats_megagroupStats::ID;
+
+object_ptr<stats_megagroupStats> stats_megagroupStats::fetch(TlBufferParser &p) {
+ return make_tl_object<stats_megagroupStats>(p);
+}
+
+stats_megagroupStats::stats_megagroupStats(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : period_(TlFetchBoxed<TlFetchObject<statsDateRangeDays>, -1237848657>::parse(p))
+ , members_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p))
+ , messages_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p))
+ , viewers_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p))
+ , posters_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p))
+ , growth_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , members_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , new_members_by_source_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , languages_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , messages_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , actions_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , top_hours_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , weekdays_graph_(TlFetchObject<StatsGraph>::parse(p))
+ , top_posters_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<statsGroupTopPoster>, -1660637285>>, 481674261>::parse(p))
+ , top_admins_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<statsGroupTopAdmin>, -682079097>>, 481674261>::parse(p))
+ , top_inviters_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<statsGroupTopInviter>, 1398765469>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void stats_megagroupStats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stats.megagroupStats");
+ s.store_object_field("period", static_cast<const BaseObject *>(period_.get()));
+ s.store_object_field("members", static_cast<const BaseObject *>(members_.get()));
+ s.store_object_field("messages", static_cast<const BaseObject *>(messages_.get()));
+ s.store_object_field("viewers", static_cast<const BaseObject *>(viewers_.get()));
+ s.store_object_field("posters", static_cast<const BaseObject *>(posters_.get()));
+ s.store_object_field("growth_graph", static_cast<const BaseObject *>(growth_graph_.get()));
+ s.store_object_field("members_graph", static_cast<const BaseObject *>(members_graph_.get()));
+ s.store_object_field("new_members_by_source_graph", static_cast<const BaseObject *>(new_members_by_source_graph_.get()));
+ s.store_object_field("languages_graph", static_cast<const BaseObject *>(languages_graph_.get()));
+ s.store_object_field("messages_graph", static_cast<const BaseObject *>(messages_graph_.get()));
+ s.store_object_field("actions_graph", static_cast<const BaseObject *>(actions_graph_.get()));
+ s.store_object_field("top_hours_graph", static_cast<const BaseObject *>(top_hours_graph_.get()));
+ s.store_object_field("weekdays_graph", static_cast<const BaseObject *>(weekdays_graph_.get()));
+ { s.store_vector_begin("top_posters", top_posters_.size()); for (const auto &_value : top_posters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("top_admins", top_admins_.size()); for (const auto &_value : top_admins_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("top_inviters", top_inviters_.size()); for (const auto &_value : top_inviters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t stats_messageStats::ID;
+
+object_ptr<stats_messageStats> stats_messageStats::fetch(TlBufferParser &p) {
+ return make_tl_object<stats_messageStats>(p);
+}
+
+stats_messageStats::stats_messageStats(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : views_graph_(TlFetchObject<StatsGraph>::parse(p))
+#undef FAIL
+{}
+
+void stats_messageStats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stats.messageStats");
+ s.store_object_field("views_graph", static_cast<const BaseObject *>(views_graph_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t stickers_suggestedShortName::ID;
+
+object_ptr<stickers_suggestedShortName> stickers_suggestedShortName::fetch(TlBufferParser &p) {
+ return make_tl_object<stickers_suggestedShortName>(p);
+}
+
+stickers_suggestedShortName::stickers_suggestedShortName(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : short_name_(TlFetchString<string>::parse(p))
+#undef FAIL
+{}
+
+void stickers_suggestedShortName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickers.suggestedShortName");
+ s.store_field("short_name", short_name_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<storage_FileType> storage_FileType::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case storage_fileUnknown::ID:
+ return storage_fileUnknown::fetch(p);
+ case storage_filePartial::ID:
+ return storage_filePartial::fetch(p);
+ case storage_fileJpeg::ID:
+ return storage_fileJpeg::fetch(p);
+ case storage_fileGif::ID:
+ return storage_fileGif::fetch(p);
+ case storage_filePng::ID:
+ return storage_filePng::fetch(p);
+ case storage_filePdf::ID:
+ return storage_filePdf::fetch(p);
+ case storage_fileMp3::ID:
+ return storage_fileMp3::fetch(p);
+ case storage_fileMov::ID:
+ return storage_fileMov::fetch(p);
+ case storage_fileMp4::ID:
+ return storage_fileMp4::fetch(p);
+ case storage_fileWebp::ID:
+ return storage_fileWebp::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t storage_fileUnknown::ID;
+
+object_ptr<storage_FileType> storage_fileUnknown::fetch(TlBufferParser &p) {
+ return make_tl_object<storage_fileUnknown>();
+}
+
+void storage_fileUnknown::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storage.fileUnknown");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t storage_filePartial::ID;
+
+object_ptr<storage_FileType> storage_filePartial::fetch(TlBufferParser &p) {
+ return make_tl_object<storage_filePartial>();
+}
+
+void storage_filePartial::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storage.filePartial");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t storage_fileJpeg::ID;
+
+object_ptr<storage_FileType> storage_fileJpeg::fetch(TlBufferParser &p) {
+ return make_tl_object<storage_fileJpeg>();
+}
+
+void storage_fileJpeg::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storage.fileJpeg");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t storage_fileGif::ID;
+
+object_ptr<storage_FileType> storage_fileGif::fetch(TlBufferParser &p) {
+ return make_tl_object<storage_fileGif>();
+}
+
+void storage_fileGif::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storage.fileGif");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t storage_filePng::ID;
+
+object_ptr<storage_FileType> storage_filePng::fetch(TlBufferParser &p) {
+ return make_tl_object<storage_filePng>();
+}
+
+void storage_filePng::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storage.filePng");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t storage_filePdf::ID;
+
+object_ptr<storage_FileType> storage_filePdf::fetch(TlBufferParser &p) {
+ return make_tl_object<storage_filePdf>();
+}
+
+void storage_filePdf::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storage.filePdf");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t storage_fileMp3::ID;
+
+object_ptr<storage_FileType> storage_fileMp3::fetch(TlBufferParser &p) {
+ return make_tl_object<storage_fileMp3>();
+}
+
+void storage_fileMp3::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storage.fileMp3");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t storage_fileMov::ID;
+
+object_ptr<storage_FileType> storage_fileMov::fetch(TlBufferParser &p) {
+ return make_tl_object<storage_fileMov>();
+}
+
+void storage_fileMov::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storage.fileMov");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t storage_fileMp4::ID;
+
+object_ptr<storage_FileType> storage_fileMp4::fetch(TlBufferParser &p) {
+ return make_tl_object<storage_fileMp4>();
+}
+
+void storage_fileMp4::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storage.fileMp4");
+ s.store_class_end();
+ }
+}
+
+const std::int32_t storage_fileWebp::ID;
+
+object_ptr<storage_FileType> storage_fileWebp::fetch(TlBufferParser &p) {
+ return make_tl_object<storage_fileWebp>();
+}
+
+void storage_fileWebp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "storage.fileWebp");
+ s.store_class_end();
+ }
+}
+
+object_ptr<updates_ChannelDifference> updates_ChannelDifference::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case updates_channelDifferenceEmpty::ID:
+ return updates_channelDifferenceEmpty::fetch(p);
+ case updates_channelDifferenceTooLong::ID:
+ return updates_channelDifferenceTooLong::fetch(p);
+ case updates_channelDifference::ID:
+ return updates_channelDifference::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+updates_channelDifferenceEmpty::updates_channelDifferenceEmpty()
+ : flags_()
+ , final_()
+ , pts_()
+ , timeout_()
+{}
+
+const std::int32_t updates_channelDifferenceEmpty::ID;
+
+object_ptr<updates_ChannelDifference> updates_channelDifferenceEmpty::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updates_channelDifferenceEmpty> res = make_tl_object<updates_channelDifferenceEmpty>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->final_ = TlFetchTrue::parse(p); }
+ res->pts_ = TlFetchInt::parse(p);
+ if (var0 & 2) { res->timeout_ = TlFetchInt::parse(p); }
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updates_channelDifferenceEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.channelDifferenceEmpty");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("pts", pts_);
+ if (var0 & 2) { s.store_field("timeout", timeout_); }
+ s.store_class_end();
+ }
+}
+
+updates_channelDifferenceTooLong::updates_channelDifferenceTooLong()
+ : flags_()
+ , final_()
+ , timeout_()
+ , dialog_()
+ , messages_()
+ , chats_()
+ , users_()
+{}
+
+const std::int32_t updates_channelDifferenceTooLong::ID;
+
+object_ptr<updates_ChannelDifference> updates_channelDifferenceTooLong::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updates_channelDifferenceTooLong> res = make_tl_object<updates_channelDifferenceTooLong>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->final_ = TlFetchTrue::parse(p); }
+ if (var0 & 2) { res->timeout_ = TlFetchInt::parse(p); }
+ res->dialog_ = TlFetchObject<Dialog>::parse(p);
+ res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p);
+ res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updates_channelDifferenceTooLong::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.channelDifferenceTooLong");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { s.store_field("timeout", timeout_); }
+ s.store_object_field("dialog", static_cast<const BaseObject *>(dialog_.get()));
+ { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+updates_channelDifference::updates_channelDifference()
+ : flags_()
+ , final_()
+ , pts_()
+ , timeout_()
+ , new_messages_()
+ , other_updates_()
+ , chats_()
+ , users_()
+{}
+
+const std::int32_t updates_channelDifference::ID;
+
+object_ptr<updates_ChannelDifference> updates_channelDifference::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ object_ptr<updates_channelDifference> res = make_tl_object<updates_channelDifference>();
+ int32 var0;
+ if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); }
+ if (var0 & 1) { res->final_ = TlFetchTrue::parse(p); }
+ res->pts_ = TlFetchInt::parse(p);
+ if (var0 & 2) { res->timeout_ = TlFetchInt::parse(p); }
+ res->new_messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p);
+ res->other_updates_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Update>>, 481674261>::parse(p);
+ res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p);
+ res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+ if (p.get_error()) { FAIL(""); }
+ return std::move(res);
+#undef FAIL
+}
+
+void updates_channelDifference::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.channelDifference");
+ int32 var0;
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("pts", pts_);
+ if (var0 & 2) { s.store_field("timeout", timeout_); }
+ { s.store_vector_begin("new_messages", new_messages_.size()); for (const auto &_value : new_messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("other_updates", other_updates_.size()); for (const auto &_value : other_updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+object_ptr<updates_Difference> updates_Difference::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case updates_differenceEmpty::ID:
+ return updates_differenceEmpty::fetch(p);
+ case updates_difference::ID:
+ return updates_difference::fetch(p);
+ case updates_differenceSlice::ID:
+ return updates_differenceSlice::fetch(p);
+ case updates_differenceTooLong::ID:
+ return updates_differenceTooLong::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t updates_differenceEmpty::ID;
+
+object_ptr<updates_Difference> updates_differenceEmpty::fetch(TlBufferParser &p) {
+ return make_tl_object<updates_differenceEmpty>(p);
+}
+
+updates_differenceEmpty::updates_differenceEmpty(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : date_(TlFetchInt::parse(p))
+ , seq_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updates_differenceEmpty::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.differenceEmpty");
+ s.store_field("date", date_);
+ s.store_field("seq", seq_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updates_difference::ID;
+
+object_ptr<updates_Difference> updates_difference::fetch(TlBufferParser &p) {
+ return make_tl_object<updates_difference>(p);
+}
+
+updates_difference::updates_difference(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : new_messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p))
+ , new_encrypted_messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<EncryptedMessage>>, 481674261>::parse(p))
+ , other_updates_(TlFetchBoxed<TlFetchVector<TlFetchObject<Update>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+ , state_(TlFetchBoxed<TlFetchObject<updates_state>, -1519637954>::parse(p))
+#undef FAIL
+{}
+
+void updates_difference::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.difference");
+ { s.store_vector_begin("new_messages", new_messages_.size()); for (const auto &_value : new_messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("new_encrypted_messages", new_encrypted_messages_.size()); for (const auto &_value : new_encrypted_messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("other_updates", other_updates_.size()); for (const auto &_value : other_updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("state", static_cast<const BaseObject *>(state_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updates_differenceSlice::ID;
+
+object_ptr<updates_Difference> updates_differenceSlice::fetch(TlBufferParser &p) {
+ return make_tl_object<updates_differenceSlice>(p);
+}
+
+updates_differenceSlice::updates_differenceSlice(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : new_messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p))
+ , new_encrypted_messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<EncryptedMessage>>, 481674261>::parse(p))
+ , other_updates_(TlFetchBoxed<TlFetchVector<TlFetchObject<Update>>, 481674261>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+ , intermediate_state_(TlFetchBoxed<TlFetchObject<updates_state>, -1519637954>::parse(p))
+#undef FAIL
+{}
+
+void updates_differenceSlice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.differenceSlice");
+ { s.store_vector_begin("new_messages", new_messages_.size()); for (const auto &_value : new_messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("new_encrypted_messages", new_encrypted_messages_.size()); for (const auto &_value : new_encrypted_messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("other_updates", other_updates_.size()); for (const auto &_value : other_updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("intermediate_state", static_cast<const BaseObject *>(intermediate_state_.get()));
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updates_differenceTooLong::ID;
+
+object_ptr<updates_Difference> updates_differenceTooLong::fetch(TlBufferParser &p) {
+ return make_tl_object<updates_differenceTooLong>(p);
+}
+
+updates_differenceTooLong::updates_differenceTooLong(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : pts_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updates_differenceTooLong::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.differenceTooLong");
+ s.store_field("pts", pts_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t updates_state::ID;
+
+object_ptr<updates_state> updates_state::fetch(TlBufferParser &p) {
+ return make_tl_object<updates_state>(p);
+}
+
+updates_state::updates_state(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : pts_(TlFetchInt::parse(p))
+ , qts_(TlFetchInt::parse(p))
+ , date_(TlFetchInt::parse(p))
+ , seq_(TlFetchInt::parse(p))
+ , unread_count_(TlFetchInt::parse(p))
+#undef FAIL
+{}
+
+void updates_state::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.state");
+ s.store_field("pts", pts_);
+ s.store_field("qts", qts_);
+ s.store_field("date", date_);
+ s.store_field("seq", seq_);
+ s.store_field("unread_count", unread_count_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<upload_CdnFile> upload_CdnFile::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case upload_cdnFileReuploadNeeded::ID:
+ return upload_cdnFileReuploadNeeded::fetch(p);
+ case upload_cdnFile::ID:
+ return upload_cdnFile::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t upload_cdnFileReuploadNeeded::ID;
+
+object_ptr<upload_CdnFile> upload_cdnFileReuploadNeeded::fetch(TlBufferParser &p) {
+ return make_tl_object<upload_cdnFileReuploadNeeded>(p);
+}
+
+upload_cdnFileReuploadNeeded::upload_cdnFileReuploadNeeded(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : request_token_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void upload_cdnFileReuploadNeeded::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.cdnFileReuploadNeeded");
+ s.store_bytes_field("request_token", request_token_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t upload_cdnFile::ID;
+
+object_ptr<upload_CdnFile> upload_cdnFile::fetch(TlBufferParser &p) {
+ return make_tl_object<upload_cdnFile>(p);
+}
+
+upload_cdnFile::upload_cdnFile(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : bytes_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void upload_cdnFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.cdnFile");
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+object_ptr<upload_File> upload_File::fetch(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return nullptr;
+ int constructor = p.fetch_int();
+ switch (constructor) {
+ case upload_file::ID:
+ return upload_file::fetch(p);
+ case upload_fileCdnRedirect::ID:
+ return upload_fileCdnRedirect::fetch(p);
+ default:
+ FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor));
+ }
+#undef FAIL
+}
+
+const std::int32_t upload_file::ID;
+
+object_ptr<upload_File> upload_file::fetch(TlBufferParser &p) {
+ return make_tl_object<upload_file>(p);
+}
+
+upload_file::upload_file(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : type_(TlFetchObject<storage_FileType>::parse(p))
+ , mtime_(TlFetchInt::parse(p))
+ , bytes_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void upload_file::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.file");
+ s.store_object_field("type", static_cast<const BaseObject *>(type_.get()));
+ s.store_field("mtime", mtime_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t upload_fileCdnRedirect::ID;
+
+object_ptr<upload_File> upload_fileCdnRedirect::fetch(TlBufferParser &p) {
+ return make_tl_object<upload_fileCdnRedirect>(p);
+}
+
+upload_fileCdnRedirect::upload_fileCdnRedirect(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : dc_id_(TlFetchInt::parse(p))
+ , file_token_(TlFetchBytes<bytes>::parse(p))
+ , encryption_key_(TlFetchBytes<bytes>::parse(p))
+ , encryption_iv_(TlFetchBytes<bytes>::parse(p))
+ , file_hashes_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<fileHash>, -207944868>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void upload_fileCdnRedirect::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.fileCdnRedirect");
+ s.store_field("dc_id", dc_id_);
+ s.store_bytes_field("file_token", file_token_);
+ s.store_bytes_field("encryption_key", encryption_key_);
+ s.store_bytes_field("encryption_iv", encryption_iv_);
+ { s.store_vector_begin("file_hashes", file_hashes_.size()); for (const auto &_value : file_hashes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+const std::int32_t upload_webFile::ID;
+
+object_ptr<upload_webFile> upload_webFile::fetch(TlBufferParser &p) {
+ return make_tl_object<upload_webFile>(p);
+}
+
+upload_webFile::upload_webFile(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : size_(TlFetchInt::parse(p))
+ , mime_type_(TlFetchString<string>::parse(p))
+ , file_type_(TlFetchObject<storage_FileType>::parse(p))
+ , mtime_(TlFetchInt::parse(p))
+ , bytes_(TlFetchBytes<bytes>::parse(p))
+#undef FAIL
+{}
+
+void upload_webFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.webFile");
+ s.store_field("size", size_);
+ s.store_field("mime_type", mime_type_);
+ s.store_object_field("file_type", static_cast<const BaseObject *>(file_type_.get()));
+ s.store_field("mtime", mtime_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+const std::int32_t users_userFull::ID;
+
+object_ptr<users_userFull> users_userFull::fetch(TlBufferParser &p) {
+ return make_tl_object<users_userFull>(p);
+}
+
+users_userFull::users_userFull(TlBufferParser &p)
+#define FAIL(error) p.set_error(error)
+ : full_user_(TlFetchBoxed<TlFetchObject<userFull>, -994968513>::parse(p))
+ , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p))
+ , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p))
+#undef FAIL
+{}
+
+void users_userFull::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "users.userFull");
+ s.store_object_field("full_user", static_cast<const BaseObject *>(full_user_.get()));
+ { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+account_acceptAuthorization::account_acceptAuthorization(int64 bot_id_, string const &scope_, string const &public_key_, array<object_ptr<secureValueHash>> &&value_hashes_, object_ptr<secureCredentialsEncrypted> &&credentials_)
+ : bot_id_(bot_id_)
+ , scope_(scope_)
+ , public_key_(public_key_)
+ , value_hashes_(std::move(value_hashes_))
+ , credentials_(std::move(credentials_))
+{}
+
+const std::int32_t account_acceptAuthorization::ID;
+
+void account_acceptAuthorization::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-202552205);
+ TlStoreBinary::store(bot_id_, s);
+ TlStoreString::store(scope_, s);
+ TlStoreString::store(public_key_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -316748368>>, 481674261>::store(value_hashes_, s);
+ TlStoreBoxed<TlStoreObject, 871426631>::store(credentials_, s);
+}
+
+void account_acceptAuthorization::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-202552205);
+ TlStoreBinary::store(bot_id_, s);
+ TlStoreString::store(scope_, s);
+ TlStoreString::store(public_key_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -316748368>>, 481674261>::store(value_hashes_, s);
+ TlStoreBoxed<TlStoreObject, 871426631>::store(credentials_, s);
+}
+
+void account_acceptAuthorization::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.acceptAuthorization");
+ s.store_field("bot_id", bot_id_);
+ s.store_field("scope", scope_);
+ s.store_field("public_key", public_key_);
+ { s.store_vector_begin("value_hashes", value_hashes_.size()); for (const auto &_value : value_hashes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_object_field("credentials", static_cast<const BaseObject *>(credentials_.get()));
+ s.store_class_end();
+ }
+}
+
+account_acceptAuthorization::ReturnType account_acceptAuthorization::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_cancelPasswordEmail::ID;
+
+void account_cancelPasswordEmail::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1043606090);
+}
+
+void account_cancelPasswordEmail::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1043606090);
+}
+
+void account_cancelPasswordEmail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.cancelPasswordEmail");
+ s.store_class_end();
+ }
+}
+
+account_cancelPasswordEmail::ReturnType account_cancelPasswordEmail::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_changeAuthorizationSettings::account_changeAuthorizationSettings(int32 flags_, int64 hash_, bool encrypted_requests_disabled_, bool call_requests_disabled_)
+ : flags_(flags_)
+ , hash_(hash_)
+ , encrypted_requests_disabled_(encrypted_requests_disabled_)
+ , call_requests_disabled_(call_requests_disabled_)
+{}
+
+const std::int32_t account_changeAuthorizationSettings::ID;
+
+void account_changeAuthorizationSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1089766498);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(hash_, s);
+ if (var0 & 1) { TlStoreBool::store(encrypted_requests_disabled_, s); }
+ if (var0 & 2) { TlStoreBool::store(call_requests_disabled_, s); }
+}
+
+void account_changeAuthorizationSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1089766498);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(hash_, s);
+ if (var0 & 1) { TlStoreBool::store(encrypted_requests_disabled_, s); }
+ if (var0 & 2) { TlStoreBool::store(call_requests_disabled_, s); }
+}
+
+void account_changeAuthorizationSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.changeAuthorizationSettings");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("hash", hash_);
+ if (var0 & 1) { s.store_field("encrypted_requests_disabled", encrypted_requests_disabled_); }
+ if (var0 & 2) { s.store_field("call_requests_disabled", call_requests_disabled_); }
+ s.store_class_end();
+ }
+}
+
+account_changeAuthorizationSettings::ReturnType account_changeAuthorizationSettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_changePhone::account_changePhone(string const &phone_number_, string const &phone_code_hash_, string const &phone_code_)
+ : phone_number_(phone_number_)
+ , phone_code_hash_(phone_code_hash_)
+ , phone_code_(phone_code_)
+{}
+
+const std::int32_t account_changePhone::ID;
+
+void account_changePhone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1891839707);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+ TlStoreString::store(phone_code_, s);
+}
+
+void account_changePhone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1891839707);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+ TlStoreString::store(phone_code_, s);
+}
+
+void account_changePhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.changePhone");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("phone_code_hash", phone_code_hash_);
+ s.store_field("phone_code", phone_code_);
+ s.store_class_end();
+ }
+}
+
+account_changePhone::ReturnType account_changePhone::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<User>::parse(p);
+#undef FAIL
+}
+
+account_checkUsername::account_checkUsername(string const &username_)
+ : username_(username_)
+{}
+
+const std::int32_t account_checkUsername::ID;
+
+void account_checkUsername::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(655677548);
+ TlStoreString::store(username_, s);
+}
+
+void account_checkUsername::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(655677548);
+ TlStoreString::store(username_, s);
+}
+
+void account_checkUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.checkUsername");
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+account_checkUsername::ReturnType account_checkUsername::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_clearRecentEmojiStatuses::ID;
+
+void account_clearRecentEmojiStatuses::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(404757166);
+}
+
+void account_clearRecentEmojiStatuses::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(404757166);
+}
+
+void account_clearRecentEmojiStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.clearRecentEmojiStatuses");
+ s.store_class_end();
+ }
+}
+
+account_clearRecentEmojiStatuses::ReturnType account_clearRecentEmojiStatuses::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_confirmPasswordEmail::account_confirmPasswordEmail(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t account_confirmPasswordEmail::ID;
+
+void account_confirmPasswordEmail::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1881204448);
+ TlStoreString::store(code_, s);
+}
+
+void account_confirmPasswordEmail::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1881204448);
+ TlStoreString::store(code_, s);
+}
+
+void account_confirmPasswordEmail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.confirmPasswordEmail");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+account_confirmPasswordEmail::ReturnType account_confirmPasswordEmail::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_confirmPhone::account_confirmPhone(string const &phone_code_hash_, string const &phone_code_)
+ : phone_code_hash_(phone_code_hash_)
+ , phone_code_(phone_code_)
+{}
+
+const std::int32_t account_confirmPhone::ID;
+
+void account_confirmPhone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1596029123);
+ TlStoreString::store(phone_code_hash_, s);
+ TlStoreString::store(phone_code_, s);
+}
+
+void account_confirmPhone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1596029123);
+ TlStoreString::store(phone_code_hash_, s);
+ TlStoreString::store(phone_code_, s);
+}
+
+void account_confirmPhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.confirmPhone");
+ s.store_field("phone_code_hash", phone_code_hash_);
+ s.store_field("phone_code", phone_code_);
+ s.store_class_end();
+ }
+}
+
+account_confirmPhone::ReturnType account_confirmPhone::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_createTheme::account_createTheme(int32 flags_, string const &slug_, string const &title_, object_ptr<InputDocument> &&document_, array<object_ptr<inputThemeSettings>> &&settings_)
+ : flags_(flags_)
+ , slug_(slug_)
+ , title_(title_)
+ , document_(std::move(document_))
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t account_createTheme::ID;
+
+void account_createTheme::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1697530880);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(slug_, s);
+ TlStoreString::store(title_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1881255857>>, 481674261>::store(settings_, s); }
+}
+
+void account_createTheme::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1697530880);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(slug_, s);
+ TlStoreString::store(title_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1881255857>>, 481674261>::store(settings_, s); }
+}
+
+void account_createTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.createTheme");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("slug", slug_);
+ s.store_field("title", title_);
+ if (var0 & 4) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); }
+ if (var0 & 8) { { s.store_vector_begin("settings", settings_.size()); for (const auto &_value : settings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+account_createTheme::ReturnType account_createTheme::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<theme>, -1609668650>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_declinePasswordReset::ID;
+
+void account_declinePasswordReset::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1284770294);
+}
+
+void account_declinePasswordReset::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1284770294);
+}
+
+void account_declinePasswordReset::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.declinePasswordReset");
+ s.store_class_end();
+ }
+}
+
+account_declinePasswordReset::ReturnType account_declinePasswordReset::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_deleteAccount::account_deleteAccount(int32 flags_, string const &reason_, object_ptr<InputCheckPasswordSRP> &&password_)
+ : flags_(flags_)
+ , reason_(reason_)
+ , password_(std::move(password_))
+{}
+
+const std::int32_t account_deleteAccount::ID;
+
+void account_deleteAccount::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1564422284);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(reason_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); }
+}
+
+void account_deleteAccount::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1564422284);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(reason_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); }
+}
+
+void account_deleteAccount::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.deleteAccount");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("reason", reason_);
+ if (var0 & 1) { s.store_object_field("password", static_cast<const BaseObject *>(password_.get())); }
+ s.store_class_end();
+ }
+}
+
+account_deleteAccount::ReturnType account_deleteAccount::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_deleteSecureValue::account_deleteSecureValue(array<object_ptr<SecureValueType>> &&types_)
+ : types_(std::move(types_))
+{}
+
+const std::int32_t account_deleteSecureValue::ID;
+
+void account_deleteSecureValue::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1199522741);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(types_, s);
+}
+
+void account_deleteSecureValue::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1199522741);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(types_, s);
+}
+
+void account_deleteSecureValue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.deleteSecureValue");
+ { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+account_deleteSecureValue::ReturnType account_deleteSecureValue::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_finishTakeoutSession::account_finishTakeoutSession(int32 flags_, bool success_)
+ : flags_(flags_)
+ , success_(success_)
+{}
+
+const std::int32_t account_finishTakeoutSession::ID;
+
+void account_finishTakeoutSession::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(489050862);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void account_finishTakeoutSession::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(489050862);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void account_finishTakeoutSession::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.finishTakeoutSession");
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+account_finishTakeoutSession::ReturnType account_finishTakeoutSession::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_getAccountTTL::ID;
+
+void account_getAccountTTL::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(150761757);
+}
+
+void account_getAccountTTL::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(150761757);
+}
+
+void account_getAccountTTL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getAccountTTL");
+ s.store_class_end();
+ }
+}
+
+account_getAccountTTL::ReturnType account_getAccountTTL::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<accountDaysTTL>, -1194283041>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_getAllSecureValues::ID;
+
+void account_getAllSecureValues::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1299661699);
+}
+
+void account_getAllSecureValues::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1299661699);
+}
+
+void account_getAllSecureValues::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getAllSecureValues");
+ s.store_class_end();
+ }
+}
+
+account_getAllSecureValues::ReturnType account_getAllSecureValues::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<secureValue>, 411017418>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+account_getAuthorizationForm::account_getAuthorizationForm(int64 bot_id_, string const &scope_, string const &public_key_)
+ : bot_id_(bot_id_)
+ , scope_(scope_)
+ , public_key_(public_key_)
+{}
+
+const std::int32_t account_getAuthorizationForm::ID;
+
+void account_getAuthorizationForm::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1456907910);
+ TlStoreBinary::store(bot_id_, s);
+ TlStoreString::store(scope_, s);
+ TlStoreString::store(public_key_, s);
+}
+
+void account_getAuthorizationForm::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1456907910);
+ TlStoreBinary::store(bot_id_, s);
+ TlStoreString::store(scope_, s);
+ TlStoreString::store(public_key_, s);
+}
+
+void account_getAuthorizationForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getAuthorizationForm");
+ s.store_field("bot_id", bot_id_);
+ s.store_field("scope", scope_);
+ s.store_field("public_key", public_key_);
+ s.store_class_end();
+ }
+}
+
+account_getAuthorizationForm::ReturnType account_getAuthorizationForm::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_authorizationForm>, -1389486888>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_getAuthorizations::ID;
+
+void account_getAuthorizations::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-484392616);
+}
+
+void account_getAuthorizations::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-484392616);
+}
+
+void account_getAuthorizations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getAuthorizations");
+ s.store_class_end();
+ }
+}
+
+account_getAuthorizations::ReturnType account_getAuthorizations::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_authorizations>, 1275039392>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_getAutoDownloadSettings::ID;
+
+void account_getAutoDownloadSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1457130303);
+}
+
+void account_getAutoDownloadSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1457130303);
+}
+
+void account_getAutoDownloadSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getAutoDownloadSettings");
+ s.store_class_end();
+ }
+}
+
+account_getAutoDownloadSettings::ReturnType account_getAutoDownloadSettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_autoDownloadSettings>, 1674235686>::parse(p);
+#undef FAIL
+}
+
+account_getChatThemes::account_getChatThemes(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t account_getChatThemes::ID;
+
+void account_getChatThemes::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-700916087);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getChatThemes::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-700916087);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getChatThemes::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getChatThemes");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+account_getChatThemes::ReturnType account_getChatThemes::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<account_Themes>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_getContactSignUpNotification::ID;
+
+void account_getContactSignUpNotification::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1626880216);
+}
+
+void account_getContactSignUpNotification::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1626880216);
+}
+
+void account_getContactSignUpNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getContactSignUpNotification");
+ s.store_class_end();
+ }
+}
+
+account_getContactSignUpNotification::ReturnType account_getContactSignUpNotification::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_getContentSettings::ID;
+
+void account_getContentSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1952756306);
+}
+
+void account_getContentSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1952756306);
+}
+
+void account_getContentSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getContentSettings");
+ s.store_class_end();
+ }
+}
+
+account_getContentSettings::ReturnType account_getContentSettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_contentSettings>, 1474462241>::parse(p);
+#undef FAIL
+}
+
+account_getDefaultEmojiStatuses::account_getDefaultEmojiStatuses(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t account_getDefaultEmojiStatuses::ID;
+
+void account_getDefaultEmojiStatuses::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-696962170);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getDefaultEmojiStatuses::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-696962170);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getDefaultEmojiStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getDefaultEmojiStatuses");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+account_getDefaultEmojiStatuses::ReturnType account_getDefaultEmojiStatuses::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<account_EmojiStatuses>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_getGlobalPrivacySettings::ID;
+
+void account_getGlobalPrivacySettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-349483786);
+}
+
+void account_getGlobalPrivacySettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-349483786);
+}
+
+void account_getGlobalPrivacySettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getGlobalPrivacySettings");
+ s.store_class_end();
+ }
+}
+
+account_getGlobalPrivacySettings::ReturnType account_getGlobalPrivacySettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<globalPrivacySettings>, -1096616924>::parse(p);
+#undef FAIL
+}
+
+account_getMultiWallPapers::account_getMultiWallPapers(array<object_ptr<InputWallPaper>> &&wallpapers_)
+ : wallpapers_(std::move(wallpapers_))
+{}
+
+const std::int32_t account_getMultiWallPapers::ID;
+
+void account_getMultiWallPapers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1705865692);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(wallpapers_, s);
+}
+
+void account_getMultiWallPapers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1705865692);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(wallpapers_, s);
+}
+
+void account_getMultiWallPapers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getMultiWallPapers");
+ { s.store_vector_begin("wallpapers", wallpapers_.size()); for (const auto &_value : wallpapers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+account_getMultiWallPapers::ReturnType account_getMultiWallPapers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchObject<WallPaper>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+account_getNotifyExceptions::account_getNotifyExceptions(int32 flags_, bool compare_sound_, object_ptr<InputNotifyPeer> &&peer_)
+ : flags_(flags_)
+ , compare_sound_(compare_sound_)
+ , peer_(std::move(peer_))
+{}
+
+const std::int32_t account_getNotifyExceptions::ID;
+
+void account_getNotifyExceptions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1398240377);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); }
+}
+
+void account_getNotifyExceptions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1398240377);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); }
+}
+
+void account_getNotifyExceptions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getNotifyExceptions");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); }
+ s.store_class_end();
+ }
+}
+
+account_getNotifyExceptions::ReturnType account_getNotifyExceptions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+account_getNotifySettings::account_getNotifySettings(object_ptr<InputNotifyPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t account_getNotifySettings::ID;
+
+void account_getNotifySettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(313765169);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void account_getNotifySettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(313765169);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void account_getNotifySettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getNotifySettings");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+account_getNotifySettings::ReturnType account_getNotifySettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_getPassword::ID;
+
+void account_getPassword::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1418342645);
+}
+
+void account_getPassword::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1418342645);
+}
+
+void account_getPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getPassword");
+ s.store_class_end();
+ }
+}
+
+account_getPassword::ReturnType account_getPassword::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_password>, -1787080453>::parse(p);
+#undef FAIL
+}
+
+account_getPasswordSettings::account_getPasswordSettings(object_ptr<InputCheckPasswordSRP> &&password_)
+ : password_(std::move(password_))
+{}
+
+const std::int32_t account_getPasswordSettings::ID;
+
+void account_getPasswordSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1663767815);
+ TlStoreBoxedUnknown<TlStoreObject>::store(password_, s);
+}
+
+void account_getPasswordSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1663767815);
+ TlStoreBoxedUnknown<TlStoreObject>::store(password_, s);
+}
+
+void account_getPasswordSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getPasswordSettings");
+ s.store_object_field("password", static_cast<const BaseObject *>(password_.get()));
+ s.store_class_end();
+ }
+}
+
+account_getPasswordSettings::ReturnType account_getPasswordSettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_passwordSettings>, -1705233435>::parse(p);
+#undef FAIL
+}
+
+account_getPrivacy::account_getPrivacy(object_ptr<InputPrivacyKey> &&key_)
+ : key_(std::move(key_))
+{}
+
+const std::int32_t account_getPrivacy::ID;
+
+void account_getPrivacy::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-623130288);
+ TlStoreBoxedUnknown<TlStoreObject>::store(key_, s);
+}
+
+void account_getPrivacy::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-623130288);
+ TlStoreBoxedUnknown<TlStoreObject>::store(key_, s);
+}
+
+void account_getPrivacy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getPrivacy");
+ s.store_object_field("key", static_cast<const BaseObject *>(key_.get()));
+ s.store_class_end();
+ }
+}
+
+account_getPrivacy::ReturnType account_getPrivacy::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_privacyRules>, 1352683077>::parse(p);
+#undef FAIL
+}
+
+account_getRecentEmojiStatuses::account_getRecentEmojiStatuses(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t account_getRecentEmojiStatuses::ID;
+
+void account_getRecentEmojiStatuses::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(257392901);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getRecentEmojiStatuses::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(257392901);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getRecentEmojiStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getRecentEmojiStatuses");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+account_getRecentEmojiStatuses::ReturnType account_getRecentEmojiStatuses::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<account_EmojiStatuses>::parse(p);
+#undef FAIL
+}
+
+account_getSavedRingtones::account_getSavedRingtones(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t account_getSavedRingtones::ID;
+
+void account_getSavedRingtones::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-510647672);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getSavedRingtones::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-510647672);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getSavedRingtones::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getSavedRingtones");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+account_getSavedRingtones::ReturnType account_getSavedRingtones::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<account_SavedRingtones>::parse(p);
+#undef FAIL
+}
+
+account_getSecureValue::account_getSecureValue(array<object_ptr<SecureValueType>> &&types_)
+ : types_(std::move(types_))
+{}
+
+const std::int32_t account_getSecureValue::ID;
+
+void account_getSecureValue::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1936088002);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(types_, s);
+}
+
+void account_getSecureValue::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1936088002);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(types_, s);
+}
+
+void account_getSecureValue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getSecureValue");
+ { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+account_getSecureValue::ReturnType account_getSecureValue::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<secureValue>, 411017418>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+account_getTheme::account_getTheme(string const &format_, object_ptr<InputTheme> &&theme_)
+ : format_(format_)
+ , theme_(std::move(theme_))
+{}
+
+const std::int32_t account_getTheme::ID;
+
+void account_getTheme::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(978872812);
+ TlStoreString::store(format_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s);
+}
+
+void account_getTheme::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(978872812);
+ TlStoreString::store(format_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s);
+}
+
+void account_getTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getTheme");
+ s.store_field("format", format_);
+ s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get()));
+ s.store_class_end();
+ }
+}
+
+account_getTheme::ReturnType account_getTheme::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<theme>, -1609668650>::parse(p);
+#undef FAIL
+}
+
+account_getThemes::account_getThemes(string const &format_, int64 hash_)
+ : format_(format_)
+ , hash_(hash_)
+{}
+
+const std::int32_t account_getThemes::ID;
+
+void account_getThemes::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1913054296);
+ TlStoreString::store(format_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getThemes::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1913054296);
+ TlStoreString::store(format_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getThemes::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getThemes");
+ s.store_field("format", format_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+account_getThemes::ReturnType account_getThemes::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<account_Themes>::parse(p);
+#undef FAIL
+}
+
+account_getTmpPassword::account_getTmpPassword(object_ptr<InputCheckPasswordSRP> &&password_, int32 period_)
+ : password_(std::move(password_))
+ , period_(period_)
+{}
+
+const std::int32_t account_getTmpPassword::ID;
+
+void account_getTmpPassword::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1151208273);
+ TlStoreBoxedUnknown<TlStoreObject>::store(password_, s);
+ TlStoreBinary::store(period_, s);
+}
+
+void account_getTmpPassword::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1151208273);
+ TlStoreBoxedUnknown<TlStoreObject>::store(password_, s);
+ TlStoreBinary::store(period_, s);
+}
+
+void account_getTmpPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getTmpPassword");
+ s.store_object_field("password", static_cast<const BaseObject *>(password_.get()));
+ s.store_field("period", period_);
+ s.store_class_end();
+ }
+}
+
+account_getTmpPassword::ReturnType account_getTmpPassword::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_tmpPassword>, -614138572>::parse(p);
+#undef FAIL
+}
+
+account_getWallPaper::account_getWallPaper(object_ptr<InputWallPaper> &&wallpaper_)
+ : wallpaper_(std::move(wallpaper_))
+{}
+
+const std::int32_t account_getWallPaper::ID;
+
+void account_getWallPaper::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-57811990);
+ TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s);
+}
+
+void account_getWallPaper::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-57811990);
+ TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s);
+}
+
+void account_getWallPaper::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getWallPaper");
+ s.store_object_field("wallpaper", static_cast<const BaseObject *>(wallpaper_.get()));
+ s.store_class_end();
+ }
+}
+
+account_getWallPaper::ReturnType account_getWallPaper::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<WallPaper>::parse(p);
+#undef FAIL
+}
+
+account_getWallPapers::account_getWallPapers(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t account_getWallPapers::ID;
+
+void account_getWallPapers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(127302966);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getWallPapers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(127302966);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_getWallPapers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getWallPapers");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+account_getWallPapers::ReturnType account_getWallPapers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<account_WallPapers>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_getWebAuthorizations::ID;
+
+void account_getWebAuthorizations::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(405695855);
+}
+
+void account_getWebAuthorizations::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(405695855);
+}
+
+void account_getWebAuthorizations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.getWebAuthorizations");
+ s.store_class_end();
+ }
+}
+
+account_getWebAuthorizations::ReturnType account_getWebAuthorizations::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_webAuthorizations>, -313079300>::parse(p);
+#undef FAIL
+}
+
+account_initTakeoutSession::account_initTakeoutSession(int32 flags_, bool contacts_, bool message_users_, bool message_chats_, bool message_megagroups_, bool message_channels_, bool files_, int64 file_max_size_)
+ : flags_(flags_)
+ , contacts_(contacts_)
+ , message_users_(message_users_)
+ , message_chats_(message_chats_)
+ , message_megagroups_(message_megagroups_)
+ , message_channels_(message_channels_)
+ , files_(files_)
+ , file_max_size_(file_max_size_)
+{}
+
+const std::int32_t account_initTakeoutSession::ID;
+
+void account_initTakeoutSession::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1896617296);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 32) { TlStoreBinary::store(file_max_size_, s); }
+}
+
+void account_initTakeoutSession::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1896617296);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 32) { TlStoreBinary::store(file_max_size_, s); }
+}
+
+void account_initTakeoutSession::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.initTakeoutSession");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 32) { s.store_field("file_max_size", file_max_size_); }
+ s.store_class_end();
+ }
+}
+
+account_initTakeoutSession::ReturnType account_initTakeoutSession::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_takeout>, 1304052993>::parse(p);
+#undef FAIL
+}
+
+account_installTheme::account_installTheme(int32 flags_, bool dark_, object_ptr<InputTheme> &&theme_, string const &format_, object_ptr<BaseTheme> &&base_theme_)
+ : flags_(flags_)
+ , dark_(dark_)
+ , theme_(std::move(theme_))
+ , format_(format_)
+ , base_theme_(std::move(base_theme_))
+{}
+
+const std::int32_t account_installTheme::ID;
+
+void account_installTheme::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-953697477);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s); }
+ if (var0 & 4) { TlStoreString::store(format_, s); }
+ if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(base_theme_, s); }
+}
+
+void account_installTheme::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-953697477);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s); }
+ if (var0 & 4) { TlStoreString::store(format_, s); }
+ if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(base_theme_, s); }
+}
+
+void account_installTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.installTheme");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get())); }
+ if (var0 & 4) { s.store_field("format", format_); }
+ if (var0 & 8) { s.store_object_field("base_theme", static_cast<const BaseObject *>(base_theme_.get())); }
+ s.store_class_end();
+ }
+}
+
+account_installTheme::ReturnType account_installTheme::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_installWallPaper::account_installWallPaper(object_ptr<InputWallPaper> &&wallpaper_, object_ptr<wallPaperSettings> &&settings_)
+ : wallpaper_(std::move(wallpaper_))
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t account_installWallPaper::ID;
+
+void account_installWallPaper::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-18000023);
+ TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s);
+ TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s);
+}
+
+void account_installWallPaper::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-18000023);
+ TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s);
+ TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s);
+}
+
+void account_installWallPaper::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.installWallPaper");
+ s.store_object_field("wallpaper", static_cast<const BaseObject *>(wallpaper_.get()));
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+account_installWallPaper::ReturnType account_installWallPaper::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_registerDevice::account_registerDevice(int32 flags_, bool no_muted_, int32 token_type_, string const &token_, bool app_sandbox_, bytes &&secret_, array<int64> &&other_uids_)
+ : flags_(flags_)
+ , no_muted_(no_muted_)
+ , token_type_(token_type_)
+ , token_(token_)
+ , app_sandbox_(app_sandbox_)
+ , secret_(std::move(secret_))
+ , other_uids_(std::move(other_uids_))
+{}
+
+const std::int32_t account_registerDevice::ID;
+
+void account_registerDevice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-326762118);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(token_type_, s);
+ TlStoreString::store(token_, s);
+ TlStoreBool::store(app_sandbox_, s);
+ TlStoreString::store(secret_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(other_uids_, s);
+}
+
+void account_registerDevice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-326762118);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(token_type_, s);
+ TlStoreString::store(token_, s);
+ TlStoreBool::store(app_sandbox_, s);
+ TlStoreString::store(secret_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(other_uids_, s);
+}
+
+void account_registerDevice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.registerDevice");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("token_type", token_type_);
+ s.store_field("token", token_);
+ s.store_field("app_sandbox", app_sandbox_);
+ s.store_bytes_field("secret", secret_);
+ { s.store_vector_begin("other_uids", other_uids_.size()); for (const auto &_value : other_uids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+account_registerDevice::ReturnType account_registerDevice::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_reorderUsernames::account_reorderUsernames(array<string> &&order_)
+ : order_(std::move(order_))
+{}
+
+const std::int32_t account_reorderUsernames::ID;
+
+void account_reorderUsernames::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-279966037);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(order_, s);
+}
+
+void account_reorderUsernames::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-279966037);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(order_, s);
+}
+
+void account_reorderUsernames::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.reorderUsernames");
+ { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+account_reorderUsernames::ReturnType account_reorderUsernames::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_reportPeer::account_reportPeer(object_ptr<InputPeer> &&peer_, object_ptr<ReportReason> &&reason_, string const &message_)
+ : peer_(std::move(peer_))
+ , reason_(std::move(reason_))
+ , message_(message_)
+{}
+
+const std::int32_t account_reportPeer::ID;
+
+void account_reportPeer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-977650298);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s);
+ TlStoreString::store(message_, s);
+}
+
+void account_reportPeer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-977650298);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s);
+ TlStoreString::store(message_, s);
+}
+
+void account_reportPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.reportPeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get()));
+ s.store_field("message", message_);
+ s.store_class_end();
+ }
+}
+
+account_reportPeer::ReturnType account_reportPeer::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_reportProfilePhoto::account_reportProfilePhoto(object_ptr<InputPeer> &&peer_, object_ptr<InputPhoto> &&photo_id_, object_ptr<ReportReason> &&reason_, string const &message_)
+ : peer_(std::move(peer_))
+ , photo_id_(std::move(photo_id_))
+ , reason_(std::move(reason_))
+ , message_(message_)
+{}
+
+const std::int32_t account_reportProfilePhoto::ID;
+
+void account_reportProfilePhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-91437323);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(photo_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s);
+ TlStoreString::store(message_, s);
+}
+
+void account_reportProfilePhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-91437323);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(photo_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s);
+ TlStoreString::store(message_, s);
+}
+
+void account_reportProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.reportProfilePhoto");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("photo_id", static_cast<const BaseObject *>(photo_id_.get()));
+ s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get()));
+ s.store_field("message", message_);
+ s.store_class_end();
+ }
+}
+
+account_reportProfilePhoto::ReturnType account_reportProfilePhoto::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_resendPasswordEmail::ID;
+
+void account_resendPasswordEmail::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2055154197);
+}
+
+void account_resendPasswordEmail::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2055154197);
+}
+
+void account_resendPasswordEmail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.resendPasswordEmail");
+ s.store_class_end();
+ }
+}
+
+account_resendPasswordEmail::ReturnType account_resendPasswordEmail::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_resetAuthorization::account_resetAuthorization(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t account_resetAuthorization::ID;
+
+void account_resetAuthorization::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-545786948);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_resetAuthorization::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-545786948);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_resetAuthorization::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.resetAuthorization");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+account_resetAuthorization::ReturnType account_resetAuthorization::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_resetNotifySettings::ID;
+
+void account_resetNotifySettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-612493497);
+}
+
+void account_resetNotifySettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-612493497);
+}
+
+void account_resetNotifySettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.resetNotifySettings");
+ s.store_class_end();
+ }
+}
+
+account_resetNotifySettings::ReturnType account_resetNotifySettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_resetPassword::ID;
+
+void account_resetPassword::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1828139493);
+}
+
+void account_resetPassword::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1828139493);
+}
+
+void account_resetPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.resetPassword");
+ s.store_class_end();
+ }
+}
+
+account_resetPassword::ReturnType account_resetPassword::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<account_ResetPasswordResult>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_resetWallPapers::ID;
+
+void account_resetWallPapers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1153722364);
+}
+
+void account_resetWallPapers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1153722364);
+}
+
+void account_resetWallPapers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.resetWallPapers");
+ s.store_class_end();
+ }
+}
+
+account_resetWallPapers::ReturnType account_resetWallPapers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_resetWebAuthorization::account_resetWebAuthorization(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t account_resetWebAuthorization::ID;
+
+void account_resetWebAuthorization::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(755087855);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_resetWebAuthorization::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(755087855);
+ TlStoreBinary::store(hash_, s);
+}
+
+void account_resetWebAuthorization::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.resetWebAuthorization");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+account_resetWebAuthorization::ReturnType account_resetWebAuthorization::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+const std::int32_t account_resetWebAuthorizations::ID;
+
+void account_resetWebAuthorizations::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1747789204);
+}
+
+void account_resetWebAuthorizations::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1747789204);
+}
+
+void account_resetWebAuthorizations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.resetWebAuthorizations");
+ s.store_class_end();
+ }
+}
+
+account_resetWebAuthorizations::ReturnType account_resetWebAuthorizations::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_saveAutoDownloadSettings::account_saveAutoDownloadSettings(int32 flags_, bool low_, bool high_, object_ptr<autoDownloadSettings> &&settings_)
+ : flags_(flags_)
+ , low_(low_)
+ , high_(high_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t account_saveAutoDownloadSettings::ID;
+
+void account_saveAutoDownloadSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1995661875);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -1896171181>::store(settings_, s);
+}
+
+void account_saveAutoDownloadSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1995661875);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -1896171181>::store(settings_, s);
+}
+
+void account_saveAutoDownloadSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.saveAutoDownloadSettings");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+account_saveAutoDownloadSettings::ReturnType account_saveAutoDownloadSettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_saveRingtone::account_saveRingtone(object_ptr<InputDocument> &&id_, bool unsave_)
+ : id_(std::move(id_))
+ , unsave_(unsave_)
+{}
+
+const std::int32_t account_saveRingtone::ID;
+
+void account_saveRingtone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1038768899);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBool::store(unsave_, s);
+}
+
+void account_saveRingtone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1038768899);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBool::store(unsave_, s);
+}
+
+void account_saveRingtone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.saveRingtone");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_field("unsave", unsave_);
+ s.store_class_end();
+ }
+}
+
+account_saveRingtone::ReturnType account_saveRingtone::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<account_SavedRingtone>::parse(p);
+#undef FAIL
+}
+
+account_saveSecureValue::account_saveSecureValue(object_ptr<inputSecureValue> &&value_, int64 secure_secret_id_)
+ : value_(std::move(value_))
+ , secure_secret_id_(secure_secret_id_)
+{}
+
+const std::int32_t account_saveSecureValue::ID;
+
+void account_saveSecureValue::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1986010339);
+ TlStoreBoxed<TlStoreObject, -618540889>::store(value_, s);
+ TlStoreBinary::store(secure_secret_id_, s);
+}
+
+void account_saveSecureValue::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1986010339);
+ TlStoreBoxed<TlStoreObject, -618540889>::store(value_, s);
+ TlStoreBinary::store(secure_secret_id_, s);
+}
+
+void account_saveSecureValue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.saveSecureValue");
+ s.store_object_field("value", static_cast<const BaseObject *>(value_.get()));
+ s.store_field("secure_secret_id", secure_secret_id_);
+ s.store_class_end();
+ }
+}
+
+account_saveSecureValue::ReturnType account_saveSecureValue::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<secureValue>, 411017418>::parse(p);
+#undef FAIL
+}
+
+account_saveTheme::account_saveTheme(object_ptr<InputTheme> &&theme_, bool unsave_)
+ : theme_(std::move(theme_))
+ , unsave_(unsave_)
+{}
+
+const std::int32_t account_saveTheme::ID;
+
+void account_saveTheme::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-229175188);
+ TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s);
+ TlStoreBool::store(unsave_, s);
+}
+
+void account_saveTheme::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-229175188);
+ TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s);
+ TlStoreBool::store(unsave_, s);
+}
+
+void account_saveTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.saveTheme");
+ s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get()));
+ s.store_field("unsave", unsave_);
+ s.store_class_end();
+ }
+}
+
+account_saveTheme::ReturnType account_saveTheme::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_saveWallPaper::account_saveWallPaper(object_ptr<InputWallPaper> &&wallpaper_, bool unsave_, object_ptr<wallPaperSettings> &&settings_)
+ : wallpaper_(std::move(wallpaper_))
+ , unsave_(unsave_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t account_saveWallPaper::ID;
+
+void account_saveWallPaper::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1817860919);
+ TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s);
+ TlStoreBool::store(unsave_, s);
+ TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s);
+}
+
+void account_saveWallPaper::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1817860919);
+ TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s);
+ TlStoreBool::store(unsave_, s);
+ TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s);
+}
+
+void account_saveWallPaper::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.saveWallPaper");
+ s.store_object_field("wallpaper", static_cast<const BaseObject *>(wallpaper_.get()));
+ s.store_field("unsave", unsave_);
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+account_saveWallPaper::ReturnType account_saveWallPaper::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_sendChangePhoneCode::account_sendChangePhoneCode(string const &phone_number_, object_ptr<codeSettings> &&settings_)
+ : phone_number_(phone_number_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t account_sendChangePhoneCode::ID;
+
+void account_sendChangePhoneCode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2108208411);
+ TlStoreString::store(phone_number_, s);
+ TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s);
+}
+
+void account_sendChangePhoneCode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2108208411);
+ TlStoreString::store(phone_number_, s);
+ TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s);
+}
+
+void account_sendChangePhoneCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.sendChangePhoneCode");
+ s.store_field("phone_number", phone_number_);
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+account_sendChangePhoneCode::ReturnType account_sendChangePhoneCode::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p);
+#undef FAIL
+}
+
+account_sendConfirmPhoneCode::account_sendConfirmPhoneCode(string const &hash_, object_ptr<codeSettings> &&settings_)
+ : hash_(hash_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t account_sendConfirmPhoneCode::ID;
+
+void account_sendConfirmPhoneCode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(457157256);
+ TlStoreString::store(hash_, s);
+ TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s);
+}
+
+void account_sendConfirmPhoneCode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(457157256);
+ TlStoreString::store(hash_, s);
+ TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s);
+}
+
+void account_sendConfirmPhoneCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.sendConfirmPhoneCode");
+ s.store_field("hash", hash_);
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+account_sendConfirmPhoneCode::ReturnType account_sendConfirmPhoneCode::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p);
+#undef FAIL
+}
+
+account_sendVerifyEmailCode::account_sendVerifyEmailCode(object_ptr<EmailVerifyPurpose> &&purpose_, string const &email_)
+ : purpose_(std::move(purpose_))
+ , email_(email_)
+{}
+
+const std::int32_t account_sendVerifyEmailCode::ID;
+
+void account_sendVerifyEmailCode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1730136133);
+ TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s);
+ TlStoreString::store(email_, s);
+}
+
+void account_sendVerifyEmailCode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1730136133);
+ TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s);
+ TlStoreString::store(email_, s);
+}
+
+void account_sendVerifyEmailCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.sendVerifyEmailCode");
+ s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get()));
+ s.store_field("email", email_);
+ s.store_class_end();
+ }
+}
+
+account_sendVerifyEmailCode::ReturnType account_sendVerifyEmailCode::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_sentEmailCode>, -2128640689>::parse(p);
+#undef FAIL
+}
+
+account_sendVerifyPhoneCode::account_sendVerifyPhoneCode(string const &phone_number_, object_ptr<codeSettings> &&settings_)
+ : phone_number_(phone_number_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t account_sendVerifyPhoneCode::ID;
+
+void account_sendVerifyPhoneCode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1516022023);
+ TlStoreString::store(phone_number_, s);
+ TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s);
+}
+
+void account_sendVerifyPhoneCode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1516022023);
+ TlStoreString::store(phone_number_, s);
+ TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s);
+}
+
+void account_sendVerifyPhoneCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.sendVerifyPhoneCode");
+ s.store_field("phone_number", phone_number_);
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+account_sendVerifyPhoneCode::ReturnType account_sendVerifyPhoneCode::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p);
+#undef FAIL
+}
+
+account_setAccountTTL::account_setAccountTTL(object_ptr<accountDaysTTL> &&ttl_)
+ : ttl_(std::move(ttl_))
+{}
+
+const std::int32_t account_setAccountTTL::ID;
+
+void account_setAccountTTL::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(608323678);
+ TlStoreBoxed<TlStoreObject, -1194283041>::store(ttl_, s);
+}
+
+void account_setAccountTTL::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(608323678);
+ TlStoreBoxed<TlStoreObject, -1194283041>::store(ttl_, s);
+}
+
+void account_setAccountTTL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.setAccountTTL");
+ s.store_object_field("ttl", static_cast<const BaseObject *>(ttl_.get()));
+ s.store_class_end();
+ }
+}
+
+account_setAccountTTL::ReturnType account_setAccountTTL::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_setAuthorizationTTL::account_setAuthorizationTTL(int32 authorization_ttl_days_)
+ : authorization_ttl_days_(authorization_ttl_days_)
+{}
+
+const std::int32_t account_setAuthorizationTTL::ID;
+
+void account_setAuthorizationTTL::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1081501024);
+ TlStoreBinary::store(authorization_ttl_days_, s);
+}
+
+void account_setAuthorizationTTL::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1081501024);
+ TlStoreBinary::store(authorization_ttl_days_, s);
+}
+
+void account_setAuthorizationTTL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.setAuthorizationTTL");
+ s.store_field("authorization_ttl_days", authorization_ttl_days_);
+ s.store_class_end();
+ }
+}
+
+account_setAuthorizationTTL::ReturnType account_setAuthorizationTTL::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_setContactSignUpNotification::account_setContactSignUpNotification(bool silent_)
+ : silent_(silent_)
+{}
+
+const std::int32_t account_setContactSignUpNotification::ID;
+
+void account_setContactSignUpNotification::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-806076575);
+ TlStoreBool::store(silent_, s);
+}
+
+void account_setContactSignUpNotification::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-806076575);
+ TlStoreBool::store(silent_, s);
+}
+
+void account_setContactSignUpNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.setContactSignUpNotification");
+ s.store_field("silent", silent_);
+ s.store_class_end();
+ }
+}
+
+account_setContactSignUpNotification::ReturnType account_setContactSignUpNotification::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_setContentSettings::account_setContentSettings(int32 flags_, bool sensitive_enabled_)
+ : flags_(flags_)
+ , sensitive_enabled_(sensitive_enabled_)
+{}
+
+const std::int32_t account_setContentSettings::ID;
+
+void account_setContentSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1250643605);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void account_setContentSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1250643605);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void account_setContentSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.setContentSettings");
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+account_setContentSettings::ReturnType account_setContentSettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_setGlobalPrivacySettings::account_setGlobalPrivacySettings(object_ptr<globalPrivacySettings> &&settings_)
+ : settings_(std::move(settings_))
+{}
+
+const std::int32_t account_setGlobalPrivacySettings::ID;
+
+void account_setGlobalPrivacySettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(517647042);
+ TlStoreBoxed<TlStoreObject, -1096616924>::store(settings_, s);
+}
+
+void account_setGlobalPrivacySettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(517647042);
+ TlStoreBoxed<TlStoreObject, -1096616924>::store(settings_, s);
+}
+
+void account_setGlobalPrivacySettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.setGlobalPrivacySettings");
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+account_setGlobalPrivacySettings::ReturnType account_setGlobalPrivacySettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<globalPrivacySettings>, -1096616924>::parse(p);
+#undef FAIL
+}
+
+account_setPrivacy::account_setPrivacy(object_ptr<InputPrivacyKey> &&key_, array<object_ptr<InputPrivacyRule>> &&rules_)
+ : key_(std::move(key_))
+ , rules_(std::move(rules_))
+{}
+
+const std::int32_t account_setPrivacy::ID;
+
+void account_setPrivacy::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-906486552);
+ TlStoreBoxedUnknown<TlStoreObject>::store(key_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(rules_, s);
+}
+
+void account_setPrivacy::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-906486552);
+ TlStoreBoxedUnknown<TlStoreObject>::store(key_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(rules_, s);
+}
+
+void account_setPrivacy::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.setPrivacy");
+ s.store_object_field("key", static_cast<const BaseObject *>(key_.get()));
+ { s.store_vector_begin("rules", rules_.size()); for (const auto &_value : rules_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+account_setPrivacy::ReturnType account_setPrivacy::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<account_privacyRules>, 1352683077>::parse(p);
+#undef FAIL
+}
+
+account_toggleUsername::account_toggleUsername(string const &username_, bool active_)
+ : username_(username_)
+ , active_(active_)
+{}
+
+const std::int32_t account_toggleUsername::ID;
+
+void account_toggleUsername::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1490465654);
+ TlStoreString::store(username_, s);
+ TlStoreBool::store(active_, s);
+}
+
+void account_toggleUsername::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1490465654);
+ TlStoreString::store(username_, s);
+ TlStoreBool::store(active_, s);
+}
+
+void account_toggleUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.toggleUsername");
+ s.store_field("username", username_);
+ s.store_field("active", active_);
+ s.store_class_end();
+ }
+}
+
+account_toggleUsername::ReturnType account_toggleUsername::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_unregisterDevice::account_unregisterDevice(int32 token_type_, string const &token_, array<int64> &&other_uids_)
+ : token_type_(token_type_)
+ , token_(token_)
+ , other_uids_(std::move(other_uids_))
+{}
+
+const std::int32_t account_unregisterDevice::ID;
+
+void account_unregisterDevice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1779249670);
+ TlStoreBinary::store(token_type_, s);
+ TlStoreString::store(token_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(other_uids_, s);
+}
+
+void account_unregisterDevice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1779249670);
+ TlStoreBinary::store(token_type_, s);
+ TlStoreString::store(token_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(other_uids_, s);
+}
+
+void account_unregisterDevice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.unregisterDevice");
+ s.store_field("token_type", token_type_);
+ s.store_field("token", token_);
+ { s.store_vector_begin("other_uids", other_uids_.size()); for (const auto &_value : other_uids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+account_unregisterDevice::ReturnType account_unregisterDevice::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_updateDeviceLocked::account_updateDeviceLocked(int32 period_)
+ : period_(period_)
+{}
+
+const std::int32_t account_updateDeviceLocked::ID;
+
+void account_updateDeviceLocked::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(954152242);
+ TlStoreBinary::store(period_, s);
+}
+
+void account_updateDeviceLocked::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(954152242);
+ TlStoreBinary::store(period_, s);
+}
+
+void account_updateDeviceLocked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.updateDeviceLocked");
+ s.store_field("period", period_);
+ s.store_class_end();
+ }
+}
+
+account_updateDeviceLocked::ReturnType account_updateDeviceLocked::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_updateEmojiStatus::account_updateEmojiStatus(object_ptr<EmojiStatus> &&emoji_status_)
+ : emoji_status_(std::move(emoji_status_))
+{}
+
+const std::int32_t account_updateEmojiStatus::ID;
+
+void account_updateEmojiStatus::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-70001045);
+ TlStoreBoxedUnknown<TlStoreObject>::store(emoji_status_, s);
+}
+
+void account_updateEmojiStatus::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-70001045);
+ TlStoreBoxedUnknown<TlStoreObject>::store(emoji_status_, s);
+}
+
+void account_updateEmojiStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.updateEmojiStatus");
+ s.store_object_field("emoji_status", static_cast<const BaseObject *>(emoji_status_.get()));
+ s.store_class_end();
+ }
+}
+
+account_updateEmojiStatus::ReturnType account_updateEmojiStatus::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_updateNotifySettings::account_updateNotifySettings(object_ptr<InputNotifyPeer> &&peer_, object_ptr<inputPeerNotifySettings> &&settings_)
+ : peer_(std::move(peer_))
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t account_updateNotifySettings::ID;
+
+void account_updateNotifySettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2067899501);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreObject, -551616469>::store(settings_, s);
+}
+
+void account_updateNotifySettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2067899501);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreObject, -551616469>::store(settings_, s);
+}
+
+void account_updateNotifySettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.updateNotifySettings");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+account_updateNotifySettings::ReturnType account_updateNotifySettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_updatePasswordSettings::account_updatePasswordSettings(object_ptr<InputCheckPasswordSRP> &&password_, object_ptr<account_passwordInputSettings> &&new_settings_)
+ : password_(std::move(password_))
+ , new_settings_(std::move(new_settings_))
+{}
+
+const std::int32_t account_updatePasswordSettings::ID;
+
+void account_updatePasswordSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1516564433);
+ TlStoreBoxedUnknown<TlStoreObject>::store(password_, s);
+ TlStoreBoxed<TlStoreObject, -1036572727>::store(new_settings_, s);
+}
+
+void account_updatePasswordSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1516564433);
+ TlStoreBoxedUnknown<TlStoreObject>::store(password_, s);
+ TlStoreBoxed<TlStoreObject, -1036572727>::store(new_settings_, s);
+}
+
+void account_updatePasswordSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.updatePasswordSettings");
+ s.store_object_field("password", static_cast<const BaseObject *>(password_.get()));
+ s.store_object_field("new_settings", static_cast<const BaseObject *>(new_settings_.get()));
+ s.store_class_end();
+ }
+}
+
+account_updatePasswordSettings::ReturnType account_updatePasswordSettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_updateProfile::account_updateProfile(int32 flags_, string const &first_name_, string const &last_name_, string const &about_)
+ : flags_(flags_)
+ , first_name_(first_name_)
+ , last_name_(last_name_)
+ , about_(about_)
+{}
+
+const std::int32_t account_updateProfile::ID;
+
+void account_updateProfile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2018596725);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreString::store(first_name_, s); }
+ if (var0 & 2) { TlStoreString::store(last_name_, s); }
+ if (var0 & 4) { TlStoreString::store(about_, s); }
+}
+
+void account_updateProfile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2018596725);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreString::store(first_name_, s); }
+ if (var0 & 2) { TlStoreString::store(last_name_, s); }
+ if (var0 & 4) { TlStoreString::store(about_, s); }
+}
+
+void account_updateProfile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.updateProfile");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("first_name", first_name_); }
+ if (var0 & 2) { s.store_field("last_name", last_name_); }
+ if (var0 & 4) { s.store_field("about", about_); }
+ s.store_class_end();
+ }
+}
+
+account_updateProfile::ReturnType account_updateProfile::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<User>::parse(p);
+#undef FAIL
+}
+
+account_updateStatus::account_updateStatus(bool offline_)
+ : offline_(offline_)
+{}
+
+const std::int32_t account_updateStatus::ID;
+
+void account_updateStatus::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1713919532);
+ TlStoreBool::store(offline_, s);
+}
+
+void account_updateStatus::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1713919532);
+ TlStoreBool::store(offline_, s);
+}
+
+void account_updateStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.updateStatus");
+ s.store_field("offline", offline_);
+ s.store_class_end();
+ }
+}
+
+account_updateStatus::ReturnType account_updateStatus::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+account_updateTheme::account_updateTheme(int32 flags_, string const &format_, object_ptr<InputTheme> &&theme_, string const &slug_, string const &title_, object_ptr<InputDocument> &&document_, array<object_ptr<inputThemeSettings>> &&settings_)
+ : flags_(flags_)
+ , format_(format_)
+ , theme_(std::move(theme_))
+ , slug_(slug_)
+ , title_(title_)
+ , document_(std::move(document_))
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t account_updateTheme::ID;
+
+void account_updateTheme::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(737414348);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(format_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s);
+ if (var0 & 1) { TlStoreString::store(slug_, s); }
+ if (var0 & 2) { TlStoreString::store(title_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1881255857>>, 481674261>::store(settings_, s); }
+}
+
+void account_updateTheme::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(737414348);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(format_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s);
+ if (var0 & 1) { TlStoreString::store(slug_, s); }
+ if (var0 & 2) { TlStoreString::store(title_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1881255857>>, 481674261>::store(settings_, s); }
+}
+
+void account_updateTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.updateTheme");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("format", format_);
+ s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get()));
+ if (var0 & 1) { s.store_field("slug", slug_); }
+ if (var0 & 2) { s.store_field("title", title_); }
+ if (var0 & 4) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); }
+ if (var0 & 8) { { s.store_vector_begin("settings", settings_.size()); for (const auto &_value : settings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+account_updateTheme::ReturnType account_updateTheme::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<theme>, -1609668650>::parse(p);
+#undef FAIL
+}
+
+account_updateUsername::account_updateUsername(string const &username_)
+ : username_(username_)
+{}
+
+const std::int32_t account_updateUsername::ID;
+
+void account_updateUsername::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1040964988);
+ TlStoreString::store(username_, s);
+}
+
+void account_updateUsername::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1040964988);
+ TlStoreString::store(username_, s);
+}
+
+void account_updateUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.updateUsername");
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+account_updateUsername::ReturnType account_updateUsername::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<User>::parse(p);
+#undef FAIL
+}
+
+account_uploadRingtone::account_uploadRingtone(object_ptr<InputFile> &&file_, string const &file_name_, string const &mime_type_)
+ : file_(std::move(file_))
+ , file_name_(file_name_)
+ , mime_type_(mime_type_)
+{}
+
+const std::int32_t account_uploadRingtone::ID;
+
+void account_uploadRingtone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2095414366);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ TlStoreString::store(file_name_, s);
+ TlStoreString::store(mime_type_, s);
+}
+
+void account_uploadRingtone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2095414366);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ TlStoreString::store(file_name_, s);
+ TlStoreString::store(mime_type_, s);
+}
+
+void account_uploadRingtone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.uploadRingtone");
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_field("file_name", file_name_);
+ s.store_field("mime_type", mime_type_);
+ s.store_class_end();
+ }
+}
+
+account_uploadRingtone::ReturnType account_uploadRingtone::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Document>::parse(p);
+#undef FAIL
+}
+
+account_uploadTheme::account_uploadTheme(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&thumb_, string const &file_name_, string const &mime_type_)
+ : flags_(flags_)
+ , file_(std::move(file_))
+ , thumb_(std::move(thumb_))
+ , file_name_(file_name_)
+ , mime_type_(mime_type_)
+{}
+
+const std::int32_t account_uploadTheme::ID;
+
+void account_uploadTheme::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(473805619);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); }
+ TlStoreString::store(file_name_, s);
+ TlStoreString::store(mime_type_, s);
+}
+
+void account_uploadTheme::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(473805619);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); }
+ TlStoreString::store(file_name_, s);
+ TlStoreString::store(mime_type_, s);
+}
+
+void account_uploadTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.uploadTheme");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ if (var0 & 1) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); }
+ s.store_field("file_name", file_name_);
+ s.store_field("mime_type", mime_type_);
+ s.store_class_end();
+ }
+}
+
+account_uploadTheme::ReturnType account_uploadTheme::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Document>::parse(p);
+#undef FAIL
+}
+
+account_uploadWallPaper::account_uploadWallPaper(object_ptr<InputFile> &&file_, string const &mime_type_, object_ptr<wallPaperSettings> &&settings_)
+ : file_(std::move(file_))
+ , mime_type_(mime_type_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t account_uploadWallPaper::ID;
+
+void account_uploadWallPaper::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-578472351);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s);
+}
+
+void account_uploadWallPaper::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-578472351);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ TlStoreString::store(mime_type_, s);
+ TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s);
+}
+
+void account_uploadWallPaper::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.uploadWallPaper");
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_field("mime_type", mime_type_);
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+account_uploadWallPaper::ReturnType account_uploadWallPaper::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<WallPaper>::parse(p);
+#undef FAIL
+}
+
+account_verifyEmail::account_verifyEmail(object_ptr<EmailVerifyPurpose> &&purpose_, object_ptr<EmailVerification> &&verification_)
+ : purpose_(std::move(purpose_))
+ , verification_(std::move(verification_))
+{}
+
+const std::int32_t account_verifyEmail::ID;
+
+void account_verifyEmail::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(53322959);
+ TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(verification_, s);
+}
+
+void account_verifyEmail::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(53322959);
+ TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(verification_, s);
+}
+
+void account_verifyEmail::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.verifyEmail");
+ s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get()));
+ s.store_object_field("verification", static_cast<const BaseObject *>(verification_.get()));
+ s.store_class_end();
+ }
+}
+
+account_verifyEmail::ReturnType account_verifyEmail::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<account_EmailVerified>::parse(p);
+#undef FAIL
+}
+
+account_verifyPhone::account_verifyPhone(string const &phone_number_, string const &phone_code_hash_, string const &phone_code_)
+ : phone_number_(phone_number_)
+ , phone_code_hash_(phone_code_hash_)
+ , phone_code_(phone_code_)
+{}
+
+const std::int32_t account_verifyPhone::ID;
+
+void account_verifyPhone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1305716726);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+ TlStoreString::store(phone_code_, s);
+}
+
+void account_verifyPhone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1305716726);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+ TlStoreString::store(phone_code_, s);
+}
+
+void account_verifyPhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "account.verifyPhone");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("phone_code_hash", phone_code_hash_);
+ s.store_field("phone_code", phone_code_);
+ s.store_class_end();
+ }
+}
+
+account_verifyPhone::ReturnType account_verifyPhone::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+auth_acceptLoginToken::auth_acceptLoginToken(bytes &&token_)
+ : token_(std::move(token_))
+{}
+
+const std::int32_t auth_acceptLoginToken::ID;
+
+void auth_acceptLoginToken::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-392909491);
+ TlStoreString::store(token_, s);
+}
+
+void auth_acceptLoginToken::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-392909491);
+ TlStoreString::store(token_, s);
+}
+
+void auth_acceptLoginToken::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.acceptLoginToken");
+ s.store_bytes_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+auth_acceptLoginToken::ReturnType auth_acceptLoginToken::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<authorization>, -1392388579>::parse(p);
+#undef FAIL
+}
+
+auth_bindTempAuthKey::auth_bindTempAuthKey(int64 perm_auth_key_id_, int64 nonce_, int32 expires_at_, bytes &&encrypted_message_)
+ : perm_auth_key_id_(perm_auth_key_id_)
+ , nonce_(nonce_)
+ , expires_at_(expires_at_)
+ , encrypted_message_(std::move(encrypted_message_))
+{}
+
+const std::int32_t auth_bindTempAuthKey::ID;
+
+void auth_bindTempAuthKey::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-841733627);
+ TlStoreBinary::store(perm_auth_key_id_, s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(expires_at_, s);
+ TlStoreString::store(encrypted_message_, s);
+}
+
+void auth_bindTempAuthKey::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-841733627);
+ TlStoreBinary::store(perm_auth_key_id_, s);
+ TlStoreBinary::store(nonce_, s);
+ TlStoreBinary::store(expires_at_, s);
+ TlStoreString::store(encrypted_message_, s);
+}
+
+void auth_bindTempAuthKey::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.bindTempAuthKey");
+ s.store_field("perm_auth_key_id", perm_auth_key_id_);
+ s.store_field("nonce", nonce_);
+ s.store_field("expires_at", expires_at_);
+ s.store_bytes_field("encrypted_message", encrypted_message_);
+ s.store_class_end();
+ }
+}
+
+auth_bindTempAuthKey::ReturnType auth_bindTempAuthKey::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+auth_cancelCode::auth_cancelCode(string const &phone_number_, string const &phone_code_hash_)
+ : phone_number_(phone_number_)
+ , phone_code_hash_(phone_code_hash_)
+{}
+
+const std::int32_t auth_cancelCode::ID;
+
+void auth_cancelCode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(520357240);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+}
+
+void auth_cancelCode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(520357240);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+}
+
+void auth_cancelCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.cancelCode");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("phone_code_hash", phone_code_hash_);
+ s.store_class_end();
+ }
+}
+
+auth_cancelCode::ReturnType auth_cancelCode::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+auth_checkPassword::auth_checkPassword(object_ptr<InputCheckPasswordSRP> &&password_)
+ : password_(std::move(password_))
+{}
+
+const std::int32_t auth_checkPassword::ID;
+
+void auth_checkPassword::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-779399914);
+ TlStoreBoxedUnknown<TlStoreObject>::store(password_, s);
+}
+
+void auth_checkPassword::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-779399914);
+ TlStoreBoxedUnknown<TlStoreObject>::store(password_, s);
+}
+
+void auth_checkPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.checkPassword");
+ s.store_object_field("password", static_cast<const BaseObject *>(password_.get()));
+ s.store_class_end();
+ }
+}
+
+auth_checkPassword::ReturnType auth_checkPassword::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<auth_Authorization>::parse(p);
+#undef FAIL
+}
+
+auth_checkRecoveryPassword::auth_checkRecoveryPassword(string const &code_)
+ : code_(code_)
+{}
+
+const std::int32_t auth_checkRecoveryPassword::ID;
+
+void auth_checkRecoveryPassword::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(221691769);
+ TlStoreString::store(code_, s);
+}
+
+void auth_checkRecoveryPassword::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(221691769);
+ TlStoreString::store(code_, s);
+}
+
+void auth_checkRecoveryPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.checkRecoveryPassword");
+ s.store_field("code", code_);
+ s.store_class_end();
+ }
+}
+
+auth_checkRecoveryPassword::ReturnType auth_checkRecoveryPassword::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+auth_dropTempAuthKeys::auth_dropTempAuthKeys(array<int64> &&except_auth_keys_)
+ : except_auth_keys_(std::move(except_auth_keys_))
+{}
+
+const std::int32_t auth_dropTempAuthKeys::ID;
+
+void auth_dropTempAuthKeys::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1907842680);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_auth_keys_, s);
+}
+
+void auth_dropTempAuthKeys::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1907842680);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_auth_keys_, s);
+}
+
+void auth_dropTempAuthKeys::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.dropTempAuthKeys");
+ { s.store_vector_begin("except_auth_keys", except_auth_keys_.size()); for (const auto &_value : except_auth_keys_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+auth_dropTempAuthKeys::ReturnType auth_dropTempAuthKeys::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+auth_exportAuthorization::auth_exportAuthorization(int32 dc_id_)
+ : dc_id_(dc_id_)
+{}
+
+const std::int32_t auth_exportAuthorization::ID;
+
+void auth_exportAuthorization::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-440401971);
+ TlStoreBinary::store(dc_id_, s);
+}
+
+void auth_exportAuthorization::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-440401971);
+ TlStoreBinary::store(dc_id_, s);
+}
+
+void auth_exportAuthorization::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.exportAuthorization");
+ s.store_field("dc_id", dc_id_);
+ s.store_class_end();
+ }
+}
+
+auth_exportAuthorization::ReturnType auth_exportAuthorization::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<auth_exportedAuthorization>, -1271602504>::parse(p);
+#undef FAIL
+}
+
+auth_exportLoginToken::auth_exportLoginToken(int32 api_id_, string const &api_hash_, array<int64> &&except_ids_)
+ : api_id_(api_id_)
+ , api_hash_(api_hash_)
+ , except_ids_(std::move(except_ids_))
+{}
+
+const std::int32_t auth_exportLoginToken::ID;
+
+void auth_exportLoginToken::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1210022402);
+ TlStoreBinary::store(api_id_, s);
+ TlStoreString::store(api_hash_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_ids_, s);
+}
+
+void auth_exportLoginToken::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1210022402);
+ TlStoreBinary::store(api_id_, s);
+ TlStoreString::store(api_hash_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_ids_, s);
+}
+
+void auth_exportLoginToken::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.exportLoginToken");
+ s.store_field("api_id", api_id_);
+ s.store_field("api_hash", api_hash_);
+ { s.store_vector_begin("except_ids", except_ids_.size()); for (const auto &_value : except_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+auth_exportLoginToken::ReturnType auth_exportLoginToken::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<auth_LoginToken>::parse(p);
+#undef FAIL
+}
+
+auth_importAuthorization::auth_importAuthorization(int64 id_, bytes &&bytes_)
+ : id_(id_)
+ , bytes_(std::move(bytes_))
+{}
+
+const std::int32_t auth_importAuthorization::ID;
+
+void auth_importAuthorization::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1518699091);
+ TlStoreBinary::store(id_, s);
+ TlStoreString::store(bytes_, s);
+}
+
+void auth_importAuthorization::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1518699091);
+ TlStoreBinary::store(id_, s);
+ TlStoreString::store(bytes_, s);
+}
+
+void auth_importAuthorization::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.importAuthorization");
+ s.store_field("id", id_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+auth_importAuthorization::ReturnType auth_importAuthorization::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<auth_Authorization>::parse(p);
+#undef FAIL
+}
+
+auth_importBotAuthorization::auth_importBotAuthorization(int32 flags_, int32 api_id_, string const &api_hash_, string const &bot_auth_token_)
+ : flags_(flags_)
+ , api_id_(api_id_)
+ , api_hash_(api_hash_)
+ , bot_auth_token_(bot_auth_token_)
+{}
+
+const std::int32_t auth_importBotAuthorization::ID;
+
+void auth_importBotAuthorization::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1738800940);
+ TlStoreBinary::store(flags_, s);
+ TlStoreBinary::store(api_id_, s);
+ TlStoreString::store(api_hash_, s);
+ TlStoreString::store(bot_auth_token_, s);
+}
+
+void auth_importBotAuthorization::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1738800940);
+ TlStoreBinary::store(flags_, s);
+ TlStoreBinary::store(api_id_, s);
+ TlStoreString::store(api_hash_, s);
+ TlStoreString::store(bot_auth_token_, s);
+}
+
+void auth_importBotAuthorization::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.importBotAuthorization");
+ s.store_field("flags", flags_);
+ s.store_field("api_id", api_id_);
+ s.store_field("api_hash", api_hash_);
+ s.store_field("bot_auth_token", bot_auth_token_);
+ s.store_class_end();
+ }
+}
+
+auth_importBotAuthorization::ReturnType auth_importBotAuthorization::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<auth_Authorization>::parse(p);
+#undef FAIL
+}
+
+auth_importLoginToken::auth_importLoginToken(bytes &&token_)
+ : token_(std::move(token_))
+{}
+
+const std::int32_t auth_importLoginToken::ID;
+
+void auth_importLoginToken::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1783866140);
+ TlStoreString::store(token_, s);
+}
+
+void auth_importLoginToken::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1783866140);
+ TlStoreString::store(token_, s);
+}
+
+void auth_importLoginToken::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.importLoginToken");
+ s.store_bytes_field("token", token_);
+ s.store_class_end();
+ }
+}
+
+auth_importLoginToken::ReturnType auth_importLoginToken::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<auth_LoginToken>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t auth_logOut::ID;
+
+void auth_logOut::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1047706137);
+}
+
+void auth_logOut::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1047706137);
+}
+
+void auth_logOut::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.logOut");
+ s.store_class_end();
+ }
+}
+
+auth_logOut::ReturnType auth_logOut::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<auth_loggedOut>, -1012759713>::parse(p);
+#undef FAIL
+}
+
+auth_recoverPassword::auth_recoverPassword(int32 flags_, string const &code_, object_ptr<account_passwordInputSettings> &&new_settings_)
+ : flags_(flags_)
+ , code_(code_)
+ , new_settings_(std::move(new_settings_))
+{}
+
+const std::int32_t auth_recoverPassword::ID;
+
+void auth_recoverPassword::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(923364464);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(code_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1036572727>::store(new_settings_, s); }
+}
+
+void auth_recoverPassword::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(923364464);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(code_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1036572727>::store(new_settings_, s); }
+}
+
+void auth_recoverPassword::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.recoverPassword");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("code", code_);
+ if (var0 & 1) { s.store_object_field("new_settings", static_cast<const BaseObject *>(new_settings_.get())); }
+ s.store_class_end();
+ }
+}
+
+auth_recoverPassword::ReturnType auth_recoverPassword::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<auth_Authorization>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t auth_requestPasswordRecovery::ID;
+
+void auth_requestPasswordRecovery::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-661144474);
+}
+
+void auth_requestPasswordRecovery::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-661144474);
+}
+
+void auth_requestPasswordRecovery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.requestPasswordRecovery");
+ s.store_class_end();
+ }
+}
+
+auth_requestPasswordRecovery::ReturnType auth_requestPasswordRecovery::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<auth_passwordRecovery>, 326715557>::parse(p);
+#undef FAIL
+}
+
+auth_resendCode::auth_resendCode(string const &phone_number_, string const &phone_code_hash_)
+ : phone_number_(phone_number_)
+ , phone_code_hash_(phone_code_hash_)
+{}
+
+const std::int32_t auth_resendCode::ID;
+
+void auth_resendCode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1056025023);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+}
+
+void auth_resendCode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1056025023);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+}
+
+void auth_resendCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.resendCode");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("phone_code_hash", phone_code_hash_);
+ s.store_class_end();
+ }
+}
+
+auth_resendCode::ReturnType auth_resendCode::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t auth_resetAuthorizations::ID;
+
+void auth_resetAuthorizations::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1616179942);
+}
+
+void auth_resetAuthorizations::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1616179942);
+}
+
+void auth_resetAuthorizations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.resetAuthorizations");
+ s.store_class_end();
+ }
+}
+
+auth_resetAuthorizations::ReturnType auth_resetAuthorizations::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+auth_sendCode::auth_sendCode(string const &phone_number_, int32 api_id_, string const &api_hash_, object_ptr<codeSettings> &&settings_)
+ : phone_number_(phone_number_)
+ , api_id_(api_id_)
+ , api_hash_(api_hash_)
+ , settings_(std::move(settings_))
+{}
+
+const std::int32_t auth_sendCode::ID;
+
+void auth_sendCode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1502141361);
+ TlStoreString::store(phone_number_, s);
+ TlStoreBinary::store(api_id_, s);
+ TlStoreString::store(api_hash_, s);
+ TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s);
+}
+
+void auth_sendCode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1502141361);
+ TlStoreString::store(phone_number_, s);
+ TlStoreBinary::store(api_id_, s);
+ TlStoreString::store(api_hash_, s);
+ TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s);
+}
+
+void auth_sendCode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.sendCode");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("api_id", api_id_);
+ s.store_field("api_hash", api_hash_);
+ s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get()));
+ s.store_class_end();
+ }
+}
+
+auth_sendCode::ReturnType auth_sendCode::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p);
+#undef FAIL
+}
+
+auth_signIn::auth_signIn(int32 flags_, string const &phone_number_, string const &phone_code_hash_, string const &phone_code_, object_ptr<EmailVerification> &&email_verification_)
+ : flags_(flags_)
+ , phone_number_(phone_number_)
+ , phone_code_hash_(phone_code_hash_)
+ , phone_code_(phone_code_)
+ , email_verification_(std::move(email_verification_))
+{}
+
+const std::int32_t auth_signIn::ID;
+
+void auth_signIn::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1923962543);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+ if (var0 & 1) { TlStoreString::store(phone_code_, s); }
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(email_verification_, s); }
+}
+
+void auth_signIn::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1923962543);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+ if (var0 & 1) { TlStoreString::store(phone_code_, s); }
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(email_verification_, s); }
+}
+
+void auth_signIn::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.signIn");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("phone_number", phone_number_);
+ s.store_field("phone_code_hash", phone_code_hash_);
+ if (var0 & 1) { s.store_field("phone_code", phone_code_); }
+ if (var0 & 2) { s.store_object_field("email_verification", static_cast<const BaseObject *>(email_verification_.get())); }
+ s.store_class_end();
+ }
+}
+
+auth_signIn::ReturnType auth_signIn::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<auth_Authorization>::parse(p);
+#undef FAIL
+}
+
+auth_signUp::auth_signUp(string const &phone_number_, string const &phone_code_hash_, string const &first_name_, string const &last_name_)
+ : phone_number_(phone_number_)
+ , phone_code_hash_(phone_code_hash_)
+ , first_name_(first_name_)
+ , last_name_(last_name_)
+{}
+
+const std::int32_t auth_signUp::ID;
+
+void auth_signUp::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2131827673);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+}
+
+void auth_signUp::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2131827673);
+ TlStoreString::store(phone_number_, s);
+ TlStoreString::store(phone_code_hash_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+}
+
+void auth_signUp::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "auth.signUp");
+ s.store_field("phone_number", phone_number_);
+ s.store_field("phone_code_hash", phone_code_hash_);
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_class_end();
+ }
+}
+
+auth_signUp::ReturnType auth_signUp::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<auth_Authorization>::parse(p);
+#undef FAIL
+}
+
+bots_answerWebhookJSONQuery::bots_answerWebhookJSONQuery(int64 query_id_, object_ptr<dataJSON> &&data_)
+ : query_id_(query_id_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t bots_answerWebhookJSONQuery::ID;
+
+void bots_answerWebhookJSONQuery::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-434028723);
+ TlStoreBinary::store(query_id_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(data_, s);
+}
+
+void bots_answerWebhookJSONQuery::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-434028723);
+ TlStoreBinary::store(query_id_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(data_, s);
+}
+
+void bots_answerWebhookJSONQuery::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bots.answerWebhookJSONQuery");
+ s.store_field("query_id", query_id_);
+ s.store_object_field("data", static_cast<const BaseObject *>(data_.get()));
+ s.store_class_end();
+ }
+}
+
+bots_answerWebhookJSONQuery::ReturnType bots_answerWebhookJSONQuery::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+bots_getBotCommands::bots_getBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_)
+ : scope_(std::move(scope_))
+ , lang_code_(lang_code_)
+{}
+
+const std::int32_t bots_getBotCommands::ID;
+
+void bots_getBotCommands::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-481554986);
+ TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s);
+ TlStoreString::store(lang_code_, s);
+}
+
+void bots_getBotCommands::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-481554986);
+ TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s);
+ TlStoreString::store(lang_code_, s);
+}
+
+void bots_getBotCommands::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bots.getBotCommands");
+ s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get()));
+ s.store_field("lang_code", lang_code_);
+ s.store_class_end();
+ }
+}
+
+bots_getBotCommands::ReturnType bots_getBotCommands::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<botCommand>, -1032140601>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+bots_getBotMenuButton::bots_getBotMenuButton(object_ptr<InputUser> &&user_id_)
+ : user_id_(std::move(user_id_))
+{}
+
+const std::int32_t bots_getBotMenuButton::ID;
+
+void bots_getBotMenuButton::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1671369944);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void bots_getBotMenuButton::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1671369944);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void bots_getBotMenuButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bots.getBotMenuButton");
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_class_end();
+ }
+}
+
+bots_getBotMenuButton::ReturnType bots_getBotMenuButton::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<BotMenuButton>::parse(p);
+#undef FAIL
+}
+
+bots_resetBotCommands::bots_resetBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_)
+ : scope_(std::move(scope_))
+ , lang_code_(lang_code_)
+{}
+
+const std::int32_t bots_resetBotCommands::ID;
+
+void bots_resetBotCommands::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1032708345);
+ TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s);
+ TlStoreString::store(lang_code_, s);
+}
+
+void bots_resetBotCommands::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1032708345);
+ TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s);
+ TlStoreString::store(lang_code_, s);
+}
+
+void bots_resetBotCommands::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bots.resetBotCommands");
+ s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get()));
+ s.store_field("lang_code", lang_code_);
+ s.store_class_end();
+ }
+}
+
+bots_resetBotCommands::ReturnType bots_resetBotCommands::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+bots_sendCustomRequest::bots_sendCustomRequest(string const &custom_method_, object_ptr<dataJSON> &&params_)
+ : custom_method_(custom_method_)
+ , params_(std::move(params_))
+{}
+
+const std::int32_t bots_sendCustomRequest::ID;
+
+void bots_sendCustomRequest::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1440257555);
+ TlStoreString::store(custom_method_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s);
+}
+
+void bots_sendCustomRequest::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1440257555);
+ TlStoreString::store(custom_method_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s);
+}
+
+void bots_sendCustomRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bots.sendCustomRequest");
+ s.store_field("custom_method", custom_method_);
+ s.store_object_field("params", static_cast<const BaseObject *>(params_.get()));
+ s.store_class_end();
+ }
+}
+
+bots_sendCustomRequest::ReturnType bots_sendCustomRequest::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p);
+#undef FAIL
+}
+
+bots_setBotBroadcastDefaultAdminRights::bots_setBotBroadcastDefaultAdminRights(object_ptr<chatAdminRights> &&admin_rights_)
+ : admin_rights_(std::move(admin_rights_))
+{}
+
+const std::int32_t bots_setBotBroadcastDefaultAdminRights::ID;
+
+void bots_setBotBroadcastDefaultAdminRights::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2021942497);
+ TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s);
+}
+
+void bots_setBotBroadcastDefaultAdminRights::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2021942497);
+ TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s);
+}
+
+void bots_setBotBroadcastDefaultAdminRights::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bots.setBotBroadcastDefaultAdminRights");
+ s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+bots_setBotBroadcastDefaultAdminRights::ReturnType bots_setBotBroadcastDefaultAdminRights::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+bots_setBotCommands::bots_setBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_, array<object_ptr<botCommand>> &&commands_)
+ : scope_(std::move(scope_))
+ , lang_code_(lang_code_)
+ , commands_(std::move(commands_))
+{}
+
+const std::int32_t bots_setBotCommands::ID;
+
+void bots_setBotCommands::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(85399130);
+ TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s);
+ TlStoreString::store(lang_code_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1032140601>>, 481674261>::store(commands_, s);
+}
+
+void bots_setBotCommands::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(85399130);
+ TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s);
+ TlStoreString::store(lang_code_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1032140601>>, 481674261>::store(commands_, s);
+}
+
+void bots_setBotCommands::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bots.setBotCommands");
+ s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get()));
+ s.store_field("lang_code", lang_code_);
+ { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+bots_setBotCommands::ReturnType bots_setBotCommands::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+bots_setBotGroupDefaultAdminRights::bots_setBotGroupDefaultAdminRights(object_ptr<chatAdminRights> &&admin_rights_)
+ : admin_rights_(std::move(admin_rights_))
+{}
+
+const std::int32_t bots_setBotGroupDefaultAdminRights::ID;
+
+void bots_setBotGroupDefaultAdminRights::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1839281686);
+ TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s);
+}
+
+void bots_setBotGroupDefaultAdminRights::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1839281686);
+ TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s);
+}
+
+void bots_setBotGroupDefaultAdminRights::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bots.setBotGroupDefaultAdminRights");
+ s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+bots_setBotGroupDefaultAdminRights::ReturnType bots_setBotGroupDefaultAdminRights::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+bots_setBotMenuButton::bots_setBotMenuButton(object_ptr<InputUser> &&user_id_, object_ptr<BotMenuButton> &&button_)
+ : user_id_(std::move(user_id_))
+ , button_(std::move(button_))
+{}
+
+const std::int32_t bots_setBotMenuButton::ID;
+
+void bots_setBotMenuButton::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1157944655);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(button_, s);
+}
+
+void bots_setBotMenuButton::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1157944655);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(button_, s);
+}
+
+void bots_setBotMenuButton::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "bots.setBotMenuButton");
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_object_field("button", static_cast<const BaseObject *>(button_.get()));
+ s.store_class_end();
+ }
+}
+
+bots_setBotMenuButton::ReturnType bots_setBotMenuButton::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_checkUsername::channels_checkUsername(object_ptr<InputChannel> &&channel_, string const &username_)
+ : channel_(std::move(channel_))
+ , username_(username_)
+{}
+
+const std::int32_t channels_checkUsername::ID;
+
+void channels_checkUsername::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(283557164);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(username_, s);
+}
+
+void channels_checkUsername::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(283557164);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(username_, s);
+}
+
+void channels_checkUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.checkUsername");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+channels_checkUsername::ReturnType channels_checkUsername::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_convertToGigagroup::channels_convertToGigagroup(object_ptr<InputChannel> &&channel_)
+ : channel_(std::move(channel_))
+{}
+
+const std::int32_t channels_convertToGigagroup::ID;
+
+void channels_convertToGigagroup::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(187239529);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_convertToGigagroup::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(187239529);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_convertToGigagroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.convertToGigagroup");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_convertToGigagroup::ReturnType channels_convertToGigagroup::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_createChannel::channels_createChannel(int32 flags_, bool broadcast_, bool megagroup_, bool for_import_, string const &title_, string const &about_, object_ptr<InputGeoPoint> &&geo_point_, string const &address_)
+ : flags_(flags_)
+ , broadcast_(broadcast_)
+ , megagroup_(megagroup_)
+ , for_import_(for_import_)
+ , title_(title_)
+ , about_(about_)
+ , geo_point_(std::move(geo_point_))
+ , address_(address_)
+{}
+
+const std::int32_t channels_createChannel::ID;
+
+void channels_createChannel::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1029681423);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(about_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); }
+ if (var0 & 4) { TlStoreString::store(address_, s); }
+}
+
+void channels_createChannel::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1029681423);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(about_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); }
+ if (var0 & 4) { TlStoreString::store(address_, s); }
+}
+
+void channels_createChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.createChannel");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("title", title_);
+ s.store_field("about", about_);
+ if (var0 & 4) { s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); }
+ if (var0 & 4) { s.store_field("address", address_); }
+ s.store_class_end();
+ }
+}
+
+channels_createChannel::ReturnType channels_createChannel::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_createForumTopic::channels_createForumTopic(int32 flags_, object_ptr<InputChannel> &&channel_, string const &title_, int32 icon_color_, int64 icon_emoji_id_, int64 random_id_, object_ptr<InputPeer> &&send_as_)
+ : flags_(flags_)
+ , channel_(std::move(channel_))
+ , title_(title_)
+ , icon_color_(icon_color_)
+ , icon_emoji_id_(icon_emoji_id_)
+ , random_id_(random_id_)
+ , send_as_(std::move(send_as_))
+{}
+
+const std::int32_t channels_createForumTopic::ID;
+
+void channels_createForumTopic::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-200539612);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(title_, s);
+ if (var0 & 1) { TlStoreBinary::store(icon_color_, s); }
+ if (var0 & 8) { TlStoreBinary::store(icon_emoji_id_, s); }
+ TlStoreBinary::store(random_id_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void channels_createForumTopic::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-200539612);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(title_, s);
+ if (var0 & 1) { TlStoreBinary::store(icon_color_, s); }
+ if (var0 & 8) { TlStoreBinary::store(icon_emoji_id_, s); }
+ TlStoreBinary::store(random_id_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void channels_createForumTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.createForumTopic");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("title", title_);
+ if (var0 & 1) { s.store_field("icon_color", icon_color_); }
+ if (var0 & 8) { s.store_field("icon_emoji_id", icon_emoji_id_); }
+ s.store_field("random_id", random_id_);
+ if (var0 & 4) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); }
+ s.store_class_end();
+ }
+}
+
+channels_createForumTopic::ReturnType channels_createForumTopic::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_deactivateAllUsernames::channels_deactivateAllUsernames(object_ptr<InputChannel> &&channel_)
+ : channel_(std::move(channel_))
+{}
+
+const std::int32_t channels_deactivateAllUsernames::ID;
+
+void channels_deactivateAllUsernames::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(170155475);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_deactivateAllUsernames::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(170155475);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_deactivateAllUsernames::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.deactivateAllUsernames");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_deactivateAllUsernames::ReturnType channels_deactivateAllUsernames::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_deleteChannel::channels_deleteChannel(object_ptr<InputChannel> &&channel_)
+ : channel_(std::move(channel_))
+{}
+
+const std::int32_t channels_deleteChannel::ID;
+
+void channels_deleteChannel::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1072619549);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_deleteChannel::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1072619549);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_deleteChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.deleteChannel");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_deleteChannel::ReturnType channels_deleteChannel::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_deleteHistory::channels_deleteHistory(int32 flags_, bool for_everyone_, object_ptr<InputChannel> &&channel_, int32 max_id_)
+ : flags_(flags_)
+ , for_everyone_(for_everyone_)
+ , channel_(std::move(channel_))
+ , max_id_(max_id_)
+{}
+
+const std::int32_t channels_deleteHistory::ID;
+
+void channels_deleteHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1683319225);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(max_id_, s);
+}
+
+void channels_deleteHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1683319225);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(max_id_, s);
+}
+
+void channels_deleteHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.deleteHistory");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("max_id", max_id_);
+ s.store_class_end();
+ }
+}
+
+channels_deleteHistory::ReturnType channels_deleteHistory::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_deleteMessages::channels_deleteMessages(object_ptr<InputChannel> &&channel_, array<int32> &&id_)
+ : channel_(std::move(channel_))
+ , id_(std::move(id_))
+{}
+
+const std::int32_t channels_deleteMessages::ID;
+
+void channels_deleteMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2067661490);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void channels_deleteMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2067661490);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void channels_deleteMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.deleteMessages");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+channels_deleteMessages::ReturnType channels_deleteMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedMessages>, -2066640507>::parse(p);
+#undef FAIL
+}
+
+channels_deleteParticipantHistory::channels_deleteParticipantHistory(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_)
+ : channel_(std::move(channel_))
+ , participant_(std::move(participant_))
+{}
+
+const std::int32_t channels_deleteParticipantHistory::ID;
+
+void channels_deleteParticipantHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(913655003);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s);
+}
+
+void channels_deleteParticipantHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(913655003);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s);
+}
+
+void channels_deleteParticipantHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.deleteParticipantHistory");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_deleteParticipantHistory::ReturnType channels_deleteParticipantHistory::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p);
+#undef FAIL
+}
+
+channels_deleteTopicHistory::channels_deleteTopicHistory(object_ptr<InputChannel> &&channel_, int32 top_msg_id_)
+ : channel_(std::move(channel_))
+ , top_msg_id_(top_msg_id_)
+{}
+
+const std::int32_t channels_deleteTopicHistory::ID;
+
+void channels_deleteTopicHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(876830509);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(top_msg_id_, s);
+}
+
+void channels_deleteTopicHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(876830509);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(top_msg_id_, s);
+}
+
+void channels_deleteTopicHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.deleteTopicHistory");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("top_msg_id", top_msg_id_);
+ s.store_class_end();
+ }
+}
+
+channels_deleteTopicHistory::ReturnType channels_deleteTopicHistory::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p);
+#undef FAIL
+}
+
+channels_editAdmin::channels_editAdmin(object_ptr<InputChannel> &&channel_, object_ptr<InputUser> &&user_id_, object_ptr<chatAdminRights> &&admin_rights_, string const &rank_)
+ : channel_(std::move(channel_))
+ , user_id_(std::move(user_id_))
+ , admin_rights_(std::move(admin_rights_))
+ , rank_(rank_)
+{}
+
+const std::int32_t channels_editAdmin::ID;
+
+void channels_editAdmin::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-751007486);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s);
+ TlStoreString::store(rank_, s);
+}
+
+void channels_editAdmin::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-751007486);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s);
+ TlStoreString::store(rank_, s);
+}
+
+void channels_editAdmin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.editAdmin");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get()));
+ s.store_field("rank", rank_);
+ s.store_class_end();
+ }
+}
+
+channels_editAdmin::ReturnType channels_editAdmin::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_editBanned::channels_editBanned(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_, object_ptr<chatBannedRights> &&banned_rights_)
+ : channel_(std::move(channel_))
+ , participant_(std::move(participant_))
+ , banned_rights_(std::move(banned_rights_))
+{}
+
+const std::int32_t channels_editBanned::ID;
+
+void channels_editBanned::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1763259007);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s);
+ TlStoreBoxed<TlStoreObject, -1626209256>::store(banned_rights_, s);
+}
+
+void channels_editBanned::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1763259007);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s);
+ TlStoreBoxed<TlStoreObject, -1626209256>::store(banned_rights_, s);
+}
+
+void channels_editBanned::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.editBanned");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ s.store_object_field("banned_rights", static_cast<const BaseObject *>(banned_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_editBanned::ReturnType channels_editBanned::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_editCreator::channels_editCreator(object_ptr<InputChannel> &&channel_, object_ptr<InputUser> &&user_id_, object_ptr<InputCheckPasswordSRP> &&password_)
+ : channel_(std::move(channel_))
+ , user_id_(std::move(user_id_))
+ , password_(std::move(password_))
+{}
+
+const std::int32_t channels_editCreator::ID;
+
+void channels_editCreator::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1892102881);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(password_, s);
+}
+
+void channels_editCreator::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1892102881);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(password_, s);
+}
+
+void channels_editCreator::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.editCreator");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_object_field("password", static_cast<const BaseObject *>(password_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_editCreator::ReturnType channels_editCreator::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_editForumTopic::channels_editForumTopic(int32 flags_, object_ptr<InputChannel> &&channel_, int32 topic_id_, string const &title_, int64 icon_emoji_id_, bool closed_)
+ : flags_(flags_)
+ , channel_(std::move(channel_))
+ , topic_id_(topic_id_)
+ , title_(title_)
+ , icon_emoji_id_(icon_emoji_id_)
+ , closed_(closed_)
+{}
+
+const std::int32_t channels_editForumTopic::ID;
+
+void channels_editForumTopic::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1820868141);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(topic_id_, s);
+ if (var0 & 1) { TlStoreString::store(title_, s); }
+ if (var0 & 2) { TlStoreBinary::store(icon_emoji_id_, s); }
+ if (var0 & 4) { TlStoreBool::store(closed_, s); }
+}
+
+void channels_editForumTopic::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1820868141);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(topic_id_, s);
+ if (var0 & 1) { TlStoreString::store(title_, s); }
+ if (var0 & 2) { TlStoreBinary::store(icon_emoji_id_, s); }
+ if (var0 & 4) { TlStoreBool::store(closed_, s); }
+}
+
+void channels_editForumTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.editForumTopic");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("topic_id", topic_id_);
+ if (var0 & 1) { s.store_field("title", title_); }
+ if (var0 & 2) { s.store_field("icon_emoji_id", icon_emoji_id_); }
+ if (var0 & 4) { s.store_field("closed", closed_); }
+ s.store_class_end();
+ }
+}
+
+channels_editForumTopic::ReturnType channels_editForumTopic::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_editLocation::channels_editLocation(object_ptr<InputChannel> &&channel_, object_ptr<InputGeoPoint> &&geo_point_, string const &address_)
+ : channel_(std::move(channel_))
+ , geo_point_(std::move(geo_point_))
+ , address_(address_)
+{}
+
+const std::int32_t channels_editLocation::ID;
+
+void channels_editLocation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1491484525);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ TlStoreString::store(address_, s);
+}
+
+void channels_editLocation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1491484525);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ TlStoreString::store(address_, s);
+}
+
+void channels_editLocation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.editLocation");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get()));
+ s.store_field("address", address_);
+ s.store_class_end();
+ }
+}
+
+channels_editLocation::ReturnType channels_editLocation::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_editPhoto::channels_editPhoto(object_ptr<InputChannel> &&channel_, object_ptr<InputChatPhoto> &&photo_)
+ : channel_(std::move(channel_))
+ , photo_(std::move(photo_))
+{}
+
+const std::int32_t channels_editPhoto::ID;
+
+void channels_editPhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-248621111);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s);
+}
+
+void channels_editPhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-248621111);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s);
+}
+
+void channels_editPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.editPhoto");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_editPhoto::ReturnType channels_editPhoto::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_editTitle::channels_editTitle(object_ptr<InputChannel> &&channel_, string const &title_)
+ : channel_(std::move(channel_))
+ , title_(title_)
+{}
+
+const std::int32_t channels_editTitle::ID;
+
+void channels_editTitle::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1450044624);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(title_, s);
+}
+
+void channels_editTitle::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1450044624);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(title_, s);
+}
+
+void channels_editTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.editTitle");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+channels_editTitle::ReturnType channels_editTitle::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_exportMessageLink::channels_exportMessageLink(int32 flags_, bool grouped_, bool thread_, object_ptr<InputChannel> &&channel_, int32 id_)
+ : flags_(flags_)
+ , grouped_(grouped_)
+ , thread_(thread_)
+ , channel_(std::move(channel_))
+ , id_(id_)
+{}
+
+const std::int32_t channels_exportMessageLink::ID;
+
+void channels_exportMessageLink::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-432034325);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(id_, s);
+}
+
+void channels_exportMessageLink::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-432034325);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(id_, s);
+}
+
+void channels_exportMessageLink::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.exportMessageLink");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+channels_exportMessageLink::ReturnType channels_exportMessageLink::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<exportedMessageLink>, 1571494644>::parse(p);
+#undef FAIL
+}
+
+channels_getAdminLog::channels_getAdminLog(int32 flags_, object_ptr<InputChannel> &&channel_, string const &q_, object_ptr<channelAdminLogEventsFilter> &&events_filter_, array<object_ptr<InputUser>> &&admins_, int64 max_id_, int64 min_id_, int32 limit_)
+ : flags_(flags_)
+ , channel_(std::move(channel_))
+ , q_(q_)
+ , events_filter_(std::move(events_filter_))
+ , admins_(std::move(admins_))
+ , max_id_(max_id_)
+ , min_id_(min_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t channels_getAdminLog::ID;
+
+void channels_getAdminLog::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(870184064);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(q_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -368018716>::store(events_filter_, s); }
+ if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(admins_, s); }
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void channels_getAdminLog::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(870184064);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(q_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, -368018716>::store(events_filter_, s); }
+ if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(admins_, s); }
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void channels_getAdminLog::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getAdminLog");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("q", q_);
+ if (var0 & 1) { s.store_object_field("events_filter", static_cast<const BaseObject *>(events_filter_.get())); }
+ if (var0 & 2) { { s.store_vector_begin("admins", admins_.size()); for (const auto &_value : admins_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_field("max_id", max_id_);
+ s.store_field("min_id", min_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+channels_getAdminLog::ReturnType channels_getAdminLog::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<channels_adminLogResults>, -309659827>::parse(p);
+#undef FAIL
+}
+
+channels_getAdminedPublicChannels::channels_getAdminedPublicChannels(int32 flags_, bool by_location_, bool check_limit_)
+ : flags_(flags_)
+ , by_location_(by_location_)
+ , check_limit_(check_limit_)
+{}
+
+const std::int32_t channels_getAdminedPublicChannels::ID;
+
+void channels_getAdminedPublicChannels::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-122669393);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void channels_getAdminedPublicChannels::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-122669393);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void channels_getAdminedPublicChannels::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getAdminedPublicChannels");
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+channels_getAdminedPublicChannels::ReturnType channels_getAdminedPublicChannels::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Chats>::parse(p);
+#undef FAIL
+}
+
+channels_getChannels::channels_getChannels(array<object_ptr<InputChannel>> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t channels_getChannels::ID;
+
+void channels_getChannels::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(176122811);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void channels_getChannels::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(176122811);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void channels_getChannels::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getChannels");
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+channels_getChannels::ReturnType channels_getChannels::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Chats>::parse(p);
+#undef FAIL
+}
+
+channels_getForumTopics::channels_getForumTopics(int32 flags_, object_ptr<InputChannel> &&channel_, string const &q_, int32 offset_date_, int32 offset_id_, int32 offset_topic_, int32 limit_)
+ : flags_(flags_)
+ , channel_(std::move(channel_))
+ , q_(q_)
+ , offset_date_(offset_date_)
+ , offset_id_(offset_id_)
+ , offset_topic_(offset_topic_)
+ , limit_(limit_)
+{}
+
+const std::int32_t channels_getForumTopics::ID;
+
+void channels_getForumTopics::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(233136337);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ if (var0 & 1) { TlStoreString::store(q_, s); }
+ TlStoreBinary::store(offset_date_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(offset_topic_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void channels_getForumTopics::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(233136337);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ if (var0 & 1) { TlStoreString::store(q_, s); }
+ TlStoreBinary::store(offset_date_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(offset_topic_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void channels_getForumTopics::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getForumTopics");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ if (var0 & 1) { s.store_field("q", q_); }
+ s.store_field("offset_date", offset_date_);
+ s.store_field("offset_id", offset_id_);
+ s.store_field("offset_topic", offset_topic_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+channels_getForumTopics::ReturnType channels_getForumTopics::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_forumTopics>, 913709011>::parse(p);
+#undef FAIL
+}
+
+channels_getForumTopicsByID::channels_getForumTopicsByID(object_ptr<InputChannel> &&channel_, array<int32> &&topics_)
+ : channel_(std::move(channel_))
+ , topics_(std::move(topics_))
+{}
+
+const std::int32_t channels_getForumTopicsByID::ID;
+
+void channels_getForumTopicsByID::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1333584199);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(topics_, s);
+}
+
+void channels_getForumTopicsByID::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1333584199);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(topics_, s);
+}
+
+void channels_getForumTopicsByID::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getForumTopicsByID");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ { s.store_vector_begin("topics", topics_.size()); for (const auto &_value : topics_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+channels_getForumTopicsByID::ReturnType channels_getForumTopicsByID::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_forumTopics>, 913709011>::parse(p);
+#undef FAIL
+}
+
+channels_getFullChannel::channels_getFullChannel(object_ptr<InputChannel> &&channel_)
+ : channel_(std::move(channel_))
+{}
+
+const std::int32_t channels_getFullChannel::ID;
+
+void channels_getFullChannel::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(141781513);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_getFullChannel::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(141781513);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_getFullChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getFullChannel");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_getFullChannel::ReturnType channels_getFullChannel::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_chatFull>, -438840932>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t channels_getGroupsForDiscussion::ID;
+
+void channels_getGroupsForDiscussion::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-170208392);
+}
+
+void channels_getGroupsForDiscussion::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-170208392);
+}
+
+void channels_getGroupsForDiscussion::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getGroupsForDiscussion");
+ s.store_class_end();
+ }
+}
+
+channels_getGroupsForDiscussion::ReturnType channels_getGroupsForDiscussion::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Chats>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t channels_getInactiveChannels::ID;
+
+void channels_getInactiveChannels::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(300429806);
+}
+
+void channels_getInactiveChannels::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(300429806);
+}
+
+void channels_getInactiveChannels::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getInactiveChannels");
+ s.store_class_end();
+ }
+}
+
+channels_getInactiveChannels::ReturnType channels_getInactiveChannels::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_inactiveChats>, -1456996667>::parse(p);
+#undef FAIL
+}
+
+channels_getLeftChannels::channels_getLeftChannels(int32 offset_)
+ : offset_(offset_)
+{}
+
+const std::int32_t channels_getLeftChannels::ID;
+
+void channels_getLeftChannels::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2092831552);
+ TlStoreBinary::store(offset_, s);
+}
+
+void channels_getLeftChannels::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2092831552);
+ TlStoreBinary::store(offset_, s);
+}
+
+void channels_getLeftChannels::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getLeftChannels");
+ s.store_field("offset", offset_);
+ s.store_class_end();
+ }
+}
+
+channels_getLeftChannels::ReturnType channels_getLeftChannels::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Chats>::parse(p);
+#undef FAIL
+}
+
+channels_getMessages::channels_getMessages(object_ptr<InputChannel> &&channel_, array<object_ptr<InputMessage>> &&id_)
+ : channel_(std::move(channel_))
+ , id_(std::move(id_))
+{}
+
+const std::int32_t channels_getMessages::ID;
+
+void channels_getMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1383294429);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void channels_getMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1383294429);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void channels_getMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getMessages");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+channels_getMessages::ReturnType channels_getMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+channels_getParticipant::channels_getParticipant(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_)
+ : channel_(std::move(channel_))
+ , participant_(std::move(participant_))
+{}
+
+const std::int32_t channels_getParticipant::ID;
+
+void channels_getParticipant::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1599378234);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s);
+}
+
+void channels_getParticipant::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1599378234);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s);
+}
+
+void channels_getParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getParticipant");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_getParticipant::ReturnType channels_getParticipant::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<channels_channelParticipant>, -541588713>::parse(p);
+#undef FAIL
+}
+
+channels_getParticipants::channels_getParticipants(object_ptr<InputChannel> &&channel_, object_ptr<ChannelParticipantsFilter> &&filter_, int32 offset_, int32 limit_, int64 hash_)
+ : channel_(std::move(channel_))
+ , filter_(std::move(filter_))
+ , offset_(offset_)
+ , limit_(limit_)
+ , hash_(hash_)
+{}
+
+const std::int32_t channels_getParticipants::ID;
+
+void channels_getParticipants::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2010044880);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void channels_getParticipants::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2010044880);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void channels_getParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getParticipants");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+channels_getParticipants::ReturnType channels_getParticipants::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<channels_ChannelParticipants>::parse(p);
+#undef FAIL
+}
+
+channels_getSendAs::channels_getSendAs(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t channels_getSendAs::ID;
+
+void channels_getSendAs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(231174382);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void channels_getSendAs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(231174382);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void channels_getSendAs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getSendAs");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_getSendAs::ReturnType channels_getSendAs::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<channels_sendAsPeers>, -191450938>::parse(p);
+#undef FAIL
+}
+
+channels_getSponsoredMessages::channels_getSponsoredMessages(object_ptr<InputChannel> &&channel_)
+ : channel_(std::move(channel_))
+{}
+
+const std::int32_t channels_getSponsoredMessages::ID;
+
+void channels_getSponsoredMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-333377601);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_getSponsoredMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-333377601);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_getSponsoredMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.getSponsoredMessages");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_getSponsoredMessages::ReturnType channels_getSponsoredMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_SponsoredMessages>::parse(p);
+#undef FAIL
+}
+
+channels_inviteToChannel::channels_inviteToChannel(object_ptr<InputChannel> &&channel_, array<object_ptr<InputUser>> &&users_)
+ : channel_(std::move(channel_))
+ , users_(std::move(users_))
+{}
+
+const std::int32_t channels_inviteToChannel::ID;
+
+void channels_inviteToChannel::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(429865580);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s);
+}
+
+void channels_inviteToChannel::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(429865580);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s);
+}
+
+void channels_inviteToChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.inviteToChannel");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+channels_inviteToChannel::ReturnType channels_inviteToChannel::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_joinChannel::channels_joinChannel(object_ptr<InputChannel> &&channel_)
+ : channel_(std::move(channel_))
+{}
+
+const std::int32_t channels_joinChannel::ID;
+
+void channels_joinChannel::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(615851205);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_joinChannel::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(615851205);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_joinChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.joinChannel");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_joinChannel::ReturnType channels_joinChannel::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_leaveChannel::channels_leaveChannel(object_ptr<InputChannel> &&channel_)
+ : channel_(std::move(channel_))
+{}
+
+const std::int32_t channels_leaveChannel::ID;
+
+void channels_leaveChannel::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-130635115);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_leaveChannel::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-130635115);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void channels_leaveChannel::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.leaveChannel");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_leaveChannel::ReturnType channels_leaveChannel::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_readHistory::channels_readHistory(object_ptr<InputChannel> &&channel_, int32 max_id_)
+ : channel_(std::move(channel_))
+ , max_id_(max_id_)
+{}
+
+const std::int32_t channels_readHistory::ID;
+
+void channels_readHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-871347913);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(max_id_, s);
+}
+
+void channels_readHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-871347913);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(max_id_, s);
+}
+
+void channels_readHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.readHistory");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("max_id", max_id_);
+ s.store_class_end();
+ }
+}
+
+channels_readHistory::ReturnType channels_readHistory::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_readMessageContents::channels_readMessageContents(object_ptr<InputChannel> &&channel_, array<int32> &&id_)
+ : channel_(std::move(channel_))
+ , id_(std::move(id_))
+{}
+
+const std::int32_t channels_readMessageContents::ID;
+
+void channels_readMessageContents::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-357180360);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void channels_readMessageContents::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-357180360);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void channels_readMessageContents::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.readMessageContents");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+channels_readMessageContents::ReturnType channels_readMessageContents::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_reorderUsernames::channels_reorderUsernames(object_ptr<InputChannel> &&channel_, array<string> &&order_)
+ : channel_(std::move(channel_))
+ , order_(std::move(order_))
+{}
+
+const std::int32_t channels_reorderUsernames::ID;
+
+void channels_reorderUsernames::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1268978403);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(order_, s);
+}
+
+void channels_reorderUsernames::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1268978403);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(order_, s);
+}
+
+void channels_reorderUsernames::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.reorderUsernames");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+channels_reorderUsernames::ReturnType channels_reorderUsernames::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_reportSpam::channels_reportSpam(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_, array<int32> &&id_)
+ : channel_(std::move(channel_))
+ , participant_(std::move(participant_))
+ , id_(std::move(id_))
+{}
+
+const std::int32_t channels_reportSpam::ID;
+
+void channels_reportSpam::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-196443371);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void channels_reportSpam::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-196443371);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void channels_reportSpam::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.reportSpam");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+channels_reportSpam::ReturnType channels_reportSpam::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_setDiscussionGroup::channels_setDiscussionGroup(object_ptr<InputChannel> &&broadcast_, object_ptr<InputChannel> &&group_)
+ : broadcast_(std::move(broadcast_))
+ , group_(std::move(group_))
+{}
+
+const std::int32_t channels_setDiscussionGroup::ID;
+
+void channels_setDiscussionGroup::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1079520178);
+ TlStoreBoxedUnknown<TlStoreObject>::store(broadcast_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(group_, s);
+}
+
+void channels_setDiscussionGroup::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1079520178);
+ TlStoreBoxedUnknown<TlStoreObject>::store(broadcast_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(group_, s);
+}
+
+void channels_setDiscussionGroup::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.setDiscussionGroup");
+ s.store_object_field("broadcast", static_cast<const BaseObject *>(broadcast_.get()));
+ s.store_object_field("group", static_cast<const BaseObject *>(group_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_setDiscussionGroup::ReturnType channels_setDiscussionGroup::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_setStickers::channels_setStickers(object_ptr<InputChannel> &&channel_, object_ptr<InputStickerSet> &&stickerset_)
+ : channel_(std::move(channel_))
+ , stickerset_(std::move(stickerset_))
+{}
+
+const std::int32_t channels_setStickers::ID;
+
+void channels_setStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-359881479);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+}
+
+void channels_setStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-359881479);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+}
+
+void channels_setStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.setStickers");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_class_end();
+ }
+}
+
+channels_setStickers::ReturnType channels_setStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_toggleForum::channels_toggleForum(object_ptr<InputChannel> &&channel_, bool enabled_)
+ : channel_(std::move(channel_))
+ , enabled_(enabled_)
+{}
+
+const std::int32_t channels_toggleForum::ID;
+
+void channels_toggleForum::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1540781271);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void channels_toggleForum::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1540781271);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void channels_toggleForum::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.toggleForum");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("enabled", enabled_);
+ s.store_class_end();
+ }
+}
+
+channels_toggleForum::ReturnType channels_toggleForum::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_toggleJoinRequest::channels_toggleJoinRequest(object_ptr<InputChannel> &&channel_, bool enabled_)
+ : channel_(std::move(channel_))
+ , enabled_(enabled_)
+{}
+
+const std::int32_t channels_toggleJoinRequest::ID;
+
+void channels_toggleJoinRequest::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1277789622);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void channels_toggleJoinRequest::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1277789622);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void channels_toggleJoinRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.toggleJoinRequest");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("enabled", enabled_);
+ s.store_class_end();
+ }
+}
+
+channels_toggleJoinRequest::ReturnType channels_toggleJoinRequest::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_toggleJoinToSend::channels_toggleJoinToSend(object_ptr<InputChannel> &&channel_, bool enabled_)
+ : channel_(std::move(channel_))
+ , enabled_(enabled_)
+{}
+
+const std::int32_t channels_toggleJoinToSend::ID;
+
+void channels_toggleJoinToSend::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-456419968);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void channels_toggleJoinToSend::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-456419968);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void channels_toggleJoinToSend::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.toggleJoinToSend");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("enabled", enabled_);
+ s.store_class_end();
+ }
+}
+
+channels_toggleJoinToSend::ReturnType channels_toggleJoinToSend::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_togglePreHistoryHidden::channels_togglePreHistoryHidden(object_ptr<InputChannel> &&channel_, bool enabled_)
+ : channel_(std::move(channel_))
+ , enabled_(enabled_)
+{}
+
+const std::int32_t channels_togglePreHistoryHidden::ID;
+
+void channels_togglePreHistoryHidden::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-356796084);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void channels_togglePreHistoryHidden::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-356796084);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void channels_togglePreHistoryHidden::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.togglePreHistoryHidden");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("enabled", enabled_);
+ s.store_class_end();
+ }
+}
+
+channels_togglePreHistoryHidden::ReturnType channels_togglePreHistoryHidden::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_toggleSignatures::channels_toggleSignatures(object_ptr<InputChannel> &&channel_, bool enabled_)
+ : channel_(std::move(channel_))
+ , enabled_(enabled_)
+{}
+
+const std::int32_t channels_toggleSignatures::ID;
+
+void channels_toggleSignatures::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(527021574);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void channels_toggleSignatures::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(527021574);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void channels_toggleSignatures::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.toggleSignatures");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("enabled", enabled_);
+ s.store_class_end();
+ }
+}
+
+channels_toggleSignatures::ReturnType channels_toggleSignatures::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_toggleSlowMode::channels_toggleSlowMode(object_ptr<InputChannel> &&channel_, int32 seconds_)
+ : channel_(std::move(channel_))
+ , seconds_(seconds_)
+{}
+
+const std::int32_t channels_toggleSlowMode::ID;
+
+void channels_toggleSlowMode::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-304832784);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(seconds_, s);
+}
+
+void channels_toggleSlowMode::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-304832784);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(seconds_, s);
+}
+
+void channels_toggleSlowMode::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.toggleSlowMode");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("seconds", seconds_);
+ s.store_class_end();
+ }
+}
+
+channels_toggleSlowMode::ReturnType channels_toggleSlowMode::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_toggleUsername::channels_toggleUsername(object_ptr<InputChannel> &&channel_, string const &username_, bool active_)
+ : channel_(std::move(channel_))
+ , username_(username_)
+ , active_(active_)
+{}
+
+const std::int32_t channels_toggleUsername::ID;
+
+void channels_toggleUsername::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1358053637);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(username_, s);
+ TlStoreBool::store(active_, s);
+}
+
+void channels_toggleUsername::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1358053637);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(username_, s);
+ TlStoreBool::store(active_, s);
+}
+
+void channels_toggleUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.toggleUsername");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("username", username_);
+ s.store_field("active", active_);
+ s.store_class_end();
+ }
+}
+
+channels_toggleUsername::ReturnType channels_toggleUsername::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_updatePinnedForumTopic::channels_updatePinnedForumTopic(object_ptr<InputChannel> &&channel_, int32 topic_id_, bool pinned_)
+ : channel_(std::move(channel_))
+ , topic_id_(topic_id_)
+ , pinned_(pinned_)
+{}
+
+const std::int32_t channels_updatePinnedForumTopic::ID;
+
+void channels_updatePinnedForumTopic::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1814925350);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(topic_id_, s);
+ TlStoreBool::store(pinned_, s);
+}
+
+void channels_updatePinnedForumTopic::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1814925350);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(topic_id_, s);
+ TlStoreBool::store(pinned_, s);
+}
+
+void channels_updatePinnedForumTopic::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.updatePinnedForumTopic");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("topic_id", topic_id_);
+ s.store_field("pinned", pinned_);
+ s.store_class_end();
+ }
+}
+
+channels_updatePinnedForumTopic::ReturnType channels_updatePinnedForumTopic::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+channels_updateUsername::channels_updateUsername(object_ptr<InputChannel> &&channel_, string const &username_)
+ : channel_(std::move(channel_))
+ , username_(username_)
+{}
+
+const std::int32_t channels_updateUsername::ID;
+
+void channels_updateUsername::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(890549214);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(username_, s);
+}
+
+void channels_updateUsername::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(890549214);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(username_, s);
+}
+
+void channels_updateUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.updateUsername");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+channels_updateUsername::ReturnType channels_updateUsername::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+channels_viewSponsoredMessage::channels_viewSponsoredMessage(object_ptr<InputChannel> &&channel_, bytes &&random_id_)
+ : channel_(std::move(channel_))
+ , random_id_(std::move(random_id_))
+{}
+
+const std::int32_t channels_viewSponsoredMessage::ID;
+
+void channels_viewSponsoredMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1095836780);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(random_id_, s);
+}
+
+void channels_viewSponsoredMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1095836780);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreString::store(random_id_, s);
+}
+
+void channels_viewSponsoredMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "channels.viewSponsoredMessage");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_bytes_field("random_id", random_id_);
+ s.store_class_end();
+ }
+}
+
+channels_viewSponsoredMessage::ReturnType channels_viewSponsoredMessage::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+contacts_acceptContact::contacts_acceptContact(object_ptr<InputUser> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t contacts_acceptContact::ID;
+
+void contacts_acceptContact::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-130964977);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void contacts_acceptContact::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-130964977);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void contacts_acceptContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.acceptContact");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_class_end();
+ }
+}
+
+contacts_acceptContact::ReturnType contacts_acceptContact::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+contacts_addContact::contacts_addContact(int32 flags_, bool add_phone_privacy_exception_, object_ptr<InputUser> &&id_, string const &first_name_, string const &last_name_, string const &phone_)
+ : flags_(flags_)
+ , add_phone_privacy_exception_(add_phone_privacy_exception_)
+ , id_(std::move(id_))
+ , first_name_(first_name_)
+ , last_name_(last_name_)
+ , phone_(phone_)
+{}
+
+const std::int32_t contacts_addContact::ID;
+
+void contacts_addContact::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-386636848);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+ TlStoreString::store(phone_, s);
+}
+
+void contacts_addContact::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-386636848);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreString::store(first_name_, s);
+ TlStoreString::store(last_name_, s);
+ TlStoreString::store(phone_, s);
+}
+
+void contacts_addContact::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.addContact");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_field("first_name", first_name_);
+ s.store_field("last_name", last_name_);
+ s.store_field("phone", phone_);
+ s.store_class_end();
+ }
+}
+
+contacts_addContact::ReturnType contacts_addContact::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+contacts_block::contacts_block(object_ptr<InputPeer> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t contacts_block::ID;
+
+void contacts_block::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1758204945);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void contacts_block::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1758204945);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void contacts_block::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.block");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_class_end();
+ }
+}
+
+contacts_block::ReturnType contacts_block::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+contacts_blockFromReplies::contacts_blockFromReplies(int32 flags_, bool delete_message_, bool delete_history_, bool report_spam_, int32 msg_id_)
+ : flags_(flags_)
+ , delete_message_(delete_message_)
+ , delete_history_(delete_history_)
+ , report_spam_(report_spam_)
+ , msg_id_(msg_id_)
+{}
+
+const std::int32_t contacts_blockFromReplies::ID;
+
+void contacts_blockFromReplies::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(698914348);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void contacts_blockFromReplies::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(698914348);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void contacts_blockFromReplies::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.blockFromReplies");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("msg_id", msg_id_);
+ s.store_class_end();
+ }
+}
+
+contacts_blockFromReplies::ReturnType contacts_blockFromReplies::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+contacts_deleteByPhones::contacts_deleteByPhones(array<string> &&phones_)
+ : phones_(std::move(phones_))
+{}
+
+const std::int32_t contacts_deleteByPhones::ID;
+
+void contacts_deleteByPhones::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(269745566);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(phones_, s);
+}
+
+void contacts_deleteByPhones::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(269745566);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(phones_, s);
+}
+
+void contacts_deleteByPhones::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.deleteByPhones");
+ { s.store_vector_begin("phones", phones_.size()); for (const auto &_value : phones_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+contacts_deleteByPhones::ReturnType contacts_deleteByPhones::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+contacts_deleteContacts::contacts_deleteContacts(array<object_ptr<InputUser>> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t contacts_deleteContacts::ID;
+
+void contacts_deleteContacts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(157945344);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void contacts_deleteContacts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(157945344);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void contacts_deleteContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.deleteContacts");
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+contacts_deleteContacts::ReturnType contacts_deleteContacts::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+contacts_getBlocked::contacts_getBlocked(int32 offset_, int32 limit_)
+ : offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t contacts_getBlocked::ID;
+
+void contacts_getBlocked::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-176409329);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void contacts_getBlocked::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-176409329);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void contacts_getBlocked::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.getBlocked");
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+contacts_getBlocked::ReturnType contacts_getBlocked::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<contacts_Blocked>::parse(p);
+#undef FAIL
+}
+
+contacts_getContactIDs::contacts_getContactIDs(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t contacts_getContactIDs::ID;
+
+void contacts_getContactIDs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2061264541);
+ TlStoreBinary::store(hash_, s);
+}
+
+void contacts_getContactIDs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2061264541);
+ TlStoreBinary::store(hash_, s);
+}
+
+void contacts_getContactIDs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.getContactIDs");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+contacts_getContactIDs::ReturnType contacts_getContactIDs::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p);
+#undef FAIL
+}
+
+contacts_getContacts::contacts_getContacts(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t contacts_getContacts::ID;
+
+void contacts_getContacts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1574346258);
+ TlStoreBinary::store(hash_, s);
+}
+
+void contacts_getContacts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1574346258);
+ TlStoreBinary::store(hash_, s);
+}
+
+void contacts_getContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.getContacts");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+contacts_getContacts::ReturnType contacts_getContacts::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<contacts_Contacts>::parse(p);
+#undef FAIL
+}
+
+contacts_getLocated::contacts_getLocated(int32 flags_, bool background_, object_ptr<InputGeoPoint> &&geo_point_, int32 self_expires_)
+ : flags_(flags_)
+ , background_(background_)
+ , geo_point_(std::move(geo_point_))
+ , self_expires_(self_expires_)
+{}
+
+const std::int32_t contacts_getLocated::ID;
+
+void contacts_getLocated::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-750207932);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ if (var0 & 1) { TlStoreBinary::store(self_expires_, s); }
+}
+
+void contacts_getLocated::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-750207932);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s);
+ if (var0 & 1) { TlStoreBinary::store(self_expires_, s); }
+}
+
+void contacts_getLocated::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.getLocated");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get()));
+ if (var0 & 1) { s.store_field("self_expires", self_expires_); }
+ s.store_class_end();
+ }
+}
+
+contacts_getLocated::ReturnType contacts_getLocated::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t contacts_getSaved::ID;
+
+void contacts_getSaved::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2098076769);
+}
+
+void contacts_getSaved::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2098076769);
+}
+
+void contacts_getSaved::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.getSaved");
+ s.store_class_end();
+ }
+}
+
+contacts_getSaved::ReturnType contacts_getSaved::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<savedPhoneContact>, 289586518>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t contacts_getStatuses::ID;
+
+void contacts_getStatuses::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-995929106);
+}
+
+void contacts_getStatuses::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-995929106);
+}
+
+void contacts_getStatuses::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.getStatuses");
+ s.store_class_end();
+ }
+}
+
+contacts_getStatuses::ReturnType contacts_getStatuses::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<contactStatus>, 383348795>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+contacts_getTopPeers::contacts_getTopPeers(int32 flags_, bool correspondents_, bool bots_pm_, bool bots_inline_, bool phone_calls_, bool forward_users_, bool forward_chats_, bool groups_, bool channels_, int32 offset_, int32 limit_, int64 hash_)
+ : flags_(flags_)
+ , correspondents_(correspondents_)
+ , bots_pm_(bots_pm_)
+ , bots_inline_(bots_inline_)
+ , phone_calls_(phone_calls_)
+ , forward_users_(forward_users_)
+ , forward_chats_(forward_chats_)
+ , groups_(groups_)
+ , channels_(channels_)
+ , offset_(offset_)
+ , limit_(limit_)
+ , hash_(hash_)
+{}
+
+const std::int32_t contacts_getTopPeers::ID;
+
+void contacts_getTopPeers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1758168906);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void contacts_getTopPeers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1758168906);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void contacts_getTopPeers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.getTopPeers");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+contacts_getTopPeers::ReturnType contacts_getTopPeers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<contacts_TopPeers>::parse(p);
+#undef FAIL
+}
+
+contacts_importContacts::contacts_importContacts(array<object_ptr<inputPhoneContact>> &&contacts_)
+ : contacts_(std::move(contacts_))
+{}
+
+const std::int32_t contacts_importContacts::ID;
+
+void contacts_importContacts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(746589157);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -208488460>>, 481674261>::store(contacts_, s);
+}
+
+void contacts_importContacts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(746589157);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -208488460>>, 481674261>::store(contacts_, s);
+}
+
+void contacts_importContacts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.importContacts");
+ { s.store_vector_begin("contacts", contacts_.size()); for (const auto &_value : contacts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+contacts_importContacts::ReturnType contacts_importContacts::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<contacts_importedContacts>, 2010127419>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t contacts_resetSaved::ID;
+
+void contacts_resetSaved::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2020263951);
+}
+
+void contacts_resetSaved::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2020263951);
+}
+
+void contacts_resetSaved::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.resetSaved");
+ s.store_class_end();
+ }
+}
+
+contacts_resetSaved::ReturnType contacts_resetSaved::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+contacts_resetTopPeerRating::contacts_resetTopPeerRating(object_ptr<TopPeerCategory> &&category_, object_ptr<InputPeer> &&peer_)
+ : category_(std::move(category_))
+ , peer_(std::move(peer_))
+{}
+
+const std::int32_t contacts_resetTopPeerRating::ID;
+
+void contacts_resetTopPeerRating::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(451113900);
+ TlStoreBoxedUnknown<TlStoreObject>::store(category_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void contacts_resetTopPeerRating::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(451113900);
+ TlStoreBoxedUnknown<TlStoreObject>::store(category_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void contacts_resetTopPeerRating::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.resetTopPeerRating");
+ s.store_object_field("category", static_cast<const BaseObject *>(category_.get()));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+contacts_resetTopPeerRating::ReturnType contacts_resetTopPeerRating::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+contacts_resolvePhone::contacts_resolvePhone(string const &phone_)
+ : phone_(phone_)
+{}
+
+const std::int32_t contacts_resolvePhone::ID;
+
+void contacts_resolvePhone::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1963375804);
+ TlStoreString::store(phone_, s);
+}
+
+void contacts_resolvePhone::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1963375804);
+ TlStoreString::store(phone_, s);
+}
+
+void contacts_resolvePhone::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.resolvePhone");
+ s.store_field("phone", phone_);
+ s.store_class_end();
+ }
+}
+
+contacts_resolvePhone::ReturnType contacts_resolvePhone::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<contacts_resolvedPeer>, 2131196633>::parse(p);
+#undef FAIL
+}
+
+contacts_resolveUsername::contacts_resolveUsername(string const &username_)
+ : username_(username_)
+{}
+
+const std::int32_t contacts_resolveUsername::ID;
+
+void contacts_resolveUsername::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-113456221);
+ TlStoreString::store(username_, s);
+}
+
+void contacts_resolveUsername::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-113456221);
+ TlStoreString::store(username_, s);
+}
+
+void contacts_resolveUsername::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.resolveUsername");
+ s.store_field("username", username_);
+ s.store_class_end();
+ }
+}
+
+contacts_resolveUsername::ReturnType contacts_resolveUsername::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<contacts_resolvedPeer>, 2131196633>::parse(p);
+#undef FAIL
+}
+
+contacts_search::contacts_search(string const &q_, int32 limit_)
+ : q_(q_)
+ , limit_(limit_)
+{}
+
+const std::int32_t contacts_search::ID;
+
+void contacts_search::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(301470424);
+ TlStoreString::store(q_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void contacts_search::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(301470424);
+ TlStoreString::store(q_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void contacts_search::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.search");
+ s.store_field("q", q_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+contacts_search::ReturnType contacts_search::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<contacts_found>, -1290580579>::parse(p);
+#undef FAIL
+}
+
+contacts_toggleTopPeers::contacts_toggleTopPeers(bool enabled_)
+ : enabled_(enabled_)
+{}
+
+const std::int32_t contacts_toggleTopPeers::ID;
+
+void contacts_toggleTopPeers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2062238246);
+ TlStoreBool::store(enabled_, s);
+}
+
+void contacts_toggleTopPeers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2062238246);
+ TlStoreBool::store(enabled_, s);
+}
+
+void contacts_toggleTopPeers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.toggleTopPeers");
+ s.store_field("enabled", enabled_);
+ s.store_class_end();
+ }
+}
+
+contacts_toggleTopPeers::ReturnType contacts_toggleTopPeers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+contacts_unblock::contacts_unblock(object_ptr<InputPeer> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t contacts_unblock::ID;
+
+void contacts_unblock::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1096393392);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void contacts_unblock::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1096393392);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void contacts_unblock::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "contacts.unblock");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_class_end();
+ }
+}
+
+contacts_unblock::ReturnType contacts_unblock::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+folders_deleteFolder::folders_deleteFolder(int32 folder_id_)
+ : folder_id_(folder_id_)
+{}
+
+const std::int32_t folders_deleteFolder::ID;
+
+void folders_deleteFolder::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(472471681);
+ TlStoreBinary::store(folder_id_, s);
+}
+
+void folders_deleteFolder::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(472471681);
+ TlStoreBinary::store(folder_id_, s);
+}
+
+void folders_deleteFolder::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "folders.deleteFolder");
+ s.store_field("folder_id", folder_id_);
+ s.store_class_end();
+ }
+}
+
+folders_deleteFolder::ReturnType folders_deleteFolder::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+folders_editPeerFolders::folders_editPeerFolders(array<object_ptr<inputFolderPeer>> &&folder_peers_)
+ : folder_peers_(std::move(folder_peers_))
+{}
+
+const std::int32_t folders_editPeerFolders::ID;
+
+void folders_editPeerFolders::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1749536939);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -70073706>>, 481674261>::store(folder_peers_, s);
+}
+
+void folders_editPeerFolders::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1749536939);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -70073706>>, 481674261>::store(folder_peers_, s);
+}
+
+void folders_editPeerFolders::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "folders.editPeerFolders");
+ { s.store_vector_begin("folder_peers", folder_peers_.size()); for (const auto &_value : folder_peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+folders_editPeerFolders::ReturnType folders_editPeerFolders::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+help_acceptTermsOfService::help_acceptTermsOfService(object_ptr<dataJSON> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t help_acceptTermsOfService::ID;
+
+void help_acceptTermsOfService::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-294455398);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(id_, s);
+}
+
+void help_acceptTermsOfService::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-294455398);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(id_, s);
+}
+
+void help_acceptTermsOfService::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.acceptTermsOfService");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_class_end();
+ }
+}
+
+help_acceptTermsOfService::ReturnType help_acceptTermsOfService::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+help_dismissSuggestion::help_dismissSuggestion(object_ptr<InputPeer> &&peer_, string const &suggestion_)
+ : peer_(std::move(peer_))
+ , suggestion_(suggestion_)
+{}
+
+const std::int32_t help_dismissSuggestion::ID;
+
+void help_dismissSuggestion::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-183649631);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(suggestion_, s);
+}
+
+void help_dismissSuggestion::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-183649631);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(suggestion_, s);
+}
+
+void help_dismissSuggestion::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.dismissSuggestion");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("suggestion", suggestion_);
+ s.store_class_end();
+ }
+}
+
+help_dismissSuggestion::ReturnType help_dismissSuggestion::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+help_editUserInfo::help_editUserInfo(object_ptr<InputUser> &&user_id_, string const &message_, array<object_ptr<MessageEntity>> &&entities_)
+ : user_id_(std::move(user_id_))
+ , message_(message_)
+ , entities_(std::move(entities_))
+{}
+
+const std::int32_t help_editUserInfo::ID;
+
+void help_editUserInfo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1723407216);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreString::store(message_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s);
+}
+
+void help_editUserInfo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1723407216);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreString::store(message_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s);
+}
+
+void help_editUserInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.editUserInfo");
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("message", message_);
+ { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+help_editUserInfo::ReturnType help_editUserInfo::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<help_UserInfo>::parse(p);
+#undef FAIL
+}
+
+help_getAppChangelog::help_getAppChangelog(string const &prev_app_version_)
+ : prev_app_version_(prev_app_version_)
+{}
+
+const std::int32_t help_getAppChangelog::ID;
+
+void help_getAppChangelog::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1877938321);
+ TlStoreString::store(prev_app_version_, s);
+}
+
+void help_getAppChangelog::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1877938321);
+ TlStoreString::store(prev_app_version_, s);
+}
+
+void help_getAppChangelog::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getAppChangelog");
+ s.store_field("prev_app_version", prev_app_version_);
+ s.store_class_end();
+ }
+}
+
+help_getAppChangelog::ReturnType help_getAppChangelog::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t help_getAppConfig::ID;
+
+void help_getAppConfig::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1735311088);
+}
+
+void help_getAppConfig::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1735311088);
+}
+
+void help_getAppConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getAppConfig");
+ s.store_class_end();
+ }
+}
+
+help_getAppConfig::ReturnType help_getAppConfig::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<JSONValue>::parse(p);
+#undef FAIL
+}
+
+help_getAppUpdate::help_getAppUpdate(string const &source_)
+ : source_(source_)
+{}
+
+const std::int32_t help_getAppUpdate::ID;
+
+void help_getAppUpdate::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1378703997);
+ TlStoreString::store(source_, s);
+}
+
+void help_getAppUpdate::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1378703997);
+ TlStoreString::store(source_, s);
+}
+
+void help_getAppUpdate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getAppUpdate");
+ s.store_field("source", source_);
+ s.store_class_end();
+ }
+}
+
+help_getAppUpdate::ReturnType help_getAppUpdate::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<help_AppUpdate>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t help_getCdnConfig::ID;
+
+void help_getCdnConfig::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1375900482);
+}
+
+void help_getCdnConfig::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1375900482);
+}
+
+void help_getCdnConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getCdnConfig");
+ s.store_class_end();
+ }
+}
+
+help_getCdnConfig::ReturnType help_getCdnConfig::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<cdnConfig>, 1462101002>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t help_getConfig::ID;
+
+void help_getConfig::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-990308245);
+}
+
+void help_getConfig::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-990308245);
+}
+
+void help_getConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getConfig");
+ s.store_class_end();
+ }
+}
+
+help_getConfig::ReturnType help_getConfig::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<config>, 589653676>::parse(p);
+#undef FAIL
+}
+
+help_getCountriesList::help_getCountriesList(string const &lang_code_, int32 hash_)
+ : lang_code_(lang_code_)
+ , hash_(hash_)
+{}
+
+const std::int32_t help_getCountriesList::ID;
+
+void help_getCountriesList::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1935116200);
+ TlStoreString::store(lang_code_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void help_getCountriesList::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1935116200);
+ TlStoreString::store(lang_code_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void help_getCountriesList::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getCountriesList");
+ s.store_field("lang_code", lang_code_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+help_getCountriesList::ReturnType help_getCountriesList::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<help_CountriesList>::parse(p);
+#undef FAIL
+}
+
+help_getDeepLinkInfo::help_getDeepLinkInfo(string const &path_)
+ : path_(path_)
+{}
+
+const std::int32_t help_getDeepLinkInfo::ID;
+
+void help_getDeepLinkInfo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1072547679);
+ TlStoreString::store(path_, s);
+}
+
+void help_getDeepLinkInfo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1072547679);
+ TlStoreString::store(path_, s);
+}
+
+void help_getDeepLinkInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getDeepLinkInfo");
+ s.store_field("path", path_);
+ s.store_class_end();
+ }
+}
+
+help_getDeepLinkInfo::ReturnType help_getDeepLinkInfo::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<help_DeepLinkInfo>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t help_getInviteText::ID;
+
+void help_getInviteText::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1295590211);
+}
+
+void help_getInviteText::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1295590211);
+}
+
+void help_getInviteText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getInviteText");
+ s.store_class_end();
+ }
+}
+
+help_getInviteText::ReturnType help_getInviteText::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<help_inviteText>, 415997816>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t help_getNearestDc::ID;
+
+void help_getNearestDc::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(531836966);
+}
+
+void help_getNearestDc::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(531836966);
+}
+
+void help_getNearestDc::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getNearestDc");
+ s.store_class_end();
+ }
+}
+
+help_getNearestDc::ReturnType help_getNearestDc::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<nearestDc>, -1910892683>::parse(p);
+#undef FAIL
+}
+
+help_getPassportConfig::help_getPassportConfig(int32 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t help_getPassportConfig::ID;
+
+void help_getPassportConfig::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-966677240);
+ TlStoreBinary::store(hash_, s);
+}
+
+void help_getPassportConfig::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-966677240);
+ TlStoreBinary::store(hash_, s);
+}
+
+void help_getPassportConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getPassportConfig");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+help_getPassportConfig::ReturnType help_getPassportConfig::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<help_PassportConfig>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t help_getPremiumPromo::ID;
+
+void help_getPremiumPromo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1206152236);
+}
+
+void help_getPremiumPromo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1206152236);
+}
+
+void help_getPremiumPromo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getPremiumPromo");
+ s.store_class_end();
+ }
+}
+
+help_getPremiumPromo::ReturnType help_getPremiumPromo::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<help_premiumPromo>, 1395946908>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t help_getPromoData::ID;
+
+void help_getPromoData::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1063816159);
+}
+
+void help_getPromoData::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1063816159);
+}
+
+void help_getPromoData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getPromoData");
+ s.store_class_end();
+ }
+}
+
+help_getPromoData::ReturnType help_getPromoData::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<help_PromoData>::parse(p);
+#undef FAIL
+}
+
+help_getRecentMeUrls::help_getRecentMeUrls(string const &referer_)
+ : referer_(referer_)
+{}
+
+const std::int32_t help_getRecentMeUrls::ID;
+
+void help_getRecentMeUrls::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1036054804);
+ TlStoreString::store(referer_, s);
+}
+
+void help_getRecentMeUrls::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1036054804);
+ TlStoreString::store(referer_, s);
+}
+
+void help_getRecentMeUrls::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getRecentMeUrls");
+ s.store_field("referer", referer_);
+ s.store_class_end();
+ }
+}
+
+help_getRecentMeUrls::ReturnType help_getRecentMeUrls::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<help_recentMeUrls>, 235081943>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t help_getSupport::ID;
+
+void help_getSupport::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1663104819);
+}
+
+void help_getSupport::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1663104819);
+}
+
+void help_getSupport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getSupport");
+ s.store_class_end();
+ }
+}
+
+help_getSupport::ReturnType help_getSupport::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<help_support>, 398898678>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t help_getSupportName::ID;
+
+void help_getSupportName::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-748624084);
+}
+
+void help_getSupportName::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-748624084);
+}
+
+void help_getSupportName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getSupportName");
+ s.store_class_end();
+ }
+}
+
+help_getSupportName::ReturnType help_getSupportName::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<help_supportName>, -1945767479>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t help_getTermsOfServiceUpdate::ID;
+
+void help_getTermsOfServiceUpdate::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(749019089);
+}
+
+void help_getTermsOfServiceUpdate::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(749019089);
+}
+
+void help_getTermsOfServiceUpdate::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getTermsOfServiceUpdate");
+ s.store_class_end();
+ }
+}
+
+help_getTermsOfServiceUpdate::ReturnType help_getTermsOfServiceUpdate::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<help_TermsOfServiceUpdate>::parse(p);
+#undef FAIL
+}
+
+help_getUserInfo::help_getUserInfo(object_ptr<InputUser> &&user_id_)
+ : user_id_(std::move(user_id_))
+{}
+
+const std::int32_t help_getUserInfo::ID;
+
+void help_getUserInfo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(59377875);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void help_getUserInfo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(59377875);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void help_getUserInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.getUserInfo");
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_class_end();
+ }
+}
+
+help_getUserInfo::ReturnType help_getUserInfo::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<help_UserInfo>::parse(p);
+#undef FAIL
+}
+
+help_hidePromoData::help_hidePromoData(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t help_hidePromoData::ID;
+
+void help_hidePromoData::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(505748629);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void help_hidePromoData::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(505748629);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void help_hidePromoData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.hidePromoData");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+help_hidePromoData::ReturnType help_hidePromoData::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+help_saveAppLog::help_saveAppLog(array<object_ptr<inputAppEvent>> &&events_)
+ : events_(std::move(events_))
+{}
+
+const std::int32_t help_saveAppLog::ID;
+
+void help_saveAppLog::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1862465352);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 488313413>>, 481674261>::store(events_, s);
+}
+
+void help_saveAppLog::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1862465352);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 488313413>>, 481674261>::store(events_, s);
+}
+
+void help_saveAppLog::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.saveAppLog");
+ { s.store_vector_begin("events", events_.size()); for (const auto &_value : events_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+help_saveAppLog::ReturnType help_saveAppLog::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+help_setBotUpdatesStatus::help_setBotUpdatesStatus(int32 pending_updates_count_, string const &message_)
+ : pending_updates_count_(pending_updates_count_)
+ , message_(message_)
+{}
+
+const std::int32_t help_setBotUpdatesStatus::ID;
+
+void help_setBotUpdatesStatus::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-333262899);
+ TlStoreBinary::store(pending_updates_count_, s);
+ TlStoreString::store(message_, s);
+}
+
+void help_setBotUpdatesStatus::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-333262899);
+ TlStoreBinary::store(pending_updates_count_, s);
+ TlStoreString::store(message_, s);
+}
+
+void help_setBotUpdatesStatus::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "help.setBotUpdatesStatus");
+ s.store_field("pending_updates_count", pending_updates_count_);
+ s.store_field("message", message_);
+ s.store_class_end();
+ }
+}
+
+help_setBotUpdatesStatus::ReturnType help_setBotUpdatesStatus::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+langpack_getDifference::langpack_getDifference(string const &lang_pack_, string const &lang_code_, int32 from_version_)
+ : lang_pack_(lang_pack_)
+ , lang_code_(lang_code_)
+ , from_version_(from_version_)
+{}
+
+const std::int32_t langpack_getDifference::ID;
+
+void langpack_getDifference::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-845657435);
+ TlStoreString::store(lang_pack_, s);
+ TlStoreString::store(lang_code_, s);
+ TlStoreBinary::store(from_version_, s);
+}
+
+void langpack_getDifference::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-845657435);
+ TlStoreString::store(lang_pack_, s);
+ TlStoreString::store(lang_code_, s);
+ TlStoreBinary::store(from_version_, s);
+}
+
+void langpack_getDifference::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "langpack.getDifference");
+ s.store_field("lang_pack", lang_pack_);
+ s.store_field("lang_code", lang_code_);
+ s.store_field("from_version", from_version_);
+ s.store_class_end();
+ }
+}
+
+langpack_getDifference::ReturnType langpack_getDifference::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<langPackDifference>, -209337866>::parse(p);
+#undef FAIL
+}
+
+langpack_getLangPack::langpack_getLangPack(string const &lang_pack_, string const &lang_code_)
+ : lang_pack_(lang_pack_)
+ , lang_code_(lang_code_)
+{}
+
+const std::int32_t langpack_getLangPack::ID;
+
+void langpack_getLangPack::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-219008246);
+ TlStoreString::store(lang_pack_, s);
+ TlStoreString::store(lang_code_, s);
+}
+
+void langpack_getLangPack::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-219008246);
+ TlStoreString::store(lang_pack_, s);
+ TlStoreString::store(lang_code_, s);
+}
+
+void langpack_getLangPack::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "langpack.getLangPack");
+ s.store_field("lang_pack", lang_pack_);
+ s.store_field("lang_code", lang_code_);
+ s.store_class_end();
+ }
+}
+
+langpack_getLangPack::ReturnType langpack_getLangPack::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<langPackDifference>, -209337866>::parse(p);
+#undef FAIL
+}
+
+langpack_getLanguage::langpack_getLanguage(string const &lang_pack_, string const &lang_code_)
+ : lang_pack_(lang_pack_)
+ , lang_code_(lang_code_)
+{}
+
+const std::int32_t langpack_getLanguage::ID;
+
+void langpack_getLanguage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1784243458);
+ TlStoreString::store(lang_pack_, s);
+ TlStoreString::store(lang_code_, s);
+}
+
+void langpack_getLanguage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1784243458);
+ TlStoreString::store(lang_pack_, s);
+ TlStoreString::store(lang_code_, s);
+}
+
+void langpack_getLanguage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "langpack.getLanguage");
+ s.store_field("lang_pack", lang_pack_);
+ s.store_field("lang_code", lang_code_);
+ s.store_class_end();
+ }
+}
+
+langpack_getLanguage::ReturnType langpack_getLanguage::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<langPackLanguage>, -288727837>::parse(p);
+#undef FAIL
+}
+
+langpack_getLanguages::langpack_getLanguages(string const &lang_pack_)
+ : lang_pack_(lang_pack_)
+{}
+
+const std::int32_t langpack_getLanguages::ID;
+
+void langpack_getLanguages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1120311183);
+ TlStoreString::store(lang_pack_, s);
+}
+
+void langpack_getLanguages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1120311183);
+ TlStoreString::store(lang_pack_, s);
+}
+
+void langpack_getLanguages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "langpack.getLanguages");
+ s.store_field("lang_pack", lang_pack_);
+ s.store_class_end();
+ }
+}
+
+langpack_getLanguages::ReturnType langpack_getLanguages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<langPackLanguage>, -288727837>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+langpack_getStrings::langpack_getStrings(string const &lang_pack_, string const &lang_code_, array<string> &&keys_)
+ : lang_pack_(lang_pack_)
+ , lang_code_(lang_code_)
+ , keys_(std::move(keys_))
+{}
+
+const std::int32_t langpack_getStrings::ID;
+
+void langpack_getStrings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-269862909);
+ TlStoreString::store(lang_pack_, s);
+ TlStoreString::store(lang_code_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(keys_, s);
+}
+
+void langpack_getStrings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-269862909);
+ TlStoreString::store(lang_pack_, s);
+ TlStoreString::store(lang_code_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(keys_, s);
+}
+
+void langpack_getStrings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "langpack.getStrings");
+ s.store_field("lang_pack", lang_pack_);
+ s.store_field("lang_code", lang_code_);
+ { s.store_vector_begin("keys", keys_.size()); for (const auto &_value : keys_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+langpack_getStrings::ReturnType langpack_getStrings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchObject<LangPackString>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_acceptEncryption::messages_acceptEncryption(object_ptr<inputEncryptedChat> &&peer_, bytes &&g_b_, int64 key_fingerprint_)
+ : peer_(std::move(peer_))
+ , g_b_(std::move(g_b_))
+ , key_fingerprint_(key_fingerprint_)
+{}
+
+const std::int32_t messages_acceptEncryption::ID;
+
+void messages_acceptEncryption::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1035731989);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreString::store(g_b_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+}
+
+void messages_acceptEncryption::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1035731989);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreString::store(g_b_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+}
+
+void messages_acceptEncryption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.acceptEncryption");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_bytes_field("g_b", g_b_);
+ s.store_field("key_fingerprint", key_fingerprint_);
+ s.store_class_end();
+ }
+}
+
+messages_acceptEncryption::ReturnType messages_acceptEncryption::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<EncryptedChat>::parse(p);
+#undef FAIL
+}
+
+messages_acceptUrlAuth::messages_acceptUrlAuth(int32 flags_, bool write_allowed_, object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 button_id_, string const &url_)
+ : flags_(flags_)
+ , write_allowed_(write_allowed_)
+ , peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , button_id_(button_id_)
+ , url_(url_)
+{}
+
+const std::int32_t messages_acceptUrlAuth::ID;
+
+void messages_acceptUrlAuth::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1322487515);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); }
+ if (var0 & 2) { TlStoreBinary::store(msg_id_, s); }
+ if (var0 & 2) { TlStoreBinary::store(button_id_, s); }
+ if (var0 & 4) { TlStoreString::store(url_, s); }
+}
+
+void messages_acceptUrlAuth::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1322487515);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); }
+ if (var0 & 2) { TlStoreBinary::store(msg_id_, s); }
+ if (var0 & 2) { TlStoreBinary::store(button_id_, s); }
+ if (var0 & 4) { TlStoreString::store(url_, s); }
+}
+
+void messages_acceptUrlAuth::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.acceptUrlAuth");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); }
+ if (var0 & 2) { s.store_field("msg_id", msg_id_); }
+ if (var0 & 2) { s.store_field("button_id", button_id_); }
+ if (var0 & 4) { s.store_field("url", url_); }
+ s.store_class_end();
+ }
+}
+
+messages_acceptUrlAuth::ReturnType messages_acceptUrlAuth::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<UrlAuthResult>::parse(p);
+#undef FAIL
+}
+
+messages_addChatUser::messages_addChatUser(int64 chat_id_, object_ptr<InputUser> &&user_id_, int32 fwd_limit_)
+ : chat_id_(chat_id_)
+ , user_id_(std::move(user_id_))
+ , fwd_limit_(fwd_limit_)
+{}
+
+const std::int32_t messages_addChatUser::ID;
+
+void messages_addChatUser::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-230206493);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(fwd_limit_, s);
+}
+
+void messages_addChatUser::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-230206493);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(fwd_limit_, s);
+}
+
+void messages_addChatUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.addChatUser");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("fwd_limit", fwd_limit_);
+ s.store_class_end();
+ }
+}
+
+messages_addChatUser::ReturnType messages_addChatUser::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_checkChatInvite::messages_checkChatInvite(string const &hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_checkChatInvite::ID;
+
+void messages_checkChatInvite::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1051570619);
+ TlStoreString::store(hash_, s);
+}
+
+void messages_checkChatInvite::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1051570619);
+ TlStoreString::store(hash_, s);
+}
+
+void messages_checkChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.checkChatInvite");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_checkChatInvite::ReturnType messages_checkChatInvite::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<ChatInvite>::parse(p);
+#undef FAIL
+}
+
+messages_checkHistoryImport::messages_checkHistoryImport(string const &import_head_)
+ : import_head_(import_head_)
+{}
+
+const std::int32_t messages_checkHistoryImport::ID;
+
+void messages_checkHistoryImport::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1140726259);
+ TlStoreString::store(import_head_, s);
+}
+
+void messages_checkHistoryImport::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1140726259);
+ TlStoreString::store(import_head_, s);
+}
+
+void messages_checkHistoryImport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.checkHistoryImport");
+ s.store_field("import_head", import_head_);
+ s.store_class_end();
+ }
+}
+
+messages_checkHistoryImport::ReturnType messages_checkHistoryImport::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_historyImportParsed>, 1578088377>::parse(p);
+#undef FAIL
+}
+
+messages_checkHistoryImportPeer::messages_checkHistoryImportPeer(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t messages_checkHistoryImportPeer::ID;
+
+void messages_checkHistoryImportPeer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1573261059);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_checkHistoryImportPeer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1573261059);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_checkHistoryImportPeer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.checkHistoryImportPeer");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_checkHistoryImportPeer::ReturnType messages_checkHistoryImportPeer::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_checkedHistoryImportPeer>, -1571952873>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t messages_clearAllDrafts::ID;
+
+void messages_clearAllDrafts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2119757468);
+}
+
+void messages_clearAllDrafts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2119757468);
+}
+
+void messages_clearAllDrafts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.clearAllDrafts");
+ s.store_class_end();
+ }
+}
+
+messages_clearAllDrafts::ReturnType messages_clearAllDrafts::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+const std::int32_t messages_clearRecentReactions::ID;
+
+void messages_clearRecentReactions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1644236876);
+}
+
+void messages_clearRecentReactions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1644236876);
+}
+
+void messages_clearRecentReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.clearRecentReactions");
+ s.store_class_end();
+ }
+}
+
+messages_clearRecentReactions::ReturnType messages_clearRecentReactions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_clearRecentStickers::messages_clearRecentStickers(int32 flags_, bool attached_)
+ : flags_(flags_)
+ , attached_(attached_)
+{}
+
+const std::int32_t messages_clearRecentStickers::ID;
+
+void messages_clearRecentStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1986437075);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void messages_clearRecentStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1986437075);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void messages_clearRecentStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.clearRecentStickers");
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+messages_clearRecentStickers::ReturnType messages_clearRecentStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_createChat::messages_createChat(array<object_ptr<InputUser>> &&users_, string const &title_)
+ : users_(std::move(users_))
+ , title_(title_)
+{}
+
+const std::int32_t messages_createChat::ID;
+
+void messages_createChat::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(164303470);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s);
+ TlStoreString::store(title_, s);
+}
+
+void messages_createChat::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(164303470);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s);
+ TlStoreString::store(title_, s);
+}
+
+void messages_createChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.createChat");
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+messages_createChat::ReturnType messages_createChat::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_deleteChat::messages_deleteChat(int64 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t messages_deleteChat::ID;
+
+void messages_deleteChat::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1540419152);
+ TlStoreBinary::store(chat_id_, s);
+}
+
+void messages_deleteChat::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1540419152);
+ TlStoreBinary::store(chat_id_, s);
+}
+
+void messages_deleteChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.deleteChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+messages_deleteChat::ReturnType messages_deleteChat::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_deleteChatUser::messages_deleteChatUser(int32 flags_, bool revoke_history_, int64 chat_id_, object_ptr<InputUser> &&user_id_)
+ : flags_(flags_)
+ , revoke_history_(revoke_history_)
+ , chat_id_(chat_id_)
+ , user_id_(std::move(user_id_))
+{}
+
+const std::int32_t messages_deleteChatUser::ID;
+
+void messages_deleteChatUser::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1575461717);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void messages_deleteChatUser::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1575461717);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void messages_deleteChatUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.deleteChatUser");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_deleteChatUser::ReturnType messages_deleteChatUser::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_deleteExportedChatInvite::messages_deleteExportedChatInvite(object_ptr<InputPeer> &&peer_, string const &link_)
+ : peer_(std::move(peer_))
+ , link_(link_)
+{}
+
+const std::int32_t messages_deleteExportedChatInvite::ID;
+
+void messages_deleteExportedChatInvite::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-731601877);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(link_, s);
+}
+
+void messages_deleteExportedChatInvite::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-731601877);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(link_, s);
+}
+
+void messages_deleteExportedChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.deleteExportedChatInvite");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("link", link_);
+ s.store_class_end();
+ }
+}
+
+messages_deleteExportedChatInvite::ReturnType messages_deleteExportedChatInvite::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_deleteHistory::messages_deleteHistory(int32 flags_, bool just_clear_, bool revoke_, object_ptr<InputPeer> &&peer_, int32 max_id_, int32 min_date_, int32 max_date_)
+ : flags_(flags_)
+ , just_clear_(just_clear_)
+ , revoke_(revoke_)
+ , peer_(std::move(peer_))
+ , max_id_(max_id_)
+ , min_date_(min_date_)
+ , max_date_(max_date_)
+{}
+
+const std::int32_t messages_deleteHistory::ID;
+
+void messages_deleteHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1332768214);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(max_id_, s);
+ if (var0 & 4) { TlStoreBinary::store(min_date_, s); }
+ if (var0 & 8) { TlStoreBinary::store(max_date_, s); }
+}
+
+void messages_deleteHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1332768214);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(max_id_, s);
+ if (var0 & 4) { TlStoreBinary::store(min_date_, s); }
+ if (var0 & 8) { TlStoreBinary::store(max_date_, s); }
+}
+
+void messages_deleteHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.deleteHistory");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("max_id", max_id_);
+ if (var0 & 4) { s.store_field("min_date", min_date_); }
+ if (var0 & 8) { s.store_field("max_date", max_date_); }
+ s.store_class_end();
+ }
+}
+
+messages_deleteHistory::ReturnType messages_deleteHistory::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p);
+#undef FAIL
+}
+
+messages_deleteMessages::messages_deleteMessages(int32 flags_, bool revoke_, array<int32> &&id_)
+ : flags_(flags_)
+ , revoke_(revoke_)
+ , id_(std::move(id_))
+{}
+
+const std::int32_t messages_deleteMessages::ID;
+
+void messages_deleteMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-443640366);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_deleteMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-443640366);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_deleteMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.deleteMessages");
+ s.store_field("flags", (var0 = flags_));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_deleteMessages::ReturnType messages_deleteMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedMessages>, -2066640507>::parse(p);
+#undef FAIL
+}
+
+messages_deletePhoneCallHistory::messages_deletePhoneCallHistory(int32 flags_, bool revoke_)
+ : flags_(flags_)
+ , revoke_(revoke_)
+{}
+
+const std::int32_t messages_deletePhoneCallHistory::ID;
+
+void messages_deletePhoneCallHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-104078327);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void messages_deletePhoneCallHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-104078327);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void messages_deletePhoneCallHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.deletePhoneCallHistory");
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+messages_deletePhoneCallHistory::ReturnType messages_deletePhoneCallHistory::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedFoundMessages>, -275956116>::parse(p);
+#undef FAIL
+}
+
+messages_deleteRevokedExportedChatInvites::messages_deleteRevokedExportedChatInvites(object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&admin_id_)
+ : peer_(std::move(peer_))
+ , admin_id_(std::move(admin_id_))
+{}
+
+const std::int32_t messages_deleteRevokedExportedChatInvites::ID;
+
+void messages_deleteRevokedExportedChatInvites::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1452833749);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(admin_id_, s);
+}
+
+void messages_deleteRevokedExportedChatInvites::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1452833749);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(admin_id_, s);
+}
+
+void messages_deleteRevokedExportedChatInvites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.deleteRevokedExportedChatInvites");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("admin_id", static_cast<const BaseObject *>(admin_id_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_deleteRevokedExportedChatInvites::ReturnType messages_deleteRevokedExportedChatInvites::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_deleteScheduledMessages::messages_deleteScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_)
+ : peer_(std::move(peer_))
+ , id_(std::move(id_))
+{}
+
+const std::int32_t messages_deleteScheduledMessages::ID;
+
+void messages_deleteScheduledMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1504586518);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_deleteScheduledMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1504586518);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_deleteScheduledMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.deleteScheduledMessages");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_deleteScheduledMessages::ReturnType messages_deleteScheduledMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_discardEncryption::messages_discardEncryption(int32 flags_, bool delete_history_, int32 chat_id_)
+ : flags_(flags_)
+ , delete_history_(delete_history_)
+ , chat_id_(chat_id_)
+{}
+
+const std::int32_t messages_discardEncryption::ID;
+
+void messages_discardEncryption::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-208425312);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(chat_id_, s);
+}
+
+void messages_discardEncryption::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-208425312);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(chat_id_, s);
+}
+
+void messages_discardEncryption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.discardEncryption");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+messages_discardEncryption::ReturnType messages_discardEncryption::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_editChatAbout::messages_editChatAbout(object_ptr<InputPeer> &&peer_, string const &about_)
+ : peer_(std::move(peer_))
+ , about_(about_)
+{}
+
+const std::int32_t messages_editChatAbout::ID;
+
+void messages_editChatAbout::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-554301545);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(about_, s);
+}
+
+void messages_editChatAbout::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-554301545);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(about_, s);
+}
+
+void messages_editChatAbout::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.editChatAbout");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("about", about_);
+ s.store_class_end();
+ }
+}
+
+messages_editChatAbout::ReturnType messages_editChatAbout::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_editChatAdmin::messages_editChatAdmin(int64 chat_id_, object_ptr<InputUser> &&user_id_, bool is_admin_)
+ : chat_id_(chat_id_)
+ , user_id_(std::move(user_id_))
+ , is_admin_(is_admin_)
+{}
+
+const std::int32_t messages_editChatAdmin::ID;
+
+void messages_editChatAdmin::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1470377534);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBool::store(is_admin_, s);
+}
+
+void messages_editChatAdmin::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1470377534);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBool::store(is_admin_, s);
+}
+
+void messages_editChatAdmin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.editChatAdmin");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("is_admin", is_admin_);
+ s.store_class_end();
+ }
+}
+
+messages_editChatAdmin::ReturnType messages_editChatAdmin::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_editChatDefaultBannedRights::messages_editChatDefaultBannedRights(object_ptr<InputPeer> &&peer_, object_ptr<chatBannedRights> &&banned_rights_)
+ : peer_(std::move(peer_))
+ , banned_rights_(std::move(banned_rights_))
+{}
+
+const std::int32_t messages_editChatDefaultBannedRights::ID;
+
+void messages_editChatDefaultBannedRights::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1517917375);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreObject, -1626209256>::store(banned_rights_, s);
+}
+
+void messages_editChatDefaultBannedRights::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1517917375);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreObject, -1626209256>::store(banned_rights_, s);
+}
+
+void messages_editChatDefaultBannedRights::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.editChatDefaultBannedRights");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("banned_rights", static_cast<const BaseObject *>(banned_rights_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_editChatDefaultBannedRights::ReturnType messages_editChatDefaultBannedRights::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_editChatPhoto::messages_editChatPhoto(int64 chat_id_, object_ptr<InputChatPhoto> &&photo_)
+ : chat_id_(chat_id_)
+ , photo_(std::move(photo_))
+{}
+
+const std::int32_t messages_editChatPhoto::ID;
+
+void messages_editChatPhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(903730804);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s);
+}
+
+void messages_editChatPhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(903730804);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s);
+}
+
+void messages_editChatPhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.editChatPhoto");
+ s.store_field("chat_id", chat_id_);
+ s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_editChatPhoto::ReturnType messages_editChatPhoto::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_editChatTitle::messages_editChatTitle(int64 chat_id_, string const &title_)
+ : chat_id_(chat_id_)
+ , title_(title_)
+{}
+
+const std::int32_t messages_editChatTitle::ID;
+
+void messages_editChatTitle::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1937260541);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreString::store(title_, s);
+}
+
+void messages_editChatTitle::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1937260541);
+ TlStoreBinary::store(chat_id_, s);
+ TlStoreString::store(title_, s);
+}
+
+void messages_editChatTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.editChatTitle");
+ s.store_field("chat_id", chat_id_);
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+messages_editChatTitle::ReturnType messages_editChatTitle::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_editExportedChatInvite::messages_editExportedChatInvite(int32 flags_, bool revoked_, object_ptr<InputPeer> &&peer_, string const &link_, int32 expire_date_, int32 usage_limit_, bool request_needed_, string const &title_)
+ : flags_(flags_)
+ , revoked_(revoked_)
+ , peer_(std::move(peer_))
+ , link_(link_)
+ , expire_date_(expire_date_)
+ , usage_limit_(usage_limit_)
+ , request_needed_(request_needed_)
+ , title_(title_)
+{}
+
+const std::int32_t messages_editExportedChatInvite::ID;
+
+void messages_editExportedChatInvite::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1110823051);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(link_, s);
+ if (var0 & 1) { TlStoreBinary::store(expire_date_, s); }
+ if (var0 & 2) { TlStoreBinary::store(usage_limit_, s); }
+ if (var0 & 8) { TlStoreBool::store(request_needed_, s); }
+ if (var0 & 16) { TlStoreString::store(title_, s); }
+}
+
+void messages_editExportedChatInvite::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1110823051);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(link_, s);
+ if (var0 & 1) { TlStoreBinary::store(expire_date_, s); }
+ if (var0 & 2) { TlStoreBinary::store(usage_limit_, s); }
+ if (var0 & 8) { TlStoreBool::store(request_needed_, s); }
+ if (var0 & 16) { TlStoreString::store(title_, s); }
+}
+
+void messages_editExportedChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.editExportedChatInvite");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("link", link_);
+ if (var0 & 1) { s.store_field("expire_date", expire_date_); }
+ if (var0 & 2) { s.store_field("usage_limit", usage_limit_); }
+ if (var0 & 8) { s.store_field("request_needed", request_needed_); }
+ if (var0 & 16) { s.store_field("title", title_); }
+ s.store_class_end();
+ }
+}
+
+messages_editExportedChatInvite::ReturnType messages_editExportedChatInvite::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_ExportedChatInvite>::parse(p);
+#undef FAIL
+}
+
+messages_editInlineBotMessage::messages_editInlineBotMessage(int32 flags_, bool no_webpage_, object_ptr<InputBotInlineMessageID> &&id_, string const &message_, object_ptr<InputMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_)
+ : flags_(flags_)
+ , no_webpage_(no_webpage_)
+ , id_(std::move(id_))
+ , message_(message_)
+ , media_(std::move(media_))
+ , reply_markup_(std::move(reply_markup_))
+ , entities_(std::move(entities_))
+{}
+
+const std::int32_t messages_editInlineBotMessage::ID;
+
+void messages_editInlineBotMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2091549254);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ if (var0 & 2048) { TlStoreString::store(message_, s); }
+ if (var0 & 16384) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+}
+
+void messages_editInlineBotMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2091549254);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ if (var0 & 2048) { TlStoreString::store(message_, s); }
+ if (var0 & 16384) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+}
+
+void messages_editInlineBotMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.editInlineBotMessage");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ if (var0 & 2048) { s.store_field("message", message_); }
+ if (var0 & 16384) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); }
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+messages_editInlineBotMessage::ReturnType messages_editInlineBotMessage::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_editMessage::messages_editMessage(int32 flags_, bool no_webpage_, object_ptr<InputPeer> &&peer_, int32 id_, string const &message_, object_ptr<InputMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_)
+ : flags_(flags_)
+ , no_webpage_(no_webpage_)
+ , peer_(std::move(peer_))
+ , id_(id_)
+ , message_(message_)
+ , media_(std::move(media_))
+ , reply_markup_(std::move(reply_markup_))
+ , entities_(std::move(entities_))
+ , schedule_date_(schedule_date_)
+{}
+
+const std::int32_t messages_editMessage::ID;
+
+void messages_editMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1224152952);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ if (var0 & 2048) { TlStoreString::store(message_, s); }
+ if (var0 & 16384) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 32768) { TlStoreBinary::store(schedule_date_, s); }
+}
+
+void messages_editMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1224152952);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ if (var0 & 2048) { TlStoreString::store(message_, s); }
+ if (var0 & 16384) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 32768) { TlStoreBinary::store(schedule_date_, s); }
+}
+
+void messages_editMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.editMessage");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("id", id_);
+ if (var0 & 2048) { s.store_field("message", message_); }
+ if (var0 & 16384) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); }
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 32768) { s.store_field("schedule_date", schedule_date_); }
+ s.store_class_end();
+ }
+}
+
+messages_editMessage::ReturnType messages_editMessage::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_exportChatInvite::messages_exportChatInvite(int32 flags_, bool legacy_revoke_permanent_, bool request_needed_, object_ptr<InputPeer> &&peer_, int32 expire_date_, int32 usage_limit_, string const &title_)
+ : flags_(flags_)
+ , legacy_revoke_permanent_(legacy_revoke_permanent_)
+ , request_needed_(request_needed_)
+ , peer_(std::move(peer_))
+ , expire_date_(expire_date_)
+ , usage_limit_(usage_limit_)
+ , title_(title_)
+{}
+
+const std::int32_t messages_exportChatInvite::ID;
+
+void messages_exportChatInvite::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1607670315);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(expire_date_, s); }
+ if (var0 & 2) { TlStoreBinary::store(usage_limit_, s); }
+ if (var0 & 16) { TlStoreString::store(title_, s); }
+}
+
+void messages_exportChatInvite::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1607670315);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(expire_date_, s); }
+ if (var0 & 2) { TlStoreBinary::store(usage_limit_, s); }
+ if (var0 & 16) { TlStoreString::store(title_, s); }
+}
+
+void messages_exportChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.exportChatInvite");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("expire_date", expire_date_); }
+ if (var0 & 2) { s.store_field("usage_limit", usage_limit_); }
+ if (var0 & 16) { s.store_field("title", title_); }
+ s.store_class_end();
+ }
+}
+
+messages_exportChatInvite::ReturnType messages_exportChatInvite::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<ExportedChatInvite>::parse(p);
+#undef FAIL
+}
+
+messages_faveSticker::messages_faveSticker(object_ptr<InputDocument> &&id_, bool unfave_)
+ : id_(std::move(id_))
+ , unfave_(unfave_)
+{}
+
+const std::int32_t messages_faveSticker::ID;
+
+void messages_faveSticker::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1174420133);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBool::store(unfave_, s);
+}
+
+void messages_faveSticker::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1174420133);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBool::store(unfave_, s);
+}
+
+void messages_faveSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.faveSticker");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_field("unfave", unfave_);
+ s.store_class_end();
+ }
+}
+
+messages_faveSticker::ReturnType messages_faveSticker::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_forwardMessages::messages_forwardMessages(int32 flags_, bool silent_, bool background_, bool with_my_score_, bool drop_author_, bool drop_media_captions_, bool noforwards_, object_ptr<InputPeer> &&from_peer_, array<int32> &&id_, array<int64> &&random_id_, object_ptr<InputPeer> &&to_peer_, int32 top_msg_id_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_)
+ : flags_(flags_)
+ , silent_(silent_)
+ , background_(background_)
+ , with_my_score_(with_my_score_)
+ , drop_author_(drop_author_)
+ , drop_media_captions_(drop_media_captions_)
+ , noforwards_(noforwards_)
+ , from_peer_(std::move(from_peer_))
+ , id_(std::move(id_))
+ , random_id_(std::move(random_id_))
+ , to_peer_(std::move(to_peer_))
+ , top_msg_id_(top_msg_id_)
+ , schedule_date_(schedule_date_)
+ , send_as_(std::move(send_as_))
+{}
+
+const std::int32_t messages_forwardMessages::ID;
+
+void messages_forwardMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-966673468);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(from_peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(to_peer_, s);
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_forwardMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-966673468);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(from_peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(to_peer_, s);
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_forwardMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.forwardMessages");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("from_peer", static_cast<const BaseObject *>(from_peer_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ { s.store_vector_begin("random_id", random_id_.size()); for (const auto &_value : random_id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_object_field("to_peer", static_cast<const BaseObject *>(to_peer_.get()));
+ if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); }
+ if (var0 & 1024) { s.store_field("schedule_date", schedule_date_); }
+ if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); }
+ s.store_class_end();
+ }
+}
+
+messages_forwardMessages::ReturnType messages_forwardMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_getAdminsWithInvites::messages_getAdminsWithInvites(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t messages_getAdminsWithInvites::ID;
+
+void messages_getAdminsWithInvites::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(958457583);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_getAdminsWithInvites::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(958457583);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_getAdminsWithInvites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getAdminsWithInvites");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_getAdminsWithInvites::ReturnType messages_getAdminsWithInvites::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_chatAdminsWithInvites>, -1231326505>::parse(p);
+#undef FAIL
+}
+
+messages_getAllChats::messages_getAllChats(array<int64> &&except_ids_)
+ : except_ids_(std::move(except_ids_))
+{}
+
+const std::int32_t messages_getAllChats::ID;
+
+void messages_getAllChats::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2023787330);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_ids_, s);
+}
+
+void messages_getAllChats::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2023787330);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_ids_, s);
+}
+
+void messages_getAllChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getAllChats");
+ { s.store_vector_begin("except_ids", except_ids_.size()); for (const auto &_value : except_ids_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_getAllChats::ReturnType messages_getAllChats::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Chats>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t messages_getAllDrafts::ID;
+
+void messages_getAllDrafts::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1782549861);
+}
+
+void messages_getAllDrafts::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1782549861);
+}
+
+void messages_getAllDrafts::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getAllDrafts");
+ s.store_class_end();
+ }
+}
+
+messages_getAllDrafts::ReturnType messages_getAllDrafts::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_getAllStickers::messages_getAllStickers(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_getAllStickers::ID;
+
+void messages_getAllStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1197432408);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getAllStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1197432408);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getAllStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getAllStickers");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getAllStickers::ReturnType messages_getAllStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_AllStickers>::parse(p);
+#undef FAIL
+}
+
+messages_getArchivedStickers::messages_getArchivedStickers(int32 flags_, bool masks_, bool emojis_, int64 offset_id_, int32 limit_)
+ : flags_(flags_)
+ , masks_(masks_)
+ , emojis_(emojis_)
+ , offset_id_(offset_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t messages_getArchivedStickers::ID;
+
+void messages_getArchivedStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1475442322);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getArchivedStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1475442322);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getArchivedStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getArchivedStickers");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("offset_id", offset_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+messages_getArchivedStickers::ReturnType messages_getArchivedStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_archivedStickers>, 1338747336>::parse(p);
+#undef FAIL
+}
+
+messages_getAttachMenuBot::messages_getAttachMenuBot(object_ptr<InputUser> &&bot_)
+ : bot_(std::move(bot_))
+{}
+
+const std::int32_t messages_getAttachMenuBot::ID;
+
+void messages_getAttachMenuBot::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1998676370);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+}
+
+void messages_getAttachMenuBot::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1998676370);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+}
+
+void messages_getAttachMenuBot::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getAttachMenuBot");
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_getAttachMenuBot::ReturnType messages_getAttachMenuBot::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<attachMenuBotsBot>, -1816172929>::parse(p);
+#undef FAIL
+}
+
+messages_getAttachMenuBots::messages_getAttachMenuBots(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_getAttachMenuBots::ID;
+
+void messages_getAttachMenuBots::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(385663691);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getAttachMenuBots::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(385663691);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getAttachMenuBots::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getAttachMenuBots");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getAttachMenuBots::ReturnType messages_getAttachMenuBots::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<AttachMenuBots>::parse(p);
+#undef FAIL
+}
+
+messages_getAttachedStickers::messages_getAttachedStickers(object_ptr<InputStickeredMedia> &&media_)
+ : media_(std::move(media_))
+{}
+
+const std::int32_t messages_getAttachedStickers::ID;
+
+void messages_getAttachedStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-866424884);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+}
+
+void messages_getAttachedStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-866424884);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+}
+
+void messages_getAttachedStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getAttachedStickers");
+ s.store_object_field("media", static_cast<const BaseObject *>(media_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_getAttachedStickers::ReturnType messages_getAttachedStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchObject<StickerSetCovered>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_getAvailableReactions::messages_getAvailableReactions(int32 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_getAvailableReactions::ID;
+
+void messages_getAvailableReactions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(417243308);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getAvailableReactions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(417243308);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getAvailableReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getAvailableReactions");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getAvailableReactions::ReturnType messages_getAvailableReactions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_AvailableReactions>::parse(p);
+#undef FAIL
+}
+
+messages_getBotCallbackAnswer::messages_getBotCallbackAnswer(int32 flags_, bool game_, object_ptr<InputPeer> &&peer_, int32 msg_id_, bytes &&data_, object_ptr<InputCheckPasswordSRP> &&password_)
+ : flags_(flags_)
+ , game_(game_)
+ , peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , data_(std::move(data_))
+ , password_(std::move(password_))
+{}
+
+const std::int32_t messages_getBotCallbackAnswer::ID;
+
+void messages_getBotCallbackAnswer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1824339449);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ if (var0 & 1) { TlStoreString::store(data_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); }
+}
+
+void messages_getBotCallbackAnswer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1824339449);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ if (var0 & 1) { TlStoreString::store(data_, s); }
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); }
+}
+
+void messages_getBotCallbackAnswer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getBotCallbackAnswer");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ if (var0 & 1) { s.store_bytes_field("data", data_); }
+ if (var0 & 4) { s.store_object_field("password", static_cast<const BaseObject *>(password_.get())); }
+ s.store_class_end();
+ }
+}
+
+messages_getBotCallbackAnswer::ReturnType messages_getBotCallbackAnswer::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_botCallbackAnswer>, 911761060>::parse(p);
+#undef FAIL
+}
+
+messages_getChatInviteImporters::messages_getChatInviteImporters(int32 flags_, bool requested_, object_ptr<InputPeer> &&peer_, string const &link_, string const &q_, int32 offset_date_, object_ptr<InputUser> &&offset_user_, int32 limit_)
+ : flags_(flags_)
+ , requested_(requested_)
+ , peer_(std::move(peer_))
+ , link_(link_)
+ , q_(q_)
+ , offset_date_(offset_date_)
+ , offset_user_(std::move(offset_user_))
+ , limit_(limit_)
+{}
+
+const std::int32_t messages_getChatInviteImporters::ID;
+
+void messages_getChatInviteImporters::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-553329330);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 2) { TlStoreString::store(link_, s); }
+ if (var0 & 4) { TlStoreString::store(q_, s); }
+ TlStoreBinary::store(offset_date_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(offset_user_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getChatInviteImporters::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-553329330);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 2) { TlStoreString::store(link_, s); }
+ if (var0 & 4) { TlStoreString::store(q_, s); }
+ TlStoreBinary::store(offset_date_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(offset_user_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getChatInviteImporters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getChatInviteImporters");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 2) { s.store_field("link", link_); }
+ if (var0 & 4) { s.store_field("q", q_); }
+ s.store_field("offset_date", offset_date_);
+ s.store_object_field("offset_user", static_cast<const BaseObject *>(offset_user_.get()));
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+messages_getChatInviteImporters::ReturnType messages_getChatInviteImporters::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_chatInviteImporters>, -2118733814>::parse(p);
+#undef FAIL
+}
+
+messages_getChats::messages_getChats(array<int64> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t messages_getChats::ID;
+
+void messages_getChats::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1240027791);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_getChats::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1240027791);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_getChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getChats");
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_getChats::ReturnType messages_getChats::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Chats>::parse(p);
+#undef FAIL
+}
+
+messages_getCommonChats::messages_getCommonChats(object_ptr<InputUser> &&user_id_, int64 max_id_, int32 limit_)
+ : user_id_(std::move(user_id_))
+ , max_id_(max_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t messages_getCommonChats::ID;
+
+void messages_getCommonChats::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-468934396);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getCommonChats::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-468934396);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getCommonChats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getCommonChats");
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("max_id", max_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+messages_getCommonChats::ReturnType messages_getCommonChats::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Chats>::parse(p);
+#undef FAIL
+}
+
+messages_getCustomEmojiDocuments::messages_getCustomEmojiDocuments(array<int64> &&document_id_)
+ : document_id_(std::move(document_id_))
+{}
+
+const std::int32_t messages_getCustomEmojiDocuments::ID;
+
+void messages_getCustomEmojiDocuments::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-643100844);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(document_id_, s);
+}
+
+void messages_getCustomEmojiDocuments::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-643100844);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(document_id_, s);
+}
+
+void messages_getCustomEmojiDocuments::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getCustomEmojiDocuments");
+ { s.store_vector_begin("document_id", document_id_.size()); for (const auto &_value : document_id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_getCustomEmojiDocuments::ReturnType messages_getCustomEmojiDocuments::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_getDhConfig::messages_getDhConfig(int32 version_, int32 random_length_)
+ : version_(version_)
+ , random_length_(random_length_)
+{}
+
+const std::int32_t messages_getDhConfig::ID;
+
+void messages_getDhConfig::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(651135312);
+ TlStoreBinary::store(version_, s);
+ TlStoreBinary::store(random_length_, s);
+}
+
+void messages_getDhConfig::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(651135312);
+ TlStoreBinary::store(version_, s);
+ TlStoreBinary::store(random_length_, s);
+}
+
+void messages_getDhConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getDhConfig");
+ s.store_field("version", version_);
+ s.store_field("random_length", random_length_);
+ s.store_class_end();
+ }
+}
+
+messages_getDhConfig::ReturnType messages_getDhConfig::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_DhConfig>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t messages_getDialogFilters::ID;
+
+void messages_getDialogFilters::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-241247891);
+}
+
+void messages_getDialogFilters::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-241247891);
+}
+
+void messages_getDialogFilters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getDialogFilters");
+ s.store_class_end();
+ }
+}
+
+messages_getDialogFilters::ReturnType messages_getDialogFilters::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchObject<DialogFilter>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t messages_getDialogUnreadMarks::ID;
+
+void messages_getDialogUnreadMarks::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(585256482);
+}
+
+void messages_getDialogUnreadMarks::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(585256482);
+}
+
+void messages_getDialogUnreadMarks::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getDialogUnreadMarks");
+ s.store_class_end();
+ }
+}
+
+messages_getDialogUnreadMarks::ReturnType messages_getDialogUnreadMarks::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchObject<DialogPeer>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_getDialogs::messages_getDialogs(int32 flags_, bool exclude_pinned_, int32 folder_id_, int32 offset_date_, int32 offset_id_, object_ptr<InputPeer> &&offset_peer_, int32 limit_, int64 hash_)
+ : flags_(flags_)
+ , exclude_pinned_(exclude_pinned_)
+ , folder_id_(folder_id_)
+ , offset_date_(offset_date_)
+ , offset_id_(offset_id_)
+ , offset_peer_(std::move(offset_peer_))
+ , limit_(limit_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getDialogs::ID;
+
+void messages_getDialogs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1594569905);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 2) { TlStoreBinary::store(folder_id_, s); }
+ TlStoreBinary::store(offset_date_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getDialogs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1594569905);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 2) { TlStoreBinary::store(folder_id_, s); }
+ TlStoreBinary::store(offset_date_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getDialogs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getDialogs");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { s.store_field("folder_id", folder_id_); }
+ s.store_field("offset_date", offset_date_);
+ s.store_field("offset_id", offset_id_);
+ s.store_object_field("offset_peer", static_cast<const BaseObject *>(offset_peer_.get()));
+ s.store_field("limit", limit_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getDialogs::ReturnType messages_getDialogs::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Dialogs>::parse(p);
+#undef FAIL
+}
+
+messages_getDiscussionMessage::messages_getDiscussionMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+{}
+
+const std::int32_t messages_getDiscussionMessage::ID;
+
+void messages_getDiscussionMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1147761405);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void messages_getDiscussionMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1147761405);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void messages_getDiscussionMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getDiscussionMessage");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_class_end();
+ }
+}
+
+messages_getDiscussionMessage::ReturnType messages_getDiscussionMessage::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_discussionMessage>, -1506535550>::parse(p);
+#undef FAIL
+}
+
+messages_getDocumentByHash::messages_getDocumentByHash(bytes &&sha256_, int64 size_, string const &mime_type_)
+ : sha256_(std::move(sha256_))
+ , size_(size_)
+ , mime_type_(mime_type_)
+{}
+
+const std::int32_t messages_getDocumentByHash::ID;
+
+void messages_getDocumentByHash::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1309538785);
+ TlStoreString::store(sha256_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(mime_type_, s);
+}
+
+void messages_getDocumentByHash::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1309538785);
+ TlStoreString::store(sha256_, s);
+ TlStoreBinary::store(size_, s);
+ TlStoreString::store(mime_type_, s);
+}
+
+void messages_getDocumentByHash::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getDocumentByHash");
+ s.store_bytes_field("sha256", sha256_);
+ s.store_field("size", size_);
+ s.store_field("mime_type", mime_type_);
+ s.store_class_end();
+ }
+}
+
+messages_getDocumentByHash::ReturnType messages_getDocumentByHash::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Document>::parse(p);
+#undef FAIL
+}
+
+messages_getEmojiKeywords::messages_getEmojiKeywords(string const &lang_code_)
+ : lang_code_(lang_code_)
+{}
+
+const std::int32_t messages_getEmojiKeywords::ID;
+
+void messages_getEmojiKeywords::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(899735650);
+ TlStoreString::store(lang_code_, s);
+}
+
+void messages_getEmojiKeywords::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(899735650);
+ TlStoreString::store(lang_code_, s);
+}
+
+void messages_getEmojiKeywords::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getEmojiKeywords");
+ s.store_field("lang_code", lang_code_);
+ s.store_class_end();
+ }
+}
+
+messages_getEmojiKeywords::ReturnType messages_getEmojiKeywords::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<emojiKeywordsDifference>, 1556570557>::parse(p);
+#undef FAIL
+}
+
+messages_getEmojiKeywordsDifference::messages_getEmojiKeywordsDifference(string const &lang_code_, int32 from_version_)
+ : lang_code_(lang_code_)
+ , from_version_(from_version_)
+{}
+
+const std::int32_t messages_getEmojiKeywordsDifference::ID;
+
+void messages_getEmojiKeywordsDifference::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(352892591);
+ TlStoreString::store(lang_code_, s);
+ TlStoreBinary::store(from_version_, s);
+}
+
+void messages_getEmojiKeywordsDifference::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(352892591);
+ TlStoreString::store(lang_code_, s);
+ TlStoreBinary::store(from_version_, s);
+}
+
+void messages_getEmojiKeywordsDifference::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getEmojiKeywordsDifference");
+ s.store_field("lang_code", lang_code_);
+ s.store_field("from_version", from_version_);
+ s.store_class_end();
+ }
+}
+
+messages_getEmojiKeywordsDifference::ReturnType messages_getEmojiKeywordsDifference::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<emojiKeywordsDifference>, 1556570557>::parse(p);
+#undef FAIL
+}
+
+messages_getEmojiKeywordsLanguages::messages_getEmojiKeywordsLanguages(array<string> &&lang_codes_)
+ : lang_codes_(std::move(lang_codes_))
+{}
+
+const std::int32_t messages_getEmojiKeywordsLanguages::ID;
+
+void messages_getEmojiKeywordsLanguages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1318675378);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(lang_codes_, s);
+}
+
+void messages_getEmojiKeywordsLanguages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1318675378);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(lang_codes_, s);
+}
+
+void messages_getEmojiKeywordsLanguages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getEmojiKeywordsLanguages");
+ { s.store_vector_begin("lang_codes", lang_codes_.size()); for (const auto &_value : lang_codes_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_getEmojiKeywordsLanguages::ReturnType messages_getEmojiKeywordsLanguages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<emojiLanguage>, -1275374751>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_getEmojiStickers::messages_getEmojiStickers(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_getEmojiStickers::ID;
+
+void messages_getEmojiStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-67329649);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getEmojiStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-67329649);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getEmojiStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getEmojiStickers");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getEmojiStickers::ReturnType messages_getEmojiStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_AllStickers>::parse(p);
+#undef FAIL
+}
+
+messages_getEmojiURL::messages_getEmojiURL(string const &lang_code_)
+ : lang_code_(lang_code_)
+{}
+
+const std::int32_t messages_getEmojiURL::ID;
+
+void messages_getEmojiURL::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-709817306);
+ TlStoreString::store(lang_code_, s);
+}
+
+void messages_getEmojiURL::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-709817306);
+ TlStoreString::store(lang_code_, s);
+}
+
+void messages_getEmojiURL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getEmojiURL");
+ s.store_field("lang_code", lang_code_);
+ s.store_class_end();
+ }
+}
+
+messages_getEmojiURL::ReturnType messages_getEmojiURL::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<emojiURL>, -1519029347>::parse(p);
+#undef FAIL
+}
+
+messages_getExportedChatInvite::messages_getExportedChatInvite(object_ptr<InputPeer> &&peer_, string const &link_)
+ : peer_(std::move(peer_))
+ , link_(link_)
+{}
+
+const std::int32_t messages_getExportedChatInvite::ID;
+
+void messages_getExportedChatInvite::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1937010524);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(link_, s);
+}
+
+void messages_getExportedChatInvite::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1937010524);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(link_, s);
+}
+
+void messages_getExportedChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getExportedChatInvite");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("link", link_);
+ s.store_class_end();
+ }
+}
+
+messages_getExportedChatInvite::ReturnType messages_getExportedChatInvite::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_ExportedChatInvite>::parse(p);
+#undef FAIL
+}
+
+messages_getExportedChatInvites::messages_getExportedChatInvites(int32 flags_, bool revoked_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&admin_id_, int32 offset_date_, string const &offset_link_, int32 limit_)
+ : flags_(flags_)
+ , revoked_(revoked_)
+ , peer_(std::move(peer_))
+ , admin_id_(std::move(admin_id_))
+ , offset_date_(offset_date_)
+ , offset_link_(offset_link_)
+ , limit_(limit_)
+{}
+
+const std::int32_t messages_getExportedChatInvites::ID;
+
+void messages_getExportedChatInvites::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1565154314);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(admin_id_, s);
+ if (var0 & 4) { TlStoreBinary::store(offset_date_, s); }
+ if (var0 & 4) { TlStoreString::store(offset_link_, s); }
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getExportedChatInvites::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1565154314);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(admin_id_, s);
+ if (var0 & 4) { TlStoreBinary::store(offset_date_, s); }
+ if (var0 & 4) { TlStoreString::store(offset_link_, s); }
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getExportedChatInvites::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getExportedChatInvites");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("admin_id", static_cast<const BaseObject *>(admin_id_.get()));
+ if (var0 & 4) { s.store_field("offset_date", offset_date_); }
+ if (var0 & 4) { s.store_field("offset_link", offset_link_); }
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+messages_getExportedChatInvites::ReturnType messages_getExportedChatInvites::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_exportedChatInvites>, -1111085620>::parse(p);
+#undef FAIL
+}
+
+messages_getExtendedMedia::messages_getExtendedMedia(object_ptr<InputPeer> &&peer_, array<int32> &&id_)
+ : peer_(std::move(peer_))
+ , id_(std::move(id_))
+{}
+
+const std::int32_t messages_getExtendedMedia::ID;
+
+void messages_getExtendedMedia::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2064119788);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_getExtendedMedia::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2064119788);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_getExtendedMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getExtendedMedia");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_getExtendedMedia::ReturnType messages_getExtendedMedia::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_getFavedStickers::messages_getFavedStickers(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_getFavedStickers::ID;
+
+void messages_getFavedStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(82946729);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getFavedStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(82946729);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getFavedStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getFavedStickers");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getFavedStickers::ReturnType messages_getFavedStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_FavedStickers>::parse(p);
+#undef FAIL
+}
+
+messages_getFeaturedEmojiStickers::messages_getFeaturedEmojiStickers(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_getFeaturedEmojiStickers::ID;
+
+void messages_getFeaturedEmojiStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(248473398);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getFeaturedEmojiStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(248473398);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getFeaturedEmojiStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getFeaturedEmojiStickers");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getFeaturedEmojiStickers::ReturnType messages_getFeaturedEmojiStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_FeaturedStickers>::parse(p);
+#undef FAIL
+}
+
+messages_getFeaturedStickers::messages_getFeaturedStickers(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_getFeaturedStickers::ID;
+
+void messages_getFeaturedStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1685588756);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getFeaturedStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1685588756);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getFeaturedStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getFeaturedStickers");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getFeaturedStickers::ReturnType messages_getFeaturedStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_FeaturedStickers>::parse(p);
+#undef FAIL
+}
+
+messages_getFullChat::messages_getFullChat(int64 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t messages_getFullChat::ID;
+
+void messages_getFullChat::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1364194508);
+ TlStoreBinary::store(chat_id_, s);
+}
+
+void messages_getFullChat::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1364194508);
+ TlStoreBinary::store(chat_id_, s);
+}
+
+void messages_getFullChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getFullChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+messages_getFullChat::ReturnType messages_getFullChat::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_chatFull>, -438840932>::parse(p);
+#undef FAIL
+}
+
+messages_getGameHighScores::messages_getGameHighScores(object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputUser> &&user_id_)
+ : peer_(std::move(peer_))
+ , id_(id_)
+ , user_id_(std::move(user_id_))
+{}
+
+const std::int32_t messages_getGameHighScores::ID;
+
+void messages_getGameHighScores::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-400399203);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void messages_getGameHighScores::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-400399203);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void messages_getGameHighScores::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getGameHighScores");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("id", id_);
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_getGameHighScores::ReturnType messages_getGameHighScores::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_highScores>, -1707344487>::parse(p);
+#undef FAIL
+}
+
+messages_getHistory::messages_getHistory(object_ptr<InputPeer> &&peer_, int32 offset_id_, int32 offset_date_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_)
+ : peer_(std::move(peer_))
+ , offset_id_(offset_id_)
+ , offset_date_(offset_date_)
+ , add_offset_(add_offset_)
+ , limit_(limit_)
+ , max_id_(max_id_)
+ , min_id_(min_id_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getHistory::ID;
+
+void messages_getHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1143203525);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(offset_date_, s);
+ TlStoreBinary::store(add_offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1143203525);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(offset_date_, s);
+ TlStoreBinary::store(add_offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getHistory");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("offset_id", offset_id_);
+ s.store_field("offset_date", offset_date_);
+ s.store_field("add_offset", add_offset_);
+ s.store_field("limit", limit_);
+ s.store_field("max_id", max_id_);
+ s.store_field("min_id", min_id_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getHistory::ReturnType messages_getHistory::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_getInlineBotResults::messages_getInlineBotResults(int32 flags_, object_ptr<InputUser> &&bot_, object_ptr<InputPeer> &&peer_, object_ptr<InputGeoPoint> &&geo_point_, string const &query_, string const &offset_)
+ : flags_(flags_)
+ , bot_(std::move(bot_))
+ , peer_(std::move(peer_))
+ , geo_point_(std::move(geo_point_))
+ , query_(query_)
+ , offset_(offset_)
+{}
+
+const std::int32_t messages_getInlineBotResults::ID;
+
+void messages_getInlineBotResults::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1364105629);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); }
+ TlStoreString::store(query_, s);
+ TlStoreString::store(offset_, s);
+}
+
+void messages_getInlineBotResults::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1364105629);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); }
+ TlStoreString::store(query_, s);
+ TlStoreString::store(offset_, s);
+}
+
+void messages_getInlineBotResults::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getInlineBotResults");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); }
+ s.store_field("query", query_);
+ s.store_field("offset", offset_);
+ s.store_class_end();
+ }
+}
+
+messages_getInlineBotResults::ReturnType messages_getInlineBotResults::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_botResults>, -1803769784>::parse(p);
+#undef FAIL
+}
+
+messages_getInlineGameHighScores::messages_getInlineGameHighScores(object_ptr<InputBotInlineMessageID> &&id_, object_ptr<InputUser> &&user_id_)
+ : id_(std::move(id_))
+ , user_id_(std::move(user_id_))
+{}
+
+const std::int32_t messages_getInlineGameHighScores::ID;
+
+void messages_getInlineGameHighScores::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(258170395);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void messages_getInlineGameHighScores::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(258170395);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void messages_getInlineGameHighScores::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getInlineGameHighScores");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_getInlineGameHighScores::ReturnType messages_getInlineGameHighScores::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_highScores>, -1707344487>::parse(p);
+#undef FAIL
+}
+
+messages_getMaskStickers::messages_getMaskStickers(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_getMaskStickers::ID;
+
+void messages_getMaskStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1678738104);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getMaskStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1678738104);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getMaskStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getMaskStickers");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getMaskStickers::ReturnType messages_getMaskStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_AllStickers>::parse(p);
+#undef FAIL
+}
+
+messages_getMessageEditData::messages_getMessageEditData(object_ptr<InputPeer> &&peer_, int32 id_)
+ : peer_(std::move(peer_))
+ , id_(id_)
+{}
+
+const std::int32_t messages_getMessageEditData::ID;
+
+void messages_getMessageEditData::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-39416522);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+}
+
+void messages_getMessageEditData::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-39416522);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+}
+
+void messages_getMessageEditData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getMessageEditData");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+messages_getMessageEditData::ReturnType messages_getMessageEditData::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_messageEditData>, 649453030>::parse(p);
+#undef FAIL
+}
+
+messages_getMessageReactionsList::messages_getMessageReactionsList(int32 flags_, object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<Reaction> &&reaction_, string const &offset_, int32 limit_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , id_(id_)
+ , reaction_(std::move(reaction_))
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t messages_getMessageReactionsList::ID;
+
+void messages_getMessageReactionsList::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1176190792);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(reaction_, s); }
+ if (var0 & 2) { TlStoreString::store(offset_, s); }
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getMessageReactionsList::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1176190792);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(reaction_, s); }
+ if (var0 & 2) { TlStoreString::store(offset_, s); }
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getMessageReactionsList::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getMessageReactionsList");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("id", id_);
+ if (var0 & 1) { s.store_object_field("reaction", static_cast<const BaseObject *>(reaction_.get())); }
+ if (var0 & 2) { s.store_field("offset", offset_); }
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+messages_getMessageReactionsList::ReturnType messages_getMessageReactionsList::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_messageReactionsList>, 834488621>::parse(p);
+#undef FAIL
+}
+
+messages_getMessageReadParticipants::messages_getMessageReadParticipants(object_ptr<InputPeer> &&peer_, int32 msg_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+{}
+
+const std::int32_t messages_getMessageReadParticipants::ID;
+
+void messages_getMessageReadParticipants::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(745510839);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void messages_getMessageReadParticipants::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(745510839);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void messages_getMessageReadParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getMessageReadParticipants");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_class_end();
+ }
+}
+
+messages_getMessageReadParticipants::ReturnType messages_getMessageReadParticipants::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_getMessages::messages_getMessages(array<object_ptr<InputMessage>> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t messages_getMessages::ID;
+
+void messages_getMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1673946374);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void messages_getMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1673946374);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void messages_getMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getMessages");
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_getMessages::ReturnType messages_getMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_getMessagesReactions::messages_getMessagesReactions(object_ptr<InputPeer> &&peer_, array<int32> &&id_)
+ : peer_(std::move(peer_))
+ , id_(std::move(id_))
+{}
+
+const std::int32_t messages_getMessagesReactions::ID;
+
+void messages_getMessagesReactions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1950707482);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_getMessagesReactions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1950707482);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_getMessagesReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getMessagesReactions");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_getMessagesReactions::ReturnType messages_getMessagesReactions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_getMessagesViews::messages_getMessagesViews(object_ptr<InputPeer> &&peer_, array<int32> &&id_, bool increment_)
+ : peer_(std::move(peer_))
+ , id_(std::move(id_))
+ , increment_(increment_)
+{}
+
+const std::int32_t messages_getMessagesViews::ID;
+
+void messages_getMessagesViews::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1468322785);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+ TlStoreBool::store(increment_, s);
+}
+
+void messages_getMessagesViews::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1468322785);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+ TlStoreBool::store(increment_, s);
+}
+
+void messages_getMessagesViews::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getMessagesViews");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("increment", increment_);
+ s.store_class_end();
+ }
+}
+
+messages_getMessagesViews::ReturnType messages_getMessagesViews::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_messageViews>, -1228606141>::parse(p);
+#undef FAIL
+}
+
+messages_getOldFeaturedStickers::messages_getOldFeaturedStickers(int32 offset_, int32 limit_, int64 hash_)
+ : offset_(offset_)
+ , limit_(limit_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getOldFeaturedStickers::ID;
+
+void messages_getOldFeaturedStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2127598753);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getOldFeaturedStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2127598753);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getOldFeaturedStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getOldFeaturedStickers");
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getOldFeaturedStickers::ReturnType messages_getOldFeaturedStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_FeaturedStickers>::parse(p);
+#undef FAIL
+}
+
+messages_getOnlines::messages_getOnlines(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t messages_getOnlines::ID;
+
+void messages_getOnlines::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1848369232);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_getOnlines::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1848369232);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_getOnlines::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getOnlines");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_getOnlines::ReturnType messages_getOnlines::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<chatOnlines>, -264117680>::parse(p);
+#undef FAIL
+}
+
+messages_getPeerDialogs::messages_getPeerDialogs(array<object_ptr<InputDialogPeer>> &&peers_)
+ : peers_(std::move(peers_))
+{}
+
+const std::int32_t messages_getPeerDialogs::ID;
+
+void messages_getPeerDialogs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-462373635);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(peers_, s);
+}
+
+void messages_getPeerDialogs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-462373635);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(peers_, s);
+}
+
+void messages_getPeerDialogs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getPeerDialogs");
+ { s.store_vector_begin("peers", peers_.size()); for (const auto &_value : peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_getPeerDialogs::ReturnType messages_getPeerDialogs::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_peerDialogs>, 863093588>::parse(p);
+#undef FAIL
+}
+
+messages_getPeerSettings::messages_getPeerSettings(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t messages_getPeerSettings::ID;
+
+void messages_getPeerSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-270948702);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_getPeerSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-270948702);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_getPeerSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getPeerSettings");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_getPeerSettings::ReturnType messages_getPeerSettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_peerSettings>, 1753266509>::parse(p);
+#undef FAIL
+}
+
+messages_getPinnedDialogs::messages_getPinnedDialogs(int32 folder_id_)
+ : folder_id_(folder_id_)
+{}
+
+const std::int32_t messages_getPinnedDialogs::ID;
+
+void messages_getPinnedDialogs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-692498958);
+ TlStoreBinary::store(folder_id_, s);
+}
+
+void messages_getPinnedDialogs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-692498958);
+ TlStoreBinary::store(folder_id_, s);
+}
+
+void messages_getPinnedDialogs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getPinnedDialogs");
+ s.store_field("folder_id", folder_id_);
+ s.store_class_end();
+ }
+}
+
+messages_getPinnedDialogs::ReturnType messages_getPinnedDialogs::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_peerDialogs>, 863093588>::parse(p);
+#undef FAIL
+}
+
+messages_getPollResults::messages_getPollResults(object_ptr<InputPeer> &&peer_, int32 msg_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+{}
+
+const std::int32_t messages_getPollResults::ID;
+
+void messages_getPollResults::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1941660731);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void messages_getPollResults::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1941660731);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void messages_getPollResults::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getPollResults");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_class_end();
+ }
+}
+
+messages_getPollResults::ReturnType messages_getPollResults::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_getPollVotes::messages_getPollVotes(int32 flags_, object_ptr<InputPeer> &&peer_, int32 id_, bytes &&option_, string const &offset_, int32 limit_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , id_(id_)
+ , option_(std::move(option_))
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t messages_getPollVotes::ID;
+
+void messages_getPollVotes::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1200736242);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ if (var0 & 1) { TlStoreString::store(option_, s); }
+ if (var0 & 2) { TlStoreString::store(offset_, s); }
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getPollVotes::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1200736242);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ if (var0 & 1) { TlStoreString::store(option_, s); }
+ if (var0 & 2) { TlStoreString::store(offset_, s); }
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getPollVotes::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getPollVotes");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("id", id_);
+ if (var0 & 1) { s.store_bytes_field("option", option_); }
+ if (var0 & 2) { s.store_field("offset", offset_); }
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+messages_getPollVotes::ReturnType messages_getPollVotes::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_votesList>, 136574537>::parse(p);
+#undef FAIL
+}
+
+messages_getRecentLocations::messages_getRecentLocations(object_ptr<InputPeer> &&peer_, int32 limit_, int64 hash_)
+ : peer_(std::move(peer_))
+ , limit_(limit_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getRecentLocations::ID;
+
+void messages_getRecentLocations::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1881817312);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getRecentLocations::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1881817312);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getRecentLocations::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getRecentLocations");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("limit", limit_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getRecentLocations::ReturnType messages_getRecentLocations::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_getRecentReactions::messages_getRecentReactions(int32 limit_, int64 hash_)
+ : limit_(limit_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getRecentReactions::ID;
+
+void messages_getRecentReactions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(960896434);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getRecentReactions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(960896434);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getRecentReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getRecentReactions");
+ s.store_field("limit", limit_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getRecentReactions::ReturnType messages_getRecentReactions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Reactions>::parse(p);
+#undef FAIL
+}
+
+messages_getRecentStickers::messages_getRecentStickers(int32 flags_, bool attached_, int64 hash_)
+ : flags_(flags_)
+ , attached_(attached_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getRecentStickers::ID;
+
+void messages_getRecentStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1649852357);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getRecentStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1649852357);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getRecentStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getRecentStickers");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getRecentStickers::ReturnType messages_getRecentStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_RecentStickers>::parse(p);
+#undef FAIL
+}
+
+messages_getReplies::messages_getReplies(object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 offset_id_, int32 offset_date_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , offset_id_(offset_id_)
+ , offset_date_(offset_date_)
+ , add_offset_(add_offset_)
+ , limit_(limit_)
+ , max_id_(max_id_)
+ , min_id_(min_id_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getReplies::ID;
+
+void messages_getReplies::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(584962828);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(offset_date_, s);
+ TlStoreBinary::store(add_offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getReplies::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(584962828);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(offset_date_, s);
+ TlStoreBinary::store(add_offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getReplies::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getReplies");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_field("offset_id", offset_id_);
+ s.store_field("offset_date", offset_date_);
+ s.store_field("add_offset", add_offset_);
+ s.store_field("limit", limit_);
+ s.store_field("max_id", max_id_);
+ s.store_field("min_id", min_id_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getReplies::ReturnType messages_getReplies::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_getSavedGifs::messages_getSavedGifs(int64 hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_getSavedGifs::ID;
+
+void messages_getSavedGifs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1559270965);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getSavedGifs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1559270965);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getSavedGifs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getSavedGifs");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getSavedGifs::ReturnType messages_getSavedGifs::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_SavedGifs>::parse(p);
+#undef FAIL
+}
+
+messages_getScheduledHistory::messages_getScheduledHistory(object_ptr<InputPeer> &&peer_, int64 hash_)
+ : peer_(std::move(peer_))
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getScheduledHistory::ID;
+
+void messages_getScheduledHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-183077365);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getScheduledHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-183077365);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getScheduledHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getScheduledHistory");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getScheduledHistory::ReturnType messages_getScheduledHistory::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_getScheduledMessages::messages_getScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_)
+ : peer_(std::move(peer_))
+ , id_(std::move(id_))
+{}
+
+const std::int32_t messages_getScheduledMessages::ID;
+
+void messages_getScheduledMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1111817116);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_getScheduledMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1111817116);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_getScheduledMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getScheduledMessages");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_getScheduledMessages::ReturnType messages_getScheduledMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_getSearchCounters::messages_getSearchCounters(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, array<object_ptr<MessagesFilter>> &&filters_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , top_msg_id_(top_msg_id_)
+ , filters_(std::move(filters_))
+{}
+
+const std::int32_t messages_getSearchCounters::ID;
+
+void messages_getSearchCounters::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(11435201);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(filters_, s);
+}
+
+void messages_getSearchCounters::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(11435201);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(filters_, s);
+}
+
+void messages_getSearchCounters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getSearchCounters");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ { s.store_vector_begin("filters", filters_.size()); for (const auto &_value : filters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_getSearchCounters::ReturnType messages_getSearchCounters::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messages_searchCounter>, -398136321>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_getSearchResultsCalendar::messages_getSearchResultsCalendar(object_ptr<InputPeer> &&peer_, object_ptr<MessagesFilter> &&filter_, int32 offset_id_, int32 offset_date_)
+ : peer_(std::move(peer_))
+ , filter_(std::move(filter_))
+ , offset_id_(offset_id_)
+ , offset_date_(offset_date_)
+{}
+
+const std::int32_t messages_getSearchResultsCalendar::ID;
+
+void messages_getSearchResultsCalendar::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1240514025);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(offset_date_, s);
+}
+
+void messages_getSearchResultsCalendar::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1240514025);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(offset_date_, s);
+}
+
+void messages_getSearchResultsCalendar::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getSearchResultsCalendar");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("offset_id", offset_id_);
+ s.store_field("offset_date", offset_date_);
+ s.store_class_end();
+ }
+}
+
+messages_getSearchResultsCalendar::ReturnType messages_getSearchResultsCalendar::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_searchResultsCalendar>, 343859772>::parse(p);
+#undef FAIL
+}
+
+messages_getSearchResultsPositions::messages_getSearchResultsPositions(object_ptr<InputPeer> &&peer_, object_ptr<MessagesFilter> &&filter_, int32 offset_id_, int32 limit_)
+ : peer_(std::move(peer_))
+ , filter_(std::move(filter_))
+ , offset_id_(offset_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t messages_getSearchResultsPositions::ID;
+
+void messages_getSearchResultsPositions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1855292323);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getSearchResultsPositions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1855292323);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_getSearchResultsPositions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getSearchResultsPositions");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("offset_id", offset_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+messages_getSearchResultsPositions::ReturnType messages_getSearchResultsPositions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_searchResultsPositions>, 1404185519>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t messages_getSplitRanges::ID;
+
+void messages_getSplitRanges::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(486505992);
+}
+
+void messages_getSplitRanges::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(486505992);
+}
+
+void messages_getSplitRanges::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getSplitRanges");
+ s.store_class_end();
+ }
+}
+
+messages_getSplitRanges::ReturnType messages_getSplitRanges::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messageRange>, 182649427>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_getStickerSet::messages_getStickerSet(object_ptr<InputStickerSet> &&stickerset_, int32 hash_)
+ : stickerset_(std::move(stickerset_))
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getStickerSet::ID;
+
+void messages_getStickerSet::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-928977804);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getStickerSet::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-928977804);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getStickerSet");
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getStickerSet::ReturnType messages_getStickerSet::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_StickerSet>::parse(p);
+#undef FAIL
+}
+
+messages_getStickers::messages_getStickers(string const &emoticon_, int64 hash_)
+ : emoticon_(emoticon_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getStickers::ID;
+
+void messages_getStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-710552671);
+ TlStoreString::store(emoticon_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-710552671);
+ TlStoreString::store(emoticon_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getStickers");
+ s.store_field("emoticon", emoticon_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getStickers::ReturnType messages_getStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Stickers>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t messages_getSuggestedDialogFilters::ID;
+
+void messages_getSuggestedDialogFilters::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1566780372);
+}
+
+void messages_getSuggestedDialogFilters::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1566780372);
+}
+
+void messages_getSuggestedDialogFilters::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getSuggestedDialogFilters");
+ s.store_class_end();
+ }
+}
+
+messages_getSuggestedDialogFilters::ReturnType messages_getSuggestedDialogFilters::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<dialogFilterSuggested>, 2004110666>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_getTopReactions::messages_getTopReactions(int32 limit_, int64 hash_)
+ : limit_(limit_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getTopReactions::ID;
+
+void messages_getTopReactions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1149164102);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getTopReactions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1149164102);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getTopReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getTopReactions");
+ s.store_field("limit", limit_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getTopReactions::ReturnType messages_getTopReactions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Reactions>::parse(p);
+#undef FAIL
+}
+
+messages_getUnreadMentions::messages_getUnreadMentions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , top_msg_id_(top_msg_id_)
+ , offset_id_(offset_id_)
+ , add_offset_(add_offset_)
+ , limit_(limit_)
+ , max_id_(max_id_)
+ , min_id_(min_id_)
+{}
+
+const std::int32_t messages_getUnreadMentions::ID;
+
+void messages_getUnreadMentions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-251140208);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(add_offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+}
+
+void messages_getUnreadMentions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-251140208);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(add_offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+}
+
+void messages_getUnreadMentions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getUnreadMentions");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_field("offset_id", offset_id_);
+ s.store_field("add_offset", add_offset_);
+ s.store_field("limit", limit_);
+ s.store_field("max_id", max_id_);
+ s.store_field("min_id", min_id_);
+ s.store_class_end();
+ }
+}
+
+messages_getUnreadMentions::ReturnType messages_getUnreadMentions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_getUnreadReactions::messages_getUnreadReactions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , top_msg_id_(top_msg_id_)
+ , offset_id_(offset_id_)
+ , add_offset_(add_offset_)
+ , limit_(limit_)
+ , max_id_(max_id_)
+ , min_id_(min_id_)
+{}
+
+const std::int32_t messages_getUnreadReactions::ID;
+
+void messages_getUnreadReactions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(841173339);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(add_offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+}
+
+void messages_getUnreadReactions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(841173339);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(add_offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+}
+
+void messages_getUnreadReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getUnreadReactions");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_field("offset_id", offset_id_);
+ s.store_field("add_offset", add_offset_);
+ s.store_field("limit", limit_);
+ s.store_field("max_id", max_id_);
+ s.store_field("min_id", min_id_);
+ s.store_class_end();
+ }
+}
+
+messages_getUnreadReactions::ReturnType messages_getUnreadReactions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_getWebPage::messages_getWebPage(string const &url_, int32 hash_)
+ : url_(url_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_getWebPage::ID;
+
+void messages_getWebPage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(852135825);
+ TlStoreString::store(url_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getWebPage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(852135825);
+ TlStoreString::store(url_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_getWebPage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getWebPage");
+ s.store_field("url", url_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_getWebPage::ReturnType messages_getWebPage::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<WebPage>::parse(p);
+#undef FAIL
+}
+
+messages_getWebPagePreview::messages_getWebPagePreview(int32 flags_, string const &message_, array<object_ptr<MessageEntity>> &&entities_)
+ : flags_(flags_)
+ , message_(message_)
+ , entities_(std::move(entities_))
+{}
+
+const std::int32_t messages_getWebPagePreview::ID;
+
+void messages_getWebPagePreview::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1956073268);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(message_, s);
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+}
+
+void messages_getWebPagePreview::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1956073268);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(message_, s);
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+}
+
+void messages_getWebPagePreview::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.getWebPagePreview");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("message", message_);
+ if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+messages_getWebPagePreview::ReturnType messages_getWebPagePreview::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<MessageMedia>::parse(p);
+#undef FAIL
+}
+
+messages_hideAllChatJoinRequests::messages_hideAllChatJoinRequests(int32 flags_, bool approved_, object_ptr<InputPeer> &&peer_, string const &link_)
+ : flags_(flags_)
+ , approved_(approved_)
+ , peer_(std::move(peer_))
+ , link_(link_)
+{}
+
+const std::int32_t messages_hideAllChatJoinRequests::ID;
+
+void messages_hideAllChatJoinRequests::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-528091926);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 2) { TlStoreString::store(link_, s); }
+}
+
+void messages_hideAllChatJoinRequests::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-528091926);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 2) { TlStoreString::store(link_, s); }
+}
+
+void messages_hideAllChatJoinRequests::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.hideAllChatJoinRequests");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 2) { s.store_field("link", link_); }
+ s.store_class_end();
+ }
+}
+
+messages_hideAllChatJoinRequests::ReturnType messages_hideAllChatJoinRequests::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_hideChatJoinRequest::messages_hideChatJoinRequest(int32 flags_, bool approved_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&user_id_)
+ : flags_(flags_)
+ , approved_(approved_)
+ , peer_(std::move(peer_))
+ , user_id_(std::move(user_id_))
+{}
+
+const std::int32_t messages_hideChatJoinRequest::ID;
+
+void messages_hideChatJoinRequest::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2145904661);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void messages_hideChatJoinRequest::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2145904661);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+}
+
+void messages_hideChatJoinRequest::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.hideChatJoinRequest");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_hideChatJoinRequest::ReturnType messages_hideChatJoinRequest::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_hidePeerSettingsBar::messages_hidePeerSettingsBar(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t messages_hidePeerSettingsBar::ID;
+
+void messages_hidePeerSettingsBar::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1336717624);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_hidePeerSettingsBar::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1336717624);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_hidePeerSettingsBar::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.hidePeerSettingsBar");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_hidePeerSettingsBar::ReturnType messages_hidePeerSettingsBar::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_importChatInvite::messages_importChatInvite(string const &hash_)
+ : hash_(hash_)
+{}
+
+const std::int32_t messages_importChatInvite::ID;
+
+void messages_importChatInvite::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1817183516);
+ TlStoreString::store(hash_, s);
+}
+
+void messages_importChatInvite::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1817183516);
+ TlStoreString::store(hash_, s);
+}
+
+void messages_importChatInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.importChatInvite");
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_importChatInvite::ReturnType messages_importChatInvite::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_initHistoryImport::messages_initHistoryImport(object_ptr<InputPeer> &&peer_, object_ptr<InputFile> &&file_, int32 media_count_)
+ : peer_(std::move(peer_))
+ , file_(std::move(file_))
+ , media_count_(media_count_)
+{}
+
+const std::int32_t messages_initHistoryImport::ID;
+
+void messages_initHistoryImport::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(873008187);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ TlStoreBinary::store(media_count_, s);
+}
+
+void messages_initHistoryImport::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(873008187);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+ TlStoreBinary::store(media_count_, s);
+}
+
+void messages_initHistoryImport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.initHistoryImport");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_field("media_count", media_count_);
+ s.store_class_end();
+ }
+}
+
+messages_initHistoryImport::ReturnType messages_initHistoryImport::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_historyImport>, 375566091>::parse(p);
+#undef FAIL
+}
+
+messages_installStickerSet::messages_installStickerSet(object_ptr<InputStickerSet> &&stickerset_, bool archived_)
+ : stickerset_(std::move(stickerset_))
+ , archived_(archived_)
+{}
+
+const std::int32_t messages_installStickerSet::ID;
+
+void messages_installStickerSet::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-946871200);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBool::store(archived_, s);
+}
+
+void messages_installStickerSet::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-946871200);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBool::store(archived_, s);
+}
+
+void messages_installStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.installStickerSet");
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_field("archived", archived_);
+ s.store_class_end();
+ }
+}
+
+messages_installStickerSet::ReturnType messages_installStickerSet::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_StickerSetInstallResult>::parse(p);
+#undef FAIL
+}
+
+messages_markDialogUnread::messages_markDialogUnread(int32 flags_, bool unread_, object_ptr<InputDialogPeer> &&peer_)
+ : flags_(flags_)
+ , unread_(unread_)
+ , peer_(std::move(peer_))
+{}
+
+const std::int32_t messages_markDialogUnread::ID;
+
+void messages_markDialogUnread::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1031349873);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_markDialogUnread::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1031349873);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_markDialogUnread::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.markDialogUnread");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_markDialogUnread::ReturnType messages_markDialogUnread::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_migrateChat::messages_migrateChat(int64 chat_id_)
+ : chat_id_(chat_id_)
+{}
+
+const std::int32_t messages_migrateChat::ID;
+
+void messages_migrateChat::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1568189671);
+ TlStoreBinary::store(chat_id_, s);
+}
+
+void messages_migrateChat::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1568189671);
+ TlStoreBinary::store(chat_id_, s);
+}
+
+void messages_migrateChat::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.migrateChat");
+ s.store_field("chat_id", chat_id_);
+ s.store_class_end();
+ }
+}
+
+messages_migrateChat::ReturnType messages_migrateChat::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_prolongWebView::messages_prolongWebView(int32 flags_, bool silent_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&bot_, int64 query_id_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&send_as_)
+ : flags_(flags_)
+ , silent_(silent_)
+ , peer_(std::move(peer_))
+ , bot_(std::move(bot_))
+ , query_id_(query_id_)
+ , reply_to_msg_id_(reply_to_msg_id_)
+ , top_msg_id_(top_msg_id_)
+ , send_as_(std::move(send_as_))
+{}
+
+const std::int32_t messages_prolongWebView::ID;
+
+void messages_prolongWebView::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2146648841);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreBinary::store(query_id_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_prolongWebView::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2146648841);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreBinary::store(query_id_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_prolongWebView::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.prolongWebView");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ s.store_field("query_id", query_id_);
+ if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); }
+ if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); }
+ if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); }
+ s.store_class_end();
+ }
+}
+
+messages_prolongWebView::ReturnType messages_prolongWebView::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_rateTranscribedAudio::messages_rateTranscribedAudio(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 transcription_id_, bool good_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , transcription_id_(transcription_id_)
+ , good_(good_)
+{}
+
+const std::int32_t messages_rateTranscribedAudio::ID;
+
+void messages_rateTranscribedAudio::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2132608815);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(transcription_id_, s);
+ TlStoreBool::store(good_, s);
+}
+
+void messages_rateTranscribedAudio::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2132608815);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(transcription_id_, s);
+ TlStoreBool::store(good_, s);
+}
+
+void messages_rateTranscribedAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.rateTranscribedAudio");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_field("transcription_id", transcription_id_);
+ s.store_field("good", good_);
+ s.store_class_end();
+ }
+}
+
+messages_rateTranscribedAudio::ReturnType messages_rateTranscribedAudio::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_readDiscussion::messages_readDiscussion(object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 read_max_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , read_max_id_(read_max_id_)
+{}
+
+const std::int32_t messages_readDiscussion::ID;
+
+void messages_readDiscussion::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-147740172);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(read_max_id_, s);
+}
+
+void messages_readDiscussion::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-147740172);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(read_max_id_, s);
+}
+
+void messages_readDiscussion::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.readDiscussion");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_field("read_max_id", read_max_id_);
+ s.store_class_end();
+ }
+}
+
+messages_readDiscussion::ReturnType messages_readDiscussion::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_readEncryptedHistory::messages_readEncryptedHistory(object_ptr<inputEncryptedChat> &&peer_, int32 max_date_)
+ : peer_(std::move(peer_))
+ , max_date_(max_date_)
+{}
+
+const std::int32_t messages_readEncryptedHistory::ID;
+
+void messages_readEncryptedHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2135648522);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBinary::store(max_date_, s);
+}
+
+void messages_readEncryptedHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2135648522);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBinary::store(max_date_, s);
+}
+
+void messages_readEncryptedHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.readEncryptedHistory");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("max_date", max_date_);
+ s.store_class_end();
+ }
+}
+
+messages_readEncryptedHistory::ReturnType messages_readEncryptedHistory::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_readFeaturedStickers::messages_readFeaturedStickers(array<int64> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t messages_readFeaturedStickers::ID;
+
+void messages_readFeaturedStickers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1527873830);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_readFeaturedStickers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1527873830);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_readFeaturedStickers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.readFeaturedStickers");
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_readFeaturedStickers::ReturnType messages_readFeaturedStickers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_readHistory::messages_readHistory(object_ptr<InputPeer> &&peer_, int32 max_id_)
+ : peer_(std::move(peer_))
+ , max_id_(max_id_)
+{}
+
+const std::int32_t messages_readHistory::ID;
+
+void messages_readHistory::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(238054714);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(max_id_, s);
+}
+
+void messages_readHistory::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(238054714);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(max_id_, s);
+}
+
+void messages_readHistory::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.readHistory");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("max_id", max_id_);
+ s.store_class_end();
+ }
+}
+
+messages_readHistory::ReturnType messages_readHistory::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedMessages>, -2066640507>::parse(p);
+#undef FAIL
+}
+
+messages_readMentions::messages_readMentions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , top_msg_id_(top_msg_id_)
+{}
+
+const std::int32_t messages_readMentions::ID;
+
+void messages_readMentions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(921026381);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+}
+
+void messages_readMentions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(921026381);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+}
+
+void messages_readMentions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.readMentions");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_class_end();
+ }
+}
+
+messages_readMentions::ReturnType messages_readMentions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p);
+#undef FAIL
+}
+
+messages_readMessageContents::messages_readMessageContents(array<int32> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t messages_readMessageContents::ID;
+
+void messages_readMessageContents::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(916930423);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_readMessageContents::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(916930423);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_readMessageContents::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.readMessageContents");
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_readMessageContents::ReturnType messages_readMessageContents::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedMessages>, -2066640507>::parse(p);
+#undef FAIL
+}
+
+messages_readReactions::messages_readReactions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , top_msg_id_(top_msg_id_)
+{}
+
+const std::int32_t messages_readReactions::ID;
+
+void messages_readReactions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1420459918);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+}
+
+void messages_readReactions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1420459918);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+}
+
+void messages_readReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.readReactions");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_class_end();
+ }
+}
+
+messages_readReactions::ReturnType messages_readReactions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p);
+#undef FAIL
+}
+
+messages_receivedMessages::messages_receivedMessages(int32 max_id_)
+ : max_id_(max_id_)
+{}
+
+const std::int32_t messages_receivedMessages::ID;
+
+void messages_receivedMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(94983360);
+ TlStoreBinary::store(max_id_, s);
+}
+
+void messages_receivedMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(94983360);
+ TlStoreBinary::store(max_id_, s);
+}
+
+void messages_receivedMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.receivedMessages");
+ s.store_field("max_id", max_id_);
+ s.store_class_end();
+ }
+}
+
+messages_receivedMessages::ReturnType messages_receivedMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<receivedNotifyMessage>, -1551583367>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_receivedQueue::messages_receivedQueue(int32 max_qts_)
+ : max_qts_(max_qts_)
+{}
+
+const std::int32_t messages_receivedQueue::ID;
+
+void messages_receivedQueue::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1436924774);
+ TlStoreBinary::store(max_qts_, s);
+}
+
+void messages_receivedQueue::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1436924774);
+ TlStoreBinary::store(max_qts_, s);
+}
+
+void messages_receivedQueue::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.receivedQueue");
+ s.store_field("max_qts", max_qts_);
+ s.store_class_end();
+ }
+}
+
+messages_receivedQueue::ReturnType messages_receivedQueue::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p);
+#undef FAIL
+}
+
+messages_reorderPinnedDialogs::messages_reorderPinnedDialogs(int32 flags_, bool force_, int32 folder_id_, array<object_ptr<InputDialogPeer>> &&order_)
+ : flags_(flags_)
+ , force_(force_)
+ , folder_id_(folder_id_)
+ , order_(std::move(order_))
+{}
+
+const std::int32_t messages_reorderPinnedDialogs::ID;
+
+void messages_reorderPinnedDialogs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(991616823);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(folder_id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(order_, s);
+}
+
+void messages_reorderPinnedDialogs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(991616823);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(folder_id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(order_, s);
+}
+
+void messages_reorderPinnedDialogs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.reorderPinnedDialogs");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("folder_id", folder_id_);
+ { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_reorderPinnedDialogs::ReturnType messages_reorderPinnedDialogs::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_reorderStickerSets::messages_reorderStickerSets(int32 flags_, bool masks_, bool emojis_, array<int64> &&order_)
+ : flags_(flags_)
+ , masks_(masks_)
+ , emojis_(emojis_)
+ , order_(std::move(order_))
+{}
+
+const std::int32_t messages_reorderStickerSets::ID;
+
+void messages_reorderStickerSets::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2016638777);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(order_, s);
+}
+
+void messages_reorderStickerSets::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2016638777);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(order_, s);
+}
+
+void messages_reorderStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.reorderStickerSets");
+ s.store_field("flags", (var0 = flags_));
+ { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_reorderStickerSets::ReturnType messages_reorderStickerSets::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_report::messages_report(object_ptr<InputPeer> &&peer_, array<int32> &&id_, object_ptr<ReportReason> &&reason_, string const &message_)
+ : peer_(std::move(peer_))
+ , id_(std::move(id_))
+ , reason_(std::move(reason_))
+ , message_(message_)
+{}
+
+const std::int32_t messages_report::ID;
+
+void messages_report::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1991005362);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s);
+ TlStoreString::store(message_, s);
+}
+
+void messages_report::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1991005362);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s);
+ TlStoreString::store(message_, s);
+}
+
+void messages_report::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.report");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get()));
+ s.store_field("message", message_);
+ s.store_class_end();
+ }
+}
+
+messages_report::ReturnType messages_report::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_reportEncryptedSpam::messages_reportEncryptedSpam(object_ptr<inputEncryptedChat> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t messages_reportEncryptedSpam::ID;
+
+void messages_reportEncryptedSpam::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1259113487);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+}
+
+void messages_reportEncryptedSpam::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1259113487);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+}
+
+void messages_reportEncryptedSpam::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.reportEncryptedSpam");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_reportEncryptedSpam::ReturnType messages_reportEncryptedSpam::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_reportReaction::messages_reportReaction(object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputPeer> &&reaction_peer_)
+ : peer_(std::move(peer_))
+ , id_(id_)
+ , reaction_peer_(std::move(reaction_peer_))
+{}
+
+const std::int32_t messages_reportReaction::ID;
+
+void messages_reportReaction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1063567478);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reaction_peer_, s);
+}
+
+void messages_reportReaction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1063567478);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reaction_peer_, s);
+}
+
+void messages_reportReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.reportReaction");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("id", id_);
+ s.store_object_field("reaction_peer", static_cast<const BaseObject *>(reaction_peer_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_reportReaction::ReturnType messages_reportReaction::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_reportSpam::messages_reportSpam(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t messages_reportSpam::ID;
+
+void messages_reportSpam::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-820669733);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_reportSpam::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-820669733);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_reportSpam::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.reportSpam");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_reportSpam::ReturnType messages_reportSpam::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_requestEncryption::messages_requestEncryption(object_ptr<InputUser> &&user_id_, int32 random_id_, bytes &&g_a_)
+ : user_id_(std::move(user_id_))
+ , random_id_(random_id_)
+ , g_a_(std::move(g_a_))
+{}
+
+const std::int32_t messages_requestEncryption::ID;
+
+void messages_requestEncryption::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-162681021);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(g_a_, s);
+}
+
+void messages_requestEncryption::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-162681021);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(g_a_, s);
+}
+
+void messages_requestEncryption::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.requestEncryption");
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("random_id", random_id_);
+ s.store_bytes_field("g_a", g_a_);
+ s.store_class_end();
+ }
+}
+
+messages_requestEncryption::ReturnType messages_requestEncryption::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<EncryptedChat>::parse(p);
+#undef FAIL
+}
+
+messages_requestSimpleWebView::messages_requestSimpleWebView(int32 flags_, object_ptr<InputUser> &&bot_, string const &url_, object_ptr<dataJSON> &&theme_params_, string const &platform_)
+ : flags_(flags_)
+ , bot_(std::move(bot_))
+ , url_(url_)
+ , theme_params_(std::move(theme_params_))
+ , platform_(platform_)
+{}
+
+const std::int32_t messages_requestSimpleWebView::ID;
+
+void messages_requestSimpleWebView::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(698084494);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreString::store(url_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); }
+ TlStoreString::store(platform_, s);
+}
+
+void messages_requestSimpleWebView::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(698084494);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreString::store(url_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); }
+ TlStoreString::store(platform_, s);
+}
+
+void messages_requestSimpleWebView::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.requestSimpleWebView");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ s.store_field("url", url_);
+ if (var0 & 1) { s.store_object_field("theme_params", static_cast<const BaseObject *>(theme_params_.get())); }
+ s.store_field("platform", platform_);
+ s.store_class_end();
+ }
+}
+
+messages_requestSimpleWebView::ReturnType messages_requestSimpleWebView::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<simpleWebViewResultUrl>, -2010155333>::parse(p);
+#undef FAIL
+}
+
+messages_requestUrlAuth::messages_requestUrlAuth(int32 flags_, object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 button_id_, string const &url_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , button_id_(button_id_)
+ , url_(url_)
+{}
+
+const std::int32_t messages_requestUrlAuth::ID;
+
+void messages_requestUrlAuth::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(428848198);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); }
+ if (var0 & 2) { TlStoreBinary::store(msg_id_, s); }
+ if (var0 & 2) { TlStoreBinary::store(button_id_, s); }
+ if (var0 & 4) { TlStoreString::store(url_, s); }
+}
+
+void messages_requestUrlAuth::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(428848198);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); }
+ if (var0 & 2) { TlStoreBinary::store(msg_id_, s); }
+ if (var0 & 2) { TlStoreBinary::store(button_id_, s); }
+ if (var0 & 4) { TlStoreString::store(url_, s); }
+}
+
+void messages_requestUrlAuth::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.requestUrlAuth");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 2) { s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); }
+ if (var0 & 2) { s.store_field("msg_id", msg_id_); }
+ if (var0 & 2) { s.store_field("button_id", button_id_); }
+ if (var0 & 4) { s.store_field("url", url_); }
+ s.store_class_end();
+ }
+}
+
+messages_requestUrlAuth::ReturnType messages_requestUrlAuth::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<UrlAuthResult>::parse(p);
+#undef FAIL
+}
+
+messages_requestWebView::messages_requestWebView(int32 flags_, bool from_bot_menu_, bool silent_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&bot_, string const &url_, string const &start_param_, object_ptr<dataJSON> &&theme_params_, string const &platform_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&send_as_)
+ : flags_(flags_)
+ , from_bot_menu_(from_bot_menu_)
+ , silent_(silent_)
+ , peer_(std::move(peer_))
+ , bot_(std::move(bot_))
+ , url_(url_)
+ , start_param_(start_param_)
+ , theme_params_(std::move(theme_params_))
+ , platform_(platform_)
+ , reply_to_msg_id_(reply_to_msg_id_)
+ , top_msg_id_(top_msg_id_)
+ , send_as_(std::move(send_as_))
+{}
+
+const std::int32_t messages_requestWebView::ID;
+
+void messages_requestWebView::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(395003915);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ if (var0 & 2) { TlStoreString::store(url_, s); }
+ if (var0 & 8) { TlStoreString::store(start_param_, s); }
+ if (var0 & 4) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); }
+ TlStoreString::store(platform_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_requestWebView::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(395003915);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ if (var0 & 2) { TlStoreString::store(url_, s); }
+ if (var0 & 8) { TlStoreString::store(start_param_, s); }
+ if (var0 & 4) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); }
+ TlStoreString::store(platform_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_requestWebView::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.requestWebView");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ if (var0 & 2) { s.store_field("url", url_); }
+ if (var0 & 8) { s.store_field("start_param", start_param_); }
+ if (var0 & 4) { s.store_object_field("theme_params", static_cast<const BaseObject *>(theme_params_.get())); }
+ s.store_field("platform", platform_);
+ if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); }
+ if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); }
+ if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); }
+ s.store_class_end();
+ }
+}
+
+messages_requestWebView::ReturnType messages_requestWebView::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<webViewResultUrl>, 202659196>::parse(p);
+#undef FAIL
+}
+
+messages_saveDefaultSendAs::messages_saveDefaultSendAs(object_ptr<InputPeer> &&peer_, object_ptr<InputPeer> &&send_as_)
+ : peer_(std::move(peer_))
+ , send_as_(std::move(send_as_))
+{}
+
+const std::int32_t messages_saveDefaultSendAs::ID;
+
+void messages_saveDefaultSendAs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-855777386);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s);
+}
+
+void messages_saveDefaultSendAs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-855777386);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s);
+}
+
+void messages_saveDefaultSendAs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.saveDefaultSendAs");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_saveDefaultSendAs::ReturnType messages_saveDefaultSendAs::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_saveDraft::messages_saveDraft(int32 flags_, bool no_webpage_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&peer_, string const &message_, array<object_ptr<MessageEntity>> &&entities_)
+ : flags_(flags_)
+ , no_webpage_(no_webpage_)
+ , reply_to_msg_id_(reply_to_msg_id_)
+ , top_msg_id_(top_msg_id_)
+ , peer_(std::move(peer_))
+ , message_(message_)
+ , entities_(std::move(entities_))
+{}
+
+const std::int32_t messages_saveDraft::ID;
+
+void messages_saveDraft::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1271718337);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 4) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(message_, s);
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+}
+
+void messages_saveDraft::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1271718337);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 4) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(message_, s);
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+}
+
+void messages_saveDraft::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.saveDraft");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); }
+ if (var0 & 4) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("message", message_);
+ if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+messages_saveDraft::ReturnType messages_saveDraft::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_saveGif::messages_saveGif(object_ptr<InputDocument> &&id_, bool unsave_)
+ : id_(std::move(id_))
+ , unsave_(unsave_)
+{}
+
+const std::int32_t messages_saveGif::ID;
+
+void messages_saveGif::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(846868683);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBool::store(unsave_, s);
+}
+
+void messages_saveGif::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(846868683);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBool::store(unsave_, s);
+}
+
+void messages_saveGif::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.saveGif");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_field("unsave", unsave_);
+ s.store_class_end();
+ }
+}
+
+messages_saveGif::ReturnType messages_saveGif::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_saveRecentSticker::messages_saveRecentSticker(int32 flags_, bool attached_, object_ptr<InputDocument> &&id_, bool unsave_)
+ : flags_(flags_)
+ , attached_(attached_)
+ , id_(std::move(id_))
+ , unsave_(unsave_)
+{}
+
+const std::int32_t messages_saveRecentSticker::ID;
+
+void messages_saveRecentSticker::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(958863608);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBool::store(unsave_, s);
+}
+
+void messages_saveRecentSticker::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(958863608);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBool::store(unsave_, s);
+}
+
+void messages_saveRecentSticker::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.saveRecentSticker");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_field("unsave", unsave_);
+ s.store_class_end();
+ }
+}
+
+messages_saveRecentSticker::ReturnType messages_saveRecentSticker::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_search::messages_search(int32 flags_, object_ptr<InputPeer> &&peer_, string const &q_, object_ptr<InputPeer> &&from_id_, int32 top_msg_id_, object_ptr<MessagesFilter> &&filter_, int32 min_date_, int32 max_date_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , q_(q_)
+ , from_id_(std::move(from_id_))
+ , top_msg_id_(top_msg_id_)
+ , filter_(std::move(filter_))
+ , min_date_(min_date_)
+ , max_date_(max_date_)
+ , offset_id_(offset_id_)
+ , add_offset_(add_offset_)
+ , limit_(limit_)
+ , max_id_(max_id_)
+ , min_id_(min_id_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_search::ID;
+
+void messages_search::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1593989278);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(q_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(from_id_, s); }
+ if (var0 & 2) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(min_date_, s);
+ TlStoreBinary::store(max_date_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(add_offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_search::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1593989278);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(q_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(from_id_, s); }
+ if (var0 & 2) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(min_date_, s);
+ TlStoreBinary::store(max_date_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(add_offset_, s);
+ TlStoreBinary::store(limit_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(min_id_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_search::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.search");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("q", q_);
+ if (var0 & 1) { s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); }
+ if (var0 & 2) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("min_date", min_date_);
+ s.store_field("max_date", max_date_);
+ s.store_field("offset_id", offset_id_);
+ s.store_field("add_offset", add_offset_);
+ s.store_field("limit", limit_);
+ s.store_field("max_id", max_id_);
+ s.store_field("min_id", min_id_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_search::ReturnType messages_search::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_searchGlobal::messages_searchGlobal(int32 flags_, int32 folder_id_, string const &q_, object_ptr<MessagesFilter> &&filter_, int32 min_date_, int32 max_date_, int32 offset_rate_, object_ptr<InputPeer> &&offset_peer_, int32 offset_id_, int32 limit_)
+ : flags_(flags_)
+ , folder_id_(folder_id_)
+ , q_(q_)
+ , filter_(std::move(filter_))
+ , min_date_(min_date_)
+ , max_date_(max_date_)
+ , offset_rate_(offset_rate_)
+ , offset_peer_(std::move(offset_peer_))
+ , offset_id_(offset_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t messages_searchGlobal::ID;
+
+void messages_searchGlobal::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1271290010);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBinary::store(folder_id_, s); }
+ TlStoreString::store(q_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(min_date_, s);
+ TlStoreBinary::store(max_date_, s);
+ TlStoreBinary::store(offset_rate_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_searchGlobal::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1271290010);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBinary::store(folder_id_, s); }
+ TlStoreString::store(q_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(min_date_, s);
+ TlStoreBinary::store(max_date_, s);
+ TlStoreBinary::store(offset_rate_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_searchGlobal::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.searchGlobal");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_field("folder_id", folder_id_); }
+ s.store_field("q", q_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("min_date", min_date_);
+ s.store_field("max_date", max_date_);
+ s.store_field("offset_rate", offset_rate_);
+ s.store_object_field("offset_peer", static_cast<const BaseObject *>(offset_peer_.get()));
+ s.store_field("offset_id", offset_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+messages_searchGlobal::ReturnType messages_searchGlobal::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_searchSentMedia::messages_searchSentMedia(string const &q_, object_ptr<MessagesFilter> &&filter_, int32 limit_)
+ : q_(q_)
+ , filter_(std::move(filter_))
+ , limit_(limit_)
+{}
+
+const std::int32_t messages_searchSentMedia::ID;
+
+void messages_searchSentMedia::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(276705696);
+ TlStoreString::store(q_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_searchSentMedia::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(276705696);
+ TlStoreString::store(q_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void messages_searchSentMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.searchSentMedia");
+ s.store_field("q", q_);
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+messages_searchSentMedia::ReturnType messages_searchSentMedia::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+messages_searchStickerSets::messages_searchStickerSets(int32 flags_, bool exclude_featured_, string const &q_, int64 hash_)
+ : flags_(flags_)
+ , exclude_featured_(exclude_featured_)
+ , q_(q_)
+ , hash_(hash_)
+{}
+
+const std::int32_t messages_searchStickerSets::ID;
+
+void messages_searchStickerSets::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(896555914);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(q_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_searchStickerSets::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(896555914);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(q_, s);
+ TlStoreBinary::store(hash_, s);
+}
+
+void messages_searchStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.searchStickerSets");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("q", q_);
+ s.store_field("hash", hash_);
+ s.store_class_end();
+ }
+}
+
+messages_searchStickerSets::ReturnType messages_searchStickerSets::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_FoundStickerSets>::parse(p);
+#undef FAIL
+}
+
+messages_sendEncrypted::messages_sendEncrypted(int32 flags_, bool silent_, object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_)
+ : flags_(flags_)
+ , silent_(silent_)
+ , peer_(std::move(peer_))
+ , random_id_(random_id_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t messages_sendEncrypted::ID;
+
+void messages_sendEncrypted::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1157265941);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(data_, s);
+}
+
+void messages_sendEncrypted::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1157265941);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(data_, s);
+}
+
+void messages_sendEncrypted::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendEncrypted");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("random_id", random_id_);
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+messages_sendEncrypted::ReturnType messages_sendEncrypted::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_SentEncryptedMessage>::parse(p);
+#undef FAIL
+}
+
+messages_sendEncryptedFile::messages_sendEncryptedFile(int32 flags_, bool silent_, object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_, object_ptr<InputEncryptedFile> &&file_)
+ : flags_(flags_)
+ , silent_(silent_)
+ , peer_(std::move(peer_))
+ , random_id_(random_id_)
+ , data_(std::move(data_))
+ , file_(std::move(file_))
+{}
+
+const std::int32_t messages_sendEncryptedFile::ID;
+
+void messages_sendEncryptedFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1431914525);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(data_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+}
+
+void messages_sendEncryptedFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1431914525);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(data_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+}
+
+void messages_sendEncryptedFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendEncryptedFile");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("random_id", random_id_);
+ s.store_bytes_field("data", data_);
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_sendEncryptedFile::ReturnType messages_sendEncryptedFile::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_SentEncryptedMessage>::parse(p);
+#undef FAIL
+}
+
+messages_sendEncryptedService::messages_sendEncryptedService(object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_)
+ : peer_(std::move(peer_))
+ , random_id_(random_id_)
+ , data_(std::move(data_))
+{}
+
+const std::int32_t messages_sendEncryptedService::ID;
+
+void messages_sendEncryptedService::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(852769188);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(data_, s);
+}
+
+void messages_sendEncryptedService::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(852769188);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(data_, s);
+}
+
+void messages_sendEncryptedService::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendEncryptedService");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("random_id", random_id_);
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+messages_sendEncryptedService::ReturnType messages_sendEncryptedService::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_SentEncryptedMessage>::parse(p);
+#undef FAIL
+}
+
+messages_sendInlineBotResult::messages_sendInlineBotResult(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool hide_via_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, int64 random_id_, int64 query_id_, string const &id_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_)
+ : flags_(flags_)
+ , silent_(silent_)
+ , background_(background_)
+ , clear_draft_(clear_draft_)
+ , hide_via_(hide_via_)
+ , peer_(std::move(peer_))
+ , reply_to_msg_id_(reply_to_msg_id_)
+ , top_msg_id_(top_msg_id_)
+ , random_id_(random_id_)
+ , query_id_(query_id_)
+ , id_(id_)
+ , schedule_date_(schedule_date_)
+ , send_as_(std::move(send_as_))
+{}
+
+const std::int32_t messages_sendInlineBotResult::ID;
+
+void messages_sendInlineBotResult::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-738468661);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBinary::store(random_id_, s);
+ TlStoreBinary::store(query_id_, s);
+ TlStoreString::store(id_, s);
+ if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_sendInlineBotResult::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-738468661);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBinary::store(random_id_, s);
+ TlStoreBinary::store(query_id_, s);
+ TlStoreString::store(id_, s);
+ if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_sendInlineBotResult::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendInlineBotResult");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); }
+ if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_field("random_id", random_id_);
+ s.store_field("query_id", query_id_);
+ s.store_field("id", id_);
+ if (var0 & 1024) { s.store_field("schedule_date", schedule_date_); }
+ if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); }
+ s.store_class_end();
+ }
+}
+
+messages_sendInlineBotResult::ReturnType messages_sendInlineBotResult::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_sendMedia::messages_sendMedia(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputMedia> &&media_, string const &message_, int64 random_id_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_)
+ : flags_(flags_)
+ , silent_(silent_)
+ , background_(background_)
+ , clear_draft_(clear_draft_)
+ , noforwards_(noforwards_)
+ , update_stickersets_order_(update_stickersets_order_)
+ , peer_(std::move(peer_))
+ , reply_to_msg_id_(reply_to_msg_id_)
+ , top_msg_id_(top_msg_id_)
+ , media_(std::move(media_))
+ , message_(message_)
+ , random_id_(random_id_)
+ , reply_markup_(std::move(reply_markup_))
+ , entities_(std::move(entities_))
+ , schedule_date_(schedule_date_)
+ , send_as_(std::move(send_as_))
+{}
+
+const std::int32_t messages_sendMedia::ID;
+
+void messages_sendMedia::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1967638886);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+ TlStoreString::store(message_, s);
+ TlStoreBinary::store(random_id_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_sendMedia::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1967638886);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+ TlStoreString::store(message_, s);
+ TlStoreBinary::store(random_id_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_sendMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendMedia");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); }
+ if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_object_field("media", static_cast<const BaseObject *>(media_.get()));
+ s.store_field("message", message_);
+ s.store_field("random_id", random_id_);
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 1024) { s.store_field("schedule_date", schedule_date_); }
+ if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); }
+ s.store_class_end();
+ }
+}
+
+messages_sendMedia::ReturnType messages_sendMedia::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_sendMessage::messages_sendMessage(int32 flags_, bool no_webpage_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, string const &message_, int64 random_id_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_)
+ : flags_(flags_)
+ , no_webpage_(no_webpage_)
+ , silent_(silent_)
+ , background_(background_)
+ , clear_draft_(clear_draft_)
+ , noforwards_(noforwards_)
+ , update_stickersets_order_(update_stickersets_order_)
+ , peer_(std::move(peer_))
+ , reply_to_msg_id_(reply_to_msg_id_)
+ , top_msg_id_(top_msg_id_)
+ , message_(message_)
+ , random_id_(random_id_)
+ , reply_markup_(std::move(reply_markup_))
+ , entities_(std::move(entities_))
+ , schedule_date_(schedule_date_)
+ , send_as_(std::move(send_as_))
+{}
+
+const std::int32_t messages_sendMessage::ID;
+
+void messages_sendMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(482476935);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreString::store(message_, s);
+ TlStoreBinary::store(random_id_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_sendMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(482476935);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreString::store(message_, s);
+ TlStoreBinary::store(random_id_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); }
+ if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_sendMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendMessage");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); }
+ if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_field("message", message_);
+ s.store_field("random_id", random_id_);
+ if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); }
+ if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ if (var0 & 1024) { s.store_field("schedule_date", schedule_date_); }
+ if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); }
+ s.store_class_end();
+ }
+}
+
+messages_sendMessage::ReturnType messages_sendMessage::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_sendMultiMedia::messages_sendMultiMedia(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, array<object_ptr<inputSingleMedia>> &&multi_media_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_)
+ : flags_(flags_)
+ , silent_(silent_)
+ , background_(background_)
+ , clear_draft_(clear_draft_)
+ , noforwards_(noforwards_)
+ , update_stickersets_order_(update_stickersets_order_)
+ , peer_(std::move(peer_))
+ , reply_to_msg_id_(reply_to_msg_id_)
+ , top_msg_id_(top_msg_id_)
+ , multi_media_(std::move(multi_media_))
+ , schedule_date_(schedule_date_)
+ , send_as_(std::move(send_as_))
+{}
+
+const std::int32_t messages_sendMultiMedia::ID;
+
+void messages_sendMultiMedia::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1225713124);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 482797855>>, 481674261>::store(multi_media_, s);
+ if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_sendMultiMedia::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1225713124);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); }
+ if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 482797855>>, 481674261>::store(multi_media_, s);
+ if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); }
+ if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); }
+}
+
+void messages_sendMultiMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendMultiMedia");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); }
+ if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); }
+ { s.store_vector_begin("multi_media", multi_media_.size()); for (const auto &_value : multi_media_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 1024) { s.store_field("schedule_date", schedule_date_); }
+ if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); }
+ s.store_class_end();
+ }
+}
+
+messages_sendMultiMedia::ReturnType messages_sendMultiMedia::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_sendReaction::messages_sendReaction(int32 flags_, bool big_, bool add_to_recent_, object_ptr<InputPeer> &&peer_, int32 msg_id_, array<object_ptr<Reaction>> &&reaction_)
+ : flags_(flags_)
+ , big_(big_)
+ , add_to_recent_(add_to_recent_)
+ , peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , reaction_(std::move(reaction_))
+{}
+
+const std::int32_t messages_sendReaction::ID;
+
+void messages_sendReaction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-754091820);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(reaction_, s); }
+}
+
+void messages_sendReaction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-754091820);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(reaction_, s); }
+}
+
+void messages_sendReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendReaction");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ if (var0 & 1) { { s.store_vector_begin("reaction", reaction_.size()); for (const auto &_value : reaction_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+messages_sendReaction::ReturnType messages_sendReaction::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_sendScheduledMessages::messages_sendScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_)
+ : peer_(std::move(peer_))
+ , id_(std::move(id_))
+{}
+
+const std::int32_t messages_sendScheduledMessages::ID;
+
+void messages_sendScheduledMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1120369398);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_sendScheduledMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1120369398);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s);
+}
+
+void messages_sendScheduledMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendScheduledMessages");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_sendScheduledMessages::ReturnType messages_sendScheduledMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_sendScreenshotNotification::messages_sendScreenshotNotification(object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int64 random_id_)
+ : peer_(std::move(peer_))
+ , reply_to_msg_id_(reply_to_msg_id_)
+ , random_id_(random_id_)
+{}
+
+const std::int32_t messages_sendScreenshotNotification::ID;
+
+void messages_sendScreenshotNotification::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-914493408);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(reply_to_msg_id_, s);
+ TlStoreBinary::store(random_id_, s);
+}
+
+void messages_sendScreenshotNotification::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-914493408);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(reply_to_msg_id_, s);
+ TlStoreBinary::store(random_id_, s);
+}
+
+void messages_sendScreenshotNotification::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendScreenshotNotification");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("reply_to_msg_id", reply_to_msg_id_);
+ s.store_field("random_id", random_id_);
+ s.store_class_end();
+ }
+}
+
+messages_sendScreenshotNotification::ReturnType messages_sendScreenshotNotification::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_sendVote::messages_sendVote(object_ptr<InputPeer> &&peer_, int32 msg_id_, array<bytes> &&options_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , options_(std::move(options_))
+{}
+
+const std::int32_t messages_sendVote::ID;
+
+void messages_sendVote::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(283795844);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(options_, s);
+}
+
+void messages_sendVote::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(283795844);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(options_, s);
+}
+
+void messages_sendVote::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendVote");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ { s.store_vector_begin("options", options_.size()); for (const auto &_value : options_) { s.store_bytes_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_sendVote::ReturnType messages_sendVote::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_sendWebViewData::messages_sendWebViewData(object_ptr<InputUser> &&bot_, int64 random_id_, string const &button_text_, string const &data_)
+ : bot_(std::move(bot_))
+ , random_id_(random_id_)
+ , button_text_(button_text_)
+ , data_(data_)
+{}
+
+const std::int32_t messages_sendWebViewData::ID;
+
+void messages_sendWebViewData::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-603831608);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(button_text_, s);
+ TlStoreString::store(data_, s);
+}
+
+void messages_sendWebViewData::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-603831608);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(button_text_, s);
+ TlStoreString::store(data_, s);
+}
+
+void messages_sendWebViewData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendWebViewData");
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ s.store_field("random_id", random_id_);
+ s.store_field("button_text", button_text_);
+ s.store_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+messages_sendWebViewData::ReturnType messages_sendWebViewData::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_sendWebViewResultMessage::messages_sendWebViewResultMessage(string const &bot_query_id_, object_ptr<InputBotInlineResult> &&result_)
+ : bot_query_id_(bot_query_id_)
+ , result_(std::move(result_))
+{}
+
+const std::int32_t messages_sendWebViewResultMessage::ID;
+
+void messages_sendWebViewResultMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(172168437);
+ TlStoreString::store(bot_query_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(result_, s);
+}
+
+void messages_sendWebViewResultMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(172168437);
+ TlStoreString::store(bot_query_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(result_, s);
+}
+
+void messages_sendWebViewResultMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.sendWebViewResultMessage");
+ s.store_field("bot_query_id", bot_query_id_);
+ s.store_object_field("result", static_cast<const BaseObject *>(result_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_sendWebViewResultMessage::ReturnType messages_sendWebViewResultMessage::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<webViewMessageSent>, 211046684>::parse(p);
+#undef FAIL
+}
+
+messages_setBotCallbackAnswer::messages_setBotCallbackAnswer(int32 flags_, bool alert_, int64 query_id_, string const &message_, string const &url_, int32 cache_time_)
+ : flags_(flags_)
+ , alert_(alert_)
+ , query_id_(query_id_)
+ , message_(message_)
+ , url_(url_)
+ , cache_time_(cache_time_)
+{}
+
+const std::int32_t messages_setBotCallbackAnswer::ID;
+
+void messages_setBotCallbackAnswer::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-712043766);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(query_id_, s);
+ if (var0 & 1) { TlStoreString::store(message_, s); }
+ if (var0 & 4) { TlStoreString::store(url_, s); }
+ TlStoreBinary::store(cache_time_, s);
+}
+
+void messages_setBotCallbackAnswer::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-712043766);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(query_id_, s);
+ if (var0 & 1) { TlStoreString::store(message_, s); }
+ if (var0 & 4) { TlStoreString::store(url_, s); }
+ TlStoreBinary::store(cache_time_, s);
+}
+
+void messages_setBotCallbackAnswer::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setBotCallbackAnswer");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("query_id", query_id_);
+ if (var0 & 1) { s.store_field("message", message_); }
+ if (var0 & 4) { s.store_field("url", url_); }
+ s.store_field("cache_time", cache_time_);
+ s.store_class_end();
+ }
+}
+
+messages_setBotCallbackAnswer::ReturnType messages_setBotCallbackAnswer::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_setBotPrecheckoutResults::messages_setBotPrecheckoutResults(int32 flags_, bool success_, int64 query_id_, string const &error_)
+ : flags_(flags_)
+ , success_(success_)
+ , query_id_(query_id_)
+ , error_(error_)
+{}
+
+const std::int32_t messages_setBotPrecheckoutResults::ID;
+
+void messages_setBotPrecheckoutResults::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(163765653);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(query_id_, s);
+ if (var0 & 1) { TlStoreString::store(error_, s); }
+}
+
+void messages_setBotPrecheckoutResults::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(163765653);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(query_id_, s);
+ if (var0 & 1) { TlStoreString::store(error_, s); }
+}
+
+void messages_setBotPrecheckoutResults::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setBotPrecheckoutResults");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("query_id", query_id_);
+ if (var0 & 1) { s.store_field("error", error_); }
+ s.store_class_end();
+ }
+}
+
+messages_setBotPrecheckoutResults::ReturnType messages_setBotPrecheckoutResults::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_setBotShippingResults::messages_setBotShippingResults(int32 flags_, int64 query_id_, string const &error_, array<object_ptr<shippingOption>> &&shipping_options_)
+ : flags_(flags_)
+ , query_id_(query_id_)
+ , error_(error_)
+ , shipping_options_(std::move(shipping_options_))
+{}
+
+const std::int32_t messages_setBotShippingResults::ID;
+
+void messages_setBotShippingResults::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-436833542);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(query_id_, s);
+ if (var0 & 1) { TlStoreString::store(error_, s); }
+ if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1239335713>>, 481674261>::store(shipping_options_, s); }
+}
+
+void messages_setBotShippingResults::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-436833542);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(query_id_, s);
+ if (var0 & 1) { TlStoreString::store(error_, s); }
+ if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1239335713>>, 481674261>::store(shipping_options_, s); }
+}
+
+void messages_setBotShippingResults::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setBotShippingResults");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("query_id", query_id_);
+ if (var0 & 1) { s.store_field("error", error_); }
+ if (var0 & 2) { { s.store_vector_begin("shipping_options", shipping_options_.size()); for (const auto &_value : shipping_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } }
+ s.store_class_end();
+ }
+}
+
+messages_setBotShippingResults::ReturnType messages_setBotShippingResults::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_setChatAvailableReactions::messages_setChatAvailableReactions(object_ptr<InputPeer> &&peer_, object_ptr<ChatReactions> &&available_reactions_)
+ : peer_(std::move(peer_))
+ , available_reactions_(std::move(available_reactions_))
+{}
+
+const std::int32_t messages_setChatAvailableReactions::ID;
+
+void messages_setChatAvailableReactions::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-21928079);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(available_reactions_, s);
+}
+
+void messages_setChatAvailableReactions::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-21928079);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(available_reactions_, s);
+}
+
+void messages_setChatAvailableReactions::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setChatAvailableReactions");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_setChatAvailableReactions::ReturnType messages_setChatAvailableReactions::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_setChatTheme::messages_setChatTheme(object_ptr<InputPeer> &&peer_, string const &emoticon_)
+ : peer_(std::move(peer_))
+ , emoticon_(emoticon_)
+{}
+
+const std::int32_t messages_setChatTheme::ID;
+
+void messages_setChatTheme::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-432283329);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(emoticon_, s);
+}
+
+void messages_setChatTheme::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-432283329);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreString::store(emoticon_, s);
+}
+
+void messages_setChatTheme::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setChatTheme");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("emoticon", emoticon_);
+ s.store_class_end();
+ }
+}
+
+messages_setChatTheme::ReturnType messages_setChatTheme::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_setDefaultReaction::messages_setDefaultReaction(object_ptr<Reaction> &&reaction_)
+ : reaction_(std::move(reaction_))
+{}
+
+const std::int32_t messages_setDefaultReaction::ID;
+
+void messages_setDefaultReaction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1330094102);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reaction_, s);
+}
+
+void messages_setDefaultReaction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1330094102);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reaction_, s);
+}
+
+void messages_setDefaultReaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setDefaultReaction");
+ s.store_object_field("reaction", static_cast<const BaseObject *>(reaction_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_setDefaultReaction::ReturnType messages_setDefaultReaction::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_setEncryptedTyping::messages_setEncryptedTyping(object_ptr<inputEncryptedChat> &&peer_, bool typing_)
+ : peer_(std::move(peer_))
+ , typing_(typing_)
+{}
+
+const std::int32_t messages_setEncryptedTyping::ID;
+
+void messages_setEncryptedTyping::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2031374829);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBool::store(typing_, s);
+}
+
+void messages_setEncryptedTyping::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2031374829);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBool::store(typing_, s);
+}
+
+void messages_setEncryptedTyping::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setEncryptedTyping");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("typing", typing_);
+ s.store_class_end();
+ }
+}
+
+messages_setEncryptedTyping::ReturnType messages_setEncryptedTyping::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_setGameScore::messages_setGameScore(int32 flags_, bool edit_message_, bool force_, object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputUser> &&user_id_, int32 score_)
+ : flags_(flags_)
+ , edit_message_(edit_message_)
+ , force_(force_)
+ , peer_(std::move(peer_))
+ , id_(id_)
+ , user_id_(std::move(user_id_))
+ , score_(score_)
+{}
+
+const std::int32_t messages_setGameScore::ID;
+
+void messages_setGameScore::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1896289088);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(score_, s);
+}
+
+void messages_setGameScore::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1896289088);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(score_, s);
+}
+
+void messages_setGameScore::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setGameScore");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("id", id_);
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("score", score_);
+ s.store_class_end();
+ }
+}
+
+messages_setGameScore::ReturnType messages_setGameScore::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_setHistoryTTL::messages_setHistoryTTL(object_ptr<InputPeer> &&peer_, int32 period_)
+ : peer_(std::move(peer_))
+ , period_(period_)
+{}
+
+const std::int32_t messages_setHistoryTTL::ID;
+
+void messages_setHistoryTTL::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1207017500);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(period_, s);
+}
+
+void messages_setHistoryTTL::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1207017500);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(period_, s);
+}
+
+void messages_setHistoryTTL::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setHistoryTTL");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("period", period_);
+ s.store_class_end();
+ }
+}
+
+messages_setHistoryTTL::ReturnType messages_setHistoryTTL::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_setInlineBotResults::messages_setInlineBotResults(int32 flags_, bool gallery_, bool private_, int64 query_id_, array<object_ptr<InputBotInlineResult>> &&results_, int32 cache_time_, string const &next_offset_, object_ptr<inlineBotSwitchPM> &&switch_pm_)
+ : flags_(flags_)
+ , gallery_(gallery_)
+ , private_(private_)
+ , query_id_(query_id_)
+ , results_(std::move(results_))
+ , cache_time_(cache_time_)
+ , next_offset_(next_offset_)
+ , switch_pm_(std::move(switch_pm_))
+{}
+
+const std::int32_t messages_setInlineBotResults::ID;
+
+void messages_setInlineBotResults::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-346119674);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(query_id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(results_, s);
+ TlStoreBinary::store(cache_time_, s);
+ if (var0 & 4) { TlStoreString::store(next_offset_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreObject, 1008755359>::store(switch_pm_, s); }
+}
+
+void messages_setInlineBotResults::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-346119674);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(query_id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(results_, s);
+ TlStoreBinary::store(cache_time_, s);
+ if (var0 & 4) { TlStoreString::store(next_offset_, s); }
+ if (var0 & 8) { TlStoreBoxed<TlStoreObject, 1008755359>::store(switch_pm_, s); }
+}
+
+void messages_setInlineBotResults::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setInlineBotResults");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("query_id", query_id_);
+ { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_field("cache_time", cache_time_);
+ if (var0 & 4) { s.store_field("next_offset", next_offset_); }
+ if (var0 & 8) { s.store_object_field("switch_pm", static_cast<const BaseObject *>(switch_pm_.get())); }
+ s.store_class_end();
+ }
+}
+
+messages_setInlineBotResults::ReturnType messages_setInlineBotResults::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_setInlineGameScore::messages_setInlineGameScore(int32 flags_, bool edit_message_, bool force_, object_ptr<InputBotInlineMessageID> &&id_, object_ptr<InputUser> &&user_id_, int32 score_)
+ : flags_(flags_)
+ , edit_message_(edit_message_)
+ , force_(force_)
+ , id_(std::move(id_))
+ , user_id_(std::move(user_id_))
+ , score_(score_)
+{}
+
+const std::int32_t messages_setInlineGameScore::ID;
+
+void messages_setInlineGameScore::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(363700068);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(score_, s);
+}
+
+void messages_setInlineGameScore::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(363700068);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(score_, s);
+}
+
+void messages_setInlineGameScore::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setInlineGameScore");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("score", score_);
+ s.store_class_end();
+ }
+}
+
+messages_setInlineGameScore::ReturnType messages_setInlineGameScore::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_setTyping::messages_setTyping(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, object_ptr<SendMessageAction> &&action_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , top_msg_id_(top_msg_id_)
+ , action_(std::move(action_))
+{}
+
+const std::int32_t messages_setTyping::ID;
+
+void messages_setTyping::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1486110434);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(action_, s);
+}
+
+void messages_setTyping::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1486110434);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(action_, s);
+}
+
+void messages_setTyping::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.setTyping");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_object_field("action", static_cast<const BaseObject *>(action_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_setTyping::ReturnType messages_setTyping::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_startBot::messages_startBot(object_ptr<InputUser> &&bot_, object_ptr<InputPeer> &&peer_, int64 random_id_, string const &start_param_)
+ : bot_(std::move(bot_))
+ , peer_(std::move(peer_))
+ , random_id_(random_id_)
+ , start_param_(start_param_)
+{}
+
+const std::int32_t messages_startBot::ID;
+
+void messages_startBot::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-421563528);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(start_param_, s);
+}
+
+void messages_startBot::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-421563528);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(start_param_, s);
+}
+
+void messages_startBot::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.startBot");
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("random_id", random_id_);
+ s.store_field("start_param", start_param_);
+ s.store_class_end();
+ }
+}
+
+messages_startBot::ReturnType messages_startBot::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_startHistoryImport::messages_startHistoryImport(object_ptr<InputPeer> &&peer_, int64 import_id_)
+ : peer_(std::move(peer_))
+ , import_id_(import_id_)
+{}
+
+const std::int32_t messages_startHistoryImport::ID;
+
+void messages_startHistoryImport::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1271008444);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(import_id_, s);
+}
+
+void messages_startHistoryImport::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1271008444);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(import_id_, s);
+}
+
+void messages_startHistoryImport::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.startHistoryImport");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("import_id", import_id_);
+ s.store_class_end();
+ }
+}
+
+messages_startHistoryImport::ReturnType messages_startHistoryImport::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_toggleBotInAttachMenu::messages_toggleBotInAttachMenu(object_ptr<InputUser> &&bot_, bool enabled_)
+ : bot_(std::move(bot_))
+ , enabled_(enabled_)
+{}
+
+const std::int32_t messages_toggleBotInAttachMenu::ID;
+
+void messages_toggleBotInAttachMenu::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(451818415);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void messages_toggleBotInAttachMenu::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(451818415);
+ TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void messages_toggleBotInAttachMenu::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.toggleBotInAttachMenu");
+ s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get()));
+ s.store_field("enabled", enabled_);
+ s.store_class_end();
+ }
+}
+
+messages_toggleBotInAttachMenu::ReturnType messages_toggleBotInAttachMenu::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_toggleDialogPin::messages_toggleDialogPin(int32 flags_, bool pinned_, object_ptr<InputDialogPeer> &&peer_)
+ : flags_(flags_)
+ , pinned_(pinned_)
+ , peer_(std::move(peer_))
+{}
+
+const std::int32_t messages_toggleDialogPin::ID;
+
+void messages_toggleDialogPin::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1489903017);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_toggleDialogPin::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1489903017);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void messages_toggleDialogPin::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.toggleDialogPin");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_toggleDialogPin::ReturnType messages_toggleDialogPin::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_toggleNoForwards::messages_toggleNoForwards(object_ptr<InputPeer> &&peer_, bool enabled_)
+ : peer_(std::move(peer_))
+ , enabled_(enabled_)
+{}
+
+const std::int32_t messages_toggleNoForwards::ID;
+
+void messages_toggleNoForwards::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1323389022);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void messages_toggleNoForwards::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1323389022);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBool::store(enabled_, s);
+}
+
+void messages_toggleNoForwards::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.toggleNoForwards");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("enabled", enabled_);
+ s.store_class_end();
+ }
+}
+
+messages_toggleNoForwards::ReturnType messages_toggleNoForwards::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_toggleStickerSets::messages_toggleStickerSets(int32 flags_, bool uninstall_, bool archive_, bool unarchive_, array<object_ptr<InputStickerSet>> &&stickersets_)
+ : flags_(flags_)
+ , uninstall_(uninstall_)
+ , archive_(archive_)
+ , unarchive_(unarchive_)
+ , stickersets_(std::move(stickersets_))
+{}
+
+const std::int32_t messages_toggleStickerSets::ID;
+
+void messages_toggleStickerSets::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1257951254);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickersets_, s);
+}
+
+void messages_toggleStickerSets::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1257951254);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickersets_, s);
+}
+
+void messages_toggleStickerSets::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.toggleStickerSets");
+ s.store_field("flags", (var0 = flags_));
+ { s.store_vector_begin("stickersets", stickersets_.size()); for (const auto &_value : stickersets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_toggleStickerSets::ReturnType messages_toggleStickerSets::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_transcribeAudio::messages_transcribeAudio(object_ptr<InputPeer> &&peer_, int32 msg_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+{}
+
+const std::int32_t messages_transcribeAudio::ID;
+
+void messages_transcribeAudio::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(647928393);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void messages_transcribeAudio::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(647928393);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void messages_transcribeAudio::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.transcribeAudio");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_class_end();
+ }
+}
+
+messages_transcribeAudio::ReturnType messages_transcribeAudio::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_transcribedAudio>, -1821037486>::parse(p);
+#undef FAIL
+}
+
+messages_translateText::messages_translateText(int32 flags_, object_ptr<InputPeer> &&peer_, int32 msg_id_, string const &text_, string const &from_lang_, string const &to_lang_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+ , text_(text_)
+ , from_lang_(from_lang_)
+ , to_lang_(to_lang_)
+{}
+
+const std::int32_t messages_translateText::ID;
+
+void messages_translateText::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(617508334);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); }
+ if (var0 & 1) { TlStoreBinary::store(msg_id_, s); }
+ if (var0 & 2) { TlStoreString::store(text_, s); }
+ if (var0 & 4) { TlStoreString::store(from_lang_, s); }
+ TlStoreString::store(to_lang_, s);
+}
+
+void messages_translateText::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(617508334);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); }
+ if (var0 & 1) { TlStoreBinary::store(msg_id_, s); }
+ if (var0 & 2) { TlStoreString::store(text_, s); }
+ if (var0 & 4) { TlStoreString::store(from_lang_, s); }
+ TlStoreString::store(to_lang_, s);
+}
+
+void messages_translateText::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.translateText");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); }
+ if (var0 & 1) { s.store_field("msg_id", msg_id_); }
+ if (var0 & 2) { s.store_field("text", text_); }
+ if (var0 & 4) { s.store_field("from_lang", from_lang_); }
+ s.store_field("to_lang", to_lang_);
+ s.store_class_end();
+ }
+}
+
+messages_translateText::ReturnType messages_translateText::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_TranslatedText>::parse(p);
+#undef FAIL
+}
+
+messages_uninstallStickerSet::messages_uninstallStickerSet(object_ptr<InputStickerSet> &&stickerset_)
+ : stickerset_(std::move(stickerset_))
+{}
+
+const std::int32_t messages_uninstallStickerSet::ID;
+
+void messages_uninstallStickerSet::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-110209570);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+}
+
+void messages_uninstallStickerSet::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-110209570);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+}
+
+void messages_uninstallStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.uninstallStickerSet");
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_uninstallStickerSet::ReturnType messages_uninstallStickerSet::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_unpinAllMessages::messages_unpinAllMessages(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_)
+ : flags_(flags_)
+ , peer_(std::move(peer_))
+ , top_msg_id_(top_msg_id_)
+{}
+
+const std::int32_t messages_unpinAllMessages::ID;
+
+void messages_unpinAllMessages::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-299714136);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+}
+
+void messages_unpinAllMessages::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-299714136);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); }
+}
+
+void messages_unpinAllMessages::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.unpinAllMessages");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); }
+ s.store_class_end();
+ }
+}
+
+messages_unpinAllMessages::ReturnType messages_unpinAllMessages::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p);
+#undef FAIL
+}
+
+messages_updateDialogFilter::messages_updateDialogFilter(int32 flags_, int32 id_, object_ptr<DialogFilter> &&filter_)
+ : flags_(flags_)
+ , id_(id_)
+ , filter_(std::move(filter_))
+{}
+
+const std::int32_t messages_updateDialogFilter::ID;
+
+void messages_updateDialogFilter::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(450142282);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(id_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); }
+}
+
+void messages_updateDialogFilter::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(450142282);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(id_, s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); }
+}
+
+void messages_updateDialogFilter::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.updateDialogFilter");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("id", id_);
+ if (var0 & 1) { s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); }
+ s.store_class_end();
+ }
+}
+
+messages_updateDialogFilter::ReturnType messages_updateDialogFilter::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_updateDialogFiltersOrder::messages_updateDialogFiltersOrder(array<int32> &&order_)
+ : order_(std::move(order_))
+{}
+
+const std::int32_t messages_updateDialogFiltersOrder::ID;
+
+void messages_updateDialogFiltersOrder::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-983318044);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(order_, s);
+}
+
+void messages_updateDialogFiltersOrder::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-983318044);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(order_, s);
+}
+
+void messages_updateDialogFiltersOrder::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.updateDialogFiltersOrder");
+ { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+messages_updateDialogFiltersOrder::ReturnType messages_updateDialogFiltersOrder::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+messages_updatePinnedMessage::messages_updatePinnedMessage(int32 flags_, bool silent_, bool unpin_, bool pm_oneside_, object_ptr<InputPeer> &&peer_, int32 id_)
+ : flags_(flags_)
+ , silent_(silent_)
+ , unpin_(unpin_)
+ , pm_oneside_(pm_oneside_)
+ , peer_(std::move(peer_))
+ , id_(id_)
+{}
+
+const std::int32_t messages_updatePinnedMessage::ID;
+
+void messages_updatePinnedMessage::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-760547348);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+}
+
+void messages_updatePinnedMessage::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-760547348);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(id_, s);
+}
+
+void messages_updatePinnedMessage::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.updatePinnedMessage");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("id", id_);
+ s.store_class_end();
+ }
+}
+
+messages_updatePinnedMessage::ReturnType messages_updatePinnedMessage::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+messages_uploadEncryptedFile::messages_uploadEncryptedFile(object_ptr<inputEncryptedChat> &&peer_, object_ptr<InputEncryptedFile> &&file_)
+ : peer_(std::move(peer_))
+ , file_(std::move(file_))
+{}
+
+const std::int32_t messages_uploadEncryptedFile::ID;
+
+void messages_uploadEncryptedFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1347929239);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+}
+
+void messages_uploadEncryptedFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1347929239);
+ TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+}
+
+void messages_uploadEncryptedFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.uploadEncryptedFile");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_uploadEncryptedFile::ReturnType messages_uploadEncryptedFile::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<EncryptedFile>::parse(p);
+#undef FAIL
+}
+
+messages_uploadImportedMedia::messages_uploadImportedMedia(object_ptr<InputPeer> &&peer_, int64 import_id_, string const &file_name_, object_ptr<InputMedia> &&media_)
+ : peer_(std::move(peer_))
+ , import_id_(import_id_)
+ , file_name_(file_name_)
+ , media_(std::move(media_))
+{}
+
+const std::int32_t messages_uploadImportedMedia::ID;
+
+void messages_uploadImportedMedia::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(713433234);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(import_id_, s);
+ TlStoreString::store(file_name_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+}
+
+void messages_uploadImportedMedia::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(713433234);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(import_id_, s);
+ TlStoreString::store(file_name_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+}
+
+void messages_uploadImportedMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.uploadImportedMedia");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("import_id", import_id_);
+ s.store_field("file_name", file_name_);
+ s.store_object_field("media", static_cast<const BaseObject *>(media_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_uploadImportedMedia::ReturnType messages_uploadImportedMedia::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<MessageMedia>::parse(p);
+#undef FAIL
+}
+
+messages_uploadMedia::messages_uploadMedia(object_ptr<InputPeer> &&peer_, object_ptr<InputMedia> &&media_)
+ : peer_(std::move(peer_))
+ , media_(std::move(media_))
+{}
+
+const std::int32_t messages_uploadMedia::ID;
+
+void messages_uploadMedia::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1369162417);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+}
+
+void messages_uploadMedia::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1369162417);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(media_, s);
+}
+
+void messages_uploadMedia::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "messages.uploadMedia");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("media", static_cast<const BaseObject *>(media_.get()));
+ s.store_class_end();
+ }
+}
+
+messages_uploadMedia::ReturnType messages_uploadMedia::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<MessageMedia>::parse(p);
+#undef FAIL
+}
+
+payments_assignAppStoreTransaction::payments_assignAppStoreTransaction(bytes &&receipt_, object_ptr<InputStorePaymentPurpose> &&purpose_)
+ : receipt_(std::move(receipt_))
+ , purpose_(std::move(purpose_))
+{}
+
+const std::int32_t payments_assignAppStoreTransaction::ID;
+
+void payments_assignAppStoreTransaction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2131921795);
+ TlStoreString::store(receipt_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s);
+}
+
+void payments_assignAppStoreTransaction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2131921795);
+ TlStoreString::store(receipt_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s);
+}
+
+void payments_assignAppStoreTransaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.assignAppStoreTransaction");
+ s.store_bytes_field("receipt", receipt_);
+ s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get()));
+ s.store_class_end();
+ }
+}
+
+payments_assignAppStoreTransaction::ReturnType payments_assignAppStoreTransaction::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+payments_assignPlayMarketTransaction::payments_assignPlayMarketTransaction(object_ptr<dataJSON> &&receipt_, object_ptr<InputStorePaymentPurpose> &&purpose_)
+ : receipt_(std::move(receipt_))
+ , purpose_(std::move(purpose_))
+{}
+
+const std::int32_t payments_assignPlayMarketTransaction::ID;
+
+void payments_assignPlayMarketTransaction::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-537046829);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(receipt_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s);
+}
+
+void payments_assignPlayMarketTransaction::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-537046829);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(receipt_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s);
+}
+
+void payments_assignPlayMarketTransaction::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.assignPlayMarketTransaction");
+ s.store_object_field("receipt", static_cast<const BaseObject *>(receipt_.get()));
+ s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get()));
+ s.store_class_end();
+ }
+}
+
+payments_assignPlayMarketTransaction::ReturnType payments_assignPlayMarketTransaction::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+payments_canPurchasePremium::payments_canPurchasePremium(object_ptr<InputStorePaymentPurpose> &&purpose_)
+ : purpose_(std::move(purpose_))
+{}
+
+const std::int32_t payments_canPurchasePremium::ID;
+
+void payments_canPurchasePremium::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1614700874);
+ TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s);
+}
+
+void payments_canPurchasePremium::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1614700874);
+ TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s);
+}
+
+void payments_canPurchasePremium::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.canPurchasePremium");
+ s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get()));
+ s.store_class_end();
+ }
+}
+
+payments_canPurchasePremium::ReturnType payments_canPurchasePremium::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+payments_clearSavedInfo::payments_clearSavedInfo(int32 flags_, bool credentials_, bool info_)
+ : flags_(flags_)
+ , credentials_(credentials_)
+ , info_(info_)
+{}
+
+const std::int32_t payments_clearSavedInfo::ID;
+
+void payments_clearSavedInfo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-667062079);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void payments_clearSavedInfo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-667062079);
+ TlStoreBinary::store((var0 = flags_), s);
+}
+
+void payments_clearSavedInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.clearSavedInfo");
+ s.store_field("flags", (var0 = flags_));
+ s.store_class_end();
+ }
+}
+
+payments_clearSavedInfo::ReturnType payments_clearSavedInfo::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+payments_exportInvoice::payments_exportInvoice(object_ptr<InputMedia> &&invoice_media_)
+ : invoice_media_(std::move(invoice_media_))
+{}
+
+const std::int32_t payments_exportInvoice::ID;
+
+void payments_exportInvoice::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(261206117);
+ TlStoreBoxedUnknown<TlStoreObject>::store(invoice_media_, s);
+}
+
+void payments_exportInvoice::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(261206117);
+ TlStoreBoxedUnknown<TlStoreObject>::store(invoice_media_, s);
+}
+
+void payments_exportInvoice::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.exportInvoice");
+ s.store_object_field("invoice_media", static_cast<const BaseObject *>(invoice_media_.get()));
+ s.store_class_end();
+ }
+}
+
+payments_exportInvoice::ReturnType payments_exportInvoice::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<payments_exportedInvoice>, -1362048039>::parse(p);
+#undef FAIL
+}
+
+payments_getBankCardData::payments_getBankCardData(string const &number_)
+ : number_(number_)
+{}
+
+const std::int32_t payments_getBankCardData::ID;
+
+void payments_getBankCardData::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(779736953);
+ TlStoreString::store(number_, s);
+}
+
+void payments_getBankCardData::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(779736953);
+ TlStoreString::store(number_, s);
+}
+
+void payments_getBankCardData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.getBankCardData");
+ s.store_field("number", number_);
+ s.store_class_end();
+ }
+}
+
+payments_getBankCardData::ReturnType payments_getBankCardData::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<payments_bankCardData>, 1042605427>::parse(p);
+#undef FAIL
+}
+
+payments_getPaymentForm::payments_getPaymentForm(int32 flags_, object_ptr<InputInvoice> &&invoice_, object_ptr<dataJSON> &&theme_params_)
+ : flags_(flags_)
+ , invoice_(std::move(invoice_))
+ , theme_params_(std::move(theme_params_))
+{}
+
+const std::int32_t payments_getPaymentForm::ID;
+
+void payments_getPaymentForm::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(924093883);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); }
+}
+
+void payments_getPaymentForm::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(924093883);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s);
+ if (var0 & 1) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); }
+}
+
+void payments_getPaymentForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.getPaymentForm");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ if (var0 & 1) { s.store_object_field("theme_params", static_cast<const BaseObject *>(theme_params_.get())); }
+ s.store_class_end();
+ }
+}
+
+payments_getPaymentForm::ReturnType payments_getPaymentForm::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<payments_paymentForm>, -1610250415>::parse(p);
+#undef FAIL
+}
+
+payments_getPaymentReceipt::payments_getPaymentReceipt(object_ptr<InputPeer> &&peer_, int32 msg_id_)
+ : peer_(std::move(peer_))
+ , msg_id_(msg_id_)
+{}
+
+const std::int32_t payments_getPaymentReceipt::ID;
+
+void payments_getPaymentReceipt::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(611897804);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void payments_getPaymentReceipt::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(611897804);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void payments_getPaymentReceipt::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.getPaymentReceipt");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_class_end();
+ }
+}
+
+payments_getPaymentReceipt::ReturnType payments_getPaymentReceipt::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<payments_paymentReceipt>, 1891958275>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t payments_getSavedInfo::ID;
+
+void payments_getSavedInfo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(578650699);
+}
+
+void payments_getSavedInfo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(578650699);
+}
+
+void payments_getSavedInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.getSavedInfo");
+ s.store_class_end();
+ }
+}
+
+payments_getSavedInfo::ReturnType payments_getSavedInfo::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<payments_savedInfo>, -74456004>::parse(p);
+#undef FAIL
+}
+
+payments_sendPaymentForm::payments_sendPaymentForm(int32 flags_, int64 form_id_, object_ptr<InputInvoice> &&invoice_, string const &requested_info_id_, string const &shipping_option_id_, object_ptr<InputPaymentCredentials> &&credentials_, int64 tip_amount_)
+ : flags_(flags_)
+ , form_id_(form_id_)
+ , invoice_(std::move(invoice_))
+ , requested_info_id_(requested_info_id_)
+ , shipping_option_id_(shipping_option_id_)
+ , credentials_(std::move(credentials_))
+ , tip_amount_(tip_amount_)
+{}
+
+const std::int32_t payments_sendPaymentForm::ID;
+
+void payments_sendPaymentForm::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(755192367);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(form_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s);
+ if (var0 & 1) { TlStoreString::store(requested_info_id_, s); }
+ if (var0 & 2) { TlStoreString::store(shipping_option_id_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(credentials_, s);
+ if (var0 & 4) { TlStoreBinary::store(tip_amount_, s); }
+}
+
+void payments_sendPaymentForm::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(755192367);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(form_id_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s);
+ if (var0 & 1) { TlStoreString::store(requested_info_id_, s); }
+ if (var0 & 2) { TlStoreString::store(shipping_option_id_, s); }
+ TlStoreBoxedUnknown<TlStoreObject>::store(credentials_, s);
+ if (var0 & 4) { TlStoreBinary::store(tip_amount_, s); }
+}
+
+void payments_sendPaymentForm::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.sendPaymentForm");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("form_id", form_id_);
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ if (var0 & 1) { s.store_field("requested_info_id", requested_info_id_); }
+ if (var0 & 2) { s.store_field("shipping_option_id", shipping_option_id_); }
+ s.store_object_field("credentials", static_cast<const BaseObject *>(credentials_.get()));
+ if (var0 & 4) { s.store_field("tip_amount", tip_amount_); }
+ s.store_class_end();
+ }
+}
+
+payments_sendPaymentForm::ReturnType payments_sendPaymentForm::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<payments_PaymentResult>::parse(p);
+#undef FAIL
+}
+
+payments_validateRequestedInfo::payments_validateRequestedInfo(int32 flags_, bool save_, object_ptr<InputInvoice> &&invoice_, object_ptr<paymentRequestedInfo> &&info_)
+ : flags_(flags_)
+ , save_(save_)
+ , invoice_(std::move(invoice_))
+ , info_(std::move(info_))
+{}
+
+const std::int32_t payments_validateRequestedInfo::ID;
+
+void payments_validateRequestedInfo::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1228345045);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s);
+ TlStoreBoxed<TlStoreObject, -1868808300>::store(info_, s);
+}
+
+void payments_validateRequestedInfo::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1228345045);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s);
+ TlStoreBoxed<TlStoreObject, -1868808300>::store(info_, s);
+}
+
+void payments_validateRequestedInfo::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "payments.validateRequestedInfo");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get()));
+ s.store_object_field("info", static_cast<const BaseObject *>(info_.get()));
+ s.store_class_end();
+ }
+}
+
+payments_validateRequestedInfo::ReturnType payments_validateRequestedInfo::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<payments_validatedRequestedInfo>, -784000893>::parse(p);
+#undef FAIL
+}
+
+phone_acceptCall::phone_acceptCall(object_ptr<inputPhoneCall> &&peer_, bytes &&g_b_, object_ptr<phoneCallProtocol> &&protocol_)
+ : peer_(std::move(peer_))
+ , g_b_(std::move(g_b_))
+ , protocol_(std::move(protocol_))
+{}
+
+const std::int32_t phone_acceptCall::ID;
+
+void phone_acceptCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1003664544);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreString::store(g_b_, s);
+ TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s);
+}
+
+void phone_acceptCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1003664544);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreString::store(g_b_, s);
+ TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s);
+}
+
+void phone_acceptCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.acceptCall");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_bytes_field("g_b", g_b_);
+ s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_acceptCall::ReturnType phone_acceptCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<phone_phoneCall>, -326966976>::parse(p);
+#undef FAIL
+}
+
+phone_checkGroupCall::phone_checkGroupCall(object_ptr<inputGroupCall> &&call_, array<int32> &&sources_)
+ : call_(std::move(call_))
+ , sources_(std::move(sources_))
+{}
+
+const std::int32_t phone_checkGroupCall::ID;
+
+void phone_checkGroupCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1248003721);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(sources_, s);
+}
+
+void phone_checkGroupCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1248003721);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(sources_, s);
+}
+
+void phone_checkGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.checkGroupCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ { s.store_vector_begin("sources", sources_.size()); for (const auto &_value : sources_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+phone_checkGroupCall::ReturnType phone_checkGroupCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p);
+#undef FAIL
+}
+
+phone_confirmCall::phone_confirmCall(object_ptr<inputPhoneCall> &&peer_, bytes &&g_a_, int64 key_fingerprint_, object_ptr<phoneCallProtocol> &&protocol_)
+ : peer_(std::move(peer_))
+ , g_a_(std::move(g_a_))
+ , key_fingerprint_(key_fingerprint_)
+ , protocol_(std::move(protocol_))
+{}
+
+const std::int32_t phone_confirmCall::ID;
+
+void phone_confirmCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(788404002);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreString::store(g_a_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+ TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s);
+}
+
+void phone_confirmCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(788404002);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreString::store(g_a_, s);
+ TlStoreBinary::store(key_fingerprint_, s);
+ TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s);
+}
+
+void phone_confirmCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.confirmCall");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_bytes_field("g_a", g_a_);
+ s.store_field("key_fingerprint", key_fingerprint_);
+ s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_confirmCall::ReturnType phone_confirmCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<phone_phoneCall>, -326966976>::parse(p);
+#undef FAIL
+}
+
+phone_createGroupCall::phone_createGroupCall(int32 flags_, bool rtmp_stream_, object_ptr<InputPeer> &&peer_, int32 random_id_, string const &title_, int32 schedule_date_)
+ : flags_(flags_)
+ , rtmp_stream_(rtmp_stream_)
+ , peer_(std::move(peer_))
+ , random_id_(random_id_)
+ , title_(title_)
+ , schedule_date_(schedule_date_)
+{}
+
+const std::int32_t phone_createGroupCall::ID;
+
+void phone_createGroupCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1221445336);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(random_id_, s);
+ if (var0 & 1) { TlStoreString::store(title_, s); }
+ if (var0 & 2) { TlStoreBinary::store(schedule_date_, s); }
+}
+
+void phone_createGroupCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1221445336);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBinary::store(random_id_, s);
+ if (var0 & 1) { TlStoreString::store(title_, s); }
+ if (var0 & 2) { TlStoreBinary::store(schedule_date_, s); }
+}
+
+void phone_createGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.createGroupCall");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("random_id", random_id_);
+ if (var0 & 1) { s.store_field("title", title_); }
+ if (var0 & 2) { s.store_field("schedule_date", schedule_date_); }
+ s.store_class_end();
+ }
+}
+
+phone_createGroupCall::ReturnType phone_createGroupCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_discardCall::phone_discardCall(int32 flags_, bool video_, object_ptr<inputPhoneCall> &&peer_, int32 duration_, object_ptr<PhoneCallDiscardReason> &&reason_, int64 connection_id_)
+ : flags_(flags_)
+ , video_(video_)
+ , peer_(std::move(peer_))
+ , duration_(duration_)
+ , reason_(std::move(reason_))
+ , connection_id_(connection_id_)
+{}
+
+const std::int32_t phone_discardCall::ID;
+
+void phone_discardCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1295269440);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s);
+ TlStoreBinary::store(connection_id_, s);
+}
+
+void phone_discardCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1295269440);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreBinary::store(duration_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s);
+ TlStoreBinary::store(connection_id_, s);
+}
+
+void phone_discardCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.discardCall");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("duration", duration_);
+ s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get()));
+ s.store_field("connection_id", connection_id_);
+ s.store_class_end();
+ }
+}
+
+phone_discardCall::ReturnType phone_discardCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_discardGroupCall::phone_discardGroupCall(object_ptr<inputGroupCall> &&call_)
+ : call_(std::move(call_))
+{}
+
+const std::int32_t phone_discardGroupCall::ID;
+
+void phone_discardGroupCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2054648117);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+}
+
+void phone_discardGroupCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2054648117);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+}
+
+void phone_discardGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.discardGroupCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_discardGroupCall::ReturnType phone_discardGroupCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_editGroupCallParticipant::phone_editGroupCallParticipant(int32 flags_, object_ptr<inputGroupCall> &&call_, object_ptr<InputPeer> &&participant_, bool muted_, int32 volume_, bool raise_hand_, bool video_stopped_, bool video_paused_, bool presentation_paused_)
+ : flags_(flags_)
+ , call_(std::move(call_))
+ , participant_(std::move(participant_))
+ , muted_(muted_)
+ , volume_(volume_)
+ , raise_hand_(raise_hand_)
+ , video_stopped_(video_stopped_)
+ , video_paused_(video_paused_)
+ , presentation_paused_(presentation_paused_)
+{}
+
+const std::int32_t phone_editGroupCallParticipant::ID;
+
+void phone_editGroupCallParticipant::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1524155713);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s);
+ if (var0 & 1) { TlStoreBool::store(muted_, s); }
+ if (var0 & 2) { TlStoreBinary::store(volume_, s); }
+ if (var0 & 4) { TlStoreBool::store(raise_hand_, s); }
+ if (var0 & 8) { TlStoreBool::store(video_stopped_, s); }
+ if (var0 & 16) { TlStoreBool::store(video_paused_, s); }
+ if (var0 & 32) { TlStoreBool::store(presentation_paused_, s); }
+}
+
+void phone_editGroupCallParticipant::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1524155713);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s);
+ if (var0 & 1) { TlStoreBool::store(muted_, s); }
+ if (var0 & 2) { TlStoreBinary::store(volume_, s); }
+ if (var0 & 4) { TlStoreBool::store(raise_hand_, s); }
+ if (var0 & 8) { TlStoreBool::store(video_stopped_, s); }
+ if (var0 & 16) { TlStoreBool::store(video_paused_, s); }
+ if (var0 & 32) { TlStoreBool::store(presentation_paused_, s); }
+}
+
+void phone_editGroupCallParticipant::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.editGroupCallParticipant");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get()));
+ if (var0 & 1) { s.store_field("muted", muted_); }
+ if (var0 & 2) { s.store_field("volume", volume_); }
+ if (var0 & 4) { s.store_field("raise_hand", raise_hand_); }
+ if (var0 & 8) { s.store_field("video_stopped", video_stopped_); }
+ if (var0 & 16) { s.store_field("video_paused", video_paused_); }
+ if (var0 & 32) { s.store_field("presentation_paused", presentation_paused_); }
+ s.store_class_end();
+ }
+}
+
+phone_editGroupCallParticipant::ReturnType phone_editGroupCallParticipant::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_editGroupCallTitle::phone_editGroupCallTitle(object_ptr<inputGroupCall> &&call_, string const &title_)
+ : call_(std::move(call_))
+ , title_(title_)
+{}
+
+const std::int32_t phone_editGroupCallTitle::ID;
+
+void phone_editGroupCallTitle::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(480685066);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreString::store(title_, s);
+}
+
+void phone_editGroupCallTitle::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(480685066);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreString::store(title_, s);
+}
+
+void phone_editGroupCallTitle::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.editGroupCallTitle");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+phone_editGroupCallTitle::ReturnType phone_editGroupCallTitle::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_exportGroupCallInvite::phone_exportGroupCallInvite(int32 flags_, bool can_self_unmute_, object_ptr<inputGroupCall> &&call_)
+ : flags_(flags_)
+ , can_self_unmute_(can_self_unmute_)
+ , call_(std::move(call_))
+{}
+
+const std::int32_t phone_exportGroupCallInvite::ID;
+
+void phone_exportGroupCallInvite::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-425040769);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+}
+
+void phone_exportGroupCallInvite::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-425040769);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+}
+
+void phone_exportGroupCallInvite::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.exportGroupCallInvite");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_exportGroupCallInvite::ReturnType phone_exportGroupCallInvite::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<phone_exportedGroupCallInvite>, 541839704>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t phone_getCallConfig::ID;
+
+void phone_getCallConfig::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1430593449);
+}
+
+void phone_getCallConfig::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1430593449);
+}
+
+void phone_getCallConfig::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.getCallConfig");
+ s.store_class_end();
+ }
+}
+
+phone_getCallConfig::ReturnType phone_getCallConfig::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p);
+#undef FAIL
+}
+
+phone_getGroupCall::phone_getGroupCall(object_ptr<inputGroupCall> &&call_, int32 limit_)
+ : call_(std::move(call_))
+ , limit_(limit_)
+{}
+
+const std::int32_t phone_getGroupCall::ID;
+
+void phone_getGroupCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(68699611);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void phone_getGroupCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(68699611);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void phone_getGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.getGroupCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+phone_getGroupCall::ReturnType phone_getGroupCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<phone_groupCall>, -1636664659>::parse(p);
+#undef FAIL
+}
+
+phone_getGroupCallJoinAs::phone_getGroupCallJoinAs(object_ptr<InputPeer> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t phone_getGroupCallJoinAs::ID;
+
+void phone_getGroupCallJoinAs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-277077702);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void phone_getGroupCallJoinAs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-277077702);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+}
+
+void phone_getGroupCallJoinAs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.getGroupCallJoinAs");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_getGroupCallJoinAs::ReturnType phone_getGroupCallJoinAs::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<phone_joinAsPeers>, -1343921601>::parse(p);
+#undef FAIL
+}
+
+phone_getGroupCallStreamChannels::phone_getGroupCallStreamChannels(object_ptr<inputGroupCall> &&call_)
+ : call_(std::move(call_))
+{}
+
+const std::int32_t phone_getGroupCallStreamChannels::ID;
+
+void phone_getGroupCallStreamChannels::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(447879488);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+}
+
+void phone_getGroupCallStreamChannels::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(447879488);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+}
+
+void phone_getGroupCallStreamChannels::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.getGroupCallStreamChannels");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_getGroupCallStreamChannels::ReturnType phone_getGroupCallStreamChannels::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<phone_groupCallStreamChannels>, -790330702>::parse(p);
+#undef FAIL
+}
+
+phone_getGroupCallStreamRtmpUrl::phone_getGroupCallStreamRtmpUrl(object_ptr<InputPeer> &&peer_, bool revoke_)
+ : peer_(std::move(peer_))
+ , revoke_(revoke_)
+{}
+
+const std::int32_t phone_getGroupCallStreamRtmpUrl::ID;
+
+void phone_getGroupCallStreamRtmpUrl::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-558650433);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBool::store(revoke_, s);
+}
+
+void phone_getGroupCallStreamRtmpUrl::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-558650433);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBool::store(revoke_, s);
+}
+
+void phone_getGroupCallStreamRtmpUrl::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.getGroupCallStreamRtmpUrl");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("revoke", revoke_);
+ s.store_class_end();
+ }
+}
+
+phone_getGroupCallStreamRtmpUrl::ReturnType phone_getGroupCallStreamRtmpUrl::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<phone_groupCallStreamRtmpUrl>, 767505458>::parse(p);
+#undef FAIL
+}
+
+phone_getGroupParticipants::phone_getGroupParticipants(object_ptr<inputGroupCall> &&call_, array<object_ptr<InputPeer>> &&ids_, array<int32> &&sources_, string const &offset_, int32 limit_)
+ : call_(std::move(call_))
+ , ids_(std::move(ids_))
+ , sources_(std::move(sources_))
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t phone_getGroupParticipants::ID;
+
+void phone_getGroupParticipants::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-984033109);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(ids_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(sources_, s);
+ TlStoreString::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void phone_getGroupParticipants::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-984033109);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(ids_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(sources_, s);
+ TlStoreString::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void phone_getGroupParticipants::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.getGroupParticipants");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ { s.store_vector_begin("ids", ids_.size()); for (const auto &_value : ids_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ { s.store_vector_begin("sources", sources_.size()); for (const auto &_value : sources_) { s.store_field("", _value); } s.store_class_end(); }
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+phone_getGroupParticipants::ReturnType phone_getGroupParticipants::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<phone_groupParticipants>, -193506890>::parse(p);
+#undef FAIL
+}
+
+phone_inviteToGroupCall::phone_inviteToGroupCall(object_ptr<inputGroupCall> &&call_, array<object_ptr<InputUser>> &&users_)
+ : call_(std::move(call_))
+ , users_(std::move(users_))
+{}
+
+const std::int32_t phone_inviteToGroupCall::ID;
+
+void phone_inviteToGroupCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(2067345760);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s);
+}
+
+void phone_inviteToGroupCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(2067345760);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s);
+}
+
+void phone_inviteToGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.inviteToGroupCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+phone_inviteToGroupCall::ReturnType phone_inviteToGroupCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_joinGroupCall::phone_joinGroupCall(int32 flags_, bool muted_, bool video_stopped_, object_ptr<inputGroupCall> &&call_, object_ptr<InputPeer> &&join_as_, string const &invite_hash_, object_ptr<dataJSON> &&params_)
+ : flags_(flags_)
+ , muted_(muted_)
+ , video_stopped_(video_stopped_)
+ , call_(std::move(call_))
+ , join_as_(std::move(join_as_))
+ , invite_hash_(invite_hash_)
+ , params_(std::move(params_))
+{}
+
+const std::int32_t phone_joinGroupCall::ID;
+
+void phone_joinGroupCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1322057861);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(join_as_, s);
+ if (var0 & 2) { TlStoreString::store(invite_hash_, s); }
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s);
+}
+
+void phone_joinGroupCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1322057861);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(join_as_, s);
+ if (var0 & 2) { TlStoreString::store(invite_hash_, s); }
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s);
+}
+
+void phone_joinGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.joinGroupCall");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_object_field("join_as", static_cast<const BaseObject *>(join_as_.get()));
+ if (var0 & 2) { s.store_field("invite_hash", invite_hash_); }
+ s.store_object_field("params", static_cast<const BaseObject *>(params_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_joinGroupCall::ReturnType phone_joinGroupCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_joinGroupCallPresentation::phone_joinGroupCallPresentation(object_ptr<inputGroupCall> &&call_, object_ptr<dataJSON> &&params_)
+ : call_(std::move(call_))
+ , params_(std::move(params_))
+{}
+
+const std::int32_t phone_joinGroupCallPresentation::ID;
+
+void phone_joinGroupCallPresentation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-873829436);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s);
+}
+
+void phone_joinGroupCallPresentation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-873829436);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s);
+}
+
+void phone_joinGroupCallPresentation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.joinGroupCallPresentation");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_object_field("params", static_cast<const BaseObject *>(params_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_joinGroupCallPresentation::ReturnType phone_joinGroupCallPresentation::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_leaveGroupCall::phone_leaveGroupCall(object_ptr<inputGroupCall> &&call_, int32 source_)
+ : call_(std::move(call_))
+ , source_(source_)
+{}
+
+const std::int32_t phone_leaveGroupCall::ID;
+
+void phone_leaveGroupCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1342404601);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBinary::store(source_, s);
+}
+
+void phone_leaveGroupCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1342404601);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBinary::store(source_, s);
+}
+
+void phone_leaveGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.leaveGroupCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_field("source", source_);
+ s.store_class_end();
+ }
+}
+
+phone_leaveGroupCall::ReturnType phone_leaveGroupCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_leaveGroupCallPresentation::phone_leaveGroupCallPresentation(object_ptr<inputGroupCall> &&call_)
+ : call_(std::move(call_))
+{}
+
+const std::int32_t phone_leaveGroupCallPresentation::ID;
+
+void phone_leaveGroupCallPresentation::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(475058500);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+}
+
+void phone_leaveGroupCallPresentation::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(475058500);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+}
+
+void phone_leaveGroupCallPresentation::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.leaveGroupCallPresentation");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_leaveGroupCallPresentation::ReturnType phone_leaveGroupCallPresentation::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_receivedCall::phone_receivedCall(object_ptr<inputPhoneCall> &&peer_)
+ : peer_(std::move(peer_))
+{}
+
+const std::int32_t phone_receivedCall::ID;
+
+void phone_receivedCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(399855457);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+}
+
+void phone_receivedCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(399855457);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+}
+
+void phone_receivedCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.receivedCall");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_receivedCall::ReturnType phone_receivedCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+phone_requestCall::phone_requestCall(int32 flags_, bool video_, object_ptr<InputUser> &&user_id_, int32 random_id_, bytes &&g_a_hash_, object_ptr<phoneCallProtocol> &&protocol_)
+ : flags_(flags_)
+ , video_(video_)
+ , user_id_(std::move(user_id_))
+ , random_id_(random_id_)
+ , g_a_hash_(std::move(g_a_hash_))
+ , protocol_(std::move(protocol_))
+{}
+
+const std::int32_t phone_requestCall::ID;
+
+void phone_requestCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1124046573);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(g_a_hash_, s);
+ TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s);
+}
+
+void phone_requestCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1124046573);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(random_id_, s);
+ TlStoreString::store(g_a_hash_, s);
+ TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s);
+}
+
+void phone_requestCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.requestCall");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("random_id", random_id_);
+ s.store_bytes_field("g_a_hash", g_a_hash_);
+ s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_requestCall::ReturnType phone_requestCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<phone_phoneCall>, -326966976>::parse(p);
+#undef FAIL
+}
+
+phone_saveCallDebug::phone_saveCallDebug(object_ptr<inputPhoneCall> &&peer_, object_ptr<dataJSON> &&debug_)
+ : peer_(std::move(peer_))
+ , debug_(std::move(debug_))
+{}
+
+const std::int32_t phone_saveCallDebug::ID;
+
+void phone_saveCallDebug::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(662363518);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(debug_, s);
+}
+
+void phone_saveCallDebug::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(662363518);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreBoxed<TlStoreObject, 2104790276>::store(debug_, s);
+}
+
+void phone_saveCallDebug::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.saveCallDebug");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("debug", static_cast<const BaseObject *>(debug_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_saveCallDebug::ReturnType phone_saveCallDebug::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+phone_saveCallLog::phone_saveCallLog(object_ptr<inputPhoneCall> &&peer_, object_ptr<InputFile> &&file_)
+ : peer_(std::move(peer_))
+ , file_(std::move(file_))
+{}
+
+const std::int32_t phone_saveCallLog::ID;
+
+void phone_saveCallLog::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1092913030);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+}
+
+void phone_saveCallLog::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1092913030);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(file_, s);
+}
+
+void phone_saveCallLog::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.saveCallLog");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("file", static_cast<const BaseObject *>(file_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_saveCallLog::ReturnType phone_saveCallLog::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+phone_saveDefaultGroupCallJoinAs::phone_saveDefaultGroupCallJoinAs(object_ptr<InputPeer> &&peer_, object_ptr<InputPeer> &&join_as_)
+ : peer_(std::move(peer_))
+ , join_as_(std::move(join_as_))
+{}
+
+const std::int32_t phone_saveDefaultGroupCallJoinAs::ID;
+
+void phone_saveDefaultGroupCallJoinAs::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1465786252);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(join_as_, s);
+}
+
+void phone_saveDefaultGroupCallJoinAs::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1465786252);
+ TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(join_as_, s);
+}
+
+void phone_saveDefaultGroupCallJoinAs::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.saveDefaultGroupCallJoinAs");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_object_field("join_as", static_cast<const BaseObject *>(join_as_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_saveDefaultGroupCallJoinAs::ReturnType phone_saveDefaultGroupCallJoinAs::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+phone_sendSignalingData::phone_sendSignalingData(object_ptr<inputPhoneCall> &&peer_, bytes &&data_)
+ : peer_(std::move(peer_))
+ , data_(std::move(data_))
+{}
+
+const std::int32_t phone_sendSignalingData::ID;
+
+void phone_sendSignalingData::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-8744061);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreString::store(data_, s);
+}
+
+void phone_sendSignalingData::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-8744061);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreString::store(data_, s);
+}
+
+void phone_sendSignalingData::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.sendSignalingData");
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_bytes_field("data", data_);
+ s.store_class_end();
+ }
+}
+
+phone_sendSignalingData::ReturnType phone_sendSignalingData::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+phone_setCallRating::phone_setCallRating(int32 flags_, bool user_initiative_, object_ptr<inputPhoneCall> &&peer_, int32 rating_, string const &comment_)
+ : flags_(flags_)
+ , user_initiative_(user_initiative_)
+ , peer_(std::move(peer_))
+ , rating_(rating_)
+ , comment_(comment_)
+{}
+
+const std::int32_t phone_setCallRating::ID;
+
+void phone_setCallRating::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1508562471);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreBinary::store(rating_, s);
+ TlStoreString::store(comment_, s);
+}
+
+void phone_setCallRating::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1508562471);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s);
+ TlStoreBinary::store(rating_, s);
+ TlStoreString::store(comment_, s);
+}
+
+void phone_setCallRating::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.setCallRating");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get()));
+ s.store_field("rating", rating_);
+ s.store_field("comment", comment_);
+ s.store_class_end();
+ }
+}
+
+phone_setCallRating::ReturnType phone_setCallRating::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_startScheduledGroupCall::phone_startScheduledGroupCall(object_ptr<inputGroupCall> &&call_)
+ : call_(std::move(call_))
+{}
+
+const std::int32_t phone_startScheduledGroupCall::ID;
+
+void phone_startScheduledGroupCall::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1451287362);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+}
+
+void phone_startScheduledGroupCall::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1451287362);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+}
+
+void phone_startScheduledGroupCall::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.startScheduledGroupCall");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_class_end();
+ }
+}
+
+phone_startScheduledGroupCall::ReturnType phone_startScheduledGroupCall::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_toggleGroupCallRecord::phone_toggleGroupCallRecord(int32 flags_, bool start_, bool video_, object_ptr<inputGroupCall> &&call_, string const &title_, bool video_portrait_)
+ : flags_(flags_)
+ , start_(start_)
+ , video_(video_)
+ , call_(std::move(call_))
+ , title_(title_)
+ , video_portrait_(video_portrait_)
+{}
+
+const std::int32_t phone_toggleGroupCallRecord::ID;
+
+void phone_toggleGroupCallRecord::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-248985848);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ if (var0 & 2) { TlStoreString::store(title_, s); }
+ if (var0 & 4) { TlStoreBool::store(video_portrait_, s); }
+}
+
+void phone_toggleGroupCallRecord::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-248985848);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ if (var0 & 2) { TlStoreString::store(title_, s); }
+ if (var0 & 4) { TlStoreBool::store(video_portrait_, s); }
+}
+
+void phone_toggleGroupCallRecord::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.toggleGroupCallRecord");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ if (var0 & 2) { s.store_field("title", title_); }
+ if (var0 & 4) { s.store_field("video_portrait", video_portrait_); }
+ s.store_class_end();
+ }
+}
+
+phone_toggleGroupCallRecord::ReturnType phone_toggleGroupCallRecord::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_toggleGroupCallSettings::phone_toggleGroupCallSettings(int32 flags_, bool reset_invite_hash_, object_ptr<inputGroupCall> &&call_, bool join_muted_)
+ : flags_(flags_)
+ , reset_invite_hash_(reset_invite_hash_)
+ , call_(std::move(call_))
+ , join_muted_(join_muted_)
+{}
+
+const std::int32_t phone_toggleGroupCallSettings::ID;
+
+void phone_toggleGroupCallSettings::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1958458429);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ if (var0 & 1) { TlStoreBool::store(join_muted_, s); }
+}
+
+void phone_toggleGroupCallSettings::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1958458429);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ if (var0 & 1) { TlStoreBool::store(join_muted_, s); }
+}
+
+void phone_toggleGroupCallSettings::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.toggleGroupCallSettings");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ if (var0 & 1) { s.store_field("join_muted", join_muted_); }
+ s.store_class_end();
+ }
+}
+
+phone_toggleGroupCallSettings::ReturnType phone_toggleGroupCallSettings::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+phone_toggleGroupCallStartSubscription::phone_toggleGroupCallStartSubscription(object_ptr<inputGroupCall> &&call_, bool subscribed_)
+ : call_(std::move(call_))
+ , subscribed_(subscribed_)
+{}
+
+const std::int32_t phone_toggleGroupCallStartSubscription::ID;
+
+void phone_toggleGroupCallStartSubscription::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(563885286);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBool::store(subscribed_, s);
+}
+
+void phone_toggleGroupCallStartSubscription::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(563885286);
+ TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s);
+ TlStoreBool::store(subscribed_, s);
+}
+
+void phone_toggleGroupCallStartSubscription::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "phone.toggleGroupCallStartSubscription");
+ s.store_object_field("call", static_cast<const BaseObject *>(call_.get()));
+ s.store_field("subscribed", subscribed_);
+ s.store_class_end();
+ }
+}
+
+phone_toggleGroupCallStartSubscription::ReturnType phone_toggleGroupCallStartSubscription::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<Updates>::parse(p);
+#undef FAIL
+}
+
+photos_deletePhotos::photos_deletePhotos(array<object_ptr<InputPhoto>> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t photos_deletePhotos::ID;
+
+void photos_deletePhotos::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2016444625);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void photos_deletePhotos::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2016444625);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void photos_deletePhotos::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photos.deletePhotos");
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+photos_deletePhotos::ReturnType photos_deletePhotos::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p);
+#undef FAIL
+}
+
+photos_getUserPhotos::photos_getUserPhotos(object_ptr<InputUser> &&user_id_, int32 offset_, int64 max_id_, int32 limit_)
+ : user_id_(std::move(user_id_))
+ , offset_(offset_)
+ , max_id_(max_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t photos_getUserPhotos::ID;
+
+void photos_getUserPhotos::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1848823128);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void photos_getUserPhotos::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1848823128);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(max_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void photos_getUserPhotos::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photos.getUserPhotos");
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("offset", offset_);
+ s.store_field("max_id", max_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+photos_getUserPhotos::ReturnType photos_getUserPhotos::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<photos_Photos>::parse(p);
+#undef FAIL
+}
+
+photos_updateProfilePhoto::photos_updateProfilePhoto(object_ptr<InputPhoto> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t photos_updateProfilePhoto::ID;
+
+void photos_updateProfilePhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1926525996);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void photos_updateProfilePhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1926525996);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void photos_updateProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photos.updateProfilePhoto");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_class_end();
+ }
+}
+
+photos_updateProfilePhoto::ReturnType photos_updateProfilePhoto::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<photos_photo>, 539045032>::parse(p);
+#undef FAIL
+}
+
+photos_uploadProfilePhoto::photos_uploadProfilePhoto(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&video_, double video_start_ts_)
+ : flags_(flags_)
+ , file_(std::move(file_))
+ , video_(std::move(video_))
+ , video_start_ts_(video_start_ts_)
+{}
+
+const std::int32_t photos_uploadProfilePhoto::ID;
+
+void photos_uploadProfilePhoto::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1980559511);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); }
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(video_, s); }
+ if (var0 & 4) { TlStoreBinary::store(video_start_ts_, s); }
+}
+
+void photos_uploadProfilePhoto::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1980559511);
+ TlStoreBinary::store((var0 = flags_), s);
+ if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); }
+ if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(video_, s); }
+ if (var0 & 4) { TlStoreBinary::store(video_start_ts_, s); }
+}
+
+void photos_uploadProfilePhoto::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "photos.uploadProfilePhoto");
+ s.store_field("flags", (var0 = flags_));
+ if (var0 & 1) { s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); }
+ if (var0 & 2) { s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); }
+ if (var0 & 4) { s.store_field("video_start_ts", video_start_ts_); }
+ s.store_class_end();
+ }
+}
+
+photos_uploadProfilePhoto::ReturnType photos_uploadProfilePhoto::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<photos_photo>, 539045032>::parse(p);
+#undef FAIL
+}
+
+stats_getBroadcastStats::stats_getBroadcastStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_)
+ : flags_(flags_)
+ , dark_(dark_)
+ , channel_(std::move(channel_))
+{}
+
+const std::int32_t stats_getBroadcastStats::ID;
+
+void stats_getBroadcastStats::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1421720550);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void stats_getBroadcastStats::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1421720550);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void stats_getBroadcastStats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stats.getBroadcastStats");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_class_end();
+ }
+}
+
+stats_getBroadcastStats::ReturnType stats_getBroadcastStats::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<stats_broadcastStats>, -1107852396>::parse(p);
+#undef FAIL
+}
+
+stats_getMegagroupStats::stats_getMegagroupStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_)
+ : flags_(flags_)
+ , dark_(dark_)
+ , channel_(std::move(channel_))
+{}
+
+const std::int32_t stats_getMegagroupStats::ID;
+
+void stats_getMegagroupStats::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-589330937);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void stats_getMegagroupStats::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-589330937);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+}
+
+void stats_getMegagroupStats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stats.getMegagroupStats");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_class_end();
+ }
+}
+
+stats_getMegagroupStats::ReturnType stats_getMegagroupStats::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<stats_megagroupStats>, -276825834>::parse(p);
+#undef FAIL
+}
+
+stats_getMessagePublicForwards::stats_getMessagePublicForwards(object_ptr<InputChannel> &&channel_, int32 msg_id_, int32 offset_rate_, object_ptr<InputPeer> &&offset_peer_, int32 offset_id_, int32 limit_)
+ : channel_(std::move(channel_))
+ , msg_id_(msg_id_)
+ , offset_rate_(offset_rate_)
+ , offset_peer_(std::move(offset_peer_))
+ , offset_id_(offset_id_)
+ , limit_(limit_)
+{}
+
+const std::int32_t stats_getMessagePublicForwards::ID;
+
+void stats_getMessagePublicForwards::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1445996571);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(offset_rate_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void stats_getMessagePublicForwards::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1445996571);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(msg_id_, s);
+ TlStoreBinary::store(offset_rate_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s);
+ TlStoreBinary::store(offset_id_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void stats_getMessagePublicForwards::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stats.getMessagePublicForwards");
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_field("offset_rate", offset_rate_);
+ s.store_object_field("offset_peer", static_cast<const BaseObject *>(offset_peer_.get()));
+ s.store_field("offset_id", offset_id_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+stats_getMessagePublicForwards::ReturnType stats_getMessagePublicForwards::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_Messages>::parse(p);
+#undef FAIL
+}
+
+stats_getMessageStats::stats_getMessageStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_, int32 msg_id_)
+ : flags_(flags_)
+ , dark_(dark_)
+ , channel_(std::move(channel_))
+ , msg_id_(msg_id_)
+{}
+
+const std::int32_t stats_getMessageStats::ID;
+
+void stats_getMessageStats::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1226791947);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void stats_getMessageStats::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1226791947);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBinary::store(msg_id_, s);
+}
+
+void stats_getMessageStats::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stats.getMessageStats");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_field("msg_id", msg_id_);
+ s.store_class_end();
+ }
+}
+
+stats_getMessageStats::ReturnType stats_getMessageStats::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<stats_messageStats>, -1986399595>::parse(p);
+#undef FAIL
+}
+
+stats_loadAsyncGraph::stats_loadAsyncGraph(int32 flags_, string const &token_, int64 x_)
+ : flags_(flags_)
+ , token_(token_)
+ , x_(x_)
+{}
+
+const std::int32_t stats_loadAsyncGraph::ID;
+
+void stats_loadAsyncGraph::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1646092192);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(token_, s);
+ if (var0 & 1) { TlStoreBinary::store(x_, s); }
+}
+
+void stats_loadAsyncGraph::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1646092192);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreString::store(token_, s);
+ if (var0 & 1) { TlStoreBinary::store(x_, s); }
+}
+
+void stats_loadAsyncGraph::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stats.loadAsyncGraph");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("token", token_);
+ if (var0 & 1) { s.store_field("x", x_); }
+ s.store_class_end();
+ }
+}
+
+stats_loadAsyncGraph::ReturnType stats_loadAsyncGraph::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<StatsGraph>::parse(p);
+#undef FAIL
+}
+
+stickers_addStickerToSet::stickers_addStickerToSet(object_ptr<InputStickerSet> &&stickerset_, object_ptr<inputStickerSetItem> &&sticker_)
+ : stickerset_(std::move(stickerset_))
+ , sticker_(std::move(sticker_))
+{}
+
+const std::int32_t stickers_addStickerToSet::ID;
+
+void stickers_addStickerToSet::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2041315650);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBoxed<TlStoreObject, -6249322>::store(sticker_, s);
+}
+
+void stickers_addStickerToSet::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-2041315650);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBoxed<TlStoreObject, -6249322>::store(sticker_, s);
+}
+
+void stickers_addStickerToSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickers.addStickerToSet");
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+stickers_addStickerToSet::ReturnType stickers_addStickerToSet::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_StickerSet>::parse(p);
+#undef FAIL
+}
+
+stickers_changeStickerPosition::stickers_changeStickerPosition(object_ptr<InputDocument> &&sticker_, int32 position_)
+ : sticker_(std::move(sticker_))
+ , position_(position_)
+{}
+
+const std::int32_t stickers_changeStickerPosition::ID;
+
+void stickers_changeStickerPosition::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-4795190);
+ TlStoreBoxedUnknown<TlStoreObject>::store(sticker_, s);
+ TlStoreBinary::store(position_, s);
+}
+
+void stickers_changeStickerPosition::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-4795190);
+ TlStoreBoxedUnknown<TlStoreObject>::store(sticker_, s);
+ TlStoreBinary::store(position_, s);
+}
+
+void stickers_changeStickerPosition::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickers.changeStickerPosition");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_field("position", position_);
+ s.store_class_end();
+ }
+}
+
+stickers_changeStickerPosition::ReturnType stickers_changeStickerPosition::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_StickerSet>::parse(p);
+#undef FAIL
+}
+
+stickers_checkShortName::stickers_checkShortName(string const &short_name_)
+ : short_name_(short_name_)
+{}
+
+const std::int32_t stickers_checkShortName::ID;
+
+void stickers_checkShortName::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(676017721);
+ TlStoreString::store(short_name_, s);
+}
+
+void stickers_checkShortName::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(676017721);
+ TlStoreString::store(short_name_, s);
+}
+
+void stickers_checkShortName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickers.checkShortName");
+ s.store_field("short_name", short_name_);
+ s.store_class_end();
+ }
+}
+
+stickers_checkShortName::ReturnType stickers_checkShortName::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+stickers_createStickerSet::stickers_createStickerSet(int32 flags_, bool masks_, bool animated_, bool videos_, object_ptr<InputUser> &&user_id_, string const &title_, string const &short_name_, object_ptr<InputDocument> &&thumb_, array<object_ptr<inputStickerSetItem>> &&stickers_, string const &software_)
+ : flags_(flags_)
+ , masks_(masks_)
+ , animated_(animated_)
+ , videos_(videos_)
+ , user_id_(std::move(user_id_))
+ , title_(title_)
+ , short_name_(short_name_)
+ , thumb_(std::move(thumb_))
+ , stickers_(std::move(stickers_))
+ , software_(software_)
+{}
+
+const std::int32_t stickers_createStickerSet::ID;
+
+void stickers_createStickerSet::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1876841625);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(short_name_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); }
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -6249322>>, 481674261>::store(stickers_, s);
+ if (var0 & 8) { TlStoreString::store(software_, s); }
+}
+
+void stickers_createStickerSet::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1876841625);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s);
+ TlStoreString::store(title_, s);
+ TlStoreString::store(short_name_, s);
+ if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); }
+ TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -6249322>>, 481674261>::store(stickers_, s);
+ if (var0 & 8) { TlStoreString::store(software_, s); }
+}
+
+void stickers_createStickerSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickers.createStickerSet");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get()));
+ s.store_field("title", title_);
+ s.store_field("short_name", short_name_);
+ if (var0 & 4) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); }
+ { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ if (var0 & 8) { s.store_field("software", software_); }
+ s.store_class_end();
+ }
+}
+
+stickers_createStickerSet::ReturnType stickers_createStickerSet::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_StickerSet>::parse(p);
+#undef FAIL
+}
+
+stickers_removeStickerFromSet::stickers_removeStickerFromSet(object_ptr<InputDocument> &&sticker_)
+ : sticker_(std::move(sticker_))
+{}
+
+const std::int32_t stickers_removeStickerFromSet::ID;
+
+void stickers_removeStickerFromSet::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-143257775);
+ TlStoreBoxedUnknown<TlStoreObject>::store(sticker_, s);
+}
+
+void stickers_removeStickerFromSet::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-143257775);
+ TlStoreBoxedUnknown<TlStoreObject>::store(sticker_, s);
+}
+
+void stickers_removeStickerFromSet::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickers.removeStickerFromSet");
+ s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get()));
+ s.store_class_end();
+ }
+}
+
+stickers_removeStickerFromSet::ReturnType stickers_removeStickerFromSet::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_StickerSet>::parse(p);
+#undef FAIL
+}
+
+stickers_setStickerSetThumb::stickers_setStickerSetThumb(object_ptr<InputStickerSet> &&stickerset_, object_ptr<InputDocument> &&thumb_)
+ : stickerset_(std::move(stickerset_))
+ , thumb_(std::move(thumb_))
+{}
+
+const std::int32_t stickers_setStickerSetThumb::ID;
+
+void stickers_setStickerSetThumb::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1707717072);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s);
+}
+
+void stickers_setStickerSetThumb::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1707717072);
+ TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s);
+}
+
+void stickers_setStickerSetThumb::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickers.setStickerSetThumb");
+ s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get()));
+ s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get()));
+ s.store_class_end();
+ }
+}
+
+stickers_setStickerSetThumb::ReturnType stickers_setStickerSetThumb::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<messages_StickerSet>::parse(p);
+#undef FAIL
+}
+
+stickers_suggestShortName::stickers_suggestShortName(string const &title_)
+ : title_(title_)
+{}
+
+const std::int32_t stickers_suggestShortName::ID;
+
+void stickers_suggestShortName::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(1303364867);
+ TlStoreString::store(title_, s);
+}
+
+void stickers_suggestShortName::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(1303364867);
+ TlStoreString::store(title_, s);
+}
+
+void stickers_suggestShortName::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "stickers.suggestShortName");
+ s.store_field("title", title_);
+ s.store_class_end();
+ }
+}
+
+stickers_suggestShortName::ReturnType stickers_suggestShortName::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<stickers_suggestedShortName>, -2046910401>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t test_parseInputAppEvent::ID;
+
+void test_parseInputAppEvent::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1156741135);
+}
+
+void test_parseInputAppEvent::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1156741135);
+}
+
+void test_parseInputAppEvent::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "test.parseInputAppEvent");
+ s.store_class_end();
+ }
+}
+
+test_parseInputAppEvent::ReturnType test_parseInputAppEvent::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<inputAppEvent>, 488313413>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t test_useConfigSimple::ID;
+
+void test_useConfigSimple::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-105401795);
+}
+
+void test_useConfigSimple::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-105401795);
+}
+
+void test_useConfigSimple::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "test.useConfigSimple");
+ s.store_class_end();
+ }
+}
+
+test_useConfigSimple::ReturnType test_useConfigSimple::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<help_configSimple>, 1515793004>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t test_useError::ID;
+
+void test_useError::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-294277375);
+}
+
+void test_useError::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-294277375);
+}
+
+void test_useError::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "test.useError");
+ s.store_class_end();
+ }
+}
+
+test_useError::ReturnType test_useError::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<error>, -994444869>::parse(p);
+#undef FAIL
+}
+
+updates_getChannelDifference::updates_getChannelDifference(int32 flags_, bool force_, object_ptr<InputChannel> &&channel_, object_ptr<ChannelMessagesFilter> &&filter_, int32 pts_, int32 limit_)
+ : flags_(flags_)
+ , force_(force_)
+ , channel_(std::move(channel_))
+ , filter_(std::move(filter_))
+ , pts_(pts_)
+ , limit_(limit_)
+{}
+
+const std::int32_t updates_getChannelDifference::ID;
+
+void updates_getChannelDifference::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(51854712);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(pts_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void updates_getChannelDifference::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(51854712);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s);
+ TlStoreBinary::store(pts_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void updates_getChannelDifference::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.getChannelDifference");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get()));
+ s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get()));
+ s.store_field("pts", pts_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+updates_getChannelDifference::ReturnType updates_getChannelDifference::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<updates_ChannelDifference>::parse(p);
+#undef FAIL
+}
+
+updates_getDifference::updates_getDifference(int32 flags_, int32 pts_, int32 pts_total_limit_, int32 date_, int32 qts_)
+ : flags_(flags_)
+ , pts_(pts_)
+ , pts_total_limit_(pts_total_limit_)
+ , date_(date_)
+ , qts_(qts_)
+{}
+
+const std::int32_t updates_getDifference::ID;
+
+void updates_getDifference::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(630429265);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(pts_, s);
+ if (var0 & 1) { TlStoreBinary::store(pts_total_limit_, s); }
+ TlStoreBinary::store(date_, s);
+ TlStoreBinary::store(qts_, s);
+}
+
+void updates_getDifference::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(630429265);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBinary::store(pts_, s);
+ if (var0 & 1) { TlStoreBinary::store(pts_total_limit_, s); }
+ TlStoreBinary::store(date_, s);
+ TlStoreBinary::store(qts_, s);
+}
+
+void updates_getDifference::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.getDifference");
+ s.store_field("flags", (var0 = flags_));
+ s.store_field("pts", pts_);
+ if (var0 & 1) { s.store_field("pts_total_limit", pts_total_limit_); }
+ s.store_field("date", date_);
+ s.store_field("qts", qts_);
+ s.store_class_end();
+ }
+}
+
+updates_getDifference::ReturnType updates_getDifference::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<updates_Difference>::parse(p);
+#undef FAIL
+}
+
+const std::int32_t updates_getState::ID;
+
+void updates_getState::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-304838614);
+}
+
+void updates_getState::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-304838614);
+}
+
+void updates_getState::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "updates.getState");
+ s.store_class_end();
+ }
+}
+
+updates_getState::ReturnType updates_getState::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<updates_state>, -1519637954>::parse(p);
+#undef FAIL
+}
+
+upload_getCdnFile::upload_getCdnFile(bytes &&file_token_, int64 offset_, int32 limit_)
+ : file_token_(std::move(file_token_))
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t upload_getCdnFile::ID;
+
+void upload_getCdnFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(962554330);
+ TlStoreString::store(file_token_, s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void upload_getCdnFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(962554330);
+ TlStoreString::store(file_token_, s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void upload_getCdnFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.getCdnFile");
+ s.store_bytes_field("file_token", file_token_);
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+upload_getCdnFile::ReturnType upload_getCdnFile::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<upload_CdnFile>::parse(p);
+#undef FAIL
+}
+
+upload_getCdnFileHashes::upload_getCdnFileHashes(bytes &&file_token_, int64 offset_)
+ : file_token_(std::move(file_token_))
+ , offset_(offset_)
+{}
+
+const std::int32_t upload_getCdnFileHashes::ID;
+
+void upload_getCdnFileHashes::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1847836879);
+ TlStoreString::store(file_token_, s);
+ TlStoreBinary::store(offset_, s);
+}
+
+void upload_getCdnFileHashes::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1847836879);
+ TlStoreString::store(file_token_, s);
+ TlStoreBinary::store(offset_, s);
+}
+
+void upload_getCdnFileHashes::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.getCdnFileHashes");
+ s.store_bytes_field("file_token", file_token_);
+ s.store_field("offset", offset_);
+ s.store_class_end();
+ }
+}
+
+upload_getCdnFileHashes::ReturnType upload_getCdnFileHashes::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<fileHash>, -207944868>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+upload_getFile::upload_getFile(int32 flags_, bool precise_, bool cdn_supported_, object_ptr<InputFileLocation> &&location_, int64 offset_, int32 limit_)
+ : flags_(flags_)
+ , precise_(precise_)
+ , cdn_supported_(cdn_supported_)
+ , location_(std::move(location_))
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t upload_getFile::ID;
+
+void upload_getFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1101843010);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(location_, s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void upload_getFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1101843010);
+ TlStoreBinary::store((var0 = flags_), s);
+ TlStoreBoxedUnknown<TlStoreObject>::store(location_, s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void upload_getFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.getFile");
+ s.store_field("flags", (var0 = flags_));
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+upload_getFile::ReturnType upload_getFile::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchObject<upload_File>::parse(p);
+#undef FAIL
+}
+
+upload_getFileHashes::upload_getFileHashes(object_ptr<InputFileLocation> &&location_, int64 offset_)
+ : location_(std::move(location_))
+ , offset_(offset_)
+{}
+
+const std::int32_t upload_getFileHashes::ID;
+
+void upload_getFileHashes::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1856595926);
+ TlStoreBoxedUnknown<TlStoreObject>::store(location_, s);
+ TlStoreBinary::store(offset_, s);
+}
+
+void upload_getFileHashes::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1856595926);
+ TlStoreBoxedUnknown<TlStoreObject>::store(location_, s);
+ TlStoreBinary::store(offset_, s);
+}
+
+void upload_getFileHashes::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.getFileHashes");
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("offset", offset_);
+ s.store_class_end();
+ }
+}
+
+upload_getFileHashes::ReturnType upload_getFileHashes::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<fileHash>, -207944868>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+upload_getWebFile::upload_getWebFile(object_ptr<InputWebFileLocation> &&location_, int32 offset_, int32 limit_)
+ : location_(std::move(location_))
+ , offset_(offset_)
+ , limit_(limit_)
+{}
+
+const std::int32_t upload_getWebFile::ID;
+
+void upload_getWebFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(619086221);
+ TlStoreBoxedUnknown<TlStoreObject>::store(location_, s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void upload_getWebFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(619086221);
+ TlStoreBoxedUnknown<TlStoreObject>::store(location_, s);
+ TlStoreBinary::store(offset_, s);
+ TlStoreBinary::store(limit_, s);
+}
+
+void upload_getWebFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.getWebFile");
+ s.store_object_field("location", static_cast<const BaseObject *>(location_.get()));
+ s.store_field("offset", offset_);
+ s.store_field("limit", limit_);
+ s.store_class_end();
+ }
+}
+
+upload_getWebFile::ReturnType upload_getWebFile::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<upload_webFile>, 568808380>::parse(p);
+#undef FAIL
+}
+
+upload_reuploadCdnFile::upload_reuploadCdnFile(bytes &&file_token_, bytes &&request_token_)
+ : file_token_(std::move(file_token_))
+ , request_token_(std::move(request_token_))
+{}
+
+const std::int32_t upload_reuploadCdnFile::ID;
+
+void upload_reuploadCdnFile::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1691921240);
+ TlStoreString::store(file_token_, s);
+ TlStoreString::store(request_token_, s);
+}
+
+void upload_reuploadCdnFile::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1691921240);
+ TlStoreString::store(file_token_, s);
+ TlStoreString::store(request_token_, s);
+}
+
+void upload_reuploadCdnFile::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.reuploadCdnFile");
+ s.store_bytes_field("file_token", file_token_);
+ s.store_bytes_field("request_token", request_token_);
+ s.store_class_end();
+ }
+}
+
+upload_reuploadCdnFile::ReturnType upload_reuploadCdnFile::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<fileHash>, -207944868>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+upload_saveBigFilePart::upload_saveBigFilePart(int64 file_id_, int32 file_part_, int32 file_total_parts_, bytes &&bytes_)
+ : file_id_(file_id_)
+ , file_part_(file_part_)
+ , file_total_parts_(file_total_parts_)
+ , bytes_(std::move(bytes_))
+{}
+
+const std::int32_t upload_saveBigFilePart::ID;
+
+void upload_saveBigFilePart::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-562337987);
+ TlStoreBinary::store(file_id_, s);
+ TlStoreBinary::store(file_part_, s);
+ TlStoreBinary::store(file_total_parts_, s);
+ TlStoreString::store(bytes_, s);
+}
+
+void upload_saveBigFilePart::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-562337987);
+ TlStoreBinary::store(file_id_, s);
+ TlStoreBinary::store(file_part_, s);
+ TlStoreBinary::store(file_total_parts_, s);
+ TlStoreString::store(bytes_, s);
+}
+
+void upload_saveBigFilePart::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.saveBigFilePart");
+ s.store_field("file_id", file_id_);
+ s.store_field("file_part", file_part_);
+ s.store_field("file_total_parts", file_total_parts_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+upload_saveBigFilePart::ReturnType upload_saveBigFilePart::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+upload_saveFilePart::upload_saveFilePart(int64 file_id_, int32 file_part_, bytes &&bytes_)
+ : file_id_(file_id_)
+ , file_part_(file_part_)
+ , bytes_(std::move(bytes_))
+{}
+
+const std::int32_t upload_saveFilePart::ID;
+
+void upload_saveFilePart::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1291540959);
+ TlStoreBinary::store(file_id_, s);
+ TlStoreBinary::store(file_part_, s);
+ TlStoreString::store(bytes_, s);
+}
+
+void upload_saveFilePart::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1291540959);
+ TlStoreBinary::store(file_id_, s);
+ TlStoreBinary::store(file_part_, s);
+ TlStoreString::store(bytes_, s);
+}
+
+void upload_saveFilePart::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "upload.saveFilePart");
+ s.store_field("file_id", file_id_);
+ s.store_field("file_part", file_part_);
+ s.store_bytes_field("bytes", bytes_);
+ s.store_class_end();
+ }
+}
+
+upload_saveFilePart::ReturnType upload_saveFilePart::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+
+users_getFullUser::users_getFullUser(object_ptr<InputUser> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t users_getFullUser::ID;
+
+void users_getFullUser::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1240508136);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void users_getFullUser::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1240508136);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+}
+
+void users_getFullUser::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "users.getFullUser");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ s.store_class_end();
+ }
+}
+
+users_getFullUser::ReturnType users_getFullUser::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchObject<users_userFull>, 997004590>::parse(p);
+#undef FAIL
+}
+
+users_getUsers::users_getUsers(array<object_ptr<InputUser>> &&id_)
+ : id_(std::move(id_))
+{}
+
+const std::int32_t users_getUsers::ID;
+
+void users_getUsers::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(227648840);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void users_getUsers::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(227648840);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s);
+}
+
+void users_getUsers::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "users.getUsers");
+ { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+users_getUsers::ReturnType users_getUsers::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p);
+#undef FAIL
+}
+
+users_setSecureValueErrors::users_setSecureValueErrors(object_ptr<InputUser> &&id_, array<object_ptr<SecureValueError>> &&errors_)
+ : id_(std::move(id_))
+ , errors_(std::move(errors_))
+{}
+
+const std::int32_t users_setSecureValueErrors::ID;
+
+void users_setSecureValueErrors::store(TlStorerCalcLength &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1865902923);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(errors_, s);
+}
+
+void users_setSecureValueErrors::store(TlStorerUnsafe &s) const {
+ (void)sizeof(s);
+ s.store_binary(-1865902923);
+ TlStoreBoxedUnknown<TlStoreObject>::store(id_, s);
+ TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(errors_, s);
+}
+
+void users_setSecureValueErrors::store(TlStorerToString &s, const char *field_name) const {
+ if (!LOG_IS_STRIPPED(ERROR)) {
+ s.store_class_begin(field_name, "users.setSecureValueErrors");
+ s.store_object_field("id", static_cast<const BaseObject *>(id_.get()));
+ { s.store_vector_begin("errors", errors_.size()); for (const auto &_value : errors_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); }
+ s.store_class_end();
+ }
+}
+
+users_setSecureValueErrors::ReturnType users_setSecureValueErrors::fetch_result(TlBufferParser &p) {
+#define FAIL(error) p.set_error(error); return ReturnType()
+ return TlFetchBool::parse(p);
+#undef FAIL
+}
+} // namespace telegram_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.h b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.h
new file mode 100644
index 0000000000..e0f2bdd9d6
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.h
@@ -0,0 +1,33072 @@
+#pragma once
+
+#include "td/tl/TlObject.h"
+
+#include "td/utils/buffer.h"
+
+#include <cstdint>
+#include <utility>
+#include <vector>
+
+namespace td {
+class TlStorerCalcLength;
+class TlStorerUnsafe;
+class TlStorerToString;
+class TlBufferParser;
+
+namespace telegram_api {
+
+using int32 = std::int32_t;
+using int53 = std::int64_t;
+using int64 = std::int64_t;
+
+using string = std::string;
+
+using bytes = BufferSlice;
+
+template <class Type>
+using array = std::vector<Type>;
+
+using BaseObject = ::td::TlObject;
+
+template <class Type>
+using object_ptr = ::td::tl_object_ptr<Type>;
+
+template <class Type, class... Args>
+object_ptr<Type> make_object(Args &&... args) {
+ return object_ptr<Type>(new Type(std::forward<Args>(args)...));
+}
+
+template <class ToType, class FromType>
+object_ptr<ToType> move_object_as(FromType &&from) {
+ return object_ptr<ToType>(static_cast<ToType *>(from.release()));
+}
+
+std::string to_string(const BaseObject &value);
+
+template <class T>
+std::string to_string(const object_ptr<T> &value) {
+ if (value == nullptr) {
+ return "null";
+ }
+
+ return to_string(*value);
+}
+
+template <class T>
+std::string to_string(const std::vector<object_ptr<T>> &values) {
+ std::string result = "{\n";
+ for (const auto &value : values) {
+ if (value == nullptr) {
+ result += "null\n";
+ } else {
+ result += to_string(*value);
+ }
+ }
+ result += "}\n";
+ return result;
+}
+
+class accessPointRule;
+
+class accountDaysTTL;
+
+class attachMenuBot;
+
+class attachMenuBotIcon;
+
+class attachMenuBotIconColor;
+
+class AttachMenuBots;
+
+class attachMenuBotsBot;
+
+class AttachMenuPeerType;
+
+class authorization;
+
+class autoDownloadSettings;
+
+class availableReaction;
+
+class bankCardOpenUrl;
+
+class BaseTheme;
+
+class botCommand;
+
+class BotCommandScope;
+
+class botInfo;
+
+class BotInlineMessage;
+
+class BotInlineResult;
+
+class BotMenuButton;
+
+class cdnConfig;
+
+class cdnPublicKey;
+
+class channelAdminLogEvent;
+
+class ChannelAdminLogEventAction;
+
+class channelAdminLogEventsFilter;
+
+class ChannelLocation;
+
+class ChannelMessagesFilter;
+
+class ChannelParticipant;
+
+class ChannelParticipantsFilter;
+
+class Chat;
+
+class chatAdminRights;
+
+class chatAdminWithInvites;
+
+class chatBannedRights;
+
+class ChatFull;
+
+class ChatInvite;
+
+class chatInviteImporter;
+
+class chatOnlines;
+
+class ChatParticipant;
+
+class ChatParticipants;
+
+class ChatPhoto;
+
+class ChatReactions;
+
+class codeSettings;
+
+class config;
+
+class contact;
+
+class contactStatus;
+
+class dataJSON;
+
+class dcOption;
+
+class Dialog;
+
+class DialogFilter;
+
+class dialogFilterSuggested;
+
+class DialogPeer;
+
+class Document;
+
+class DocumentAttribute;
+
+class DraftMessage;
+
+class EmailVerification;
+
+class EmailVerifyPurpose;
+
+class EmojiKeyword;
+
+class emojiKeywordsDifference;
+
+class emojiLanguage;
+
+class EmojiStatus;
+
+class emojiURL;
+
+class EncryptedChat;
+
+class EncryptedFile;
+
+class EncryptedMessage;
+
+class error;
+
+class ExportedChatInvite;
+
+class exportedMessageLink;
+
+class fileHash;
+
+class folder;
+
+class folderPeer;
+
+class ForumTopic;
+
+class game;
+
+class GeoPoint;
+
+class globalPrivacySettings;
+
+class GroupCall;
+
+class groupCallParticipant;
+
+class groupCallParticipantVideo;
+
+class groupCallParticipantVideoSourceGroup;
+
+class groupCallStreamChannel;
+
+class highScore;
+
+class importedContact;
+
+class inlineBotSwitchPM;
+
+class InlineQueryPeerType;
+
+class inputAppEvent;
+
+class InputBotInlineMessage;
+
+class InputBotInlineMessageID;
+
+class InputBotInlineResult;
+
+class InputChannel;
+
+class InputChatPhoto;
+
+class InputCheckPasswordSRP;
+
+class inputClientProxy;
+
+class inputPhoneContact;
+
+class InputDialogPeer;
+
+class InputDocument;
+
+class inputEncryptedChat;
+
+class InputEncryptedFile;
+
+class InputFile;
+
+class InputFileLocation;
+
+class inputFolderPeer;
+
+class InputGame;
+
+class InputGeoPoint;
+
+class inputGroupCall;
+
+class InputInvoice;
+
+class InputMedia;
+
+class InputMessage;
+
+class InputNotifyPeer;
+
+class InputPaymentCredentials;
+
+class InputPeer;
+
+class inputPeerNotifySettings;
+
+class inputPhoneCall;
+
+class InputPhoto;
+
+class InputPrivacyKey;
+
+class InputPrivacyRule;
+
+class InputSecureFile;
+
+class inputSecureValue;
+
+class inputSingleMedia;
+
+class InputStickerSet;
+
+class inputStickerSetItem;
+
+class InputStickeredMedia;
+
+class InputStorePaymentPurpose;
+
+class InputTheme;
+
+class inputThemeSettings;
+
+class InputUser;
+
+class InputWallPaper;
+
+class inputWebDocument;
+
+class InputWebFileLocation;
+
+class invoice;
+
+class IpPort;
+
+class jsonObjectValue;
+
+class JSONValue;
+
+class KeyboardButton;
+
+class keyboardButtonRow;
+
+class labeledPrice;
+
+class langPackDifference;
+
+class langPackLanguage;
+
+class LangPackString;
+
+class maskCoords;
+
+class Message;
+
+class MessageAction;
+
+class MessageEntity;
+
+class MessageExtendedMedia;
+
+class messageFwdHeader;
+
+class messageInteractionCounters;
+
+class MessageMedia;
+
+class messagePeerReaction;
+
+class messageRange;
+
+class messageReactions;
+
+class messageReplies;
+
+class messageReplyHeader;
+
+class MessageUserVote;
+
+class messageViews;
+
+class MessagesFilter;
+
+class nearestDc;
+
+class NotificationSound;
+
+class NotifyPeer;
+
+class page;
+
+class PageBlock;
+
+class pageCaption;
+
+class PageListItem;
+
+class PageListOrderedItem;
+
+class pageRelatedArticle;
+
+class pageTableCell;
+
+class pageTableRow;
+
+class PasswordKdfAlgo;
+
+class paymentCharge;
+
+class paymentFormMethod;
+
+class paymentRequestedInfo;
+
+class paymentSavedCredentialsCard;
+
+class Peer;
+
+class peerBlocked;
+
+class PeerLocated;
+
+class peerNotifySettings;
+
+class peerSettings;
+
+class PhoneCall;
+
+class PhoneCallDiscardReason;
+
+class phoneCallProtocol;
+
+class PhoneConnection;
+
+class Photo;
+
+class PhotoSize;
+
+class poll;
+
+class pollAnswer;
+
+class pollAnswerVoters;
+
+class pollResults;
+
+class popularContact;
+
+class postAddress;
+
+class premiumGiftOption;
+
+class premiumSubscriptionOption;
+
+class PrivacyKey;
+
+class PrivacyRule;
+
+class Reaction;
+
+class reactionCount;
+
+class receivedNotifyMessage;
+
+class RecentMeUrl;
+
+class ReplyMarkup;
+
+class ReportReason;
+
+class restrictionReason;
+
+class RichText;
+
+class savedPhoneContact;
+
+class searchResultsCalendarPeriod;
+
+class searchResultPosition;
+
+class secureCredentialsEncrypted;
+
+class secureData;
+
+class SecureFile;
+
+class SecurePasswordKdfAlgo;
+
+class SecurePlainData;
+
+class SecureRequiredType;
+
+class secureSecretSettings;
+
+class secureValue;
+
+class SecureValueError;
+
+class secureValueHash;
+
+class SecureValueType;
+
+class sendAsPeer;
+
+class SendMessageAction;
+
+class shippingOption;
+
+class simpleWebViewResultUrl;
+
+class sponsoredMessage;
+
+class statsAbsValueAndPrev;
+
+class statsDateRangeDays;
+
+class StatsGraph;
+
+class statsGroupTopAdmin;
+
+class statsGroupTopInviter;
+
+class statsGroupTopPoster;
+
+class statsPercentValue;
+
+class statsURL;
+
+class stickerKeyword;
+
+class stickerPack;
+
+class stickerSet;
+
+class StickerSetCovered;
+
+class theme;
+
+class themeSettings;
+
+class topPeer;
+
+class TopPeerCategory;
+
+class topPeerCategoryPeers;
+
+class Update;
+
+class Updates;
+
+class UrlAuthResult;
+
+class User;
+
+class userFull;
+
+class UserProfilePhoto;
+
+class UserStatus;
+
+class username;
+
+class videoSize;
+
+class WallPaper;
+
+class wallPaperSettings;
+
+class webAuthorization;
+
+class WebDocument;
+
+class WebPage;
+
+class webPageAttributeTheme;
+
+class webViewMessageSent;
+
+class webViewResultUrl;
+
+class account_authorizationForm;
+
+class account_authorizations;
+
+class account_autoDownloadSettings;
+
+class account_contentSettings;
+
+class account_EmailVerified;
+
+class account_EmojiStatuses;
+
+class account_password;
+
+class account_passwordInputSettings;
+
+class account_passwordSettings;
+
+class account_privacyRules;
+
+class account_ResetPasswordResult;
+
+class account_SavedRingtone;
+
+class account_SavedRingtones;
+
+class account_sentEmailCode;
+
+class account_takeout;
+
+class account_Themes;
+
+class account_tmpPassword;
+
+class account_WallPapers;
+
+class account_webAuthorizations;
+
+class auth_Authorization;
+
+class auth_CodeType;
+
+class auth_exportedAuthorization;
+
+class auth_loggedOut;
+
+class auth_LoginToken;
+
+class auth_passwordRecovery;
+
+class auth_sentCode;
+
+class auth_SentCodeType;
+
+class channels_adminLogResults;
+
+class channels_channelParticipant;
+
+class channels_ChannelParticipants;
+
+class channels_sendAsPeers;
+
+class contacts_Blocked;
+
+class contacts_Contacts;
+
+class contacts_found;
+
+class contacts_importedContacts;
+
+class contacts_resolvedPeer;
+
+class contacts_TopPeers;
+
+class help_AppUpdate;
+
+class help_configSimple;
+
+class help_CountriesList;
+
+class help_country;
+
+class help_countryCode;
+
+class help_DeepLinkInfo;
+
+class help_inviteText;
+
+class help_PassportConfig;
+
+class help_premiumPromo;
+
+class help_PromoData;
+
+class help_recentMeUrls;
+
+class help_support;
+
+class help_supportName;
+
+class help_termsOfService;
+
+class help_TermsOfServiceUpdate;
+
+class help_UserInfo;
+
+class messages_affectedFoundMessages;
+
+class messages_affectedHistory;
+
+class messages_affectedMessages;
+
+class messages_AllStickers;
+
+class messages_archivedStickers;
+
+class messages_AvailableReactions;
+
+class messages_botCallbackAnswer;
+
+class messages_botResults;
+
+class messages_chatAdminsWithInvites;
+
+class messages_chatFull;
+
+class messages_chatInviteImporters;
+
+class messages_Chats;
+
+class messages_checkedHistoryImportPeer;
+
+class messages_DhConfig;
+
+class messages_Dialogs;
+
+class messages_discussionMessage;
+
+class messages_ExportedChatInvite;
+
+class messages_exportedChatInvites;
+
+class messages_FavedStickers;
+
+class messages_FeaturedStickers;
+
+class messages_forumTopics;
+
+class messages_FoundStickerSets;
+
+class messages_highScores;
+
+class messages_historyImport;
+
+class messages_historyImportParsed;
+
+class messages_inactiveChats;
+
+class messages_messageEditData;
+
+class messages_messageReactionsList;
+
+class messages_messageViews;
+
+class messages_Messages;
+
+class messages_peerDialogs;
+
+class messages_peerSettings;
+
+class messages_Reactions;
+
+class messages_RecentStickers;
+
+class messages_SavedGifs;
+
+class messages_searchCounter;
+
+class messages_searchResultsCalendar;
+
+class messages_searchResultsPositions;
+
+class messages_SentEncryptedMessage;
+
+class messages_SponsoredMessages;
+
+class messages_StickerSet;
+
+class messages_StickerSetInstallResult;
+
+class messages_Stickers;
+
+class messages_transcribedAudio;
+
+class messages_TranslatedText;
+
+class messages_votesList;
+
+class payments_bankCardData;
+
+class payments_exportedInvoice;
+
+class payments_paymentForm;
+
+class payments_paymentReceipt;
+
+class payments_PaymentResult;
+
+class payments_savedInfo;
+
+class payments_validatedRequestedInfo;
+
+class phone_exportedGroupCallInvite;
+
+class phone_groupCall;
+
+class phone_groupCallStreamChannels;
+
+class phone_groupCallStreamRtmpUrl;
+
+class phone_groupParticipants;
+
+class phone_joinAsPeers;
+
+class phone_phoneCall;
+
+class photos_photo;
+
+class photos_Photos;
+
+class stats_broadcastStats;
+
+class stats_megagroupStats;
+
+class stats_messageStats;
+
+class stickers_suggestedShortName;
+
+class storage_FileType;
+
+class updates_ChannelDifference;
+
+class updates_Difference;
+
+class updates_state;
+
+class upload_CdnFile;
+
+class upload_File;
+
+class upload_webFile;
+
+class users_userFull;
+
+class Object;
+
+class Object: public TlObject {
+ public:
+
+ static object_ptr<Object> fetch(TlBufferParser &p);
+};
+
+class Function: public TlObject {
+ public:
+};
+
+class accessPointRule final : public Object {
+ public:
+ string phone_prefix_rules_;
+ int32 dc_id_;
+ array<object_ptr<IpPort>> ips_;
+
+ static const std::int32_t ID = 1182381663;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<accessPointRule> fetch(TlBufferParser &p);
+
+ explicit accessPointRule(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class accountDaysTTL final : public Object {
+ public:
+ int32 days_;
+
+ explicit accountDaysTTL(int32 days_);
+
+ static const std::int32_t ID = -1194283041;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<accountDaysTTL> fetch(TlBufferParser &p);
+
+ explicit accountDaysTTL(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachMenuBot final : public Object {
+ public:
+ int32 flags_;
+ bool inactive_;
+ bool has_settings_;
+ int64 bot_id_;
+ string short_name_;
+ array<object_ptr<AttachMenuPeerType>> peer_types_;
+ array<object_ptr<attachMenuBotIcon>> icons_;
+
+ attachMenuBot();
+
+ static const std::int32_t ID = -928371502;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<attachMenuBot> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachMenuBotIcon final : public Object {
+ public:
+ int32 flags_;
+ string name_;
+ object_ptr<Document> icon_;
+ array<object_ptr<attachMenuBotIconColor>> colors_;
+
+ attachMenuBotIcon();
+
+ static const std::int32_t ID = -1297663893;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<attachMenuBotIcon> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachMenuBotIconColor final : public Object {
+ public:
+ string name_;
+ int32 color_;
+
+ static const std::int32_t ID = 1165423600;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<attachMenuBotIconColor> fetch(TlBufferParser &p);
+
+ explicit attachMenuBotIconColor(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class AttachMenuBots: public Object {
+ public:
+
+ static object_ptr<AttachMenuBots> fetch(TlBufferParser &p);
+};
+
+class attachMenuBotsNotModified final : public AttachMenuBots {
+ public:
+
+ static const std::int32_t ID = -237467044;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<AttachMenuBots> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachMenuBots final : public AttachMenuBots {
+ public:
+ int64 hash_;
+ array<object_ptr<attachMenuBot>> bots_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 1011024320;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<AttachMenuBots> fetch(TlBufferParser &p);
+
+ explicit attachMenuBots(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachMenuBotsBot final : public Object {
+ public:
+ object_ptr<attachMenuBot> bot_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1816172929;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<attachMenuBotsBot> fetch(TlBufferParser &p);
+
+ explicit attachMenuBotsBot(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class AttachMenuPeerType: public Object {
+ public:
+
+ static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p);
+};
+
+class attachMenuPeerTypeSameBotPM final : public AttachMenuPeerType {
+ public:
+
+ static const std::int32_t ID = 2104224014;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachMenuPeerTypeBotPM final : public AttachMenuPeerType {
+ public:
+
+ static const std::int32_t ID = -1020528102;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachMenuPeerTypePM final : public AttachMenuPeerType {
+ public:
+
+ static const std::int32_t ID = -247016673;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachMenuPeerTypeChat final : public AttachMenuPeerType {
+ public:
+
+ static const std::int32_t ID = 84480319;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class attachMenuPeerTypeBroadcast final : public AttachMenuPeerType {
+ public:
+
+ static const std::int32_t ID = 2080104188;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class authorization final : public Object {
+ public:
+ int32 flags_;
+ bool current_;
+ bool official_app_;
+ bool password_pending_;
+ bool encrypted_requests_disabled_;
+ bool call_requests_disabled_;
+ int64 hash_;
+ string device_model_;
+ string platform_;
+ string system_version_;
+ int32 api_id_;
+ string app_name_;
+ string app_version_;
+ int32 date_created_;
+ int32 date_active_;
+ string ip_;
+ string country_;
+ string region_;
+
+ authorization();
+
+ static const std::int32_t ID = -1392388579;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<authorization> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class autoDownloadSettings final : public Object {
+ public:
+ int32 flags_;
+ bool disabled_;
+ bool video_preload_large_;
+ bool audio_preload_next_;
+ bool phonecalls_less_data_;
+ int32 photo_size_max_;
+ int64 video_size_max_;
+ int64 file_size_max_;
+ int32 video_upload_maxbitrate_;
+ enum Flags : std::int32_t { DISABLED_MASK = 1, VIDEO_PRELOAD_LARGE_MASK = 2, AUDIO_PRELOAD_NEXT_MASK = 4, PHONECALLS_LESS_DATA_MASK = 8 };
+
+ autoDownloadSettings();
+
+ autoDownloadSettings(int32 flags_, bool disabled_, bool video_preload_large_, bool audio_preload_next_, bool phonecalls_less_data_, int32 photo_size_max_, int64 video_size_max_, int64 file_size_max_, int32 video_upload_maxbitrate_);
+
+ static const std::int32_t ID = -1896171181;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<autoDownloadSettings> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class availableReaction final : public Object {
+ public:
+ int32 flags_;
+ bool inactive_;
+ bool premium_;
+ string reaction_;
+ string title_;
+ object_ptr<Document> static_icon_;
+ object_ptr<Document> appear_animation_;
+ object_ptr<Document> select_animation_;
+ object_ptr<Document> activate_animation_;
+ object_ptr<Document> effect_animation_;
+ object_ptr<Document> around_animation_;
+ object_ptr<Document> center_icon_;
+
+ availableReaction();
+
+ static const std::int32_t ID = -1065882623;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<availableReaction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class bankCardOpenUrl final : public Object {
+ public:
+ string url_;
+ string name_;
+
+ static const std::int32_t ID = -177732982;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<bankCardOpenUrl> fetch(TlBufferParser &p);
+
+ explicit bankCardOpenUrl(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class BaseTheme: public Object {
+ public:
+
+ static object_ptr<BaseTheme> fetch(TlBufferParser &p);
+};
+
+class baseThemeClassic final : public BaseTheme {
+ public:
+
+ static const std::int32_t ID = -1012849566;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BaseTheme> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class baseThemeDay final : public BaseTheme {
+ public:
+
+ static const std::int32_t ID = -69724536;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BaseTheme> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class baseThemeNight final : public BaseTheme {
+ public:
+
+ static const std::int32_t ID = -1212997976;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BaseTheme> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class baseThemeTinted final : public BaseTheme {
+ public:
+
+ static const std::int32_t ID = 1834973166;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BaseTheme> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class baseThemeArctic final : public BaseTheme {
+ public:
+
+ static const std::int32_t ID = 1527845466;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BaseTheme> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommand final : public Object {
+ public:
+ string command_;
+ string description_;
+
+ botCommand(string const &command_, string const &description_);
+
+ static const std::int32_t ID = -1032140601;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<botCommand> fetch(TlBufferParser &p);
+
+ explicit botCommand(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class BotCommandScope: public Object {
+ public:
+};
+
+class botCommandScopeDefault final : public BotCommandScope {
+ public:
+
+ static const std::int32_t ID = 795652779;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopeUsers final : public BotCommandScope {
+ public:
+
+ static const std::int32_t ID = 1011811544;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopeChats final : public BotCommandScope {
+ public:
+
+ static const std::int32_t ID = 1877059713;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopeChatAdmins final : public BotCommandScope {
+ public:
+
+ static const std::int32_t ID = -1180016534;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopePeer final : public BotCommandScope {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit botCommandScopePeer(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = -610432643;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopePeerAdmins final : public BotCommandScope {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit botCommandScopePeerAdmins(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = 1071145937;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botCommandScopePeerUser final : public BotCommandScope {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputUser> user_id_;
+
+ botCommandScopePeerUser(object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&user_id_);
+
+ static const std::int32_t ID = 169026035;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botInfo final : public Object {
+ public:
+ int32 flags_;
+ int64 user_id_;
+ string description_;
+ object_ptr<Photo> description_photo_;
+ object_ptr<Document> description_document_;
+ array<object_ptr<botCommand>> commands_;
+ object_ptr<BotMenuButton> menu_button_;
+ enum Flags : std::int32_t { USER_ID_MASK = 1, DESCRIPTION_MASK = 2 };
+
+ botInfo();
+
+ static const std::int32_t ID = -1892676777;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<botInfo> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class BotInlineMessage: public Object {
+ public:
+
+ static object_ptr<BotInlineMessage> fetch(TlBufferParser &p);
+};
+
+class botInlineMessageMediaAuto final : public BotInlineMessage {
+ public:
+ int32 flags_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ botInlineMessageMediaAuto();
+
+ static const std::int32_t ID = 1984755728;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotInlineMessage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botInlineMessageText final : public BotInlineMessage {
+ public:
+ int32 flags_;
+ bool no_webpage_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ botInlineMessageText();
+
+ static const std::int32_t ID = -1937807902;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotInlineMessage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botInlineMessageMediaGeo final : public BotInlineMessage {
+ public:
+ int32 flags_;
+ object_ptr<GeoPoint> geo_;
+ int32 heading_;
+ int32 period_;
+ int32 proximity_notification_radius_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ enum Flags : std::int32_t { HEADING_MASK = 1, PERIOD_MASK = 2, PROXIMITY_NOTIFICATION_RADIUS_MASK = 8 };
+
+ botInlineMessageMediaGeo();
+
+ static const std::int32_t ID = 85477117;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotInlineMessage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botInlineMessageMediaVenue final : public BotInlineMessage {
+ public:
+ int32 flags_;
+ object_ptr<GeoPoint> geo_;
+ string title_;
+ string address_;
+ string provider_;
+ string venue_id_;
+ string venue_type_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ botInlineMessageMediaVenue();
+
+ static const std::int32_t ID = -1970903652;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotInlineMessage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botInlineMessageMediaContact final : public BotInlineMessage {
+ public:
+ int32 flags_;
+ string phone_number_;
+ string first_name_;
+ string last_name_;
+ string vcard_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ botInlineMessageMediaContact();
+
+ static const std::int32_t ID = 416402882;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotInlineMessage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botInlineMessageMediaInvoice final : public BotInlineMessage {
+ public:
+ int32 flags_;
+ bool shipping_address_requested_;
+ bool test_;
+ string title_;
+ string description_;
+ object_ptr<WebDocument> photo_;
+ string currency_;
+ int64 total_amount_;
+ object_ptr<ReplyMarkup> reply_markup_;
+
+ botInlineMessageMediaInvoice();
+
+ static const std::int32_t ID = 894081801;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotInlineMessage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class BotInlineResult: public Object {
+ public:
+
+ static object_ptr<BotInlineResult> fetch(TlBufferParser &p);
+};
+
+class botInlineResult final : public BotInlineResult {
+ public:
+ int32 flags_;
+ string id_;
+ string type_;
+ string title_;
+ string description_;
+ string url_;
+ object_ptr<WebDocument> thumb_;
+ object_ptr<WebDocument> content_;
+ object_ptr<BotInlineMessage> send_message_;
+ enum Flags : std::int32_t { TITLE_MASK = 2, DESCRIPTION_MASK = 4, URL_MASK = 8 };
+
+ botInlineResult();
+
+ static const std::int32_t ID = 295067450;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotInlineResult> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botInlineMediaResult final : public BotInlineResult {
+ public:
+ int32 flags_;
+ string id_;
+ string type_;
+ object_ptr<Photo> photo_;
+ object_ptr<Document> document_;
+ string title_;
+ string description_;
+ object_ptr<BotInlineMessage> send_message_;
+ enum Flags : std::int32_t { TITLE_MASK = 4, DESCRIPTION_MASK = 8 };
+
+ botInlineMediaResult();
+
+ static const std::int32_t ID = 400266251;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotInlineResult> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class BotMenuButton: public Object {
+ public:
+
+ static object_ptr<BotMenuButton> fetch(TlBufferParser &p);
+};
+
+class botMenuButtonDefault final : public BotMenuButton {
+ public:
+
+ static const std::int32_t ID = 1966318984;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotMenuButton> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botMenuButtonCommands final : public BotMenuButton {
+ public:
+
+ static const std::int32_t ID = 1113113093;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotMenuButton> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class botMenuButton final : public BotMenuButton {
+ public:
+ string text_;
+ string url_;
+
+ botMenuButton(string const &text_, string const &url_);
+
+ static const std::int32_t ID = -944407322;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<BotMenuButton> fetch(TlBufferParser &p);
+
+ explicit botMenuButton(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class cdnConfig final : public Object {
+ public:
+ array<object_ptr<cdnPublicKey>> public_keys_;
+
+ static const std::int32_t ID = 1462101002;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<cdnConfig> fetch(TlBufferParser &p);
+
+ explicit cdnConfig(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class cdnPublicKey final : public Object {
+ public:
+ int32 dc_id_;
+ string public_key_;
+
+ static const std::int32_t ID = -914167110;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<cdnPublicKey> fetch(TlBufferParser &p);
+
+ explicit cdnPublicKey(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEvent final : public Object {
+ public:
+ int64 id_;
+ int32 date_;
+ int64 user_id_;
+ object_ptr<ChannelAdminLogEventAction> action_;
+
+ static const std::int32_t ID = 531458253;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<channelAdminLogEvent> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEvent(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChannelAdminLogEventAction: public Object {
+ public:
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+};
+
+class channelAdminLogEventActionChangeTitle final : public ChannelAdminLogEventAction {
+ public:
+ string prev_value_;
+ string new_value_;
+
+ static const std::int32_t ID = -421545947;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionChangeTitle(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionChangeAbout final : public ChannelAdminLogEventAction {
+ public:
+ string prev_value_;
+ string new_value_;
+
+ static const std::int32_t ID = 1427671598;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionChangeAbout(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionChangeUsername final : public ChannelAdminLogEventAction {
+ public:
+ string prev_value_;
+ string new_value_;
+
+ static const std::int32_t ID = 1783299128;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionChangeUsername(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionChangePhoto final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<Photo> prev_photo_;
+ object_ptr<Photo> new_photo_;
+
+ static const std::int32_t ID = 1129042607;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionChangePhoto(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionToggleInvites final : public ChannelAdminLogEventAction {
+ public:
+ bool new_value_;
+
+ static const std::int32_t ID = 460916654;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionToggleInvites(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionToggleSignatures final : public ChannelAdminLogEventAction {
+ public:
+ bool new_value_;
+
+ static const std::int32_t ID = 648939889;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionToggleSignatures(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionUpdatePinned final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<Message> message_;
+
+ static const std::int32_t ID = -370660328;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionUpdatePinned(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionEditMessage final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<Message> prev_message_;
+ object_ptr<Message> new_message_;
+
+ static const std::int32_t ID = 1889215493;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionEditMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionDeleteMessage final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<Message> message_;
+
+ static const std::int32_t ID = 1121994683;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionDeleteMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionParticipantJoin final : public ChannelAdminLogEventAction {
+ public:
+
+ static const std::int32_t ID = 405815507;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionParticipantLeave final : public ChannelAdminLogEventAction {
+ public:
+
+ static const std::int32_t ID = -124291086;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionParticipantInvite final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ChannelParticipant> participant_;
+
+ static const std::int32_t ID = -484690728;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionParticipantInvite(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionParticipantToggleBan final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ChannelParticipant> prev_participant_;
+ object_ptr<ChannelParticipant> new_participant_;
+
+ static const std::int32_t ID = -422036098;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionParticipantToggleBan(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionParticipantToggleAdmin final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ChannelParticipant> prev_participant_;
+ object_ptr<ChannelParticipant> new_participant_;
+
+ static const std::int32_t ID = -714643696;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionParticipantToggleAdmin(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionChangeStickerSet final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<InputStickerSet> prev_stickerset_;
+ object_ptr<InputStickerSet> new_stickerset_;
+
+ static const std::int32_t ID = -1312568665;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionChangeStickerSet(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionTogglePreHistoryHidden final : public ChannelAdminLogEventAction {
+ public:
+ bool new_value_;
+
+ static const std::int32_t ID = 1599903217;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionTogglePreHistoryHidden(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionDefaultBannedRights final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<chatBannedRights> prev_banned_rights_;
+ object_ptr<chatBannedRights> new_banned_rights_;
+
+ static const std::int32_t ID = 771095562;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionDefaultBannedRights(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionStopPoll final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<Message> message_;
+
+ static const std::int32_t ID = -1895328189;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionStopPoll(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionChangeLinkedChat final : public ChannelAdminLogEventAction {
+ public:
+ int64 prev_value_;
+ int64 new_value_;
+
+ static const std::int32_t ID = 84703944;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionChangeLinkedChat(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionChangeLocation final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ChannelLocation> prev_value_;
+ object_ptr<ChannelLocation> new_value_;
+
+ static const std::int32_t ID = 241923758;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionChangeLocation(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionToggleSlowMode final : public ChannelAdminLogEventAction {
+ public:
+ int32 prev_value_;
+ int32 new_value_;
+
+ static const std::int32_t ID = 1401984889;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionToggleSlowMode(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionStartGroupCall final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<inputGroupCall> call_;
+
+ static const std::int32_t ID = 589338437;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionStartGroupCall(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionDiscardGroupCall final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<inputGroupCall> call_;
+
+ static const std::int32_t ID = -610299584;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionDiscardGroupCall(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionParticipantMute final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<groupCallParticipant> participant_;
+
+ static const std::int32_t ID = -115071790;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionParticipantMute(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionParticipantUnmute final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<groupCallParticipant> participant_;
+
+ static const std::int32_t ID = -431740480;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionParticipantUnmute(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionToggleGroupCallSetting final : public ChannelAdminLogEventAction {
+ public:
+ bool join_muted_;
+
+ static const std::int32_t ID = 1456906823;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionToggleGroupCallSetting(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionParticipantJoinByInvite final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ExportedChatInvite> invite_;
+
+ static const std::int32_t ID = 1557846647;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionParticipantJoinByInvite(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionExportedInviteDelete final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ExportedChatInvite> invite_;
+
+ static const std::int32_t ID = 1515256996;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionExportedInviteDelete(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionExportedInviteRevoke final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ExportedChatInvite> invite_;
+
+ static const std::int32_t ID = 1091179342;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionExportedInviteRevoke(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionExportedInviteEdit final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ExportedChatInvite> prev_invite_;
+ object_ptr<ExportedChatInvite> new_invite_;
+
+ static const std::int32_t ID = -384910503;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionExportedInviteEdit(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionParticipantVolume final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<groupCallParticipant> participant_;
+
+ static const std::int32_t ID = 1048537159;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionParticipantVolume(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionChangeHistoryTTL final : public ChannelAdminLogEventAction {
+ public:
+ int32 prev_value_;
+ int32 new_value_;
+
+ static const std::int32_t ID = 1855199800;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionChangeHistoryTTL(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionParticipantJoinByRequest final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ExportedChatInvite> invite_;
+ int64 approved_by_;
+
+ static const std::int32_t ID = -1347021750;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionParticipantJoinByRequest(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionToggleNoForwards final : public ChannelAdminLogEventAction {
+ public:
+ bool new_value_;
+
+ static const std::int32_t ID = -886388890;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionToggleNoForwards(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionSendMessage final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<Message> message_;
+
+ static const std::int32_t ID = 663693416;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionSendMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionChangeAvailableReactions final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ChatReactions> prev_value_;
+ object_ptr<ChatReactions> new_value_;
+
+ static const std::int32_t ID = -1102180616;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionChangeAvailableReactions(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionChangeUsernames final : public ChannelAdminLogEventAction {
+ public:
+ array<string> prev_value_;
+ array<string> new_value_;
+
+ static const std::int32_t ID = -263212119;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionChangeUsernames(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionToggleForum final : public ChannelAdminLogEventAction {
+ public:
+ bool new_value_;
+
+ static const std::int32_t ID = 46949251;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionToggleForum(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionCreateTopic final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ForumTopic> topic_;
+
+ static const std::int32_t ID = 1483767080;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionCreateTopic(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionEditTopic final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ForumTopic> prev_topic_;
+ object_ptr<ForumTopic> new_topic_;
+
+ static const std::int32_t ID = -261103096;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionEditTopic(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionDeleteTopic final : public ChannelAdminLogEventAction {
+ public:
+ object_ptr<ForumTopic> topic_;
+
+ static const std::int32_t ID = -1374254839;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ explicit channelAdminLogEventActionDeleteTopic(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventActionPinTopic final : public ChannelAdminLogEventAction {
+ public:
+ int32 flags_;
+ object_ptr<ForumTopic> prev_topic_;
+ object_ptr<ForumTopic> new_topic_;
+
+ channelAdminLogEventActionPinTopic();
+
+ static const std::int32_t ID = 1569535291;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelAdminLogEventsFilter final : public Object {
+ public:
+ int32 flags_;
+ bool join_;
+ bool leave_;
+ bool invite_;
+ bool ban_;
+ bool unban_;
+ bool kick_;
+ bool unkick_;
+ bool promote_;
+ bool demote_;
+ bool info_;
+ bool settings_;
+ bool pinned_;
+ bool edit_;
+ bool delete_;
+ bool group_call_;
+ bool invites_;
+ bool send_;
+ bool forums_;
+ enum Flags : std::int32_t { JOIN_MASK = 1, LEAVE_MASK = 2, INVITE_MASK = 4, BAN_MASK = 8, UNBAN_MASK = 16, KICK_MASK = 32, UNKICK_MASK = 64, PROMOTE_MASK = 128, DEMOTE_MASK = 256, INFO_MASK = 512, SETTINGS_MASK = 1024, PINNED_MASK = 2048, EDIT_MASK = 4096, DELETE_MASK = 8192, GROUP_CALL_MASK = 16384, INVITES_MASK = 32768, SEND_MASK = 65536, FORUMS_MASK = 131072 };
+
+ channelAdminLogEventsFilter(int32 flags_, bool join_, bool leave_, bool invite_, bool ban_, bool unban_, bool kick_, bool unkick_, bool promote_, bool demote_, bool info_, bool settings_, bool pinned_, bool edit_, bool delete_, bool group_call_, bool invites_, bool send_, bool forums_);
+
+ static const std::int32_t ID = -368018716;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChannelLocation: public Object {
+ public:
+
+ static object_ptr<ChannelLocation> fetch(TlBufferParser &p);
+};
+
+class channelLocationEmpty final : public ChannelLocation {
+ public:
+
+ static const std::int32_t ID = -1078612597;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelLocation> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelLocation final : public ChannelLocation {
+ public:
+ object_ptr<GeoPoint> geo_point_;
+ string address_;
+
+ static const std::int32_t ID = 547062491;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelLocation> fetch(TlBufferParser &p);
+
+ explicit channelLocation(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChannelMessagesFilter: public Object {
+ public:
+};
+
+class channelMessagesFilterEmpty final : public ChannelMessagesFilter {
+ public:
+
+ static const std::int32_t ID = -1798033689;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelMessagesFilter final : public ChannelMessagesFilter {
+ public:
+ int32 flags_;
+ bool exclude_new_messages_;
+ array<object_ptr<messageRange>> ranges_;
+ enum Flags : std::int32_t { EXCLUDE_NEW_MESSAGES_MASK = 2 };
+
+ channelMessagesFilter(int32 flags_, bool exclude_new_messages_, array<object_ptr<messageRange>> &&ranges_);
+
+ static const std::int32_t ID = -847783593;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChannelParticipant: public Object {
+ public:
+
+ static object_ptr<ChannelParticipant> fetch(TlBufferParser &p);
+};
+
+class channelParticipant final : public ChannelParticipant {
+ public:
+ int64 user_id_;
+ int32 date_;
+
+ static const std::int32_t ID = -1072953408;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelParticipant> fetch(TlBufferParser &p);
+
+ explicit channelParticipant(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantSelf final : public ChannelParticipant {
+ public:
+ int32 flags_;
+ bool via_request_;
+ int64 user_id_;
+ int64 inviter_id_;
+ int32 date_;
+
+ channelParticipantSelf();
+
+ static const std::int32_t ID = 900251559;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelParticipant> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantCreator final : public ChannelParticipant {
+ public:
+ int32 flags_;
+ int64 user_id_;
+ object_ptr<chatAdminRights> admin_rights_;
+ string rank_;
+ enum Flags : std::int32_t { RANK_MASK = 1 };
+
+ channelParticipantCreator();
+
+ static const std::int32_t ID = 803602899;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelParticipant> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantAdmin final : public ChannelParticipant {
+ public:
+ int32 flags_;
+ bool can_edit_;
+ bool self_;
+ int64 user_id_;
+ int64 inviter_id_;
+ int64 promoted_by_;
+ int32 date_;
+ object_ptr<chatAdminRights> admin_rights_;
+ string rank_;
+ enum Flags : std::int32_t { INVITER_ID_MASK = 2, RANK_MASK = 4 };
+
+ channelParticipantAdmin();
+
+ static const std::int32_t ID = 885242707;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelParticipant> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantBanned final : public ChannelParticipant {
+ public:
+ int32 flags_;
+ bool left_;
+ object_ptr<Peer> peer_;
+ int64 kicked_by_;
+ int32 date_;
+ object_ptr<chatBannedRights> banned_rights_;
+
+ channelParticipantBanned();
+
+ static const std::int32_t ID = 1844969806;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelParticipant> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantLeft final : public ChannelParticipant {
+ public:
+ object_ptr<Peer> peer_;
+
+ static const std::int32_t ID = 453242886;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChannelParticipant> fetch(TlBufferParser &p);
+
+ explicit channelParticipantLeft(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChannelParticipantsFilter: public Object {
+ public:
+};
+
+class channelParticipantsRecent final : public ChannelParticipantsFilter {
+ public:
+
+ static const std::int32_t ID = -566281095;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantsAdmins final : public ChannelParticipantsFilter {
+ public:
+
+ static const std::int32_t ID = -1268741783;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantsKicked final : public ChannelParticipantsFilter {
+ public:
+ string q_;
+
+ explicit channelParticipantsKicked(string const &q_);
+
+ static const std::int32_t ID = -1548400251;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantsBots final : public ChannelParticipantsFilter {
+ public:
+
+ static const std::int32_t ID = -1328445861;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantsBanned final : public ChannelParticipantsFilter {
+ public:
+ string q_;
+
+ explicit channelParticipantsBanned(string const &q_);
+
+ static const std::int32_t ID = 338142689;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantsSearch final : public ChannelParticipantsFilter {
+ public:
+ string q_;
+
+ explicit channelParticipantsSearch(string const &q_);
+
+ static const std::int32_t ID = 106343499;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantsContacts final : public ChannelParticipantsFilter {
+ public:
+ string q_;
+
+ explicit channelParticipantsContacts(string const &q_);
+
+ static const std::int32_t ID = -1150621555;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelParticipantsMentions final : public ChannelParticipantsFilter {
+ public:
+ int32 flags_;
+ string q_;
+ int32 top_msg_id_;
+ enum Flags : std::int32_t { Q_MASK = 1, TOP_MSG_ID_MASK = 2 };
+
+ channelParticipantsMentions(int32 flags_, string const &q_, int32 top_msg_id_);
+
+ static const std::int32_t ID = -531931925;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Chat: public Object {
+ public:
+
+ static object_ptr<Chat> fetch(TlBufferParser &p);
+};
+
+class chatEmpty final : public Chat {
+ public:
+ int64 id_;
+
+ static const std::int32_t ID = 693512293;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Chat> fetch(TlBufferParser &p);
+
+ explicit chatEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chat final : public Chat {
+ public:
+ int32 flags_;
+ bool creator_;
+ bool left_;
+ bool deactivated_;
+ bool call_active_;
+ bool call_not_empty_;
+ bool noforwards_;
+ int64 id_;
+ string title_;
+ object_ptr<ChatPhoto> photo_;
+ int32 participants_count_;
+ int32 date_;
+ int32 version_;
+ object_ptr<InputChannel> migrated_to_;
+ object_ptr<chatAdminRights> admin_rights_;
+ object_ptr<chatBannedRights> default_banned_rights_;
+
+ chat();
+
+ static const std::int32_t ID = 1103884886;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Chat> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatForbidden final : public Chat {
+ public:
+ int64 id_;
+ string title_;
+
+ static const std::int32_t ID = 1704108455;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Chat> fetch(TlBufferParser &p);
+
+ explicit chatForbidden(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channel final : public Chat {
+ public:
+ int32 flags_;
+ bool creator_;
+ bool left_;
+ bool broadcast_;
+ bool verified_;
+ bool megagroup_;
+ bool restricted_;
+ bool signatures_;
+ bool min_;
+ bool scam_;
+ bool has_link_;
+ bool has_geo_;
+ bool slowmode_enabled_;
+ bool call_active_;
+ bool call_not_empty_;
+ bool fake_;
+ bool gigagroup_;
+ bool noforwards_;
+ bool join_to_send_;
+ bool join_request_;
+ bool forum_;
+ int32 flags2_;
+ int64 id_;
+ int64 access_hash_;
+ string title_;
+ string username_;
+ object_ptr<ChatPhoto> photo_;
+ int32 date_;
+ array<object_ptr<restrictionReason>> restriction_reason_;
+ object_ptr<chatAdminRights> admin_rights_;
+ object_ptr<chatBannedRights> banned_rights_;
+ object_ptr<chatBannedRights> default_banned_rights_;
+ int32 participants_count_;
+ array<object_ptr<username>> usernames_;
+ enum Flags : std::int32_t { ACCESS_HASH_MASK = 8192, USERNAME_MASK = 64, PARTICIPANTS_COUNT_MASK = 131072 };
+
+ channel();
+
+ static const std::int32_t ID = -2094689180;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Chat> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelForbidden final : public Chat {
+ public:
+ int32 flags_;
+ bool broadcast_;
+ bool megagroup_;
+ int64 id_;
+ int64 access_hash_;
+ string title_;
+ int32 until_date_;
+ enum Flags : std::int32_t { UNTIL_DATE_MASK = 65536 };
+
+ channelForbidden();
+
+ channelForbidden(int32 flags_, bool broadcast_, bool megagroup_, int64 id_, int64 access_hash_, string const &title_, int32 until_date_);
+
+ static const std::int32_t ID = 399807445;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Chat> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatAdminRights final : public Object {
+ public:
+ int32 flags_;
+ bool change_info_;
+ bool post_messages_;
+ bool edit_messages_;
+ bool delete_messages_;
+ bool ban_users_;
+ bool invite_users_;
+ bool pin_messages_;
+ bool add_admins_;
+ bool anonymous_;
+ bool manage_call_;
+ bool other_;
+ bool manage_topics_;
+ enum Flags : std::int32_t { CHANGE_INFO_MASK = 1, POST_MESSAGES_MASK = 2, EDIT_MESSAGES_MASK = 4, DELETE_MESSAGES_MASK = 8, BAN_USERS_MASK = 16, INVITE_USERS_MASK = 32, PIN_MESSAGES_MASK = 128, ADD_ADMINS_MASK = 512, ANONYMOUS_MASK = 1024, MANAGE_CALL_MASK = 2048, OTHER_MASK = 4096, MANAGE_TOPICS_MASK = 8192 };
+
+ chatAdminRights();
+
+ chatAdminRights(int32 flags_, bool change_info_, bool post_messages_, bool edit_messages_, bool delete_messages_, bool ban_users_, bool invite_users_, bool pin_messages_, bool add_admins_, bool anonymous_, bool manage_call_, bool other_, bool manage_topics_);
+
+ static const std::int32_t ID = 1605510357;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<chatAdminRights> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatAdminWithInvites final : public Object {
+ public:
+ int64 admin_id_;
+ int32 invites_count_;
+ int32 revoked_invites_count_;
+
+ static const std::int32_t ID = -219353309;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<chatAdminWithInvites> fetch(TlBufferParser &p);
+
+ explicit chatAdminWithInvites(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatBannedRights final : public Object {
+ public:
+ int32 flags_;
+ bool view_messages_;
+ bool send_messages_;
+ bool send_media_;
+ bool send_stickers_;
+ bool send_gifs_;
+ bool send_games_;
+ bool send_inline_;
+ bool embed_links_;
+ bool send_polls_;
+ bool change_info_;
+ bool invite_users_;
+ bool pin_messages_;
+ bool manage_topics_;
+ int32 until_date_;
+ enum Flags : std::int32_t { VIEW_MESSAGES_MASK = 1, SEND_MESSAGES_MASK = 2, SEND_MEDIA_MASK = 4, SEND_STICKERS_MASK = 8, SEND_GIFS_MASK = 16, SEND_GAMES_MASK = 32, SEND_INLINE_MASK = 64, EMBED_LINKS_MASK = 128, SEND_POLLS_MASK = 256, CHANGE_INFO_MASK = 1024, INVITE_USERS_MASK = 32768, PIN_MESSAGES_MASK = 131072, MANAGE_TOPICS_MASK = 262144 };
+
+ chatBannedRights();
+
+ chatBannedRights(int32 flags_, bool view_messages_, bool send_messages_, bool send_media_, bool send_stickers_, bool send_gifs_, bool send_games_, bool send_inline_, bool embed_links_, bool send_polls_, bool change_info_, bool invite_users_, bool pin_messages_, bool manage_topics_, int32 until_date_);
+
+ static const std::int32_t ID = -1626209256;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<chatBannedRights> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatFull: public Object {
+ public:
+
+ static object_ptr<ChatFull> fetch(TlBufferParser &p);
+};
+
+class chatFull final : public ChatFull {
+ public:
+ int32 flags_;
+ bool can_set_username_;
+ bool has_scheduled_;
+ int64 id_;
+ string about_;
+ object_ptr<ChatParticipants> participants_;
+ object_ptr<Photo> chat_photo_;
+ object_ptr<peerNotifySettings> notify_settings_;
+ object_ptr<ExportedChatInvite> exported_invite_;
+ array<object_ptr<botInfo>> bot_info_;
+ int32 pinned_msg_id_;
+ int32 folder_id_;
+ object_ptr<inputGroupCall> call_;
+ int32 ttl_period_;
+ object_ptr<Peer> groupcall_default_join_as_;
+ string theme_emoticon_;
+ int32 requests_pending_;
+ array<int64> recent_requesters_;
+ object_ptr<ChatReactions> available_reactions_;
+ enum Flags : std::int32_t { PINNED_MSG_ID_MASK = 64, FOLDER_ID_MASK = 2048, TTL_PERIOD_MASK = 16384, THEME_EMOTICON_MASK = 65536, REQUESTS_PENDING_MASK = 131072 };
+
+ chatFull();
+
+ static const std::int32_t ID = -908914376;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatFull> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channelFull final : public ChatFull {
+ public:
+ int32 flags_;
+ bool can_view_participants_;
+ bool can_set_username_;
+ bool can_set_stickers_;
+ bool hidden_prehistory_;
+ bool can_set_location_;
+ bool has_scheduled_;
+ bool can_view_stats_;
+ bool blocked_;
+ int32 flags2_;
+ bool can_delete_channel_;
+ int64 id_;
+ string about_;
+ int32 participants_count_;
+ int32 admins_count_;
+ int32 kicked_count_;
+ int32 banned_count_;
+ int32 online_count_;
+ int32 read_inbox_max_id_;
+ int32 read_outbox_max_id_;
+ int32 unread_count_;
+ object_ptr<Photo> chat_photo_;
+ object_ptr<peerNotifySettings> notify_settings_;
+ object_ptr<ExportedChatInvite> exported_invite_;
+ array<object_ptr<botInfo>> bot_info_;
+ int64 migrated_from_chat_id_;
+ int32 migrated_from_max_id_;
+ int32 pinned_msg_id_;
+ object_ptr<stickerSet> stickerset_;
+ int32 available_min_id_;
+ int32 folder_id_;
+ int64 linked_chat_id_;
+ object_ptr<ChannelLocation> location_;
+ int32 slowmode_seconds_;
+ int32 slowmode_next_send_date_;
+ int32 stats_dc_;
+ int32 pts_;
+ object_ptr<inputGroupCall> call_;
+ int32 ttl_period_;
+ array<string> pending_suggestions_;
+ object_ptr<Peer> groupcall_default_join_as_;
+ string theme_emoticon_;
+ int32 requests_pending_;
+ array<int64> recent_requesters_;
+ object_ptr<Peer> default_send_as_;
+ object_ptr<ChatReactions> available_reactions_;
+ enum Flags : std::int32_t { PARTICIPANTS_COUNT_MASK = 1, ADMINS_COUNT_MASK = 2, KICKED_COUNT_MASK = 4, BANNED_COUNT_MASK = 4, ONLINE_COUNT_MASK = 8192, MIGRATED_FROM_CHAT_ID_MASK = 16, MIGRATED_FROM_MAX_ID_MASK = 16, PINNED_MSG_ID_MASK = 32, AVAILABLE_MIN_ID_MASK = 512, FOLDER_ID_MASK = 2048, LINKED_CHAT_ID_MASK = 16384, SLOWMODE_SECONDS_MASK = 131072, SLOWMODE_NEXT_SEND_DATE_MASK = 262144, STATS_DC_MASK = 4096, TTL_PERIOD_MASK = 16777216, THEME_EMOTICON_MASK = 134217728, REQUESTS_PENDING_MASK = 268435456 };
+
+ channelFull();
+
+ static const std::int32_t ID = -231385849;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatFull> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatInvite: public Object {
+ public:
+
+ static object_ptr<ChatInvite> fetch(TlBufferParser &p);
+};
+
+class chatInviteAlready final : public ChatInvite {
+ public:
+ object_ptr<Chat> chat_;
+
+ static const std::int32_t ID = 1516793212;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatInvite> fetch(TlBufferParser &p);
+
+ explicit chatInviteAlready(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInvite final : public ChatInvite {
+ public:
+ int32 flags_;
+ bool channel_;
+ bool broadcast_;
+ bool public_;
+ bool megagroup_;
+ bool request_needed_;
+ string title_;
+ string about_;
+ object_ptr<Photo> photo_;
+ int32 participants_count_;
+ array<object_ptr<User>> participants_;
+ enum Flags : std::int32_t { ABOUT_MASK = 32 };
+
+ chatInvite();
+
+ static const std::int32_t ID = 806110401;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatInvite> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInvitePeek final : public ChatInvite {
+ public:
+ object_ptr<Chat> chat_;
+ int32 expires_;
+
+ static const std::int32_t ID = 1634294960;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatInvite> fetch(TlBufferParser &p);
+
+ explicit chatInvitePeek(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInviteImporter final : public Object {
+ public:
+ int32 flags_;
+ bool requested_;
+ int64 user_id_;
+ int32 date_;
+ string about_;
+ int64 approved_by_;
+ enum Flags : std::int32_t { ABOUT_MASK = 4, APPROVED_BY_MASK = 2 };
+
+ chatInviteImporter();
+
+ static const std::int32_t ID = -1940201511;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<chatInviteImporter> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatOnlines final : public Object {
+ public:
+ int32 onlines_;
+
+ static const std::int32_t ID = -264117680;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<chatOnlines> fetch(TlBufferParser &p);
+
+ explicit chatOnlines(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatParticipant: public Object {
+ public:
+
+ static object_ptr<ChatParticipant> fetch(TlBufferParser &p);
+};
+
+class chatParticipant final : public ChatParticipant {
+ public:
+ int64 user_id_;
+ int64 inviter_id_;
+ int32 date_;
+
+ static const std::int32_t ID = -1070776313;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatParticipant> fetch(TlBufferParser &p);
+
+ explicit chatParticipant(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatParticipantCreator final : public ChatParticipant {
+ public:
+ int64 user_id_;
+
+ static const std::int32_t ID = -462696732;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatParticipant> fetch(TlBufferParser &p);
+
+ explicit chatParticipantCreator(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatParticipantAdmin final : public ChatParticipant {
+ public:
+ int64 user_id_;
+ int64 inviter_id_;
+ int32 date_;
+
+ static const std::int32_t ID = -1600962725;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatParticipant> fetch(TlBufferParser &p);
+
+ explicit chatParticipantAdmin(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatParticipants: public Object {
+ public:
+
+ static object_ptr<ChatParticipants> fetch(TlBufferParser &p);
+};
+
+class chatParticipantsForbidden final : public ChatParticipants {
+ public:
+ int32 flags_;
+ int64 chat_id_;
+ object_ptr<ChatParticipant> self_participant_;
+
+ chatParticipantsForbidden();
+
+ static const std::int32_t ID = -2023500831;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatParticipants> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatParticipants final : public ChatParticipants {
+ public:
+ int64 chat_id_;
+ array<object_ptr<ChatParticipant>> participants_;
+ int32 version_;
+
+ static const std::int32_t ID = 1018991608;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatParticipants> fetch(TlBufferParser &p);
+
+ explicit chatParticipants(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatPhoto: public Object {
+ public:
+
+ static object_ptr<ChatPhoto> fetch(TlBufferParser &p);
+};
+
+class chatPhotoEmpty final : public ChatPhoto {
+ public:
+
+ static const std::int32_t ID = 935395612;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatPhoto> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatPhoto final : public ChatPhoto {
+ public:
+ int32 flags_;
+ bool has_video_;
+ int64 photo_id_;
+ bytes stripped_thumb_;
+ int32 dc_id_;
+ enum Flags : std::int32_t { STRIPPED_THUMB_MASK = 2 };
+
+ chatPhoto();
+
+ static const std::int32_t ID = 476978193;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatPhoto> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ChatReactions: public Object {
+ public:
+
+ static object_ptr<ChatReactions> fetch(TlBufferParser &p);
+};
+
+class chatReactionsNone final : public ChatReactions {
+ public:
+
+ static const std::int32_t ID = -352570692;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatReactions> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReactionsAll final : public ChatReactions {
+ public:
+ int32 flags_;
+ bool allow_custom_;
+ enum Flags : std::int32_t { ALLOW_CUSTOM_MASK = 1 };
+
+ chatReactionsAll();
+
+ chatReactionsAll(int32 flags_, bool allow_custom_);
+
+ static const std::int32_t ID = 1385335754;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatReactions> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatReactionsSome final : public ChatReactions {
+ public:
+ array<object_ptr<Reaction>> reactions_;
+
+ explicit chatReactionsSome(array<object_ptr<Reaction>> &&reactions_);
+
+ static const std::int32_t ID = 1713193015;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ChatReactions> fetch(TlBufferParser &p);
+
+ explicit chatReactionsSome(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class codeSettings final : public Object {
+ public:
+ int32 flags_;
+ bool allow_flashcall_;
+ bool current_number_;
+ bool allow_app_hash_;
+ bool allow_missed_call_;
+ array<bytes> logout_tokens_;
+ enum Flags : std::int32_t { ALLOW_FLASHCALL_MASK = 1, CURRENT_NUMBER_MASK = 2, ALLOW_APP_HASH_MASK = 16, ALLOW_MISSED_CALL_MASK = 32, LOGOUT_TOKENS_MASK = 64 };
+
+ codeSettings(int32 flags_, bool allow_flashcall_, bool current_number_, bool allow_app_hash_, bool allow_missed_call_, array<bytes> &&logout_tokens_);
+
+ static const std::int32_t ID = -1973130814;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class config final : public Object {
+ public:
+ int32 flags_;
+ bool phonecalls_enabled_;
+ bool default_p2p_contacts_;
+ bool preload_featured_stickers_;
+ bool ignore_phone_entities_;
+ bool revoke_pm_inbox_;
+ bool blocked_mode_;
+ bool pfs_enabled_;
+ bool force_try_ipv6_;
+ int32 date_;
+ int32 expires_;
+ bool test_mode_;
+ int32 this_dc_;
+ array<object_ptr<dcOption>> dc_options_;
+ string dc_txt_domain_name_;
+ int32 chat_size_max_;
+ int32 megagroup_size_max_;
+ int32 forwarded_count_max_;
+ int32 online_update_period_ms_;
+ int32 offline_blur_timeout_ms_;
+ int32 offline_idle_timeout_ms_;
+ int32 online_cloud_timeout_ms_;
+ int32 notify_cloud_delay_ms_;
+ int32 notify_default_delay_ms_;
+ int32 push_chat_period_ms_;
+ int32 push_chat_limit_;
+ int32 saved_gifs_limit_;
+ int32 edit_time_limit_;
+ int32 revoke_time_limit_;
+ int32 revoke_pm_time_limit_;
+ int32 rating_e_decay_;
+ int32 stickers_recent_limit_;
+ int32 stickers_faved_limit_;
+ int32 channels_read_media_period_;
+ int32 tmp_sessions_;
+ int32 pinned_dialogs_count_max_;
+ int32 pinned_infolder_count_max_;
+ int32 call_receive_timeout_ms_;
+ int32 call_ring_timeout_ms_;
+ int32 call_connect_timeout_ms_;
+ int32 call_packet_timeout_ms_;
+ string me_url_prefix_;
+ string autoupdate_url_prefix_;
+ string gif_search_username_;
+ string venue_search_username_;
+ string img_search_username_;
+ string static_maps_provider_;
+ int32 caption_length_max_;
+ int32 message_length_max_;
+ int32 webfile_dc_id_;
+ string suggested_lang_code_;
+ int32 lang_pack_version_;
+ int32 base_lang_pack_version_;
+ object_ptr<Reaction> reactions_default_;
+ enum Flags : std::int32_t { TMP_SESSIONS_MASK = 1, AUTOUPDATE_URL_PREFIX_MASK = 128, GIF_SEARCH_USERNAME_MASK = 512, VENUE_SEARCH_USERNAME_MASK = 1024, IMG_SEARCH_USERNAME_MASK = 2048, STATIC_MAPS_PROVIDER_MASK = 4096, SUGGESTED_LANG_CODE_MASK = 4, LANG_PACK_VERSION_MASK = 4, BASE_LANG_PACK_VERSION_MASK = 4 };
+
+ config();
+
+ static const std::int32_t ID = 589653676;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<config> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contact final : public Object {
+ public:
+ int64 user_id_;
+ bool mutual_;
+
+ static const std::int32_t ID = 341499403;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contact> fetch(TlBufferParser &p);
+
+ explicit contact(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contactStatus final : public Object {
+ public:
+ int64 user_id_;
+ object_ptr<UserStatus> status_;
+
+ static const std::int32_t ID = 383348795;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contactStatus> fetch(TlBufferParser &p);
+
+ explicit contactStatus(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class dataJSON final : public Object {
+ public:
+ string data_;
+
+ explicit dataJSON(string const &data_);
+
+ static const std::int32_t ID = 2104790276;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<dataJSON> fetch(TlBufferParser &p);
+
+ explicit dataJSON(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class dcOption final : public Object {
+ public:
+ int32 flags_;
+ bool ipv6_;
+ bool media_only_;
+ bool tcpo_only_;
+ bool cdn_;
+ bool static_;
+ bool this_port_only_;
+ int32 id_;
+ string ip_address_;
+ int32 port_;
+ bytes secret_;
+ enum Flags : std::int32_t { SECRET_MASK = 1024 };
+
+ dcOption();
+
+ static const std::int32_t ID = 414687501;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<dcOption> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Dialog: public Object {
+ public:
+
+ static object_ptr<Dialog> fetch(TlBufferParser &p);
+};
+
+class dialog final : public Dialog {
+ public:
+ int32 flags_;
+ bool pinned_;
+ bool unread_mark_;
+ object_ptr<Peer> peer_;
+ int32 top_message_;
+ int32 read_inbox_max_id_;
+ int32 read_outbox_max_id_;
+ int32 unread_count_;
+ int32 unread_mentions_count_;
+ int32 unread_reactions_count_;
+ object_ptr<peerNotifySettings> notify_settings_;
+ int32 pts_;
+ object_ptr<DraftMessage> draft_;
+ int32 folder_id_;
+ enum Flags : std::int32_t { PTS_MASK = 1, FOLDER_ID_MASK = 16 };
+
+ dialog();
+
+ static const std::int32_t ID = -1460809483;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Dialog> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class dialogFolder final : public Dialog {
+ public:
+ int32 flags_;
+ bool pinned_;
+ object_ptr<folder> folder_;
+ object_ptr<Peer> peer_;
+ int32 top_message_;
+ int32 unread_muted_peers_count_;
+ int32 unread_unmuted_peers_count_;
+ int32 unread_muted_messages_count_;
+ int32 unread_unmuted_messages_count_;
+
+ dialogFolder();
+
+ static const std::int32_t ID = 1908216652;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Dialog> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class DialogFilter: public Object {
+ public:
+
+ static object_ptr<DialogFilter> fetch(TlBufferParser &p);
+};
+
+class dialogFilter final : public DialogFilter {
+ public:
+ int32 flags_;
+ bool contacts_;
+ bool non_contacts_;
+ bool groups_;
+ bool broadcasts_;
+ bool bots_;
+ bool exclude_muted_;
+ bool exclude_read_;
+ bool exclude_archived_;
+ int32 id_;
+ string title_;
+ string emoticon_;
+ array<object_ptr<InputPeer>> pinned_peers_;
+ array<object_ptr<InputPeer>> include_peers_;
+ array<object_ptr<InputPeer>> exclude_peers_;
+ enum Flags : std::int32_t { CONTACTS_MASK = 1, NON_CONTACTS_MASK = 2, GROUPS_MASK = 4, BROADCASTS_MASK = 8, BOTS_MASK = 16, EXCLUDE_MUTED_MASK = 2048, EXCLUDE_READ_MASK = 4096, EXCLUDE_ARCHIVED_MASK = 8192, EMOTICON_MASK = 33554432 };
+
+ dialogFilter();
+
+ dialogFilter(int32 flags_, bool contacts_, bool non_contacts_, bool groups_, bool broadcasts_, bool bots_, bool exclude_muted_, bool exclude_read_, bool exclude_archived_, int32 id_, string const &title_, string const &emoticon_, array<object_ptr<InputPeer>> &&pinned_peers_, array<object_ptr<InputPeer>> &&include_peers_, array<object_ptr<InputPeer>> &&exclude_peers_);
+
+ static const std::int32_t ID = 1949890536;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DialogFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class dialogFilterDefault final : public DialogFilter {
+ public:
+
+ static const std::int32_t ID = 909284270;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DialogFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class dialogFilterSuggested final : public Object {
+ public:
+ object_ptr<DialogFilter> filter_;
+ string description_;
+
+ static const std::int32_t ID = 2004110666;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<dialogFilterSuggested> fetch(TlBufferParser &p);
+
+ explicit dialogFilterSuggested(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class DialogPeer: public Object {
+ public:
+
+ static object_ptr<DialogPeer> fetch(TlBufferParser &p);
+};
+
+class dialogPeer final : public DialogPeer {
+ public:
+ object_ptr<Peer> peer_;
+
+ static const std::int32_t ID = -445792507;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DialogPeer> fetch(TlBufferParser &p);
+
+ explicit dialogPeer(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class dialogPeerFolder final : public DialogPeer {
+ public:
+ int32 folder_id_;
+
+ static const std::int32_t ID = 1363483106;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DialogPeer> fetch(TlBufferParser &p);
+
+ explicit dialogPeerFolder(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Document: public Object {
+ public:
+
+ static object_ptr<Document> fetch(TlBufferParser &p);
+};
+
+class documentEmpty final : public Document {
+ public:
+ int64 id_;
+
+ static const std::int32_t ID = 922273905;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Document> fetch(TlBufferParser &p);
+
+ explicit documentEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class document final : public Document {
+ public:
+ int32 flags_;
+ int64 id_;
+ int64 access_hash_;
+ bytes file_reference_;
+ int32 date_;
+ string mime_type_;
+ int64 size_;
+ array<object_ptr<PhotoSize>> thumbs_;
+ array<object_ptr<videoSize>> video_thumbs_;
+ int32 dc_id_;
+ array<object_ptr<DocumentAttribute>> attributes_;
+
+ document();
+
+ document(int32 flags_, int64 id_, int64 access_hash_, bytes &&file_reference_, int32 date_, string const &mime_type_, int64 size_, array<object_ptr<PhotoSize>> &&thumbs_, array<object_ptr<videoSize>> &&video_thumbs_, int32 dc_id_, array<object_ptr<DocumentAttribute>> &&attributes_);
+
+ static const std::int32_t ID = -1881881384;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Document> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class DocumentAttribute: public Object {
+ public:
+
+ static object_ptr<DocumentAttribute> fetch(TlBufferParser &p);
+};
+
+class documentAttributeImageSize final : public DocumentAttribute {
+ public:
+ int32 w_;
+ int32 h_;
+
+ documentAttributeImageSize(int32 w_, int32 h_);
+
+ static const std::int32_t ID = 1815593308;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlBufferParser &p);
+
+ explicit documentAttributeImageSize(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeAnimated final : public DocumentAttribute {
+ public:
+
+ static const std::int32_t ID = 297109817;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeSticker final : public DocumentAttribute {
+ public:
+ int32 flags_;
+ bool mask_;
+ string alt_;
+ object_ptr<InputStickerSet> stickerset_;
+ object_ptr<maskCoords> mask_coords_;
+ enum Flags : std::int32_t { MASK_MASK = 2, MASK_COORDS_MASK = 1 };
+
+ documentAttributeSticker();
+
+ documentAttributeSticker(int32 flags_, bool mask_, string const &alt_, object_ptr<InputStickerSet> &&stickerset_, object_ptr<maskCoords> &&mask_coords_);
+
+ static const std::int32_t ID = 1662637586;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeVideo final : public DocumentAttribute {
+ public:
+ int32 flags_;
+ bool round_message_;
+ bool supports_streaming_;
+ int32 duration_;
+ int32 w_;
+ int32 h_;
+ enum Flags : std::int32_t { ROUND_MESSAGE_MASK = 1, SUPPORTS_STREAMING_MASK = 2 };
+
+ documentAttributeVideo();
+
+ documentAttributeVideo(int32 flags_, bool round_message_, bool supports_streaming_, int32 duration_, int32 w_, int32 h_);
+
+ static const std::int32_t ID = 250621158;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeAudio final : public DocumentAttribute {
+ public:
+ int32 flags_;
+ bool voice_;
+ int32 duration_;
+ string title_;
+ string performer_;
+ bytes waveform_;
+ enum Flags : std::int32_t { VOICE_MASK = 1024, TITLE_MASK = 1, PERFORMER_MASK = 2, WAVEFORM_MASK = 4 };
+
+ documentAttributeAudio();
+
+ documentAttributeAudio(int32 flags_, bool voice_, int32 duration_, string const &title_, string const &performer_, bytes &&waveform_);
+
+ static const std::int32_t ID = -1739392570;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeFilename final : public DocumentAttribute {
+ public:
+ string file_name_;
+
+ explicit documentAttributeFilename(string const &file_name_);
+
+ static const std::int32_t ID = 358154344;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlBufferParser &p);
+
+ explicit documentAttributeFilename(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeHasStickers final : public DocumentAttribute {
+ public:
+
+ static const std::int32_t ID = -1744710921;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class documentAttributeCustomEmoji final : public DocumentAttribute {
+ public:
+ int32 flags_;
+ bool free_;
+ string alt_;
+ object_ptr<InputStickerSet> stickerset_;
+ enum Flags : std::int32_t { FREE_MASK = 1 };
+
+ documentAttributeCustomEmoji();
+
+ documentAttributeCustomEmoji(int32 flags_, bool free_, string const &alt_, object_ptr<InputStickerSet> &&stickerset_);
+
+ static const std::int32_t ID = -48981863;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DocumentAttribute> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class DraftMessage: public Object {
+ public:
+
+ static object_ptr<DraftMessage> fetch(TlBufferParser &p);
+};
+
+class draftMessageEmpty final : public DraftMessage {
+ public:
+ int32 flags_;
+ int32 date_;
+ enum Flags : std::int32_t { DATE_MASK = 1 };
+
+ draftMessageEmpty();
+
+ static const std::int32_t ID = 453805082;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DraftMessage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class draftMessage final : public DraftMessage {
+ public:
+ int32 flags_;
+ bool no_webpage_;
+ int32 reply_to_msg_id_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+ int32 date_;
+ enum Flags : std::int32_t { REPLY_TO_MSG_ID_MASK = 1 };
+
+ draftMessage();
+
+ static const std::int32_t ID = -40996577;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<DraftMessage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class EmailVerification: public Object {
+ public:
+};
+
+class emailVerificationCode final : public EmailVerification {
+ public:
+ string code_;
+
+ explicit emailVerificationCode(string const &code_);
+
+ static const std::int32_t ID = -1842457175;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emailVerificationGoogle final : public EmailVerification {
+ public:
+ string token_;
+
+ explicit emailVerificationGoogle(string const &token_);
+
+ static const std::int32_t ID = -611279166;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emailVerificationApple final : public EmailVerification {
+ public:
+ string token_;
+
+ explicit emailVerificationApple(string const &token_);
+
+ static const std::int32_t ID = -1764723459;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class EmailVerifyPurpose: public Object {
+ public:
+};
+
+class emailVerifyPurposeLoginSetup final : public EmailVerifyPurpose {
+ public:
+ string phone_number_;
+ string phone_code_hash_;
+
+ emailVerifyPurposeLoginSetup(string const &phone_number_, string const &phone_code_hash_);
+
+ static const std::int32_t ID = 1128644211;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emailVerifyPurposeLoginChange final : public EmailVerifyPurpose {
+ public:
+
+ static const std::int32_t ID = 1383932651;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emailVerifyPurposePassport final : public EmailVerifyPurpose {
+ public:
+
+ static const std::int32_t ID = -1141565819;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class EmojiKeyword: public Object {
+ public:
+
+ static object_ptr<EmojiKeyword> fetch(TlBufferParser &p);
+};
+
+class emojiKeyword final : public EmojiKeyword {
+ public:
+ string keyword_;
+ array<string> emoticons_;
+
+ static const std::int32_t ID = -709641735;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EmojiKeyword> fetch(TlBufferParser &p);
+
+ explicit emojiKeyword(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emojiKeywordDeleted final : public EmojiKeyword {
+ public:
+ string keyword_;
+ array<string> emoticons_;
+
+ static const std::int32_t ID = 594408994;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EmojiKeyword> fetch(TlBufferParser &p);
+
+ explicit emojiKeywordDeleted(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emojiKeywordsDifference final : public Object {
+ public:
+ string lang_code_;
+ int32 from_version_;
+ int32 version_;
+ array<object_ptr<EmojiKeyword>> keywords_;
+
+ static const std::int32_t ID = 1556570557;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<emojiKeywordsDifference> fetch(TlBufferParser &p);
+
+ explicit emojiKeywordsDifference(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emojiLanguage final : public Object {
+ public:
+ string lang_code_;
+
+ static const std::int32_t ID = -1275374751;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<emojiLanguage> fetch(TlBufferParser &p);
+
+ explicit emojiLanguage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class EmojiStatus: public Object {
+ public:
+
+ static object_ptr<EmojiStatus> fetch(TlBufferParser &p);
+};
+
+class emojiStatusEmpty final : public EmojiStatus {
+ public:
+
+ static const std::int32_t ID = 769727150;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EmojiStatus> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emojiStatus final : public EmojiStatus {
+ public:
+ int64 document_id_;
+
+ explicit emojiStatus(int64 document_id_);
+
+ static const std::int32_t ID = -1835310691;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EmojiStatus> fetch(TlBufferParser &p);
+
+ explicit emojiStatus(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emojiStatusUntil final : public EmojiStatus {
+ public:
+ int64 document_id_;
+ int32 until_;
+
+ emojiStatusUntil(int64 document_id_, int32 until_);
+
+ static const std::int32_t ID = -97474361;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EmojiStatus> fetch(TlBufferParser &p);
+
+ explicit emojiStatusUntil(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class emojiURL final : public Object {
+ public:
+ string url_;
+
+ static const std::int32_t ID = -1519029347;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<emojiURL> fetch(TlBufferParser &p);
+
+ explicit emojiURL(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class EncryptedChat: public Object {
+ public:
+
+ static object_ptr<EncryptedChat> fetch(TlBufferParser &p);
+};
+
+class encryptedChatEmpty final : public EncryptedChat {
+ public:
+ int32 id_;
+
+ static const std::int32_t ID = -1417756512;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EncryptedChat> fetch(TlBufferParser &p);
+
+ explicit encryptedChatEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class encryptedChatWaiting final : public EncryptedChat {
+ public:
+ int32 id_;
+ int64 access_hash_;
+ int32 date_;
+ int64 admin_id_;
+ int64 participant_id_;
+
+ encryptedChatWaiting(int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_);
+
+ static const std::int32_t ID = 1722964307;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EncryptedChat> fetch(TlBufferParser &p);
+
+ explicit encryptedChatWaiting(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class encryptedChatRequested final : public EncryptedChat {
+ public:
+ int32 flags_;
+ int32 folder_id_;
+ int32 id_;
+ int64 access_hash_;
+ int32 date_;
+ int64 admin_id_;
+ int64 participant_id_;
+ bytes g_a_;
+ enum Flags : std::int32_t { FOLDER_ID_MASK = 1 };
+
+ encryptedChatRequested();
+
+ encryptedChatRequested(int32 flags_, int32 folder_id_, int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_, bytes &&g_a_);
+
+ static const std::int32_t ID = 1223809356;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EncryptedChat> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class encryptedChat final : public EncryptedChat {
+ public:
+ int32 id_;
+ int64 access_hash_;
+ int32 date_;
+ int64 admin_id_;
+ int64 participant_id_;
+ bytes g_a_or_b_;
+ int64 key_fingerprint_;
+
+ encryptedChat(int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_, bytes &&g_a_or_b_, int64 key_fingerprint_);
+
+ static const std::int32_t ID = 1643173063;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EncryptedChat> fetch(TlBufferParser &p);
+
+ explicit encryptedChat(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class encryptedChatDiscarded final : public EncryptedChat {
+ public:
+ int32 flags_;
+ bool history_deleted_;
+ int32 id_;
+
+ encryptedChatDiscarded();
+
+ static const std::int32_t ID = 505183301;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EncryptedChat> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class EncryptedFile: public Object {
+ public:
+
+ static object_ptr<EncryptedFile> fetch(TlBufferParser &p);
+};
+
+class encryptedFileEmpty final : public EncryptedFile {
+ public:
+
+ static const std::int32_t ID = -1038136962;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EncryptedFile> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class encryptedFile final : public EncryptedFile {
+ public:
+ int64 id_;
+ int64 access_hash_;
+ int64 size_;
+ int32 dc_id_;
+ int32 key_fingerprint_;
+
+ static const std::int32_t ID = -1476358952;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EncryptedFile> fetch(TlBufferParser &p);
+
+ explicit encryptedFile(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class EncryptedMessage: public Object {
+ public:
+
+ static object_ptr<EncryptedMessage> fetch(TlBufferParser &p);
+};
+
+class encryptedMessage final : public EncryptedMessage {
+ public:
+ int64 random_id_;
+ int32 chat_id_;
+ int32 date_;
+ bytes bytes_;
+ object_ptr<EncryptedFile> file_;
+
+ static const std::int32_t ID = -317144808;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EncryptedMessage> fetch(TlBufferParser &p);
+
+ explicit encryptedMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class encryptedMessageService final : public EncryptedMessage {
+ public:
+ int64 random_id_;
+ int32 chat_id_;
+ int32 date_;
+ bytes bytes_;
+
+ static const std::int32_t ID = 594758406;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<EncryptedMessage> fetch(TlBufferParser &p);
+
+ explicit encryptedMessageService(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class error final : public Object {
+ public:
+ int32 code_;
+ string text_;
+
+ static const std::int32_t ID = -994444869;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<error> fetch(TlBufferParser &p);
+
+ explicit error(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ExportedChatInvite: public Object {
+ public:
+
+ static object_ptr<ExportedChatInvite> fetch(TlBufferParser &p);
+};
+
+class chatInviteExported final : public ExportedChatInvite {
+ public:
+ int32 flags_;
+ bool revoked_;
+ bool permanent_;
+ bool request_needed_;
+ string link_;
+ int64 admin_id_;
+ int32 date_;
+ int32 start_date_;
+ int32 expire_date_;
+ int32 usage_limit_;
+ int32 usage_;
+ int32 requested_;
+ string title_;
+ enum Flags : std::int32_t { START_DATE_MASK = 16, EXPIRE_DATE_MASK = 2, USAGE_LIMIT_MASK = 4, USAGE_MASK = 8, REQUESTED_MASK = 128, TITLE_MASK = 256 };
+
+ chatInviteExported();
+
+ static const std::int32_t ID = 179611673;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ExportedChatInvite> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class chatInvitePublicJoinRequests final : public ExportedChatInvite {
+ public:
+
+ static const std::int32_t ID = -317687113;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ExportedChatInvite> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class exportedMessageLink final : public Object {
+ public:
+ string link_;
+ string html_;
+
+ static const std::int32_t ID = 1571494644;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<exportedMessageLink> fetch(TlBufferParser &p);
+
+ explicit exportedMessageLink(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class fileHash final : public Object {
+ public:
+ int64 offset_;
+ int32 limit_;
+ bytes hash_;
+
+ static const std::int32_t ID = -207944868;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<fileHash> fetch(TlBufferParser &p);
+
+ explicit fileHash(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class folder final : public Object {
+ public:
+ int32 flags_;
+ bool autofill_new_broadcasts_;
+ bool autofill_public_groups_;
+ bool autofill_new_correspondents_;
+ int32 id_;
+ string title_;
+ object_ptr<ChatPhoto> photo_;
+
+ folder();
+
+ static const std::int32_t ID = -11252123;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<folder> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class folderPeer final : public Object {
+ public:
+ object_ptr<Peer> peer_;
+ int32 folder_id_;
+
+ static const std::int32_t ID = -373643672;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<folderPeer> fetch(TlBufferParser &p);
+
+ explicit folderPeer(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ForumTopic: public Object {
+ public:
+
+ static object_ptr<ForumTopic> fetch(TlBufferParser &p);
+};
+
+class forumTopicDeleted final : public ForumTopic {
+ public:
+ int32 id_;
+
+ static const std::int32_t ID = 37687451;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ForumTopic> fetch(TlBufferParser &p);
+
+ explicit forumTopicDeleted(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class forumTopic final : public ForumTopic {
+ public:
+ int32 flags_;
+ bool my_;
+ bool closed_;
+ bool pinned_;
+ int32 id_;
+ int32 date_;
+ string title_;
+ int32 icon_color_;
+ int64 icon_emoji_id_;
+ int32 top_message_;
+ int32 read_inbox_max_id_;
+ int32 read_outbox_max_id_;
+ int32 unread_count_;
+ int32 unread_mentions_count_;
+ int32 unread_reactions_count_;
+ object_ptr<Peer> from_id_;
+ object_ptr<peerNotifySettings> notify_settings_;
+ object_ptr<DraftMessage> draft_;
+ enum Flags : std::int32_t { ICON_EMOJI_ID_MASK = 1 };
+
+ forumTopic();
+
+ static const std::int32_t ID = 1903173033;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ForumTopic> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class game final : public Object {
+ public:
+ int32 flags_;
+ int64 id_;
+ int64 access_hash_;
+ string short_name_;
+ string title_;
+ string description_;
+ object_ptr<Photo> photo_;
+ object_ptr<Document> document_;
+
+ game();
+
+ static const std::int32_t ID = -1107729093;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<game> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class GeoPoint: public Object {
+ public:
+
+ static object_ptr<GeoPoint> fetch(TlBufferParser &p);
+};
+
+class geoPointEmpty final : public GeoPoint {
+ public:
+
+ static const std::int32_t ID = 286776671;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<GeoPoint> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class geoPoint final : public GeoPoint {
+ public:
+ int32 flags_;
+ double long_;
+ double lat_;
+ int64 access_hash_;
+ int32 accuracy_radius_;
+ enum Flags : std::int32_t { ACCURACY_RADIUS_MASK = 1 };
+
+ geoPoint();
+
+ static const std::int32_t ID = -1297942941;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<GeoPoint> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class globalPrivacySettings final : public Object {
+ public:
+ int32 flags_;
+ bool archive_and_mute_new_noncontact_peers_;
+ enum Flags : std::int32_t { ARCHIVE_AND_MUTE_NEW_NONCONTACT_PEERS_MASK = 1 };
+
+ globalPrivacySettings();
+
+ globalPrivacySettings(int32 flags_, bool archive_and_mute_new_noncontact_peers_);
+
+ static const std::int32_t ID = -1096616924;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<globalPrivacySettings> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class GroupCall: public Object {
+ public:
+
+ static object_ptr<GroupCall> fetch(TlBufferParser &p);
+};
+
+class groupCallDiscarded final : public GroupCall {
+ public:
+ int64 id_;
+ int64 access_hash_;
+ int32 duration_;
+
+ static const std::int32_t ID = 2004925620;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<GroupCall> fetch(TlBufferParser &p);
+
+ explicit groupCallDiscarded(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCall final : public GroupCall {
+ public:
+ int32 flags_;
+ bool join_muted_;
+ bool can_change_join_muted_;
+ bool join_date_asc_;
+ bool schedule_start_subscribed_;
+ bool can_start_video_;
+ bool record_video_active_;
+ bool rtmp_stream_;
+ bool listeners_hidden_;
+ int64 id_;
+ int64 access_hash_;
+ int32 participants_count_;
+ string title_;
+ int32 stream_dc_id_;
+ int32 record_start_date_;
+ int32 schedule_date_;
+ int32 unmuted_video_count_;
+ int32 unmuted_video_limit_;
+ int32 version_;
+ enum Flags : std::int32_t { TITLE_MASK = 8, STREAM_DC_ID_MASK = 16, RECORD_START_DATE_MASK = 32, SCHEDULE_DATE_MASK = 128, UNMUTED_VIDEO_COUNT_MASK = 1024 };
+
+ groupCall();
+
+ static const std::int32_t ID = -711498484;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<GroupCall> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallParticipant final : public Object {
+ public:
+ int32 flags_;
+ bool muted_;
+ bool left_;
+ bool can_self_unmute_;
+ bool just_joined_;
+ bool versioned_;
+ bool min_;
+ bool muted_by_you_;
+ bool volume_by_admin_;
+ bool self_;
+ bool video_joined_;
+ object_ptr<Peer> peer_;
+ int32 date_;
+ int32 active_date_;
+ int32 source_;
+ int32 volume_;
+ string about_;
+ int64 raise_hand_rating_;
+ object_ptr<groupCallParticipantVideo> video_;
+ object_ptr<groupCallParticipantVideo> presentation_;
+ enum Flags : std::int32_t { ACTIVE_DATE_MASK = 8, VOLUME_MASK = 128, ABOUT_MASK = 2048, RAISE_HAND_RATING_MASK = 8192 };
+
+ groupCallParticipant();
+
+ static const std::int32_t ID = -341428482;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<groupCallParticipant> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallParticipantVideo final : public Object {
+ public:
+ int32 flags_;
+ bool paused_;
+ string endpoint_;
+ array<object_ptr<groupCallParticipantVideoSourceGroup>> source_groups_;
+ int32 audio_source_;
+ enum Flags : std::int32_t { AUDIO_SOURCE_MASK = 2 };
+
+ groupCallParticipantVideo();
+
+ static const std::int32_t ID = 1735736008;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<groupCallParticipantVideo> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallParticipantVideoSourceGroup final : public Object {
+ public:
+ string semantics_;
+ array<int32> sources_;
+
+ static const std::int32_t ID = -592373577;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<groupCallParticipantVideoSourceGroup> fetch(TlBufferParser &p);
+
+ explicit groupCallParticipantVideoSourceGroup(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class groupCallStreamChannel final : public Object {
+ public:
+ int32 channel_;
+ int32 scale_;
+ int64 last_timestamp_ms_;
+
+ static const std::int32_t ID = -2132064081;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<groupCallStreamChannel> fetch(TlBufferParser &p);
+
+ explicit groupCallStreamChannel(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class highScore final : public Object {
+ public:
+ int32 pos_;
+ int64 user_id_;
+ int32 score_;
+
+ static const std::int32_t ID = 1940093419;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<highScore> fetch(TlBufferParser &p);
+
+ explicit highScore(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class importedContact final : public Object {
+ public:
+ int64 user_id_;
+ int64 client_id_;
+
+ static const std::int32_t ID = -1052885936;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<importedContact> fetch(TlBufferParser &p);
+
+ explicit importedContact(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineBotSwitchPM final : public Object {
+ public:
+ string text_;
+ string start_param_;
+
+ inlineBotSwitchPM(string const &text_, string const &start_param_);
+
+ static const std::int32_t ID = 1008755359;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<inlineBotSwitchPM> fetch(TlBufferParser &p);
+
+ explicit inlineBotSwitchPM(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InlineQueryPeerType: public Object {
+ public:
+
+ static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p);
+};
+
+class inlineQueryPeerTypeSameBotPM final : public InlineQueryPeerType {
+ public:
+
+ static const std::int32_t ID = 813821341;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryPeerTypePM final : public InlineQueryPeerType {
+ public:
+
+ static const std::int32_t ID = -2093215828;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryPeerTypeChat final : public InlineQueryPeerType {
+ public:
+
+ static const std::int32_t ID = -681130742;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryPeerTypeMegagroup final : public InlineQueryPeerType {
+ public:
+
+ static const std::int32_t ID = 1589952067;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inlineQueryPeerTypeBroadcast final : public InlineQueryPeerType {
+ public:
+
+ static const std::int32_t ID = 1664413338;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputAppEvent final : public Object {
+ public:
+ double time_;
+ string type_;
+ int64 peer_;
+ object_ptr<JSONValue> data_;
+
+ inputAppEvent(double time_, string const &type_, int64 peer_, object_ptr<JSONValue> &&data_);
+
+ static const std::int32_t ID = 488313413;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<inputAppEvent> fetch(TlBufferParser &p);
+
+ explicit inputAppEvent(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputBotInlineMessage: public Object {
+ public:
+};
+
+class inputBotInlineMessageMediaAuto final : public InputBotInlineMessage {
+ public:
+ int32 flags_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ enum Flags : std::int32_t { ENTITIES_MASK = 2, REPLY_MARKUP_MASK = 4 };
+
+ inputBotInlineMessageMediaAuto(int32 flags_, string const &message_, array<object_ptr<MessageEntity>> &&entities_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = 864077702;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBotInlineMessageText final : public InputBotInlineMessage {
+ public:
+ int32 flags_;
+ bool no_webpage_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ enum Flags : std::int32_t { NO_WEBPAGE_MASK = 1, ENTITIES_MASK = 2, REPLY_MARKUP_MASK = 4 };
+
+ inputBotInlineMessageText(int32 flags_, bool no_webpage_, string const &message_, array<object_ptr<MessageEntity>> &&entities_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = 1036876423;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBotInlineMessageMediaGeo final : public InputBotInlineMessage {
+ public:
+ int32 flags_;
+ object_ptr<InputGeoPoint> geo_point_;
+ int32 heading_;
+ int32 period_;
+ int32 proximity_notification_radius_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ enum Flags : std::int32_t { HEADING_MASK = 1, PERIOD_MASK = 2, PROXIMITY_NOTIFICATION_RADIUS_MASK = 8, REPLY_MARKUP_MASK = 4 };
+
+ inputBotInlineMessageMediaGeo(int32 flags_, object_ptr<InputGeoPoint> &&geo_point_, int32 heading_, int32 period_, int32 proximity_notification_radius_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = -1768777083;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBotInlineMessageMediaVenue final : public InputBotInlineMessage {
+ public:
+ int32 flags_;
+ object_ptr<InputGeoPoint> geo_point_;
+ string title_;
+ string address_;
+ string provider_;
+ string venue_id_;
+ string venue_type_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ enum Flags : std::int32_t { REPLY_MARKUP_MASK = 4 };
+
+ inputBotInlineMessageMediaVenue(int32 flags_, object_ptr<InputGeoPoint> &&geo_point_, string const &title_, string const &address_, string const &provider_, string const &venue_id_, string const &venue_type_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = 1098628881;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBotInlineMessageMediaContact final : public InputBotInlineMessage {
+ public:
+ int32 flags_;
+ string phone_number_;
+ string first_name_;
+ string last_name_;
+ string vcard_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ enum Flags : std::int32_t { REPLY_MARKUP_MASK = 4 };
+
+ inputBotInlineMessageMediaContact(int32 flags_, string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = -1494368259;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBotInlineMessageGame final : public InputBotInlineMessage {
+ public:
+ int32 flags_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ enum Flags : std::int32_t { REPLY_MARKUP_MASK = 4 };
+
+ inputBotInlineMessageGame(int32 flags_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = 1262639204;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBotInlineMessageMediaInvoice final : public InputBotInlineMessage {
+ public:
+ int32 flags_;
+ string title_;
+ string description_;
+ object_ptr<inputWebDocument> photo_;
+ object_ptr<invoice> invoice_;
+ bytes payload_;
+ string provider_;
+ object_ptr<dataJSON> provider_data_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ enum Flags : std::int32_t { PHOTO_MASK = 1, REPLY_MARKUP_MASK = 4 };
+
+ inputBotInlineMessageMediaInvoice(int32 flags_, string const &title_, string const &description_, object_ptr<inputWebDocument> &&photo_, object_ptr<invoice> &&invoice_, bytes &&payload_, string const &provider_, object_ptr<dataJSON> &&provider_data_, object_ptr<ReplyMarkup> &&reply_markup_);
+
+ static const std::int32_t ID = -672693723;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputBotInlineMessageID: public Object {
+ public:
+
+ static object_ptr<InputBotInlineMessageID> fetch(TlBufferParser &p);
+};
+
+class inputBotInlineMessageID final : public InputBotInlineMessageID {
+ public:
+ int32 dc_id_;
+ int64 id_;
+ int64 access_hash_;
+
+ inputBotInlineMessageID(int32 dc_id_, int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = -1995686519;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputBotInlineMessageID> fetch(TlBufferParser &p);
+
+ explicit inputBotInlineMessageID(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBotInlineMessageID64 final : public InputBotInlineMessageID {
+ public:
+ int32 dc_id_;
+ int64 owner_id_;
+ int32 id_;
+ int64 access_hash_;
+
+ inputBotInlineMessageID64(int32 dc_id_, int64 owner_id_, int32 id_, int64 access_hash_);
+
+ static const std::int32_t ID = -1227287081;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputBotInlineMessageID> fetch(TlBufferParser &p);
+
+ explicit inputBotInlineMessageID64(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputBotInlineResult: public Object {
+ public:
+};
+
+class inputBotInlineResult final : public InputBotInlineResult {
+ public:
+ int32 flags_;
+ string id_;
+ string type_;
+ string title_;
+ string description_;
+ string url_;
+ object_ptr<inputWebDocument> thumb_;
+ object_ptr<inputWebDocument> content_;
+ object_ptr<InputBotInlineMessage> send_message_;
+ enum Flags : std::int32_t { TITLE_MASK = 2, DESCRIPTION_MASK = 4, URL_MASK = 8, THUMB_MASK = 16, CONTENT_MASK = 32 };
+
+ inputBotInlineResult(int32 flags_, string const &id_, string const &type_, string const &title_, string const &description_, string const &url_, object_ptr<inputWebDocument> &&thumb_, object_ptr<inputWebDocument> &&content_, object_ptr<InputBotInlineMessage> &&send_message_);
+
+ static const std::int32_t ID = -2000710887;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBotInlineResultPhoto final : public InputBotInlineResult {
+ public:
+ string id_;
+ string type_;
+ object_ptr<InputPhoto> photo_;
+ object_ptr<InputBotInlineMessage> send_message_;
+
+ inputBotInlineResultPhoto(string const &id_, string const &type_, object_ptr<InputPhoto> &&photo_, object_ptr<InputBotInlineMessage> &&send_message_);
+
+ static const std::int32_t ID = -1462213465;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBotInlineResultDocument final : public InputBotInlineResult {
+ public:
+ int32 flags_;
+ string id_;
+ string type_;
+ string title_;
+ string description_;
+ object_ptr<InputDocument> document_;
+ object_ptr<InputBotInlineMessage> send_message_;
+ enum Flags : std::int32_t { TITLE_MASK = 2, DESCRIPTION_MASK = 4 };
+
+ inputBotInlineResultDocument(int32 flags_, string const &id_, string const &type_, string const &title_, string const &description_, object_ptr<InputDocument> &&document_, object_ptr<InputBotInlineMessage> &&send_message_);
+
+ static const std::int32_t ID = -459324;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputBotInlineResultGame final : public InputBotInlineResult {
+ public:
+ string id_;
+ string short_name_;
+ object_ptr<InputBotInlineMessage> send_message_;
+
+ inputBotInlineResultGame(string const &id_, string const &short_name_, object_ptr<InputBotInlineMessage> &&send_message_);
+
+ static const std::int32_t ID = 1336154098;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputChannel: public Object {
+ public:
+
+ static object_ptr<InputChannel> fetch(TlBufferParser &p);
+};
+
+class inputChannelEmpty final : public InputChannel {
+ public:
+
+ static const std::int32_t ID = -292807034;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputChannel> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputChannel final : public InputChannel {
+ public:
+ int64 channel_id_;
+ int64 access_hash_;
+
+ inputChannel(int64 channel_id_, int64 access_hash_);
+
+ static const std::int32_t ID = -212145112;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputChannel> fetch(TlBufferParser &p);
+
+ explicit inputChannel(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputChannelFromMessage final : public InputChannel {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ int64 channel_id_;
+
+ inputChannelFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 channel_id_);
+
+ static const std::int32_t ID = 1536380829;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputChannel> fetch(TlBufferParser &p);
+
+ explicit inputChannelFromMessage(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputChatPhoto: public Object {
+ public:
+};
+
+class inputChatPhotoEmpty final : public InputChatPhoto {
+ public:
+
+ static const std::int32_t ID = 480546647;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputChatUploadedPhoto final : public InputChatPhoto {
+ public:
+ int32 flags_;
+ object_ptr<InputFile> file_;
+ object_ptr<InputFile> video_;
+ double video_start_ts_;
+ enum Flags : std::int32_t { FILE_MASK = 1, VIDEO_MASK = 2, VIDEO_START_TS_MASK = 4 };
+
+ inputChatUploadedPhoto(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&video_, double video_start_ts_);
+
+ static const std::int32_t ID = -968723890;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputChatPhoto final : public InputChatPhoto {
+ public:
+ object_ptr<InputPhoto> id_;
+
+ explicit inputChatPhoto(object_ptr<InputPhoto> &&id_);
+
+ static const std::int32_t ID = -1991004873;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputCheckPasswordSRP: public Object {
+ public:
+};
+
+class inputCheckPasswordEmpty final : public InputCheckPasswordSRP {
+ public:
+
+ static const std::int32_t ID = -1736378792;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputCheckPasswordSRP final : public InputCheckPasswordSRP {
+ public:
+ int64 srp_id_;
+ bytes A_;
+ bytes M1_;
+
+ inputCheckPasswordSRP(int64 srp_id_, bytes &&A_, bytes &&M1_);
+
+ static const std::int32_t ID = -763367294;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputClientProxy final : public Object {
+ public:
+ string address_;
+ int32 port_;
+
+ static const std::int32_t ID = 1968737087;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPhoneContact final : public Object {
+ public:
+ int64 client_id_;
+ string phone_;
+ string first_name_;
+ string last_name_;
+
+ inputPhoneContact(int64 client_id_, string const &phone_, string const &first_name_, string const &last_name_);
+
+ static const std::int32_t ID = -208488460;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputDialogPeer: public Object {
+ public:
+};
+
+class inputDialogPeer final : public InputDialogPeer {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit inputDialogPeer(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = -55902537;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputDialogPeerFolder final : public InputDialogPeer {
+ public:
+ int32 folder_id_;
+
+ explicit inputDialogPeerFolder(int32 folder_id_);
+
+ static const std::int32_t ID = 1684014375;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputDocument: public Object {
+ public:
+};
+
+class inputDocumentEmpty final : public InputDocument {
+ public:
+
+ static const std::int32_t ID = 1928391342;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputDocument final : public InputDocument {
+ public:
+ int64 id_;
+ int64 access_hash_;
+ bytes file_reference_;
+
+ inputDocument(int64 id_, int64 access_hash_, bytes &&file_reference_);
+
+ static const std::int32_t ID = 448771445;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputEncryptedChat final : public Object {
+ public:
+ int32 chat_id_;
+ int64 access_hash_;
+
+ inputEncryptedChat(int32 chat_id_, int64 access_hash_);
+
+ static const std::int32_t ID = -247351839;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputEncryptedFile: public Object {
+ public:
+};
+
+class inputEncryptedFileEmpty final : public InputEncryptedFile {
+ public:
+
+ static const std::int32_t ID = 406307684;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputEncryptedFileUploaded final : public InputEncryptedFile {
+ public:
+ int64 id_;
+ int32 parts_;
+ string md5_checksum_;
+ int32 key_fingerprint_;
+
+ inputEncryptedFileUploaded(int64 id_, int32 parts_, string const &md5_checksum_, int32 key_fingerprint_);
+
+ static const std::int32_t ID = 1690108678;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputEncryptedFile final : public InputEncryptedFile {
+ public:
+ int64 id_;
+ int64 access_hash_;
+
+ inputEncryptedFile(int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = 1511503333;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputEncryptedFileBigUploaded final : public InputEncryptedFile {
+ public:
+ int64 id_;
+ int32 parts_;
+ int32 key_fingerprint_;
+
+ inputEncryptedFileBigUploaded(int64 id_, int32 parts_, int32 key_fingerprint_);
+
+ static const std::int32_t ID = 767652808;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputFile: public Object {
+ public:
+};
+
+class inputFile final : public InputFile {
+ public:
+ int64 id_;
+ int32 parts_;
+ string name_;
+ string md5_checksum_;
+
+ inputFile(int64 id_, int32 parts_, string const &name_, string const &md5_checksum_);
+
+ static const std::int32_t ID = -181407105;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputFileBig final : public InputFile {
+ public:
+ int64 id_;
+ int32 parts_;
+ string name_;
+
+ inputFileBig(int64 id_, int32 parts_, string const &name_);
+
+ static const std::int32_t ID = -95482955;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputFileLocation: public Object {
+ public:
+};
+
+class inputPeerPhotoFileLocationLegacy final : public InputFileLocation {
+ public:
+ int32 flags_;
+ bool big_;
+ object_ptr<InputPeer> peer_;
+ int64 volume_id_;
+ int32 local_id_;
+ enum Flags : std::int32_t { BIG_MASK = 1 };
+
+ inputPeerPhotoFileLocationLegacy(int32 flags_, bool big_, object_ptr<InputPeer> &&peer_, int64 volume_id_, int32 local_id_);
+
+ static const std::int32_t ID = 668375447;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetThumbLegacy final : public InputFileLocation {
+ public:
+ object_ptr<InputStickerSet> stickerset_;
+ int64 volume_id_;
+ int32 local_id_;
+
+ inputStickerSetThumbLegacy(object_ptr<InputStickerSet> &&stickerset_, int64 volume_id_, int32 local_id_);
+
+ static const std::int32_t ID = 230353641;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputFileLocation final : public InputFileLocation {
+ public:
+ int64 volume_id_;
+ int32 local_id_;
+ int64 secret_;
+ bytes file_reference_;
+
+ inputFileLocation(int64 volume_id_, int32 local_id_, int64 secret_, bytes &&file_reference_);
+
+ static const std::int32_t ID = -539317279;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputEncryptedFileLocation final : public InputFileLocation {
+ public:
+ int64 id_;
+ int64 access_hash_;
+
+ inputEncryptedFileLocation(int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = -182231723;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputDocumentFileLocation final : public InputFileLocation {
+ public:
+ int64 id_;
+ int64 access_hash_;
+ bytes file_reference_;
+ string thumb_size_;
+
+ inputDocumentFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, string const &thumb_size_);
+
+ static const std::int32_t ID = -1160743548;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputSecureFileLocation final : public InputFileLocation {
+ public:
+ int64 id_;
+ int64 access_hash_;
+
+ inputSecureFileLocation(int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = -876089816;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputTakeoutFileLocation final : public InputFileLocation {
+ public:
+
+ static const std::int32_t ID = 700340377;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPhotoFileLocation final : public InputFileLocation {
+ public:
+ int64 id_;
+ int64 access_hash_;
+ bytes file_reference_;
+ string thumb_size_;
+
+ inputPhotoFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, string const &thumb_size_);
+
+ static const std::int32_t ID = 1075322878;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPhotoLegacyFileLocation final : public InputFileLocation {
+ public:
+ int64 id_;
+ int64 access_hash_;
+ bytes file_reference_;
+ int64 volume_id_;
+ int32 local_id_;
+ int64 secret_;
+
+ inputPhotoLegacyFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, int64 volume_id_, int32 local_id_, int64 secret_);
+
+ static const std::int32_t ID = -667654413;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPeerPhotoFileLocation final : public InputFileLocation {
+ public:
+ int32 flags_;
+ bool big_;
+ object_ptr<InputPeer> peer_;
+ int64 photo_id_;
+ enum Flags : std::int32_t { BIG_MASK = 1 };
+
+ inputPeerPhotoFileLocation(int32 flags_, bool big_, object_ptr<InputPeer> &&peer_, int64 photo_id_);
+
+ static const std::int32_t ID = 925204121;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetThumb final : public InputFileLocation {
+ public:
+ object_ptr<InputStickerSet> stickerset_;
+ int32 thumb_version_;
+
+ inputStickerSetThumb(object_ptr<InputStickerSet> &&stickerset_, int32 thumb_version_);
+
+ static const std::int32_t ID = -1652231205;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputGroupCallStream final : public InputFileLocation {
+ public:
+ int32 flags_;
+ object_ptr<inputGroupCall> call_;
+ int64 time_ms_;
+ int32 scale_;
+ int32 video_channel_;
+ int32 video_quality_;
+ enum Flags : std::int32_t { VIDEO_CHANNEL_MASK = 1, VIDEO_QUALITY_MASK = 1 };
+
+ inputGroupCallStream(int32 flags_, object_ptr<inputGroupCall> &&call_, int64 time_ms_, int32 scale_, int32 video_channel_, int32 video_quality_);
+
+ static const std::int32_t ID = 93890858;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputFolderPeer final : public Object {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 folder_id_;
+
+ inputFolderPeer(object_ptr<InputPeer> &&peer_, int32 folder_id_);
+
+ static const std::int32_t ID = -70073706;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputGame: public Object {
+ public:
+};
+
+class inputGameID final : public InputGame {
+ public:
+ int64 id_;
+ int64 access_hash_;
+
+ inputGameID(int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = 53231223;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputGameShortName final : public InputGame {
+ public:
+ object_ptr<InputUser> bot_id_;
+ string short_name_;
+
+ inputGameShortName(object_ptr<InputUser> &&bot_id_, string const &short_name_);
+
+ static const std::int32_t ID = -1020139510;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputGeoPoint: public Object {
+ public:
+};
+
+class inputGeoPointEmpty final : public InputGeoPoint {
+ public:
+
+ static const std::int32_t ID = -457104426;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputGeoPoint final : public InputGeoPoint {
+ public:
+ int32 flags_;
+ double lat_;
+ double long_;
+ int32 accuracy_radius_;
+ enum Flags : std::int32_t { ACCURACY_RADIUS_MASK = 1 };
+
+ inputGeoPoint(int32 flags_, double lat_, double long_, int32 accuracy_radius_);
+
+ static const std::int32_t ID = 1210199983;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputGroupCall final : public Object {
+ public:
+ int64 id_;
+ int64 access_hash_;
+
+ inputGroupCall(int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = -659913713;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<inputGroupCall> fetch(TlBufferParser &p);
+
+ explicit inputGroupCall(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputInvoice: public Object {
+ public:
+};
+
+class inputInvoiceMessage final : public InputInvoice {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+
+ inputInvoiceMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_);
+
+ static const std::int32_t ID = -977967015;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputInvoiceSlug final : public InputInvoice {
+ public:
+ string slug_;
+
+ explicit inputInvoiceSlug(string const &slug_);
+
+ static const std::int32_t ID = -1020867857;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputMedia: public Object {
+ public:
+};
+
+class inputMediaEmpty final : public InputMedia {
+ public:
+
+ static const std::int32_t ID = -1771768449;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaUploadedPhoto final : public InputMedia {
+ public:
+ int32 flags_;
+ object_ptr<InputFile> file_;
+ array<object_ptr<InputDocument>> stickers_;
+ int32 ttl_seconds_;
+ enum Flags : std::int32_t { STICKERS_MASK = 1, TTL_SECONDS_MASK = 2 };
+
+ inputMediaUploadedPhoto(int32 flags_, object_ptr<InputFile> &&file_, array<object_ptr<InputDocument>> &&stickers_, int32 ttl_seconds_);
+
+ static const std::int32_t ID = 505969924;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaPhoto final : public InputMedia {
+ public:
+ int32 flags_;
+ object_ptr<InputPhoto> id_;
+ int32 ttl_seconds_;
+ enum Flags : std::int32_t { TTL_SECONDS_MASK = 1 };
+
+ inputMediaPhoto(int32 flags_, object_ptr<InputPhoto> &&id_, int32 ttl_seconds_);
+
+ static const std::int32_t ID = -1279654347;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaGeoPoint final : public InputMedia {
+ public:
+ object_ptr<InputGeoPoint> geo_point_;
+
+ explicit inputMediaGeoPoint(object_ptr<InputGeoPoint> &&geo_point_);
+
+ static const std::int32_t ID = -104578748;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaContact final : public InputMedia {
+ public:
+ string phone_number_;
+ string first_name_;
+ string last_name_;
+ string vcard_;
+
+ inputMediaContact(string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_);
+
+ static const std::int32_t ID = -122978821;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaUploadedDocument final : public InputMedia {
+ public:
+ int32 flags_;
+ bool nosound_video_;
+ bool force_file_;
+ object_ptr<InputFile> file_;
+ object_ptr<InputFile> thumb_;
+ string mime_type_;
+ array<object_ptr<DocumentAttribute>> attributes_;
+ array<object_ptr<InputDocument>> stickers_;
+ int32 ttl_seconds_;
+ enum Flags : std::int32_t { NOSOUND_VIDEO_MASK = 8, FORCE_FILE_MASK = 16, THUMB_MASK = 4, STICKERS_MASK = 1, TTL_SECONDS_MASK = 2 };
+
+ inputMediaUploadedDocument(int32 flags_, bool nosound_video_, bool force_file_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&thumb_, string const &mime_type_, array<object_ptr<DocumentAttribute>> &&attributes_, array<object_ptr<InputDocument>> &&stickers_, int32 ttl_seconds_);
+
+ static const std::int32_t ID = 1530447553;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaDocument final : public InputMedia {
+ public:
+ int32 flags_;
+ object_ptr<InputDocument> id_;
+ int32 ttl_seconds_;
+ string query_;
+ enum Flags : std::int32_t { TTL_SECONDS_MASK = 1, QUERY_MASK = 2 };
+
+ inputMediaDocument(int32 flags_, object_ptr<InputDocument> &&id_, int32 ttl_seconds_, string const &query_);
+
+ static const std::int32_t ID = 860303448;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaVenue final : public InputMedia {
+ public:
+ object_ptr<InputGeoPoint> geo_point_;
+ string title_;
+ string address_;
+ string provider_;
+ string venue_id_;
+ string venue_type_;
+
+ inputMediaVenue(object_ptr<InputGeoPoint> &&geo_point_, string const &title_, string const &address_, string const &provider_, string const &venue_id_, string const &venue_type_);
+
+ static const std::int32_t ID = -1052959727;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaPhotoExternal final : public InputMedia {
+ public:
+ int32 flags_;
+ string url_;
+ int32 ttl_seconds_;
+ enum Flags : std::int32_t { TTL_SECONDS_MASK = 1 };
+
+ inputMediaPhotoExternal(int32 flags_, string const &url_, int32 ttl_seconds_);
+
+ static const std::int32_t ID = -440664550;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaDocumentExternal final : public InputMedia {
+ public:
+ int32 flags_;
+ string url_;
+ int32 ttl_seconds_;
+ enum Flags : std::int32_t { TTL_SECONDS_MASK = 1 };
+
+ inputMediaDocumentExternal(int32 flags_, string const &url_, int32 ttl_seconds_);
+
+ static const std::int32_t ID = -78455655;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaGame final : public InputMedia {
+ public:
+ object_ptr<InputGame> id_;
+
+ explicit inputMediaGame(object_ptr<InputGame> &&id_);
+
+ static const std::int32_t ID = -750828557;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaInvoice final : public InputMedia {
+ public:
+ int32 flags_;
+ string title_;
+ string description_;
+ object_ptr<inputWebDocument> photo_;
+ object_ptr<invoice> invoice_;
+ bytes payload_;
+ string provider_;
+ object_ptr<dataJSON> provider_data_;
+ string start_param_;
+ object_ptr<InputMedia> extended_media_;
+ enum Flags : std::int32_t { PHOTO_MASK = 1, START_PARAM_MASK = 2, EXTENDED_MEDIA_MASK = 4 };
+
+ inputMediaInvoice(int32 flags_, string const &title_, string const &description_, object_ptr<inputWebDocument> &&photo_, object_ptr<invoice> &&invoice_, bytes &&payload_, string const &provider_, object_ptr<dataJSON> &&provider_data_, string const &start_param_, object_ptr<InputMedia> &&extended_media_);
+
+ static const std::int32_t ID = -1900697899;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaGeoLive final : public InputMedia {
+ public:
+ int32 flags_;
+ bool stopped_;
+ object_ptr<InputGeoPoint> geo_point_;
+ int32 heading_;
+ int32 period_;
+ int32 proximity_notification_radius_;
+ enum Flags : std::int32_t { STOPPED_MASK = 1, HEADING_MASK = 4, PERIOD_MASK = 2, PROXIMITY_NOTIFICATION_RADIUS_MASK = 8 };
+
+ inputMediaGeoLive(int32 flags_, bool stopped_, object_ptr<InputGeoPoint> &&geo_point_, int32 heading_, int32 period_, int32 proximity_notification_radius_);
+
+ static const std::int32_t ID = -1759532989;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaPoll final : public InputMedia {
+ public:
+ int32 flags_;
+ object_ptr<poll> poll_;
+ array<bytes> correct_answers_;
+ string solution_;
+ array<object_ptr<MessageEntity>> solution_entities_;
+ enum Flags : std::int32_t { CORRECT_ANSWERS_MASK = 1, SOLUTION_MASK = 2, SOLUTION_ENTITIES_MASK = 2 };
+
+ inputMediaPoll(int32 flags_, object_ptr<poll> &&poll_, array<bytes> &&correct_answers_, string const &solution_, array<object_ptr<MessageEntity>> &&solution_entities_);
+
+ static const std::int32_t ID = 261416433;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMediaDice final : public InputMedia {
+ public:
+ string emoticon_;
+
+ explicit inputMediaDice(string const &emoticon_);
+
+ static const std::int32_t ID = -428884101;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputMessage: public Object {
+ public:
+};
+
+class inputMessageID final : public InputMessage {
+ public:
+ int32 id_;
+
+ explicit inputMessageID(int32 id_);
+
+ static const std::int32_t ID = -1502174430;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageReplyTo final : public InputMessage {
+ public:
+ int32 id_;
+
+ explicit inputMessageReplyTo(int32 id_);
+
+ static const std::int32_t ID = -1160215659;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagePinned final : public InputMessage {
+ public:
+
+ static const std::int32_t ID = -2037963464;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageCallbackQuery final : public InputMessage {
+ public:
+ int32 id_;
+ int64 query_id_;
+
+ inputMessageCallbackQuery(int32 id_, int64 query_id_);
+
+ static const std::int32_t ID = -1392895362;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputNotifyPeer: public Object {
+ public:
+};
+
+class inputNotifyPeer final : public InputNotifyPeer {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit inputNotifyPeer(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = -1195615476;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputNotifyUsers final : public InputNotifyPeer {
+ public:
+
+ static const std::int32_t ID = 423314455;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputNotifyChats final : public InputNotifyPeer {
+ public:
+
+ static const std::int32_t ID = 1251338318;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputNotifyBroadcasts final : public InputNotifyPeer {
+ public:
+
+ static const std::int32_t ID = -1311015810;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputNotifyForumTopic final : public InputNotifyPeer {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 top_msg_id_;
+
+ inputNotifyForumTopic(object_ptr<InputPeer> &&peer_, int32 top_msg_id_);
+
+ static const std::int32_t ID = 1548122514;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputPaymentCredentials: public Object {
+ public:
+};
+
+class inputPaymentCredentialsSaved final : public InputPaymentCredentials {
+ public:
+ string id_;
+ bytes tmp_password_;
+
+ inputPaymentCredentialsSaved(string const &id_, bytes &&tmp_password_);
+
+ static const std::int32_t ID = -1056001329;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPaymentCredentials final : public InputPaymentCredentials {
+ public:
+ int32 flags_;
+ bool save_;
+ object_ptr<dataJSON> data_;
+ enum Flags : std::int32_t { SAVE_MASK = 1 };
+
+ inputPaymentCredentials(int32 flags_, bool save_, object_ptr<dataJSON> &&data_);
+
+ static const std::int32_t ID = 873977640;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPaymentCredentialsApplePay final : public InputPaymentCredentials {
+ public:
+ object_ptr<dataJSON> payment_data_;
+
+ explicit inputPaymentCredentialsApplePay(object_ptr<dataJSON> &&payment_data_);
+
+ static const std::int32_t ID = 178373535;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPaymentCredentialsGooglePay final : public InputPaymentCredentials {
+ public:
+ object_ptr<dataJSON> payment_token_;
+
+ explicit inputPaymentCredentialsGooglePay(object_ptr<dataJSON> &&payment_token_);
+
+ static const std::int32_t ID = -1966921727;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputPeer: public Object {
+ public:
+
+ static object_ptr<InputPeer> fetch(TlBufferParser &p);
+};
+
+class inputPeerEmpty final : public InputPeer {
+ public:
+
+ static const std::int32_t ID = 2134579434;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputPeer> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPeerSelf final : public InputPeer {
+ public:
+
+ static const std::int32_t ID = 2107670217;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputPeer> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPeerChat final : public InputPeer {
+ public:
+ int64 chat_id_;
+
+ explicit inputPeerChat(int64 chat_id_);
+
+ static const std::int32_t ID = 900291769;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputPeer> fetch(TlBufferParser &p);
+
+ explicit inputPeerChat(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPeerUser final : public InputPeer {
+ public:
+ int64 user_id_;
+ int64 access_hash_;
+
+ inputPeerUser(int64 user_id_, int64 access_hash_);
+
+ static const std::int32_t ID = -571955892;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputPeer> fetch(TlBufferParser &p);
+
+ explicit inputPeerUser(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPeerChannel final : public InputPeer {
+ public:
+ int64 channel_id_;
+ int64 access_hash_;
+
+ inputPeerChannel(int64 channel_id_, int64 access_hash_);
+
+ static const std::int32_t ID = 666680316;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputPeer> fetch(TlBufferParser &p);
+
+ explicit inputPeerChannel(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPeerUserFromMessage final : public InputPeer {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ int64 user_id_;
+
+ inputPeerUserFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 user_id_);
+
+ static const std::int32_t ID = -1468331492;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputPeer> fetch(TlBufferParser &p);
+
+ explicit inputPeerUserFromMessage(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPeerChannelFromMessage final : public InputPeer {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ int64 channel_id_;
+
+ inputPeerChannelFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 channel_id_);
+
+ static const std::int32_t ID = -1121318848;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputPeer> fetch(TlBufferParser &p);
+
+ explicit inputPeerChannelFromMessage(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPeerNotifySettings final : public Object {
+ public:
+ int32 flags_;
+ bool show_previews_;
+ bool silent_;
+ int32 mute_until_;
+ object_ptr<NotificationSound> sound_;
+ enum Flags : std::int32_t { SHOW_PREVIEWS_MASK = 1, SILENT_MASK = 2, MUTE_UNTIL_MASK = 4, SOUND_MASK = 8 };
+
+ inputPeerNotifySettings(int32 flags_, bool show_previews_, bool silent_, int32 mute_until_, object_ptr<NotificationSound> &&sound_);
+
+ static const std::int32_t ID = -551616469;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPhoneCall final : public Object {
+ public:
+ int64 id_;
+ int64 access_hash_;
+
+ inputPhoneCall(int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = 506920429;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputPhoto: public Object {
+ public:
+};
+
+class inputPhotoEmpty final : public InputPhoto {
+ public:
+
+ static const std::int32_t ID = 483901197;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPhoto final : public InputPhoto {
+ public:
+ int64 id_;
+ int64 access_hash_;
+ bytes file_reference_;
+
+ inputPhoto(int64 id_, int64 access_hash_, bytes &&file_reference_);
+
+ static const std::int32_t ID = 1001634122;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputPrivacyKey: public Object {
+ public:
+};
+
+class inputPrivacyKeyStatusTimestamp final : public InputPrivacyKey {
+ public:
+
+ static const std::int32_t ID = 1335282456;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyKeyChatInvite final : public InputPrivacyKey {
+ public:
+
+ static const std::int32_t ID = -1107622874;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyKeyPhoneCall final : public InputPrivacyKey {
+ public:
+
+ static const std::int32_t ID = -88417185;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyKeyPhoneP2P final : public InputPrivacyKey {
+ public:
+
+ static const std::int32_t ID = -610373422;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyKeyForwards final : public InputPrivacyKey {
+ public:
+
+ static const std::int32_t ID = -1529000952;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyKeyProfilePhoto final : public InputPrivacyKey {
+ public:
+
+ static const std::int32_t ID = 1461304012;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyKeyPhoneNumber final : public InputPrivacyKey {
+ public:
+
+ static const std::int32_t ID = 55761658;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyKeyAddedByPhone final : public InputPrivacyKey {
+ public:
+
+ static const std::int32_t ID = -786326563;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyKeyVoiceMessages final : public InputPrivacyKey {
+ public:
+
+ static const std::int32_t ID = -1360618136;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputPrivacyRule: public Object {
+ public:
+};
+
+class inputPrivacyValueAllowContacts final : public InputPrivacyRule {
+ public:
+
+ static const std::int32_t ID = 218751099;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyValueAllowAll final : public InputPrivacyRule {
+ public:
+
+ static const std::int32_t ID = 407582158;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyValueAllowUsers final : public InputPrivacyRule {
+ public:
+ array<object_ptr<InputUser>> users_;
+
+ explicit inputPrivacyValueAllowUsers(array<object_ptr<InputUser>> &&users_);
+
+ static const std::int32_t ID = 320652927;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyValueDisallowContacts final : public InputPrivacyRule {
+ public:
+
+ static const std::int32_t ID = 195371015;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyValueDisallowAll final : public InputPrivacyRule {
+ public:
+
+ static const std::int32_t ID = -697604407;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyValueDisallowUsers final : public InputPrivacyRule {
+ public:
+ array<object_ptr<InputUser>> users_;
+
+ explicit inputPrivacyValueDisallowUsers(array<object_ptr<InputUser>> &&users_);
+
+ static const std::int32_t ID = -1877932953;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyValueAllowChatParticipants final : public InputPrivacyRule {
+ public:
+ array<int64> chats_;
+
+ explicit inputPrivacyValueAllowChatParticipants(array<int64> &&chats_);
+
+ static const std::int32_t ID = -2079962673;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputPrivacyValueDisallowChatParticipants final : public InputPrivacyRule {
+ public:
+ array<int64> chats_;
+
+ explicit inputPrivacyValueDisallowChatParticipants(array<int64> &&chats_);
+
+ static const std::int32_t ID = -380694650;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputSecureFile: public Object {
+ public:
+};
+
+class inputSecureFileUploaded final : public InputSecureFile {
+ public:
+ int64 id_;
+ int32 parts_;
+ string md5_checksum_;
+ bytes file_hash_;
+ bytes secret_;
+
+ inputSecureFileUploaded(int64 id_, int32 parts_, string const &md5_checksum_, bytes &&file_hash_, bytes &&secret_);
+
+ static const std::int32_t ID = 859091184;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputSecureFile final : public InputSecureFile {
+ public:
+ int64 id_;
+ int64 access_hash_;
+
+ inputSecureFile(int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = 1399317950;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputSecureValue final : public Object {
+ public:
+ int32 flags_;
+ object_ptr<SecureValueType> type_;
+ object_ptr<secureData> data_;
+ object_ptr<InputSecureFile> front_side_;
+ object_ptr<InputSecureFile> reverse_side_;
+ object_ptr<InputSecureFile> selfie_;
+ array<object_ptr<InputSecureFile>> translation_;
+ array<object_ptr<InputSecureFile>> files_;
+ object_ptr<SecurePlainData> plain_data_;
+ enum Flags : std::int32_t { DATA_MASK = 1, FRONT_SIDE_MASK = 2, REVERSE_SIDE_MASK = 4, SELFIE_MASK = 8, TRANSLATION_MASK = 64, FILES_MASK = 16, PLAIN_DATA_MASK = 32 };
+
+ inputSecureValue(int32 flags_, object_ptr<SecureValueType> &&type_, object_ptr<secureData> &&data_, object_ptr<InputSecureFile> &&front_side_, object_ptr<InputSecureFile> &&reverse_side_, object_ptr<InputSecureFile> &&selfie_, array<object_ptr<InputSecureFile>> &&translation_, array<object_ptr<InputSecureFile>> &&files_, object_ptr<SecurePlainData> &&plain_data_);
+
+ static const std::int32_t ID = -618540889;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputSingleMedia final : public Object {
+ public:
+ int32 flags_;
+ object_ptr<InputMedia> media_;
+ int64 random_id_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+ enum Flags : std::int32_t { ENTITIES_MASK = 1 };
+
+ inputSingleMedia(int32 flags_, object_ptr<InputMedia> &&media_, int64 random_id_, string const &message_, array<object_ptr<MessageEntity>> &&entities_);
+
+ static const std::int32_t ID = 482797855;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputStickerSet: public Object {
+ public:
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+};
+
+class inputStickerSetEmpty final : public InputStickerSet {
+ public:
+
+ static const std::int32_t ID = -4838507;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetID final : public InputStickerSet {
+ public:
+ int64 id_;
+ int64 access_hash_;
+
+ inputStickerSetID(int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = -1645763991;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+
+ explicit inputStickerSetID(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetShortName final : public InputStickerSet {
+ public:
+ string short_name_;
+
+ explicit inputStickerSetShortName(string const &short_name_);
+
+ static const std::int32_t ID = -2044933984;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+
+ explicit inputStickerSetShortName(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetAnimatedEmoji final : public InputStickerSet {
+ public:
+
+ static const std::int32_t ID = 42402760;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetDice final : public InputStickerSet {
+ public:
+ string emoticon_;
+
+ explicit inputStickerSetDice(string const &emoticon_);
+
+ static const std::int32_t ID = -427863538;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+
+ explicit inputStickerSetDice(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetAnimatedEmojiAnimations final : public InputStickerSet {
+ public:
+
+ static const std::int32_t ID = 215889721;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetPremiumGifts final : public InputStickerSet {
+ public:
+
+ static const std::int32_t ID = -930399486;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetEmojiGenericAnimations final : public InputStickerSet {
+ public:
+
+ static const std::int32_t ID = 80008398;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetEmojiDefaultStatuses final : public InputStickerSet {
+ public:
+
+ static const std::int32_t ID = 701560302;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetEmojiDefaultTopicIcons final : public InputStickerSet {
+ public:
+
+ static const std::int32_t ID = 1153562857;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputStickerSet> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickerSetItem final : public Object {
+ public:
+ int32 flags_;
+ object_ptr<InputDocument> document_;
+ string emoji_;
+ object_ptr<maskCoords> mask_coords_;
+ enum Flags : std::int32_t { MASK_COORDS_MASK = 1 };
+
+ inputStickerSetItem(int32 flags_, object_ptr<InputDocument> &&document_, string const &emoji_, object_ptr<maskCoords> &&mask_coords_);
+
+ static const std::int32_t ID = -6249322;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputStickeredMedia: public Object {
+ public:
+};
+
+class inputStickeredMediaPhoto final : public InputStickeredMedia {
+ public:
+ object_ptr<InputPhoto> id_;
+
+ explicit inputStickeredMediaPhoto(object_ptr<InputPhoto> &&id_);
+
+ static const std::int32_t ID = 1251549527;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStickeredMediaDocument final : public InputStickeredMedia {
+ public:
+ object_ptr<InputDocument> id_;
+
+ explicit inputStickeredMediaDocument(object_ptr<InputDocument> &&id_);
+
+ static const std::int32_t ID = 70813275;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputStorePaymentPurpose: public Object {
+ public:
+};
+
+class inputStorePaymentPremiumSubscription final : public InputStorePaymentPurpose {
+ public:
+ int32 flags_;
+ bool restore_;
+ enum Flags : std::int32_t { RESTORE_MASK = 1 };
+
+ inputStorePaymentPremiumSubscription(int32 flags_, bool restore_);
+
+ static const std::int32_t ID = -1502273946;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputStorePaymentGiftPremium final : public InputStorePaymentPurpose {
+ public:
+ object_ptr<InputUser> user_id_;
+ string currency_;
+ int64 amount_;
+
+ inputStorePaymentGiftPremium(object_ptr<InputUser> &&user_id_, string const &currency_, int64 amount_);
+
+ static const std::int32_t ID = 1634697192;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputTheme: public Object {
+ public:
+};
+
+class inputTheme final : public InputTheme {
+ public:
+ int64 id_;
+ int64 access_hash_;
+
+ inputTheme(int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = 1012306921;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputThemeSlug final : public InputTheme {
+ public:
+ string slug_;
+
+ explicit inputThemeSlug(string const &slug_);
+
+ static const std::int32_t ID = -175567375;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputThemeSettings final : public Object {
+ public:
+ int32 flags_;
+ bool message_colors_animated_;
+ object_ptr<BaseTheme> base_theme_;
+ int32 accent_color_;
+ int32 outbox_accent_color_;
+ array<int32> message_colors_;
+ object_ptr<InputWallPaper> wallpaper_;
+ object_ptr<wallPaperSettings> wallpaper_settings_;
+ enum Flags : std::int32_t { MESSAGE_COLORS_ANIMATED_MASK = 4, OUTBOX_ACCENT_COLOR_MASK = 8, MESSAGE_COLORS_MASK = 1, WALLPAPER_MASK = 2, WALLPAPER_SETTINGS_MASK = 2 };
+
+ inputThemeSettings(int32 flags_, bool message_colors_animated_, object_ptr<BaseTheme> &&base_theme_, int32 accent_color_, int32 outbox_accent_color_, array<int32> &&message_colors_, object_ptr<InputWallPaper> &&wallpaper_, object_ptr<wallPaperSettings> &&wallpaper_settings_);
+
+ static const std::int32_t ID = -1881255857;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputUser: public Object {
+ public:
+
+ static object_ptr<InputUser> fetch(TlBufferParser &p);
+};
+
+class inputUserEmpty final : public InputUser {
+ public:
+
+ static const std::int32_t ID = -1182234929;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputUser> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputUserSelf final : public InputUser {
+ public:
+
+ static const std::int32_t ID = -138301121;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputUser> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputUser final : public InputUser {
+ public:
+ int64 user_id_;
+ int64 access_hash_;
+
+ inputUser(int64 user_id_, int64 access_hash_);
+
+ static const std::int32_t ID = -233744186;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputUser> fetch(TlBufferParser &p);
+
+ explicit inputUser(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputUserFromMessage final : public InputUser {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ int64 user_id_;
+
+ inputUserFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 user_id_);
+
+ static const std::int32_t ID = 497305826;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<InputUser> fetch(TlBufferParser &p);
+
+ explicit inputUserFromMessage(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputWallPaper: public Object {
+ public:
+};
+
+class inputWallPaper final : public InputWallPaper {
+ public:
+ int64 id_;
+ int64 access_hash_;
+
+ inputWallPaper(int64 id_, int64 access_hash_);
+
+ static const std::int32_t ID = -433014407;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputWallPaperSlug final : public InputWallPaper {
+ public:
+ string slug_;
+
+ explicit inputWallPaperSlug(string const &slug_);
+
+ static const std::int32_t ID = 1913199744;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputWallPaperNoFile final : public InputWallPaper {
+ public:
+ int64 id_;
+
+ explicit inputWallPaperNoFile(int64 id_);
+
+ static const std::int32_t ID = -1770371538;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputWebDocument final : public Object {
+ public:
+ string url_;
+ int32 size_;
+ string mime_type_;
+ array<object_ptr<DocumentAttribute>> attributes_;
+
+ inputWebDocument(string const &url_, int32 size_, string const &mime_type_, array<object_ptr<DocumentAttribute>> &&attributes_);
+
+ static const std::int32_t ID = -1678949555;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class InputWebFileLocation: public Object {
+ public:
+};
+
+class inputWebFileLocation final : public InputWebFileLocation {
+ public:
+ string url_;
+ int64 access_hash_;
+
+ inputWebFileLocation(string const &url_, int64 access_hash_);
+
+ static const std::int32_t ID = -1036396922;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputWebFileGeoPointLocation final : public InputWebFileLocation {
+ public:
+ object_ptr<InputGeoPoint> geo_point_;
+ int64 access_hash_;
+ int32 w_;
+ int32 h_;
+ int32 zoom_;
+ int32 scale_;
+
+ inputWebFileGeoPointLocation(object_ptr<InputGeoPoint> &&geo_point_, int64 access_hash_, int32 w_, int32 h_, int32 zoom_, int32 scale_);
+
+ static const std::int32_t ID = -1625153079;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputWebFileAudioAlbumThumbLocation final : public InputWebFileLocation {
+ public:
+ int32 flags_;
+ bool small_;
+ object_ptr<InputDocument> document_;
+ string title_;
+ string performer_;
+ enum Flags : std::int32_t { SMALL_MASK = 4, DOCUMENT_MASK = 1, TITLE_MASK = 2, PERFORMER_MASK = 2 };
+
+ inputWebFileAudioAlbumThumbLocation(int32 flags_, bool small_, object_ptr<InputDocument> &&document_, string const &title_, string const &performer_);
+
+ static const std::int32_t ID = -193992412;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class invoice final : public Object {
+ public:
+ int32 flags_;
+ bool test_;
+ bool name_requested_;
+ bool phone_requested_;
+ bool email_requested_;
+ bool shipping_address_requested_;
+ bool flexible_;
+ bool phone_to_provider_;
+ bool email_to_provider_;
+ bool recurring_;
+ string currency_;
+ array<object_ptr<labeledPrice>> prices_;
+ int64 max_tip_amount_;
+ array<int64> suggested_tip_amounts_;
+ string recurring_terms_url_;
+ enum Flags : std::int32_t { TEST_MASK = 1, NAME_REQUESTED_MASK = 2, PHONE_REQUESTED_MASK = 4, EMAIL_REQUESTED_MASK = 8, SHIPPING_ADDRESS_REQUESTED_MASK = 16, FLEXIBLE_MASK = 32, PHONE_TO_PROVIDER_MASK = 64, EMAIL_TO_PROVIDER_MASK = 128, RECURRING_MASK = 512, MAX_TIP_AMOUNT_MASK = 256, SUGGESTED_TIP_AMOUNTS_MASK = 256, RECURRING_TERMS_URL_MASK = 512 };
+
+ invoice();
+
+ invoice(int32 flags_, bool test_, bool name_requested_, bool phone_requested_, bool email_requested_, bool shipping_address_requested_, bool flexible_, bool phone_to_provider_, bool email_to_provider_, bool recurring_, string const &currency_, array<object_ptr<labeledPrice>> &&prices_, int64 max_tip_amount_, array<int64> &&suggested_tip_amounts_, string const &recurring_terms_url_);
+
+ static const std::int32_t ID = 1048946971;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<invoice> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class IpPort: public Object {
+ public:
+
+ static object_ptr<IpPort> fetch(TlBufferParser &p);
+};
+
+class ipPort final : public IpPort {
+ public:
+ int32 ipv4_;
+ int32 port_;
+
+ static const std::int32_t ID = -734810765;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<IpPort> fetch(TlBufferParser &p);
+
+ explicit ipPort(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ipPortSecret final : public IpPort {
+ public:
+ int32 ipv4_;
+ int32 port_;
+ bytes secret_;
+
+ static const std::int32_t ID = 932718150;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<IpPort> fetch(TlBufferParser &p);
+
+ explicit ipPortSecret(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonObjectValue final : public Object {
+ public:
+ string key_;
+ object_ptr<JSONValue> value_;
+
+ jsonObjectValue(string const &key_, object_ptr<JSONValue> &&value_);
+
+ static const std::int32_t ID = -1059185703;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<jsonObjectValue> fetch(TlBufferParser &p);
+
+ explicit jsonObjectValue(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class JSONValue: public Object {
+ public:
+
+ static object_ptr<JSONValue> fetch(TlBufferParser &p);
+};
+
+class jsonNull final : public JSONValue {
+ public:
+
+ static const std::int32_t ID = 1064139624;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<JSONValue> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonBool final : public JSONValue {
+ public:
+ bool value_;
+
+ explicit jsonBool(bool value_);
+
+ static const std::int32_t ID = -952869270;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<JSONValue> fetch(TlBufferParser &p);
+
+ explicit jsonBool(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonNumber final : public JSONValue {
+ public:
+ double value_;
+
+ explicit jsonNumber(double value_);
+
+ static const std::int32_t ID = 736157604;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<JSONValue> fetch(TlBufferParser &p);
+
+ explicit jsonNumber(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonString final : public JSONValue {
+ public:
+ string value_;
+
+ explicit jsonString(string const &value_);
+
+ static const std::int32_t ID = -1222740358;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<JSONValue> fetch(TlBufferParser &p);
+
+ explicit jsonString(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonArray final : public JSONValue {
+ public:
+ array<object_ptr<JSONValue>> value_;
+
+ explicit jsonArray(array<object_ptr<JSONValue>> &&value_);
+
+ static const std::int32_t ID = -146520221;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<JSONValue> fetch(TlBufferParser &p);
+
+ explicit jsonArray(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class jsonObject final : public JSONValue {
+ public:
+ array<object_ptr<jsonObjectValue>> value_;
+
+ explicit jsonObject(array<object_ptr<jsonObjectValue>> &&value_);
+
+ static const std::int32_t ID = -1715350371;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<JSONValue> fetch(TlBufferParser &p);
+
+ explicit jsonObject(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class KeyboardButton: public Object {
+ public:
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+};
+
+class keyboardButton final : public KeyboardButton {
+ public:
+ string text_;
+
+ explicit keyboardButton(string const &text_);
+
+ static const std::int32_t ID = -1560655744;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ explicit keyboardButton(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonUrl final : public KeyboardButton {
+ public:
+ string text_;
+ string url_;
+
+ keyboardButtonUrl(string const &text_, string const &url_);
+
+ static const std::int32_t ID = 629866245;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ explicit keyboardButtonUrl(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonCallback final : public KeyboardButton {
+ public:
+ int32 flags_;
+ bool requires_password_;
+ string text_;
+ bytes data_;
+ enum Flags : std::int32_t { REQUIRES_PASSWORD_MASK = 1 };
+
+ keyboardButtonCallback();
+
+ keyboardButtonCallback(int32 flags_, bool requires_password_, string const &text_, bytes &&data_);
+
+ static const std::int32_t ID = 901503851;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonRequestPhone final : public KeyboardButton {
+ public:
+ string text_;
+
+ explicit keyboardButtonRequestPhone(string const &text_);
+
+ static const std::int32_t ID = -1318425559;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ explicit keyboardButtonRequestPhone(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonRequestGeoLocation final : public KeyboardButton {
+ public:
+ string text_;
+
+ explicit keyboardButtonRequestGeoLocation(string const &text_);
+
+ static const std::int32_t ID = -59151553;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ explicit keyboardButtonRequestGeoLocation(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonSwitchInline final : public KeyboardButton {
+ public:
+ int32 flags_;
+ bool same_peer_;
+ string text_;
+ string query_;
+ enum Flags : std::int32_t { SAME_PEER_MASK = 1 };
+
+ keyboardButtonSwitchInline();
+
+ keyboardButtonSwitchInline(int32 flags_, bool same_peer_, string const &text_, string const &query_);
+
+ static const std::int32_t ID = 90744648;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonGame final : public KeyboardButton {
+ public:
+ string text_;
+
+ explicit keyboardButtonGame(string const &text_);
+
+ static const std::int32_t ID = 1358175439;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ explicit keyboardButtonGame(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonBuy final : public KeyboardButton {
+ public:
+ string text_;
+
+ explicit keyboardButtonBuy(string const &text_);
+
+ static const std::int32_t ID = -1344716869;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ explicit keyboardButtonBuy(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonUrlAuth final : public KeyboardButton {
+ public:
+ int32 flags_;
+ string text_;
+ string fwd_text_;
+ string url_;
+ int32 button_id_;
+ enum Flags : std::int32_t { FWD_TEXT_MASK = 1 };
+
+ keyboardButtonUrlAuth();
+
+ keyboardButtonUrlAuth(int32 flags_, string const &text_, string const &fwd_text_, string const &url_, int32 button_id_);
+
+ static const std::int32_t ID = 280464681;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputKeyboardButtonUrlAuth final : public KeyboardButton {
+ public:
+ int32 flags_;
+ bool request_write_access_;
+ string text_;
+ string fwd_text_;
+ string url_;
+ object_ptr<InputUser> bot_;
+ enum Flags : std::int32_t { REQUEST_WRITE_ACCESS_MASK = 1, FWD_TEXT_MASK = 2 };
+
+ inputKeyboardButtonUrlAuth();
+
+ inputKeyboardButtonUrlAuth(int32 flags_, bool request_write_access_, string const &text_, string const &fwd_text_, string const &url_, object_ptr<InputUser> &&bot_);
+
+ static const std::int32_t ID = -802258988;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonRequestPoll final : public KeyboardButton {
+ public:
+ int32 flags_;
+ bool quiz_;
+ string text_;
+ enum Flags : std::int32_t { QUIZ_MASK = 1 };
+
+ keyboardButtonRequestPoll();
+
+ keyboardButtonRequestPoll(int32 flags_, bool quiz_, string const &text_);
+
+ static const std::int32_t ID = -1144565411;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputKeyboardButtonUserProfile final : public KeyboardButton {
+ public:
+ string text_;
+ object_ptr<InputUser> user_id_;
+
+ inputKeyboardButtonUserProfile(string const &text_, object_ptr<InputUser> &&user_id_);
+
+ static const std::int32_t ID = -376962181;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ explicit inputKeyboardButtonUserProfile(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonUserProfile final : public KeyboardButton {
+ public:
+ string text_;
+ int64 user_id_;
+
+ keyboardButtonUserProfile(string const &text_, int64 user_id_);
+
+ static const std::int32_t ID = 814112961;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ explicit keyboardButtonUserProfile(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonWebView final : public KeyboardButton {
+ public:
+ string text_;
+ string url_;
+
+ keyboardButtonWebView(string const &text_, string const &url_);
+
+ static const std::int32_t ID = 326529584;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ explicit keyboardButtonWebView(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonSimpleWebView final : public KeyboardButton {
+ public:
+ string text_;
+ string url_;
+
+ keyboardButtonSimpleWebView(string const &text_, string const &url_);
+
+ static const std::int32_t ID = -1598009252;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<KeyboardButton> fetch(TlBufferParser &p);
+
+ explicit keyboardButtonSimpleWebView(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class keyboardButtonRow final : public Object {
+ public:
+ array<object_ptr<KeyboardButton>> buttons_;
+
+ explicit keyboardButtonRow(array<object_ptr<KeyboardButton>> &&buttons_);
+
+ static const std::int32_t ID = 2002815875;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<keyboardButtonRow> fetch(TlBufferParser &p);
+
+ explicit keyboardButtonRow(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class labeledPrice final : public Object {
+ public:
+ string label_;
+ int64 amount_;
+
+ labeledPrice(string const &label_, int64 amount_);
+
+ static const std::int32_t ID = -886477832;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<labeledPrice> fetch(TlBufferParser &p);
+
+ explicit labeledPrice(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class langPackDifference final : public Object {
+ public:
+ string lang_code_;
+ int32 from_version_;
+ int32 version_;
+ array<object_ptr<LangPackString>> strings_;
+
+ static const std::int32_t ID = -209337866;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<langPackDifference> fetch(TlBufferParser &p);
+
+ explicit langPackDifference(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class langPackLanguage final : public Object {
+ public:
+ int32 flags_;
+ bool official_;
+ bool rtl_;
+ bool beta_;
+ string name_;
+ string native_name_;
+ string lang_code_;
+ string base_lang_code_;
+ string plural_code_;
+ int32 strings_count_;
+ int32 translated_count_;
+ string translations_url_;
+ enum Flags : std::int32_t { BASE_LANG_CODE_MASK = 2 };
+
+ langPackLanguage();
+
+ static const std::int32_t ID = -288727837;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<langPackLanguage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class LangPackString: public Object {
+ public:
+
+ static object_ptr<LangPackString> fetch(TlBufferParser &p);
+};
+
+class langPackString final : public LangPackString {
+ public:
+ string key_;
+ string value_;
+
+ langPackString(string const &key_, string const &value_);
+
+ static const std::int32_t ID = -892239370;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<LangPackString> fetch(TlBufferParser &p);
+
+ explicit langPackString(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class langPackStringPluralized final : public LangPackString {
+ public:
+ int32 flags_;
+ string key_;
+ string zero_value_;
+ string one_value_;
+ string two_value_;
+ string few_value_;
+ string many_value_;
+ string other_value_;
+ enum Flags : std::int32_t { ZERO_VALUE_MASK = 1, ONE_VALUE_MASK = 2, TWO_VALUE_MASK = 4, FEW_VALUE_MASK = 8, MANY_VALUE_MASK = 16 };
+
+ langPackStringPluralized();
+
+ langPackStringPluralized(int32 flags_, string const &key_, string const &zero_value_, string const &one_value_, string const &two_value_, string const &few_value_, string const &many_value_, string const &other_value_);
+
+ static const std::int32_t ID = 1816636575;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<LangPackString> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class langPackStringDeleted final : public LangPackString {
+ public:
+ string key_;
+
+ explicit langPackStringDeleted(string const &key_);
+
+ static const std::int32_t ID = 695856818;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<LangPackString> fetch(TlBufferParser &p);
+
+ explicit langPackStringDeleted(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class maskCoords final : public Object {
+ public:
+ int32 n_;
+ double x_;
+ double y_;
+ double zoom_;
+
+ maskCoords(int32 n_, double x_, double y_, double zoom_);
+
+ static const std::int32_t ID = -1361650766;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<maskCoords> fetch(TlBufferParser &p);
+
+ explicit maskCoords(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Message: public Object {
+ public:
+
+ static object_ptr<Message> fetch(TlBufferParser &p);
+};
+
+class messageEmpty final : public Message {
+ public:
+ int32 flags_;
+ int32 id_;
+ object_ptr<Peer> peer_id_;
+
+ messageEmpty();
+
+ static const std::int32_t ID = -1868117372;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Message> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class message final : public Message {
+ public:
+ int32 flags_;
+ bool out_;
+ bool mentioned_;
+ bool media_unread_;
+ bool silent_;
+ bool post_;
+ bool from_scheduled_;
+ bool legacy_;
+ bool edit_hide_;
+ bool pinned_;
+ bool noforwards_;
+ int32 id_;
+ object_ptr<Peer> from_id_;
+ object_ptr<Peer> peer_id_;
+ object_ptr<messageFwdHeader> fwd_from_;
+ int64 via_bot_id_;
+ object_ptr<messageReplyHeader> reply_to_;
+ int32 date_;
+ string message_;
+ object_ptr<MessageMedia> media_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ array<object_ptr<MessageEntity>> entities_;
+ int32 views_;
+ int32 forwards_;
+ object_ptr<messageReplies> replies_;
+ int32 edit_date_;
+ string post_author_;
+ int64 grouped_id_;
+ object_ptr<messageReactions> reactions_;
+ array<object_ptr<restrictionReason>> restriction_reason_;
+ int32 ttl_period_;
+ enum Flags : std::int32_t { VIA_BOT_ID_MASK = 2048, VIEWS_MASK = 1024, FORWARDS_MASK = 1024, EDIT_DATE_MASK = 32768, POST_AUTHOR_MASK = 65536, GROUPED_ID_MASK = 131072, TTL_PERIOD_MASK = 33554432 };
+
+ message();
+
+ message(int32 flags_, bool out_, bool mentioned_, bool media_unread_, bool silent_, bool post_, bool from_scheduled_, bool legacy_, bool edit_hide_, bool pinned_, bool noforwards_, int32 id_, object_ptr<Peer> &&from_id_, object_ptr<Peer> &&peer_id_, object_ptr<messageFwdHeader> &&fwd_from_, int64 via_bot_id_, object_ptr<messageReplyHeader> &&reply_to_, int32 date_, string const &message_, object_ptr<MessageMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 views_, int32 forwards_, object_ptr<messageReplies> &&replies_, int32 edit_date_, string const &post_author_, int64 grouped_id_, object_ptr<messageReactions> &&reactions_, array<object_ptr<restrictionReason>> &&restriction_reason_, int32 ttl_period_);
+
+ static const std::int32_t ID = 940666592;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Message> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageService final : public Message {
+ public:
+ int32 flags_;
+ bool out_;
+ bool mentioned_;
+ bool media_unread_;
+ bool silent_;
+ bool post_;
+ bool legacy_;
+ int32 id_;
+ object_ptr<Peer> from_id_;
+ object_ptr<Peer> peer_id_;
+ object_ptr<messageReplyHeader> reply_to_;
+ int32 date_;
+ object_ptr<MessageAction> action_;
+ int32 ttl_period_;
+ enum Flags : std::int32_t { TTL_PERIOD_MASK = 33554432 };
+
+ messageService();
+
+ static const std::int32_t ID = 721967202;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Message> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageAction: public Object {
+ public:
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+};
+
+class messageActionEmpty final : public MessageAction {
+ public:
+
+ static const std::int32_t ID = -1230047312;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChatCreate final : public MessageAction {
+ public:
+ string title_;
+ array<int64> users_;
+
+ static const std::int32_t ID = -1119368275;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionChatCreate(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChatEditTitle final : public MessageAction {
+ public:
+ string title_;
+
+ static const std::int32_t ID = -1247687078;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionChatEditTitle(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChatEditPhoto final : public MessageAction {
+ public:
+ object_ptr<Photo> photo_;
+
+ static const std::int32_t ID = 2144015272;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionChatEditPhoto(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChatDeletePhoto final : public MessageAction {
+ public:
+
+ static const std::int32_t ID = -1780220945;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChatAddUser final : public MessageAction {
+ public:
+ array<int64> users_;
+
+ static const std::int32_t ID = 365886720;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionChatAddUser(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChatDeleteUser final : public MessageAction {
+ public:
+ int64 user_id_;
+
+ static const std::int32_t ID = -1539362612;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionChatDeleteUser(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChatJoinedByLink final : public MessageAction {
+ public:
+ int64 inviter_id_;
+
+ static const std::int32_t ID = 51520707;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionChatJoinedByLink(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChannelCreate final : public MessageAction {
+ public:
+ string title_;
+
+ static const std::int32_t ID = -1781355374;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionChannelCreate(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChatMigrateTo final : public MessageAction {
+ public:
+ int64 channel_id_;
+
+ static const std::int32_t ID = -519864430;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionChatMigrateTo(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChannelMigrateFrom final : public MessageAction {
+ public:
+ string title_;
+ int64 chat_id_;
+
+ static const std::int32_t ID = -365344535;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionChannelMigrateFrom(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionPinMessage final : public MessageAction {
+ public:
+
+ static const std::int32_t ID = -1799538451;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionHistoryClear final : public MessageAction {
+ public:
+
+ static const std::int32_t ID = -1615153660;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionGameScore final : public MessageAction {
+ public:
+ int64 game_id_;
+ int32 score_;
+
+ static const std::int32_t ID = -1834538890;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionGameScore(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionPaymentSentMe final : public MessageAction {
+ public:
+ int32 flags_;
+ bool recurring_init_;
+ bool recurring_used_;
+ string currency_;
+ int64 total_amount_;
+ bytes payload_;
+ object_ptr<paymentRequestedInfo> info_;
+ string shipping_option_id_;
+ object_ptr<paymentCharge> charge_;
+ enum Flags : std::int32_t { SHIPPING_OPTION_ID_MASK = 2 };
+
+ messageActionPaymentSentMe();
+
+ static const std::int32_t ID = -1892568281;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionPaymentSent final : public MessageAction {
+ public:
+ int32 flags_;
+ bool recurring_init_;
+ bool recurring_used_;
+ string currency_;
+ int64 total_amount_;
+ string invoice_slug_;
+ enum Flags : std::int32_t { INVOICE_SLUG_MASK = 1 };
+
+ messageActionPaymentSent();
+
+ static const std::int32_t ID = -1776926890;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionPhoneCall final : public MessageAction {
+ public:
+ int32 flags_;
+ bool video_;
+ int64 call_id_;
+ object_ptr<PhoneCallDiscardReason> reason_;
+ int32 duration_;
+ enum Flags : std::int32_t { DURATION_MASK = 2 };
+
+ messageActionPhoneCall();
+
+ static const std::int32_t ID = -2132731265;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionScreenshotTaken final : public MessageAction {
+ public:
+
+ static const std::int32_t ID = 1200788123;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionCustomAction final : public MessageAction {
+ public:
+ string message_;
+
+ static const std::int32_t ID = -85549226;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionCustomAction(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionBotAllowed final : public MessageAction {
+ public:
+ string domain_;
+
+ static const std::int32_t ID = -1410748418;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionBotAllowed(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionSecureValuesSentMe final : public MessageAction {
+ public:
+ array<object_ptr<secureValue>> values_;
+ object_ptr<secureCredentialsEncrypted> credentials_;
+
+ static const std::int32_t ID = 455635795;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionSecureValuesSentMe(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionSecureValuesSent final : public MessageAction {
+ public:
+ array<object_ptr<SecureValueType>> types_;
+
+ static const std::int32_t ID = -648257196;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionSecureValuesSent(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionContactSignUp final : public MessageAction {
+ public:
+
+ static const std::int32_t ID = -202219658;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionGeoProximityReached final : public MessageAction {
+ public:
+ object_ptr<Peer> from_id_;
+ object_ptr<Peer> to_id_;
+ int32 distance_;
+
+ static const std::int32_t ID = -1730095465;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionGeoProximityReached(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionGroupCall final : public MessageAction {
+ public:
+ int32 flags_;
+ object_ptr<inputGroupCall> call_;
+ int32 duration_;
+ enum Flags : std::int32_t { DURATION_MASK = 1 };
+
+ messageActionGroupCall();
+
+ static const std::int32_t ID = 2047704898;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionInviteToGroupCall final : public MessageAction {
+ public:
+ object_ptr<inputGroupCall> call_;
+ array<int64> users_;
+
+ static const std::int32_t ID = 1345295095;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionInviteToGroupCall(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionSetMessagesTTL final : public MessageAction {
+ public:
+ int32 period_;
+
+ static const std::int32_t ID = -1441072131;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionSetMessagesTTL(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionGroupCallScheduled final : public MessageAction {
+ public:
+ object_ptr<inputGroupCall> call_;
+ int32 schedule_date_;
+
+ static const std::int32_t ID = -1281329567;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionGroupCallScheduled(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionSetChatTheme final : public MessageAction {
+ public:
+ string emoticon_;
+
+ static const std::int32_t ID = -1434950843;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionSetChatTheme(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionChatJoinedByRequest final : public MessageAction {
+ public:
+
+ static const std::int32_t ID = -339958837;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionWebViewDataSentMe final : public MessageAction {
+ public:
+ string text_;
+ string data_;
+
+ static const std::int32_t ID = 1205698681;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionWebViewDataSentMe(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionWebViewDataSent final : public MessageAction {
+ public:
+ string text_;
+
+ static const std::int32_t ID = -1262252875;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionWebViewDataSent(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionGiftPremium final : public MessageAction {
+ public:
+ string currency_;
+ int64 amount_;
+ int32 months_;
+
+ static const std::int32_t ID = -1415514682;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ explicit messageActionGiftPremium(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionTopicCreate final : public MessageAction {
+ public:
+ int32 flags_;
+ string title_;
+ int32 icon_color_;
+ int64 icon_emoji_id_;
+ enum Flags : std::int32_t { ICON_EMOJI_ID_MASK = 1 };
+
+ messageActionTopicCreate();
+
+ static const std::int32_t ID = 228168278;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageActionTopicEdit final : public MessageAction {
+ public:
+ int32 flags_;
+ string title_;
+ int64 icon_emoji_id_;
+ bool closed_;
+ enum Flags : std::int32_t { TITLE_MASK = 1, ICON_EMOJI_ID_MASK = 2, CLOSED_MASK = 4 };
+
+ messageActionTopicEdit();
+
+ static const std::int32_t ID = -1316338916;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageEntity: public Object {
+ public:
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+};
+
+class messageEntityUnknown final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityUnknown(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -1148011883;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityUnknown(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityMention final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityMention(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -100378723;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityMention(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityHashtag final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityHashtag(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1868782349;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityHashtag(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityBotCommand final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityBotCommand(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1827637959;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityBotCommand(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityUrl final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityUrl(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1859134776;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityUrl(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityEmail final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityEmail(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1692693954;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityEmail(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityBold final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityBold(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -1117713463;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityBold(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityItalic final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityItalic(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -2106619040;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityItalic(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityCode final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityCode(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 681706865;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityCode(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityPre final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+ string language_;
+
+ messageEntityPre(int32 offset_, int32 length_, string const &language_);
+
+ static const std::int32_t ID = 1938967520;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityPre(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityTextUrl final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+ string url_;
+
+ messageEntityTextUrl(int32 offset_, int32 length_, string const &url_);
+
+ static const std::int32_t ID = 1990644519;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityTextUrl(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityMentionName final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+ int64 user_id_;
+
+ messageEntityMentionName(int32 offset_, int32 length_, int64 user_id_);
+
+ static const std::int32_t ID = -595914432;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityMentionName(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessageEntityMentionName final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+ object_ptr<InputUser> user_id_;
+
+ inputMessageEntityMentionName(int32 offset_, int32 length_, object_ptr<InputUser> &&user_id_);
+
+ static const std::int32_t ID = 546203849;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit inputMessageEntityMentionName(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityPhone final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityPhone(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -1687559349;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityPhone(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityCashtag final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityCashtag(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1280209983;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityCashtag(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityUnderline final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityUnderline(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -1672577397;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityUnderline(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityStrike final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityStrike(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = -1090087980;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityStrike(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityBlockquote final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityBlockquote(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 34469328;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityBlockquote(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityBankCard final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntityBankCard(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 1981704948;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityBankCard(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntitySpoiler final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+
+ messageEntitySpoiler(int32 offset_, int32 length_);
+
+ static const std::int32_t ID = 852137487;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntitySpoiler(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageEntityCustomEmoji final : public MessageEntity {
+ public:
+ int32 offset_;
+ int32 length_;
+ int64 document_id_;
+
+ messageEntityCustomEmoji(int32 offset_, int32 length_, int64 document_id_);
+
+ static const std::int32_t ID = -925956616;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageEntity> fetch(TlBufferParser &p);
+
+ explicit messageEntityCustomEmoji(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageExtendedMedia: public Object {
+ public:
+
+ static object_ptr<MessageExtendedMedia> fetch(TlBufferParser &p);
+};
+
+class messageExtendedMediaPreview final : public MessageExtendedMedia {
+ public:
+ int32 flags_;
+ int32 w_;
+ int32 h_;
+ object_ptr<PhotoSize> thumb_;
+ int32 video_duration_;
+ enum Flags : std::int32_t { W_MASK = 1, H_MASK = 1, VIDEO_DURATION_MASK = 4 };
+
+ messageExtendedMediaPreview();
+
+ static const std::int32_t ID = -1386050360;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageExtendedMedia> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageExtendedMedia final : public MessageExtendedMedia {
+ public:
+ object_ptr<MessageMedia> media_;
+
+ static const std::int32_t ID = -297296796;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageExtendedMedia> fetch(TlBufferParser &p);
+
+ explicit messageExtendedMedia(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageFwdHeader final : public Object {
+ public:
+ int32 flags_;
+ bool imported_;
+ object_ptr<Peer> from_id_;
+ string from_name_;
+ int32 date_;
+ int32 channel_post_;
+ string post_author_;
+ object_ptr<Peer> saved_from_peer_;
+ int32 saved_from_msg_id_;
+ string psa_type_;
+ enum Flags : std::int32_t { FROM_NAME_MASK = 32, CHANNEL_POST_MASK = 4, POST_AUTHOR_MASK = 8, SAVED_FROM_MSG_ID_MASK = 16, PSA_TYPE_MASK = 64 };
+
+ messageFwdHeader();
+
+ static const std::int32_t ID = 1601666510;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messageFwdHeader> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageInteractionCounters final : public Object {
+ public:
+ int32 msg_id_;
+ int32 views_;
+ int32 forwards_;
+
+ static const std::int32_t ID = -1387279939;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messageInteractionCounters> fetch(TlBufferParser &p);
+
+ explicit messageInteractionCounters(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageMedia: public Object {
+ public:
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+};
+
+class messageMediaEmpty final : public MessageMedia {
+ public:
+
+ static const std::int32_t ID = 1038967584;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaPhoto final : public MessageMedia {
+ public:
+ int32 flags_;
+ object_ptr<Photo> photo_;
+ int32 ttl_seconds_;
+ enum Flags : std::int32_t { TTL_SECONDS_MASK = 4 };
+
+ messageMediaPhoto();
+
+ static const std::int32_t ID = 1766936791;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaGeo final : public MessageMedia {
+ public:
+ object_ptr<GeoPoint> geo_;
+
+ static const std::int32_t ID = 1457575028;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ explicit messageMediaGeo(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaContact final : public MessageMedia {
+ public:
+ string phone_number_;
+ string first_name_;
+ string last_name_;
+ string vcard_;
+ int64 user_id_;
+
+ static const std::int32_t ID = 1882335561;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ explicit messageMediaContact(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaUnsupported final : public MessageMedia {
+ public:
+
+ static const std::int32_t ID = -1618676578;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaDocument final : public MessageMedia {
+ public:
+ int32 flags_;
+ bool nopremium_;
+ object_ptr<Document> document_;
+ int32 ttl_seconds_;
+ enum Flags : std::int32_t { TTL_SECONDS_MASK = 4 };
+
+ messageMediaDocument();
+
+ static const std::int32_t ID = -1666158377;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaWebPage final : public MessageMedia {
+ public:
+ object_ptr<WebPage> webpage_;
+
+ static const std::int32_t ID = -1557277184;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ explicit messageMediaWebPage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaVenue final : public MessageMedia {
+ public:
+ object_ptr<GeoPoint> geo_;
+ string title_;
+ string address_;
+ string provider_;
+ string venue_id_;
+ string venue_type_;
+
+ static const std::int32_t ID = 784356159;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ explicit messageMediaVenue(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaGame final : public MessageMedia {
+ public:
+ object_ptr<game> game_;
+
+ static const std::int32_t ID = -38694904;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ explicit messageMediaGame(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaInvoice final : public MessageMedia {
+ public:
+ int32 flags_;
+ bool shipping_address_requested_;
+ bool test_;
+ string title_;
+ string description_;
+ object_ptr<WebDocument> photo_;
+ int32 receipt_msg_id_;
+ string currency_;
+ int64 total_amount_;
+ string start_param_;
+ object_ptr<MessageExtendedMedia> extended_media_;
+ enum Flags : std::int32_t { RECEIPT_MSG_ID_MASK = 4 };
+
+ messageMediaInvoice();
+
+ static const std::int32_t ID = -156940077;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaGeoLive final : public MessageMedia {
+ public:
+ int32 flags_;
+ object_ptr<GeoPoint> geo_;
+ int32 heading_;
+ int32 period_;
+ int32 proximity_notification_radius_;
+ enum Flags : std::int32_t { HEADING_MASK = 1, PROXIMITY_NOTIFICATION_RADIUS_MASK = 2 };
+
+ messageMediaGeoLive();
+
+ static const std::int32_t ID = -1186937242;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaPoll final : public MessageMedia {
+ public:
+ object_ptr<poll> poll_;
+ object_ptr<pollResults> results_;
+
+ static const std::int32_t ID = 1272375192;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ explicit messageMediaPoll(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageMediaDice final : public MessageMedia {
+ public:
+ int32 value_;
+ string emoticon_;
+
+ static const std::int32_t ID = 1065280907;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageMedia> fetch(TlBufferParser &p);
+
+ explicit messageMediaDice(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messagePeerReaction final : public Object {
+ public:
+ int32 flags_;
+ bool big_;
+ bool unread_;
+ object_ptr<Peer> peer_id_;
+ object_ptr<Reaction> reaction_;
+
+ messagePeerReaction();
+
+ static const std::int32_t ID = -1319698788;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messagePeerReaction> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageRange final : public Object {
+ public:
+ int32 min_id_;
+ int32 max_id_;
+
+ messageRange(int32 min_id_, int32 max_id_);
+
+ static const std::int32_t ID = 182649427;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messageRange> fetch(TlBufferParser &p);
+
+ explicit messageRange(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageReactions final : public Object {
+ public:
+ int32 flags_;
+ bool min_;
+ bool can_see_list_;
+ array<object_ptr<reactionCount>> results_;
+ array<object_ptr<messagePeerReaction>> recent_reactions_;
+
+ messageReactions();
+
+ static const std::int32_t ID = 1328256121;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messageReactions> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageReplies final : public Object {
+ public:
+ int32 flags_;
+ bool comments_;
+ int32 replies_;
+ int32 replies_pts_;
+ array<object_ptr<Peer>> recent_repliers_;
+ int64 channel_id_;
+ int32 max_id_;
+ int32 read_max_id_;
+ enum Flags : std::int32_t { CHANNEL_ID_MASK = 1, MAX_ID_MASK = 4, READ_MAX_ID_MASK = 8 };
+
+ messageReplies();
+
+ static const std::int32_t ID = -2083123262;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messageReplies> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageReplyHeader final : public Object {
+ public:
+ int32 flags_;
+ bool reply_to_scheduled_;
+ bool forum_topic_;
+ int32 reply_to_msg_id_;
+ object_ptr<Peer> reply_to_peer_id_;
+ int32 reply_to_top_id_;
+ enum Flags : std::int32_t { REPLY_TO_TOP_ID_MASK = 2 };
+
+ messageReplyHeader();
+
+ static const std::int32_t ID = -1495959709;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messageReplyHeader> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessageUserVote: public Object {
+ public:
+
+ static object_ptr<MessageUserVote> fetch(TlBufferParser &p);
+};
+
+class messageUserVote final : public MessageUserVote {
+ public:
+ int64 user_id_;
+ bytes option_;
+ int32 date_;
+
+ static const std::int32_t ID = 886196148;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageUserVote> fetch(TlBufferParser &p);
+
+ explicit messageUserVote(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageUserVoteInputOption final : public MessageUserVote {
+ public:
+ int64 user_id_;
+ int32 date_;
+
+ static const std::int32_t ID = 1017491692;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageUserVote> fetch(TlBufferParser &p);
+
+ explicit messageUserVoteInputOption(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageUserVoteMultiple final : public MessageUserVote {
+ public:
+ int64 user_id_;
+ array<bytes> options_;
+ int32 date_;
+
+ static const std::int32_t ID = -1973033641;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessageUserVote> fetch(TlBufferParser &p);
+
+ explicit messageUserVoteMultiple(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messageViews final : public Object {
+ public:
+ int32 flags_;
+ int32 views_;
+ int32 forwards_;
+ object_ptr<messageReplies> replies_;
+ enum Flags : std::int32_t { VIEWS_MASK = 1, FORWARDS_MASK = 2 };
+
+ messageViews();
+
+ static const std::int32_t ID = 1163625789;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messageViews> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class MessagesFilter: public Object {
+ public:
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+};
+
+class inputMessagesFilterEmpty final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = 1474492012;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterPhotos final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = -1777752804;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterVideo final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = -1614803355;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterPhotoVideo final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = 1458172132;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterDocument final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = -1629621880;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterUrl final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = 2129714567;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterGif final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = -3644025;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterVoice final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = 1358283666;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterMusic final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = 928101534;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterChatPhotos final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = 975236280;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterPhoneCalls final : public MessagesFilter {
+ public:
+ int32 flags_;
+ bool missed_;
+ enum Flags : std::int32_t { MISSED_MASK = 1 };
+
+ inputMessagesFilterPhoneCalls();
+
+ inputMessagesFilterPhoneCalls(int32 flags_, bool missed_);
+
+ static const std::int32_t ID = -2134272152;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterRoundVoice final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = 2054952868;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterRoundVideo final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = -1253451181;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterMyMentions final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = -1040652646;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterGeo final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = -419271411;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterContacts final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = -530392189;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputMessagesFilterPinned final : public MessagesFilter {
+ public:
+
+ static const std::int32_t ID = 464520273;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<MessagesFilter> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class nearestDc final : public Object {
+ public:
+ string country_;
+ int32 this_dc_;
+ int32 nearest_dc_;
+
+ static const std::int32_t ID = -1910892683;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<nearestDc> fetch(TlBufferParser &p);
+
+ explicit nearestDc(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class NotificationSound: public Object {
+ public:
+
+ static object_ptr<NotificationSound> fetch(TlBufferParser &p);
+};
+
+class notificationSoundDefault final : public NotificationSound {
+ public:
+
+ static const std::int32_t ID = -1746354498;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<NotificationSound> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationSoundNone final : public NotificationSound {
+ public:
+
+ static const std::int32_t ID = 1863070943;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<NotificationSound> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationSoundLocal final : public NotificationSound {
+ public:
+ string title_;
+ string data_;
+
+ notificationSoundLocal(string const &title_, string const &data_);
+
+ static const std::int32_t ID = -2096391452;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<NotificationSound> fetch(TlBufferParser &p);
+
+ explicit notificationSoundLocal(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notificationSoundRingtone final : public NotificationSound {
+ public:
+ int64 id_;
+
+ explicit notificationSoundRingtone(int64 id_);
+
+ static const std::int32_t ID = -9666487;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<NotificationSound> fetch(TlBufferParser &p);
+
+ explicit notificationSoundRingtone(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class NotifyPeer: public Object {
+ public:
+
+ static object_ptr<NotifyPeer> fetch(TlBufferParser &p);
+};
+
+class notifyPeer final : public NotifyPeer {
+ public:
+ object_ptr<Peer> peer_;
+
+ static const std::int32_t ID = -1613493288;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<NotifyPeer> fetch(TlBufferParser &p);
+
+ explicit notifyPeer(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notifyUsers final : public NotifyPeer {
+ public:
+
+ static const std::int32_t ID = -1261946036;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<NotifyPeer> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notifyChats final : public NotifyPeer {
+ public:
+
+ static const std::int32_t ID = -1073230141;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<NotifyPeer> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notifyBroadcasts final : public NotifyPeer {
+ public:
+
+ static const std::int32_t ID = -703403793;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<NotifyPeer> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class notifyForumTopic final : public NotifyPeer {
+ public:
+ object_ptr<Peer> peer_;
+ int32 top_msg_id_;
+
+ static const std::int32_t ID = 577659656;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<NotifyPeer> fetch(TlBufferParser &p);
+
+ explicit notifyForumTopic(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class page final : public Object {
+ public:
+ int32 flags_;
+ bool part_;
+ bool rtl_;
+ bool v2_;
+ string url_;
+ array<object_ptr<PageBlock>> blocks_;
+ array<object_ptr<Photo>> photos_;
+ array<object_ptr<Document>> documents_;
+ int32 views_;
+ enum Flags : std::int32_t { VIEWS_MASK = 8 };
+
+ page();
+
+ static const std::int32_t ID = -1738178803;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<page> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PageBlock: public Object {
+ public:
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+};
+
+class pageBlockUnsupported final : public PageBlock {
+ public:
+
+ static const std::int32_t ID = 324435594;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockTitle final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = 1890305021;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockTitle(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockSubtitle final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = -1879401953;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockSubtitle(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockAuthorDate final : public PageBlock {
+ public:
+ object_ptr<RichText> author_;
+ int32 published_date_;
+
+ static const std::int32_t ID = -1162877472;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockAuthorDate(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockHeader final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = -1076861716;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockHeader(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockSubheader final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = -248793375;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockSubheader(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockParagraph final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = 1182402406;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockParagraph(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockPreformatted final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+ string language_;
+
+ static const std::int32_t ID = -1066346178;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockPreformatted(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockFooter final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = 1216809369;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockFooter(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockDivider final : public PageBlock {
+ public:
+
+ static const std::int32_t ID = -618614392;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockAnchor final : public PageBlock {
+ public:
+ string name_;
+
+ static const std::int32_t ID = -837994576;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockAnchor(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockList final : public PageBlock {
+ public:
+ array<object_ptr<PageListItem>> items_;
+
+ static const std::int32_t ID = -454524911;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockList(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockBlockquote final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+ object_ptr<RichText> caption_;
+
+ static const std::int32_t ID = 641563686;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockBlockquote(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockPullquote final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+ object_ptr<RichText> caption_;
+
+ static const std::int32_t ID = 1329878739;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockPullquote(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockPhoto final : public PageBlock {
+ public:
+ int32 flags_;
+ int64 photo_id_;
+ object_ptr<pageCaption> caption_;
+ string url_;
+ int64 webpage_id_;
+ enum Flags : std::int32_t { URL_MASK = 1, WEBPAGE_ID_MASK = 1 };
+
+ pageBlockPhoto();
+
+ static const std::int32_t ID = 391759200;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockVideo final : public PageBlock {
+ public:
+ int32 flags_;
+ bool autoplay_;
+ bool loop_;
+ int64 video_id_;
+ object_ptr<pageCaption> caption_;
+
+ pageBlockVideo();
+
+ static const std::int32_t ID = 2089805750;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockCover final : public PageBlock {
+ public:
+ object_ptr<PageBlock> cover_;
+
+ static const std::int32_t ID = 972174080;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockCover(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockEmbed final : public PageBlock {
+ public:
+ int32 flags_;
+ bool full_width_;
+ bool allow_scrolling_;
+ string url_;
+ string html_;
+ int64 poster_photo_id_;
+ int32 w_;
+ int32 h_;
+ object_ptr<pageCaption> caption_;
+ enum Flags : std::int32_t { URL_MASK = 2, HTML_MASK = 4, POSTER_PHOTO_ID_MASK = 16, W_MASK = 32, H_MASK = 32 };
+
+ pageBlockEmbed();
+
+ static const std::int32_t ID = -1468953147;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockEmbedPost final : public PageBlock {
+ public:
+ string url_;
+ int64 webpage_id_;
+ int64 author_photo_id_;
+ string author_;
+ int32 date_;
+ array<object_ptr<PageBlock>> blocks_;
+ object_ptr<pageCaption> caption_;
+
+ static const std::int32_t ID = -229005301;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockEmbedPost(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockCollage final : public PageBlock {
+ public:
+ array<object_ptr<PageBlock>> items_;
+ object_ptr<pageCaption> caption_;
+
+ static const std::int32_t ID = 1705048653;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockCollage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockSlideshow final : public PageBlock {
+ public:
+ array<object_ptr<PageBlock>> items_;
+ object_ptr<pageCaption> caption_;
+
+ static const std::int32_t ID = 52401552;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockSlideshow(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockChannel final : public PageBlock {
+ public:
+ object_ptr<Chat> channel_;
+
+ static const std::int32_t ID = -283684427;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockChannel(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockAudio final : public PageBlock {
+ public:
+ int64 audio_id_;
+ object_ptr<pageCaption> caption_;
+
+ static const std::int32_t ID = -2143067670;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockAudio(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockKicker final : public PageBlock {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = 504660880;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockKicker(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockTable final : public PageBlock {
+ public:
+ int32 flags_;
+ bool bordered_;
+ bool striped_;
+ object_ptr<RichText> title_;
+ array<object_ptr<pageTableRow>> rows_;
+
+ pageBlockTable();
+
+ static const std::int32_t ID = -1085412734;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockOrderedList final : public PageBlock {
+ public:
+ array<object_ptr<PageListOrderedItem>> items_;
+
+ static const std::int32_t ID = -1702174239;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockOrderedList(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockDetails final : public PageBlock {
+ public:
+ int32 flags_;
+ bool open_;
+ array<object_ptr<PageBlock>> blocks_;
+ object_ptr<RichText> title_;
+
+ pageBlockDetails();
+
+ static const std::int32_t ID = 1987480557;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockRelatedArticles final : public PageBlock {
+ public:
+ object_ptr<RichText> title_;
+ array<object_ptr<pageRelatedArticle>> articles_;
+
+ static const std::int32_t ID = 370236054;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockRelatedArticles(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageBlockMap final : public PageBlock {
+ public:
+ object_ptr<GeoPoint> geo_;
+ int32 zoom_;
+ int32 w_;
+ int32 h_;
+ object_ptr<pageCaption> caption_;
+
+ static const std::int32_t ID = -1538310410;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageBlock> fetch(TlBufferParser &p);
+
+ explicit pageBlockMap(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageCaption final : public Object {
+ public:
+ object_ptr<RichText> text_;
+ object_ptr<RichText> credit_;
+
+ static const std::int32_t ID = 1869903447;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<pageCaption> fetch(TlBufferParser &p);
+
+ explicit pageCaption(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PageListItem: public Object {
+ public:
+
+ static object_ptr<PageListItem> fetch(TlBufferParser &p);
+};
+
+class pageListItemText final : public PageListItem {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = -1188055347;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageListItem> fetch(TlBufferParser &p);
+
+ explicit pageListItemText(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageListItemBlocks final : public PageListItem {
+ public:
+ array<object_ptr<PageBlock>> blocks_;
+
+ static const std::int32_t ID = 635466748;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageListItem> fetch(TlBufferParser &p);
+
+ explicit pageListItemBlocks(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PageListOrderedItem: public Object {
+ public:
+
+ static object_ptr<PageListOrderedItem> fetch(TlBufferParser &p);
+};
+
+class pageListOrderedItemText final : public PageListOrderedItem {
+ public:
+ string num_;
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = 1577484359;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageListOrderedItem> fetch(TlBufferParser &p);
+
+ explicit pageListOrderedItemText(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageListOrderedItemBlocks final : public PageListOrderedItem {
+ public:
+ string num_;
+ array<object_ptr<PageBlock>> blocks_;
+
+ static const std::int32_t ID = -1730311882;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PageListOrderedItem> fetch(TlBufferParser &p);
+
+ explicit pageListOrderedItemBlocks(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageRelatedArticle final : public Object {
+ public:
+ int32 flags_;
+ string url_;
+ int64 webpage_id_;
+ string title_;
+ string description_;
+ int64 photo_id_;
+ string author_;
+ int32 published_date_;
+ enum Flags : std::int32_t { TITLE_MASK = 1, DESCRIPTION_MASK = 2, PHOTO_ID_MASK = 4, AUTHOR_MASK = 8, PUBLISHED_DATE_MASK = 16 };
+
+ pageRelatedArticle();
+
+ static const std::int32_t ID = -1282352120;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<pageRelatedArticle> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageTableCell final : public Object {
+ public:
+ int32 flags_;
+ bool header_;
+ bool align_center_;
+ bool align_right_;
+ bool valign_middle_;
+ bool valign_bottom_;
+ object_ptr<RichText> text_;
+ int32 colspan_;
+ int32 rowspan_;
+ enum Flags : std::int32_t { COLSPAN_MASK = 2, ROWSPAN_MASK = 4 };
+
+ pageTableCell();
+
+ static const std::int32_t ID = 878078826;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<pageTableCell> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pageTableRow final : public Object {
+ public:
+ array<object_ptr<pageTableCell>> cells_;
+
+ static const std::int32_t ID = -524237339;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<pageTableRow> fetch(TlBufferParser &p);
+
+ explicit pageTableRow(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PasswordKdfAlgo: public Object {
+ public:
+
+ static object_ptr<PasswordKdfAlgo> fetch(TlBufferParser &p);
+};
+
+class passwordKdfAlgoUnknown final : public PasswordKdfAlgo {
+ public:
+
+ static const std::int32_t ID = -732254058;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PasswordKdfAlgo> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow final : public PasswordKdfAlgo {
+ public:
+ bytes salt1_;
+ bytes salt2_;
+ int32 g_;
+ bytes p_;
+
+ passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow(bytes &&salt1_, bytes &&salt2_, int32 g_, bytes &&p_);
+
+ static const std::int32_t ID = 982592842;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PasswordKdfAlgo> fetch(TlBufferParser &p);
+
+ explicit passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class paymentCharge final : public Object {
+ public:
+ string id_;
+ string provider_charge_id_;
+
+ static const std::int32_t ID = -368917890;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<paymentCharge> fetch(TlBufferParser &p);
+
+ explicit paymentCharge(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class paymentFormMethod final : public Object {
+ public:
+ string url_;
+ string title_;
+
+ static const std::int32_t ID = -1996951013;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<paymentFormMethod> fetch(TlBufferParser &p);
+
+ explicit paymentFormMethod(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class paymentRequestedInfo final : public Object {
+ public:
+ int32 flags_;
+ string name_;
+ string phone_;
+ string email_;
+ object_ptr<postAddress> shipping_address_;
+ enum Flags : std::int32_t { NAME_MASK = 1, PHONE_MASK = 2, EMAIL_MASK = 4, SHIPPING_ADDRESS_MASK = 8 };
+
+ paymentRequestedInfo();
+
+ paymentRequestedInfo(int32 flags_, string const &name_, string const &phone_, string const &email_, object_ptr<postAddress> &&shipping_address_);
+
+ static const std::int32_t ID = -1868808300;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<paymentRequestedInfo> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class paymentSavedCredentialsCard final : public Object {
+ public:
+ string id_;
+ string title_;
+
+ static const std::int32_t ID = -842892769;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<paymentSavedCredentialsCard> fetch(TlBufferParser &p);
+
+ explicit paymentSavedCredentialsCard(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Peer: public Object {
+ public:
+
+ static object_ptr<Peer> fetch(TlBufferParser &p);
+};
+
+class peerUser final : public Peer {
+ public:
+ int64 user_id_;
+
+ explicit peerUser(int64 user_id_);
+
+ static const std::int32_t ID = 1498486562;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Peer> fetch(TlBufferParser &p);
+
+ explicit peerUser(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class peerChat final : public Peer {
+ public:
+ int64 chat_id_;
+
+ explicit peerChat(int64 chat_id_);
+
+ static const std::int32_t ID = 918946202;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Peer> fetch(TlBufferParser &p);
+
+ explicit peerChat(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class peerChannel final : public Peer {
+ public:
+ int64 channel_id_;
+
+ static const std::int32_t ID = -1566230754;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Peer> fetch(TlBufferParser &p);
+
+ explicit peerChannel(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class peerBlocked final : public Object {
+ public:
+ object_ptr<Peer> peer_id_;
+ int32 date_;
+
+ static const std::int32_t ID = -386039788;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<peerBlocked> fetch(TlBufferParser &p);
+
+ explicit peerBlocked(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PeerLocated: public Object {
+ public:
+
+ static object_ptr<PeerLocated> fetch(TlBufferParser &p);
+};
+
+class peerLocated final : public PeerLocated {
+ public:
+ object_ptr<Peer> peer_;
+ int32 expires_;
+ int32 distance_;
+
+ static const std::int32_t ID = -901375139;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PeerLocated> fetch(TlBufferParser &p);
+
+ explicit peerLocated(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class peerSelfLocated final : public PeerLocated {
+ public:
+ int32 expires_;
+
+ static const std::int32_t ID = -118740917;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PeerLocated> fetch(TlBufferParser &p);
+
+ explicit peerSelfLocated(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class peerNotifySettings final : public Object {
+ public:
+ int32 flags_;
+ bool show_previews_;
+ bool silent_;
+ int32 mute_until_;
+ object_ptr<NotificationSound> ios_sound_;
+ object_ptr<NotificationSound> android_sound_;
+ object_ptr<NotificationSound> other_sound_;
+ enum Flags : std::int32_t { SHOW_PREVIEWS_MASK = 1, SILENT_MASK = 2, MUTE_UNTIL_MASK = 4 };
+
+ peerNotifySettings();
+
+ static const std::int32_t ID = -1472527322;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<peerNotifySettings> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class peerSettings final : public Object {
+ public:
+ int32 flags_;
+ bool report_spam_;
+ bool add_contact_;
+ bool block_contact_;
+ bool share_contact_;
+ bool need_contacts_exception_;
+ bool report_geo_;
+ bool autoarchived_;
+ bool invite_members_;
+ bool request_chat_broadcast_;
+ int32 geo_distance_;
+ string request_chat_title_;
+ int32 request_chat_date_;
+ enum Flags : std::int32_t { GEO_DISTANCE_MASK = 64, REQUEST_CHAT_TITLE_MASK = 512, REQUEST_CHAT_DATE_MASK = 512 };
+
+ peerSettings();
+
+ static const std::int32_t ID = -1525149427;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<peerSettings> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PhoneCall: public Object {
+ public:
+
+ static object_ptr<PhoneCall> fetch(TlBufferParser &p);
+};
+
+class phoneCallEmpty final : public PhoneCall {
+ public:
+ int64 id_;
+
+ static const std::int32_t ID = 1399245077;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneCall> fetch(TlBufferParser &p);
+
+ explicit phoneCallEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneCallWaiting final : public PhoneCall {
+ public:
+ int32 flags_;
+ bool video_;
+ int64 id_;
+ int64 access_hash_;
+ int32 date_;
+ int64 admin_id_;
+ int64 participant_id_;
+ object_ptr<phoneCallProtocol> protocol_;
+ int32 receive_date_;
+ enum Flags : std::int32_t { RECEIVE_DATE_MASK = 1 };
+
+ phoneCallWaiting();
+
+ static const std::int32_t ID = -987599081;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneCall> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneCallRequested final : public PhoneCall {
+ public:
+ int32 flags_;
+ bool video_;
+ int64 id_;
+ int64 access_hash_;
+ int32 date_;
+ int64 admin_id_;
+ int64 participant_id_;
+ bytes g_a_hash_;
+ object_ptr<phoneCallProtocol> protocol_;
+
+ phoneCallRequested();
+
+ static const std::int32_t ID = 347139340;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneCall> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneCallAccepted final : public PhoneCall {
+ public:
+ int32 flags_;
+ bool video_;
+ int64 id_;
+ int64 access_hash_;
+ int32 date_;
+ int64 admin_id_;
+ int64 participant_id_;
+ bytes g_b_;
+ object_ptr<phoneCallProtocol> protocol_;
+
+ phoneCallAccepted();
+
+ static const std::int32_t ID = 912311057;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneCall> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneCall final : public PhoneCall {
+ public:
+ int32 flags_;
+ bool p2p_allowed_;
+ bool video_;
+ int64 id_;
+ int64 access_hash_;
+ int32 date_;
+ int64 admin_id_;
+ int64 participant_id_;
+ bytes g_a_or_b_;
+ int64 key_fingerprint_;
+ object_ptr<phoneCallProtocol> protocol_;
+ array<object_ptr<PhoneConnection>> connections_;
+ int32 start_date_;
+
+ phoneCall();
+
+ static const std::int32_t ID = -1770029977;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneCall> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneCallDiscarded final : public PhoneCall {
+ public:
+ int32 flags_;
+ bool need_rating_;
+ bool need_debug_;
+ bool video_;
+ int64 id_;
+ object_ptr<PhoneCallDiscardReason> reason_;
+ int32 duration_;
+ enum Flags : std::int32_t { DURATION_MASK = 2 };
+
+ phoneCallDiscarded();
+
+ static const std::int32_t ID = 1355435489;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneCall> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PhoneCallDiscardReason: public Object {
+ public:
+
+ static object_ptr<PhoneCallDiscardReason> fetch(TlBufferParser &p);
+};
+
+class phoneCallDiscardReasonMissed final : public PhoneCallDiscardReason {
+ public:
+
+ static const std::int32_t ID = -2048646399;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneCallDiscardReason> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneCallDiscardReasonDisconnect final : public PhoneCallDiscardReason {
+ public:
+
+ static const std::int32_t ID = -527056480;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneCallDiscardReason> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneCallDiscardReasonHangup final : public PhoneCallDiscardReason {
+ public:
+
+ static const std::int32_t ID = 1471006352;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneCallDiscardReason> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneCallDiscardReasonBusy final : public PhoneCallDiscardReason {
+ public:
+
+ static const std::int32_t ID = -84416311;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneCallDiscardReason> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneCallProtocol final : public Object {
+ public:
+ int32 flags_;
+ bool udp_p2p_;
+ bool udp_reflector_;
+ int32 min_layer_;
+ int32 max_layer_;
+ array<string> library_versions_;
+ enum Flags : std::int32_t { UDP_P2P_MASK = 1, UDP_REFLECTOR_MASK = 2 };
+
+ phoneCallProtocol();
+
+ phoneCallProtocol(int32 flags_, bool udp_p2p_, bool udp_reflector_, int32 min_layer_, int32 max_layer_, array<string> &&library_versions_);
+
+ static const std::int32_t ID = -58224696;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<phoneCallProtocol> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PhoneConnection: public Object {
+ public:
+
+ static object_ptr<PhoneConnection> fetch(TlBufferParser &p);
+};
+
+class phoneConnection final : public PhoneConnection {
+ public:
+ int32 flags_;
+ bool tcp_;
+ int64 id_;
+ string ip_;
+ string ipv6_;
+ int32 port_;
+ bytes peer_tag_;
+
+ phoneConnection();
+
+ static const std::int32_t ID = -1665063993;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneConnection> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phoneConnectionWebrtc final : public PhoneConnection {
+ public:
+ int32 flags_;
+ bool turn_;
+ bool stun_;
+ int64 id_;
+ string ip_;
+ string ipv6_;
+ int32 port_;
+ string username_;
+ string password_;
+
+ phoneConnectionWebrtc();
+
+ static const std::int32_t ID = 1667228533;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhoneConnection> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Photo: public Object {
+ public:
+
+ static object_ptr<Photo> fetch(TlBufferParser &p);
+};
+
+class photoEmpty final : public Photo {
+ public:
+ int64 id_;
+
+ static const std::int32_t ID = 590459437;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Photo> fetch(TlBufferParser &p);
+
+ explicit photoEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photo final : public Photo {
+ public:
+ int32 flags_;
+ bool has_stickers_;
+ int64 id_;
+ int64 access_hash_;
+ bytes file_reference_;
+ int32 date_;
+ array<object_ptr<PhotoSize>> sizes_;
+ array<object_ptr<videoSize>> video_sizes_;
+ int32 dc_id_;
+
+ photo();
+
+ static const std::int32_t ID = -82216347;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Photo> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PhotoSize: public Object {
+ public:
+
+ static object_ptr<PhotoSize> fetch(TlBufferParser &p);
+};
+
+class photoSizeEmpty final : public PhotoSize {
+ public:
+ string type_;
+
+ explicit photoSizeEmpty(string const &type_);
+
+ static const std::int32_t ID = 236446268;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhotoSize> fetch(TlBufferParser &p);
+
+ explicit photoSizeEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photoSize final : public PhotoSize {
+ public:
+ string type_;
+ int32 w_;
+ int32 h_;
+ int32 size_;
+
+ photoSize(string const &type_, int32 w_, int32 h_, int32 size_);
+
+ static const std::int32_t ID = 1976012384;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhotoSize> fetch(TlBufferParser &p);
+
+ explicit photoSize(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photoCachedSize final : public PhotoSize {
+ public:
+ string type_;
+ int32 w_;
+ int32 h_;
+ bytes bytes_;
+
+ photoCachedSize(string const &type_, int32 w_, int32 h_, bytes &&bytes_);
+
+ static const std::int32_t ID = 35527382;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhotoSize> fetch(TlBufferParser &p);
+
+ explicit photoCachedSize(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photoStrippedSize final : public PhotoSize {
+ public:
+ string type_;
+ bytes bytes_;
+
+ static const std::int32_t ID = -525288402;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhotoSize> fetch(TlBufferParser &p);
+
+ explicit photoStrippedSize(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photoSizeProgressive final : public PhotoSize {
+ public:
+ string type_;
+ int32 w_;
+ int32 h_;
+ array<int32> sizes_;
+
+ static const std::int32_t ID = -96535659;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhotoSize> fetch(TlBufferParser &p);
+
+ explicit photoSizeProgressive(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photoPathSize final : public PhotoSize {
+ public:
+ string type_;
+ bytes bytes_;
+
+ static const std::int32_t ID = -668906175;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PhotoSize> fetch(TlBufferParser &p);
+
+ explicit photoPathSize(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class poll final : public Object {
+ public:
+ int64 id_;
+ int32 flags_;
+ bool closed_;
+ bool public_voters_;
+ bool multiple_choice_;
+ bool quiz_;
+ string question_;
+ array<object_ptr<pollAnswer>> answers_;
+ int32 close_period_;
+ int32 close_date_;
+ enum Flags : std::int32_t { CLOSED_MASK = 1, PUBLIC_VOTERS_MASK = 2, MULTIPLE_CHOICE_MASK = 4, QUIZ_MASK = 8, CLOSE_PERIOD_MASK = 16, CLOSE_DATE_MASK = 32 };
+
+ poll();
+
+ poll(int64 id_, int32 flags_, bool closed_, bool public_voters_, bool multiple_choice_, bool quiz_, string const &question_, array<object_ptr<pollAnswer>> &&answers_, int32 close_period_, int32 close_date_);
+
+ static const std::int32_t ID = -2032041631;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<poll> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pollAnswer final : public Object {
+ public:
+ string text_;
+ bytes option_;
+
+ pollAnswer(string const &text_, bytes &&option_);
+
+ static const std::int32_t ID = 1823064809;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<pollAnswer> fetch(TlBufferParser &p);
+
+ explicit pollAnswer(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pollAnswerVoters final : public Object {
+ public:
+ int32 flags_;
+ bool chosen_;
+ bool correct_;
+ bytes option_;
+ int32 voters_;
+
+ pollAnswerVoters();
+
+ static const std::int32_t ID = 997055186;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<pollAnswerVoters> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class pollResults final : public Object {
+ public:
+ int32 flags_;
+ bool min_;
+ array<object_ptr<pollAnswerVoters>> results_;
+ int32 total_voters_;
+ array<int64> recent_voters_;
+ string solution_;
+ array<object_ptr<MessageEntity>> solution_entities_;
+ enum Flags : std::int32_t { TOTAL_VOTERS_MASK = 4, SOLUTION_MASK = 16 };
+
+ pollResults();
+
+ static const std::int32_t ID = -591909213;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<pollResults> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class popularContact final : public Object {
+ public:
+ int64 client_id_;
+ int32 importers_;
+
+ static const std::int32_t ID = 1558266229;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<popularContact> fetch(TlBufferParser &p);
+
+ explicit popularContact(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class postAddress final : public Object {
+ public:
+ string street_line1_;
+ string street_line2_;
+ string city_;
+ string state_;
+ string country_iso2_;
+ string post_code_;
+
+ postAddress(string const &street_line1_, string const &street_line2_, string const &city_, string const &state_, string const &country_iso2_, string const &post_code_);
+
+ static const std::int32_t ID = 512535275;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<postAddress> fetch(TlBufferParser &p);
+
+ explicit postAddress(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumGiftOption final : public Object {
+ public:
+ int32 flags_;
+ int32 months_;
+ string currency_;
+ int64 amount_;
+ string bot_url_;
+ string store_product_;
+ enum Flags : std::int32_t { STORE_PRODUCT_MASK = 1 };
+
+ premiumGiftOption();
+
+ static const std::int32_t ID = 1958953753;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<premiumGiftOption> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class premiumSubscriptionOption final : public Object {
+ public:
+ int32 flags_;
+ bool current_;
+ bool can_purchase_upgrade_;
+ int32 months_;
+ string currency_;
+ int64 amount_;
+ string bot_url_;
+ string store_product_;
+ enum Flags : std::int32_t { STORE_PRODUCT_MASK = 1 };
+
+ premiumSubscriptionOption();
+
+ static const std::int32_t ID = -1225711938;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<premiumSubscriptionOption> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PrivacyKey: public Object {
+ public:
+
+ static object_ptr<PrivacyKey> fetch(TlBufferParser &p);
+};
+
+class privacyKeyStatusTimestamp final : public PrivacyKey {
+ public:
+
+ static const std::int32_t ID = -1137792208;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyKey> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyKeyChatInvite final : public PrivacyKey {
+ public:
+
+ static const std::int32_t ID = 1343122938;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyKey> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyKeyPhoneCall final : public PrivacyKey {
+ public:
+
+ static const std::int32_t ID = 1030105979;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyKey> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyKeyPhoneP2P final : public PrivacyKey {
+ public:
+
+ static const std::int32_t ID = 961092808;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyKey> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyKeyForwards final : public PrivacyKey {
+ public:
+
+ static const std::int32_t ID = 1777096355;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyKey> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyKeyProfilePhoto final : public PrivacyKey {
+ public:
+
+ static const std::int32_t ID = -1777000467;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyKey> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyKeyPhoneNumber final : public PrivacyKey {
+ public:
+
+ static const std::int32_t ID = -778378131;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyKey> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyKeyAddedByPhone final : public PrivacyKey {
+ public:
+
+ static const std::int32_t ID = 1124062251;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyKey> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyKeyVoiceMessages final : public PrivacyKey {
+ public:
+
+ static const std::int32_t ID = 110621716;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyKey> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class PrivacyRule: public Object {
+ public:
+
+ static object_ptr<PrivacyRule> fetch(TlBufferParser &p);
+};
+
+class privacyValueAllowContacts final : public PrivacyRule {
+ public:
+
+ static const std::int32_t ID = -123988;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyRule> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyValueAllowAll final : public PrivacyRule {
+ public:
+
+ static const std::int32_t ID = 1698855810;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyRule> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyValueAllowUsers final : public PrivacyRule {
+ public:
+ array<int64> users_;
+
+ static const std::int32_t ID = -1198497870;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyRule> fetch(TlBufferParser &p);
+
+ explicit privacyValueAllowUsers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyValueDisallowContacts final : public PrivacyRule {
+ public:
+
+ static const std::int32_t ID = -125240806;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyRule> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyValueDisallowAll final : public PrivacyRule {
+ public:
+
+ static const std::int32_t ID = -1955338397;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyRule> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyValueDisallowUsers final : public PrivacyRule {
+ public:
+ array<int64> users_;
+
+ static const std::int32_t ID = -463335103;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyRule> fetch(TlBufferParser &p);
+
+ explicit privacyValueDisallowUsers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyValueAllowChatParticipants final : public PrivacyRule {
+ public:
+ array<int64> chats_;
+
+ static const std::int32_t ID = 1796427406;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyRule> fetch(TlBufferParser &p);
+
+ explicit privacyValueAllowChatParticipants(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class privacyValueDisallowChatParticipants final : public PrivacyRule {
+ public:
+ array<int64> chats_;
+
+ static const std::int32_t ID = 1103656293;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<PrivacyRule> fetch(TlBufferParser &p);
+
+ explicit privacyValueDisallowChatParticipants(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Reaction: public Object {
+ public:
+
+ static object_ptr<Reaction> fetch(TlBufferParser &p);
+};
+
+class reactionEmpty final : public Reaction {
+ public:
+
+ static const std::int32_t ID = 2046153753;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Reaction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reactionEmoji final : public Reaction {
+ public:
+ string emoticon_;
+
+ explicit reactionEmoji(string const &emoticon_);
+
+ static const std::int32_t ID = 455247544;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Reaction> fetch(TlBufferParser &p);
+
+ explicit reactionEmoji(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reactionCustomEmoji final : public Reaction {
+ public:
+ int64 document_id_;
+
+ explicit reactionCustomEmoji(int64 document_id_);
+
+ static const std::int32_t ID = -1992950669;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Reaction> fetch(TlBufferParser &p);
+
+ explicit reactionCustomEmoji(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class reactionCount final : public Object {
+ public:
+ int32 flags_;
+ int32 chosen_order_;
+ object_ptr<Reaction> reaction_;
+ int32 count_;
+ enum Flags : std::int32_t { CHOSEN_ORDER_MASK = 1 };
+
+ reactionCount();
+
+ static const std::int32_t ID = -1546531968;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<reactionCount> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class receivedNotifyMessage final : public Object {
+ public:
+ int32 id_;
+ int32 flags_;
+
+ static const std::int32_t ID = -1551583367;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<receivedNotifyMessage> fetch(TlBufferParser &p);
+
+ explicit receivedNotifyMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class RecentMeUrl: public Object {
+ public:
+
+ static object_ptr<RecentMeUrl> fetch(TlBufferParser &p);
+};
+
+class recentMeUrlUnknown final : public RecentMeUrl {
+ public:
+ string url_;
+
+ static const std::int32_t ID = 1189204285;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RecentMeUrl> fetch(TlBufferParser &p);
+
+ explicit recentMeUrlUnknown(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class recentMeUrlUser final : public RecentMeUrl {
+ public:
+ string url_;
+ int64 user_id_;
+
+ static const std::int32_t ID = -1188296222;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RecentMeUrl> fetch(TlBufferParser &p);
+
+ explicit recentMeUrlUser(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class recentMeUrlChat final : public RecentMeUrl {
+ public:
+ string url_;
+ int64 chat_id_;
+
+ static const std::int32_t ID = -1294306862;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RecentMeUrl> fetch(TlBufferParser &p);
+
+ explicit recentMeUrlChat(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class recentMeUrlChatInvite final : public RecentMeUrl {
+ public:
+ string url_;
+ object_ptr<ChatInvite> chat_invite_;
+
+ static const std::int32_t ID = -347535331;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RecentMeUrl> fetch(TlBufferParser &p);
+
+ explicit recentMeUrlChatInvite(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class recentMeUrlStickerSet final : public RecentMeUrl {
+ public:
+ string url_;
+ object_ptr<StickerSetCovered> set_;
+
+ static const std::int32_t ID = -1140172836;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RecentMeUrl> fetch(TlBufferParser &p);
+
+ explicit recentMeUrlStickerSet(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ReplyMarkup: public Object {
+ public:
+
+ static object_ptr<ReplyMarkup> fetch(TlBufferParser &p);
+};
+
+class replyKeyboardHide final : public ReplyMarkup {
+ public:
+ int32 flags_;
+ bool selective_;
+ enum Flags : std::int32_t { SELECTIVE_MASK = 4 };
+
+ replyKeyboardHide();
+
+ replyKeyboardHide(int32 flags_, bool selective_);
+
+ static const std::int32_t ID = -1606526075;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ReplyMarkup> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class replyKeyboardForceReply final : public ReplyMarkup {
+ public:
+ int32 flags_;
+ bool single_use_;
+ bool selective_;
+ string placeholder_;
+ enum Flags : std::int32_t { SINGLE_USE_MASK = 2, SELECTIVE_MASK = 4, PLACEHOLDER_MASK = 8 };
+
+ replyKeyboardForceReply();
+
+ replyKeyboardForceReply(int32 flags_, bool single_use_, bool selective_, string const &placeholder_);
+
+ static const std::int32_t ID = -2035021048;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ReplyMarkup> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class replyKeyboardMarkup final : public ReplyMarkup {
+ public:
+ int32 flags_;
+ bool resize_;
+ bool single_use_;
+ bool selective_;
+ array<object_ptr<keyboardButtonRow>> rows_;
+ string placeholder_;
+ enum Flags : std::int32_t { RESIZE_MASK = 1, SINGLE_USE_MASK = 2, SELECTIVE_MASK = 4, PLACEHOLDER_MASK = 8 };
+
+ replyKeyboardMarkup();
+
+ replyKeyboardMarkup(int32 flags_, bool resize_, bool single_use_, bool selective_, array<object_ptr<keyboardButtonRow>> &&rows_, string const &placeholder_);
+
+ static const std::int32_t ID = -2049074735;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ReplyMarkup> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class replyInlineMarkup final : public ReplyMarkup {
+ public:
+ array<object_ptr<keyboardButtonRow>> rows_;
+
+ explicit replyInlineMarkup(array<object_ptr<keyboardButtonRow>> &&rows_);
+
+ static const std::int32_t ID = 1218642516;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<ReplyMarkup> fetch(TlBufferParser &p);
+
+ explicit replyInlineMarkup(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class ReportReason: public Object {
+ public:
+};
+
+class inputReportReasonSpam final : public ReportReason {
+ public:
+
+ static const std::int32_t ID = 1490799288;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputReportReasonViolence final : public ReportReason {
+ public:
+
+ static const std::int32_t ID = 505595789;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputReportReasonPornography final : public ReportReason {
+ public:
+
+ static const std::int32_t ID = 777640226;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputReportReasonChildAbuse final : public ReportReason {
+ public:
+
+ static const std::int32_t ID = -1376497949;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputReportReasonOther final : public ReportReason {
+ public:
+
+ static const std::int32_t ID = -1041980751;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputReportReasonCopyright final : public ReportReason {
+ public:
+
+ static const std::int32_t ID = -1685456582;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputReportReasonGeoIrrelevant final : public ReportReason {
+ public:
+
+ static const std::int32_t ID = -606798099;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputReportReasonFake final : public ReportReason {
+ public:
+
+ static const std::int32_t ID = -170010905;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputReportReasonIllegalDrugs final : public ReportReason {
+ public:
+
+ static const std::int32_t ID = 177124030;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class inputReportReasonPersonalDetails final : public ReportReason {
+ public:
+
+ static const std::int32_t ID = -1631091139;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class restrictionReason final : public Object {
+ public:
+ string platform_;
+ string reason_;
+ string text_;
+
+ static const std::int32_t ID = -797791052;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<restrictionReason> fetch(TlBufferParser &p);
+
+ explicit restrictionReason(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class RichText: public Object {
+ public:
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+};
+
+class textEmpty final : public RichText {
+ public:
+
+ static const std::int32_t ID = -599948721;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textPlain final : public RichText {
+ public:
+ string text_;
+
+ static const std::int32_t ID = 1950782688;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textPlain(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textBold final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = 1730456516;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textBold(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textItalic final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = -653089380;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textItalic(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textUnderline final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = -1054465340;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textUnderline(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textStrike final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = -1678197867;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textStrike(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textFixed final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = 1816074681;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textFixed(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textUrl final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+ string url_;
+ int64 webpage_id_;
+
+ static const std::int32_t ID = 1009288385;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textUrl(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textEmail final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+ string email_;
+
+ static const std::int32_t ID = -564523562;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textEmail(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textConcat final : public RichText {
+ public:
+ array<object_ptr<RichText>> texts_;
+
+ static const std::int32_t ID = 2120376535;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textConcat(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textSubscript final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = -311786236;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textSubscript(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textSuperscript final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = -939827711;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textSuperscript(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textMarked final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+
+ static const std::int32_t ID = 55281185;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textMarked(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textPhone final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+ string phone_;
+
+ static const std::int32_t ID = 483104362;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textPhone(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textImage final : public RichText {
+ public:
+ int64 document_id_;
+ int32 w_;
+ int32 h_;
+
+ static const std::int32_t ID = 136105807;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textImage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class textAnchor final : public RichText {
+ public:
+ object_ptr<RichText> text_;
+ string name_;
+
+ static const std::int32_t ID = 894777186;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<RichText> fetch(TlBufferParser &p);
+
+ explicit textAnchor(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class savedPhoneContact final : public Object {
+ public:
+ string phone_;
+ string first_name_;
+ string last_name_;
+ int32 date_;
+
+ static const std::int32_t ID = 289586518;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<savedPhoneContact> fetch(TlBufferParser &p);
+
+ explicit savedPhoneContact(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchResultsCalendarPeriod final : public Object {
+ public:
+ int32 date_;
+ int32 min_msg_id_;
+ int32 max_msg_id_;
+ int32 count_;
+
+ static const std::int32_t ID = -911191137;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<searchResultsCalendarPeriod> fetch(TlBufferParser &p);
+
+ explicit searchResultsCalendarPeriod(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class searchResultPosition final : public Object {
+ public:
+ int32 msg_id_;
+ int32 date_;
+ int32 offset_;
+
+ static const std::int32_t ID = 2137295719;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<searchResultPosition> fetch(TlBufferParser &p);
+
+ explicit searchResultPosition(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureCredentialsEncrypted final : public Object {
+ public:
+ bytes data_;
+ bytes hash_;
+ bytes secret_;
+
+ secureCredentialsEncrypted(bytes &&data_, bytes &&hash_, bytes &&secret_);
+
+ static const std::int32_t ID = 871426631;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<secureCredentialsEncrypted> fetch(TlBufferParser &p);
+
+ explicit secureCredentialsEncrypted(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureData final : public Object {
+ public:
+ bytes data_;
+ bytes data_hash_;
+ bytes secret_;
+
+ secureData(bytes &&data_, bytes &&data_hash_, bytes &&secret_);
+
+ static const std::int32_t ID = -1964327229;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<secureData> fetch(TlBufferParser &p);
+
+ explicit secureData(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SecureFile: public Object {
+ public:
+
+ static object_ptr<SecureFile> fetch(TlBufferParser &p);
+};
+
+class secureFileEmpty final : public SecureFile {
+ public:
+
+ static const std::int32_t ID = 1679398724;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureFile> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureFile final : public SecureFile {
+ public:
+ int64 id_;
+ int64 access_hash_;
+ int64 size_;
+ int32 dc_id_;
+ int32 date_;
+ bytes file_hash_;
+ bytes secret_;
+
+ static const std::int32_t ID = 2097791614;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureFile> fetch(TlBufferParser &p);
+
+ explicit secureFile(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SecurePasswordKdfAlgo: public Object {
+ public:
+
+ static object_ptr<SecurePasswordKdfAlgo> fetch(TlBufferParser &p);
+};
+
+class securePasswordKdfAlgoUnknown final : public SecurePasswordKdfAlgo {
+ public:
+
+ static const std::int32_t ID = 4883767;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecurePasswordKdfAlgo> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class securePasswordKdfAlgoPBKDF2HMACSHA512iter100000 final : public SecurePasswordKdfAlgo {
+ public:
+ bytes salt_;
+
+ explicit securePasswordKdfAlgoPBKDF2HMACSHA512iter100000(bytes &&salt_);
+
+ static const std::int32_t ID = -1141711456;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecurePasswordKdfAlgo> fetch(TlBufferParser &p);
+
+ explicit securePasswordKdfAlgoPBKDF2HMACSHA512iter100000(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class securePasswordKdfAlgoSHA512 final : public SecurePasswordKdfAlgo {
+ public:
+ bytes salt_;
+
+ explicit securePasswordKdfAlgoSHA512(bytes &&salt_);
+
+ static const std::int32_t ID = -2042159726;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecurePasswordKdfAlgo> fetch(TlBufferParser &p);
+
+ explicit securePasswordKdfAlgoSHA512(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SecurePlainData: public Object {
+ public:
+
+ static object_ptr<SecurePlainData> fetch(TlBufferParser &p);
+};
+
+class securePlainPhone final : public SecurePlainData {
+ public:
+ string phone_;
+
+ explicit securePlainPhone(string const &phone_);
+
+ static const std::int32_t ID = 2103482845;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecurePlainData> fetch(TlBufferParser &p);
+
+ explicit securePlainPhone(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class securePlainEmail final : public SecurePlainData {
+ public:
+ string email_;
+
+ explicit securePlainEmail(string const &email_);
+
+ static const std::int32_t ID = 569137759;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecurePlainData> fetch(TlBufferParser &p);
+
+ explicit securePlainEmail(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SecureRequiredType: public Object {
+ public:
+
+ static object_ptr<SecureRequiredType> fetch(TlBufferParser &p);
+};
+
+class secureRequiredType final : public SecureRequiredType {
+ public:
+ int32 flags_;
+ bool native_names_;
+ bool selfie_required_;
+ bool translation_required_;
+ object_ptr<SecureValueType> type_;
+
+ secureRequiredType();
+
+ static const std::int32_t ID = -2103600678;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureRequiredType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureRequiredTypeOneOf final : public SecureRequiredType {
+ public:
+ array<object_ptr<SecureRequiredType>> types_;
+
+ static const std::int32_t ID = 41187252;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureRequiredType> fetch(TlBufferParser &p);
+
+ explicit secureRequiredTypeOneOf(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureSecretSettings final : public Object {
+ public:
+ object_ptr<SecurePasswordKdfAlgo> secure_algo_;
+ bytes secure_secret_;
+ int64 secure_secret_id_;
+
+ secureSecretSettings(object_ptr<SecurePasswordKdfAlgo> &&secure_algo_, bytes &&secure_secret_, int64 secure_secret_id_);
+
+ static const std::int32_t ID = 354925740;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<secureSecretSettings> fetch(TlBufferParser &p);
+
+ explicit secureSecretSettings(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValue final : public Object {
+ public:
+ int32 flags_;
+ object_ptr<SecureValueType> type_;
+ object_ptr<secureData> data_;
+ object_ptr<SecureFile> front_side_;
+ object_ptr<SecureFile> reverse_side_;
+ object_ptr<SecureFile> selfie_;
+ array<object_ptr<SecureFile>> translation_;
+ array<object_ptr<SecureFile>> files_;
+ object_ptr<SecurePlainData> plain_data_;
+ bytes hash_;
+
+ secureValue();
+
+ static const std::int32_t ID = 411017418;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<secureValue> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SecureValueError: public Object {
+ public:
+
+ static object_ptr<SecureValueError> fetch(TlBufferParser &p);
+};
+
+class secureValueErrorData final : public SecureValueError {
+ public:
+ object_ptr<SecureValueType> type_;
+ bytes data_hash_;
+ string field_;
+ string text_;
+
+ secureValueErrorData(object_ptr<SecureValueType> &&type_, bytes &&data_hash_, string const &field_, string const &text_);
+
+ static const std::int32_t ID = -391902247;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueError> fetch(TlBufferParser &p);
+
+ explicit secureValueErrorData(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueErrorFrontSide final : public SecureValueError {
+ public:
+ object_ptr<SecureValueType> type_;
+ bytes file_hash_;
+ string text_;
+
+ secureValueErrorFrontSide(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_);
+
+ static const std::int32_t ID = 12467706;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueError> fetch(TlBufferParser &p);
+
+ explicit secureValueErrorFrontSide(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueErrorReverseSide final : public SecureValueError {
+ public:
+ object_ptr<SecureValueType> type_;
+ bytes file_hash_;
+ string text_;
+
+ secureValueErrorReverseSide(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_);
+
+ static const std::int32_t ID = -2037765467;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueError> fetch(TlBufferParser &p);
+
+ explicit secureValueErrorReverseSide(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueErrorSelfie final : public SecureValueError {
+ public:
+ object_ptr<SecureValueType> type_;
+ bytes file_hash_;
+ string text_;
+
+ secureValueErrorSelfie(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_);
+
+ static const std::int32_t ID = -449327402;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueError> fetch(TlBufferParser &p);
+
+ explicit secureValueErrorSelfie(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueErrorFile final : public SecureValueError {
+ public:
+ object_ptr<SecureValueType> type_;
+ bytes file_hash_;
+ string text_;
+
+ secureValueErrorFile(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_);
+
+ static const std::int32_t ID = 2054162547;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueError> fetch(TlBufferParser &p);
+
+ explicit secureValueErrorFile(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueErrorFiles final : public SecureValueError {
+ public:
+ object_ptr<SecureValueType> type_;
+ array<bytes> file_hash_;
+ string text_;
+
+ secureValueErrorFiles(object_ptr<SecureValueType> &&type_, array<bytes> &&file_hash_, string const &text_);
+
+ static const std::int32_t ID = 1717706985;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueError> fetch(TlBufferParser &p);
+
+ explicit secureValueErrorFiles(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueError final : public SecureValueError {
+ public:
+ object_ptr<SecureValueType> type_;
+ bytes hash_;
+ string text_;
+
+ secureValueError(object_ptr<SecureValueType> &&type_, bytes &&hash_, string const &text_);
+
+ static const std::int32_t ID = -2036501105;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueError> fetch(TlBufferParser &p);
+
+ explicit secureValueError(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueErrorTranslationFile final : public SecureValueError {
+ public:
+ object_ptr<SecureValueType> type_;
+ bytes file_hash_;
+ string text_;
+
+ secureValueErrorTranslationFile(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_);
+
+ static const std::int32_t ID = -1592506512;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueError> fetch(TlBufferParser &p);
+
+ explicit secureValueErrorTranslationFile(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueErrorTranslationFiles final : public SecureValueError {
+ public:
+ object_ptr<SecureValueType> type_;
+ array<bytes> file_hash_;
+ string text_;
+
+ secureValueErrorTranslationFiles(object_ptr<SecureValueType> &&type_, array<bytes> &&file_hash_, string const &text_);
+
+ static const std::int32_t ID = 878931416;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueError> fetch(TlBufferParser &p);
+
+ explicit secureValueErrorTranslationFiles(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueHash final : public Object {
+ public:
+ object_ptr<SecureValueType> type_;
+ bytes hash_;
+
+ secureValueHash(object_ptr<SecureValueType> &&type_, bytes &&hash_);
+
+ static const std::int32_t ID = -316748368;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SecureValueType: public Object {
+ public:
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+};
+
+class secureValueTypePersonalDetails final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -1658158621;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypePassport final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = 1034709504;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypeDriverLicense final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = 115615172;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypeIdentityCard final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -1596951477;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypeInternalPassport final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -1717268701;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypeAddress final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -874308058;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypeUtilityBill final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -63531698;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypeBankStatement final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -1995211763;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypeRentalAgreement final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -1954007928;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypePassportRegistration final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -1713143702;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypeTemporaryRegistration final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -368907213;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypePhone final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -1289704741;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class secureValueTypeEmail final : public SecureValueType {
+ public:
+
+ static const std::int32_t ID = -1908627474;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SecureValueType> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendAsPeer final : public Object {
+ public:
+ int32 flags_;
+ bool premium_required_;
+ object_ptr<Peer> peer_;
+
+ sendAsPeer();
+
+ static const std::int32_t ID = -1206095820;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<sendAsPeer> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class SendMessageAction: public Object {
+ public:
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+};
+
+class sendMessageTypingAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = 381645902;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageCancelAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -44119819;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageRecordVideoAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -1584933265;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageUploadVideoAction final : public SendMessageAction {
+ public:
+ int32 progress_;
+
+ explicit sendMessageUploadVideoAction(int32 progress_);
+
+ static const std::int32_t ID = -378127636;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ explicit sendMessageUploadVideoAction(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageRecordAudioAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -718310409;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageUploadAudioAction final : public SendMessageAction {
+ public:
+ int32 progress_;
+
+ explicit sendMessageUploadAudioAction(int32 progress_);
+
+ static const std::int32_t ID = -212740181;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ explicit sendMessageUploadAudioAction(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageUploadPhotoAction final : public SendMessageAction {
+ public:
+ int32 progress_;
+
+ explicit sendMessageUploadPhotoAction(int32 progress_);
+
+ static const std::int32_t ID = -774682074;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ explicit sendMessageUploadPhotoAction(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageUploadDocumentAction final : public SendMessageAction {
+ public:
+ int32 progress_;
+
+ explicit sendMessageUploadDocumentAction(int32 progress_);
+
+ static const std::int32_t ID = -1441998364;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ explicit sendMessageUploadDocumentAction(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageGeoLocationAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = 393186209;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageChooseContactAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = 1653390447;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageGamePlayAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -580219064;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageRecordRoundAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -1997373508;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageUploadRoundAction final : public SendMessageAction {
+ public:
+ int32 progress_;
+
+ explicit sendMessageUploadRoundAction(int32 progress_);
+
+ static const std::int32_t ID = 608050278;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ explicit sendMessageUploadRoundAction(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class speakingInGroupCallAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -651419003;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageHistoryImportAction final : public SendMessageAction {
+ public:
+ int32 progress_;
+
+ explicit sendMessageHistoryImportAction(int32 progress_);
+
+ static const std::int32_t ID = -606432698;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ explicit sendMessageHistoryImportAction(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageChooseStickerAction final : public SendMessageAction {
+ public:
+
+ static const std::int32_t ID = -1336228175;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageEmojiInteraction final : public SendMessageAction {
+ public:
+ string emoticon_;
+ int32 msg_id_;
+ object_ptr<dataJSON> interaction_;
+
+ sendMessageEmojiInteraction(string const &emoticon_, int32 msg_id_, object_ptr<dataJSON> &&interaction_);
+
+ static const std::int32_t ID = 630664139;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ explicit sendMessageEmojiInteraction(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sendMessageEmojiInteractionSeen final : public SendMessageAction {
+ public:
+ string emoticon_;
+
+ explicit sendMessageEmojiInteractionSeen(string const &emoticon_);
+
+ static const std::int32_t ID = -1234857938;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<SendMessageAction> fetch(TlBufferParser &p);
+
+ explicit sendMessageEmojiInteractionSeen(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class shippingOption final : public Object {
+ public:
+ string id_;
+ string title_;
+ array<object_ptr<labeledPrice>> prices_;
+
+ shippingOption(string const &id_, string const &title_, array<object_ptr<labeledPrice>> &&prices_);
+
+ static const std::int32_t ID = -1239335713;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<shippingOption> fetch(TlBufferParser &p);
+
+ explicit shippingOption(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class simpleWebViewResultUrl final : public Object {
+ public:
+ string url_;
+
+ static const std::int32_t ID = -2010155333;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<simpleWebViewResultUrl> fetch(TlBufferParser &p);
+
+ explicit simpleWebViewResultUrl(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class sponsoredMessage final : public Object {
+ public:
+ int32 flags_;
+ bool recommended_;
+ bool show_peer_photo_;
+ bytes random_id_;
+ object_ptr<Peer> from_id_;
+ object_ptr<ChatInvite> chat_invite_;
+ string chat_invite_hash_;
+ int32 channel_post_;
+ string start_param_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+ enum Flags : std::int32_t { CHAT_INVITE_HASH_MASK = 16, CHANNEL_POST_MASK = 4, START_PARAM_MASK = 1 };
+
+ sponsoredMessage();
+
+ static const std::int32_t ID = 981691896;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<sponsoredMessage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statsAbsValueAndPrev final : public Object {
+ public:
+ double current_;
+ double previous_;
+
+ static const std::int32_t ID = -884757282;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<statsAbsValueAndPrev> fetch(TlBufferParser &p);
+
+ explicit statsAbsValueAndPrev(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statsDateRangeDays final : public Object {
+ public:
+ int32 min_date_;
+ int32 max_date_;
+
+ static const std::int32_t ID = -1237848657;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<statsDateRangeDays> fetch(TlBufferParser &p);
+
+ explicit statsDateRangeDays(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class StatsGraph: public Object {
+ public:
+
+ static object_ptr<StatsGraph> fetch(TlBufferParser &p);
+};
+
+class statsGraphAsync final : public StatsGraph {
+ public:
+ string token_;
+
+ static const std::int32_t ID = 1244130093;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<StatsGraph> fetch(TlBufferParser &p);
+
+ explicit statsGraphAsync(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statsGraphError final : public StatsGraph {
+ public:
+ string error_;
+
+ static const std::int32_t ID = -1092839390;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<StatsGraph> fetch(TlBufferParser &p);
+
+ explicit statsGraphError(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statsGraph final : public StatsGraph {
+ public:
+ int32 flags_;
+ object_ptr<dataJSON> json_;
+ string zoom_token_;
+ enum Flags : std::int32_t { ZOOM_TOKEN_MASK = 1 };
+
+ statsGraph();
+
+ static const std::int32_t ID = -1901828938;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<StatsGraph> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statsGroupTopAdmin final : public Object {
+ public:
+ int64 user_id_;
+ int32 deleted_;
+ int32 kicked_;
+ int32 banned_;
+
+ static const std::int32_t ID = -682079097;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<statsGroupTopAdmin> fetch(TlBufferParser &p);
+
+ explicit statsGroupTopAdmin(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statsGroupTopInviter final : public Object {
+ public:
+ int64 user_id_;
+ int32 invitations_;
+
+ static const std::int32_t ID = 1398765469;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<statsGroupTopInviter> fetch(TlBufferParser &p);
+
+ explicit statsGroupTopInviter(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statsGroupTopPoster final : public Object {
+ public:
+ int64 user_id_;
+ int32 messages_;
+ int32 avg_chars_;
+
+ static const std::int32_t ID = -1660637285;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<statsGroupTopPoster> fetch(TlBufferParser &p);
+
+ explicit statsGroupTopPoster(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statsPercentValue final : public Object {
+ public:
+ double part_;
+ double total_;
+
+ static const std::int32_t ID = -875679776;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<statsPercentValue> fetch(TlBufferParser &p);
+
+ explicit statsPercentValue(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class statsURL final : public Object {
+ public:
+ string url_;
+
+ static const std::int32_t ID = 1202287072;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerKeyword final : public Object {
+ public:
+ int64 document_id_;
+ array<string> keyword_;
+
+ static const std::int32_t ID = -50416996;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<stickerKeyword> fetch(TlBufferParser &p);
+
+ explicit stickerKeyword(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerPack final : public Object {
+ public:
+ string emoticon_;
+ array<int64> documents_;
+
+ static const std::int32_t ID = 313694676;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<stickerPack> fetch(TlBufferParser &p);
+
+ explicit stickerPack(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerSet final : public Object {
+ public:
+ int32 flags_;
+ bool archived_;
+ bool official_;
+ bool masks_;
+ bool animated_;
+ bool videos_;
+ bool emojis_;
+ int32 installed_date_;
+ int64 id_;
+ int64 access_hash_;
+ string title_;
+ string short_name_;
+ array<object_ptr<PhotoSize>> thumbs_;
+ int32 thumb_dc_id_;
+ int32 thumb_version_;
+ int64 thumb_document_id_;
+ int32 count_;
+ int32 hash_;
+ enum Flags : std::int32_t { INSTALLED_DATE_MASK = 1, THUMB_DC_ID_MASK = 16, THUMB_VERSION_MASK = 16, THUMB_DOCUMENT_ID_MASK = 256 };
+
+ stickerSet();
+
+ static const std::int32_t ID = 768691932;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<stickerSet> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class StickerSetCovered: public Object {
+ public:
+
+ static object_ptr<StickerSetCovered> fetch(TlBufferParser &p);
+};
+
+class stickerSetCovered final : public StickerSetCovered {
+ public:
+ object_ptr<stickerSet> set_;
+ object_ptr<Document> cover_;
+
+ static const std::int32_t ID = 1678812626;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<StickerSetCovered> fetch(TlBufferParser &p);
+
+ explicit stickerSetCovered(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerSetMultiCovered final : public StickerSetCovered {
+ public:
+ object_ptr<stickerSet> set_;
+ array<object_ptr<Document>> covers_;
+
+ static const std::int32_t ID = 872932635;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<StickerSetCovered> fetch(TlBufferParser &p);
+
+ explicit stickerSetMultiCovered(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickerSetFullCovered final : public StickerSetCovered {
+ public:
+ object_ptr<stickerSet> set_;
+ array<object_ptr<stickerPack>> packs_;
+ array<object_ptr<stickerKeyword>> keywords_;
+ array<object_ptr<Document>> documents_;
+
+ static const std::int32_t ID = 1087454222;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<StickerSetCovered> fetch(TlBufferParser &p);
+
+ explicit stickerSetFullCovered(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class theme final : public Object {
+ public:
+ int32 flags_;
+ bool creator_;
+ bool default_;
+ bool for_chat_;
+ int64 id_;
+ int64 access_hash_;
+ string slug_;
+ string title_;
+ object_ptr<Document> document_;
+ array<object_ptr<themeSettings>> settings_;
+ string emoticon_;
+ int32 installs_count_;
+ enum Flags : std::int32_t { EMOTICON_MASK = 64, INSTALLS_COUNT_MASK = 16 };
+
+ theme();
+
+ static const std::int32_t ID = -1609668650;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<theme> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class themeSettings final : public Object {
+ public:
+ int32 flags_;
+ bool message_colors_animated_;
+ object_ptr<BaseTheme> base_theme_;
+ int32 accent_color_;
+ int32 outbox_accent_color_;
+ array<int32> message_colors_;
+ object_ptr<WallPaper> wallpaper_;
+ enum Flags : std::int32_t { OUTBOX_ACCENT_COLOR_MASK = 8 };
+
+ themeSettings();
+
+ static const std::int32_t ID = -94849324;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<themeSettings> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topPeer final : public Object {
+ public:
+ object_ptr<Peer> peer_;
+ double rating_;
+
+ static const std::int32_t ID = -305282981;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<topPeer> fetch(TlBufferParser &p);
+
+ explicit topPeer(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class TopPeerCategory: public Object {
+ public:
+
+ static object_ptr<TopPeerCategory> fetch(TlBufferParser &p);
+};
+
+class topPeerCategoryBotsPM final : public TopPeerCategory {
+ public:
+
+ static const std::int32_t ID = -1419371685;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<TopPeerCategory> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topPeerCategoryBotsInline final : public TopPeerCategory {
+ public:
+
+ static const std::int32_t ID = 344356834;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<TopPeerCategory> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topPeerCategoryCorrespondents final : public TopPeerCategory {
+ public:
+
+ static const std::int32_t ID = 104314861;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<TopPeerCategory> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topPeerCategoryGroups final : public TopPeerCategory {
+ public:
+
+ static const std::int32_t ID = -1122524854;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<TopPeerCategory> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topPeerCategoryChannels final : public TopPeerCategory {
+ public:
+
+ static const std::int32_t ID = 371037736;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<TopPeerCategory> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topPeerCategoryPhoneCalls final : public TopPeerCategory {
+ public:
+
+ static const std::int32_t ID = 511092620;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<TopPeerCategory> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topPeerCategoryForwardUsers final : public TopPeerCategory {
+ public:
+
+ static const std::int32_t ID = -1472172887;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<TopPeerCategory> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topPeerCategoryForwardChats final : public TopPeerCategory {
+ public:
+
+ static const std::int32_t ID = -68239120;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<TopPeerCategory> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class topPeerCategoryPeers final : public Object {
+ public:
+ object_ptr<TopPeerCategory> category_;
+ int32 count_;
+ array<object_ptr<topPeer>> peers_;
+
+ static const std::int32_t ID = -75283823;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<topPeerCategoryPeers> fetch(TlBufferParser &p);
+
+ explicit topPeerCategoryPeers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Update: public Object {
+ public:
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+};
+
+class updateNewMessage final : public Update {
+ public:
+ object_ptr<Message> message_;
+ int32 pts_;
+ int32 pts_count_;
+
+ updateNewMessage(object_ptr<Message> &&message_, int32 pts_, int32 pts_count_);
+
+ static const std::int32_t ID = 522914557;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateNewMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageID final : public Update {
+ public:
+ int32 id_;
+ int64 random_id_;
+
+ static const std::int32_t ID = 1318109142;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateMessageID(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDeleteMessages final : public Update {
+ public:
+ array<int32> messages_;
+ int32 pts_;
+ int32 pts_count_;
+
+ updateDeleteMessages(array<int32> &&messages_, int32 pts_, int32 pts_count_);
+
+ static const std::int32_t ID = -1576161051;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateDeleteMessages(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUserTyping final : public Update {
+ public:
+ int64 user_id_;
+ object_ptr<SendMessageAction> action_;
+
+ static const std::int32_t ID = -1071741569;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateUserTyping(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatUserTyping final : public Update {
+ public:
+ int64 chat_id_;
+ object_ptr<Peer> from_id_;
+ object_ptr<SendMessageAction> action_;
+
+ static const std::int32_t ID = -2092401936;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChatUserTyping(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatParticipants final : public Update {
+ public:
+ object_ptr<ChatParticipants> participants_;
+
+ static const std::int32_t ID = 125178264;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChatParticipants(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUserStatus final : public Update {
+ public:
+ int64 user_id_;
+ object_ptr<UserStatus> status_;
+
+ static const std::int32_t ID = -440534818;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateUserStatus(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUserName final : public Update {
+ public:
+ int64 user_id_;
+ string first_name_;
+ string last_name_;
+ array<object_ptr<username>> usernames_;
+
+ static const std::int32_t ID = -1484486364;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateUserName(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUserPhoto final : public Update {
+ public:
+ int64 user_id_;
+ int32 date_;
+ object_ptr<UserProfilePhoto> photo_;
+ bool previous_;
+
+ static const std::int32_t ID = -232290676;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateUserPhoto(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewEncryptedMessage final : public Update {
+ public:
+ object_ptr<EncryptedMessage> message_;
+ int32 qts_;
+
+ static const std::int32_t ID = 314359194;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateNewEncryptedMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateEncryptedChatTyping final : public Update {
+ public:
+ int32 chat_id_;
+
+ static const std::int32_t ID = 386986326;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateEncryptedChatTyping(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateEncryption final : public Update {
+ public:
+ object_ptr<EncryptedChat> chat_;
+ int32 date_;
+
+ static const std::int32_t ID = -1264392051;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateEncryption(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateEncryptedMessagesRead final : public Update {
+ public:
+ int32 chat_id_;
+ int32 max_date_;
+ int32 date_;
+
+ static const std::int32_t ID = 956179895;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateEncryptedMessagesRead(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatParticipantAdd final : public Update {
+ public:
+ int64 chat_id_;
+ int64 user_id_;
+ int64 inviter_id_;
+ int32 date_;
+ int32 version_;
+
+ static const std::int32_t ID = 1037718609;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChatParticipantAdd(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatParticipantDelete final : public Update {
+ public:
+ int64 chat_id_;
+ int64 user_id_;
+ int32 version_;
+
+ static const std::int32_t ID = -483443337;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChatParticipantDelete(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDcOptions final : public Update {
+ public:
+ array<object_ptr<dcOption>> dc_options_;
+
+ static const std::int32_t ID = -1906403213;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateDcOptions(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNotifySettings final : public Update {
+ public:
+ object_ptr<NotifyPeer> peer_;
+ object_ptr<peerNotifySettings> notify_settings_;
+
+ static const std::int32_t ID = -1094555409;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateNotifySettings(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateServiceNotification final : public Update {
+ public:
+ int32 flags_;
+ bool popup_;
+ int32 inbox_date_;
+ string type_;
+ string message_;
+ object_ptr<MessageMedia> media_;
+ array<object_ptr<MessageEntity>> entities_;
+ enum Flags : std::int32_t { INBOX_DATE_MASK = 2 };
+
+ updateServiceNotification();
+
+ updateServiceNotification(int32 flags_, bool popup_, int32 inbox_date_, string const &type_, string const &message_, object_ptr<MessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_);
+
+ static const std::int32_t ID = -337352679;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePrivacy final : public Update {
+ public:
+ object_ptr<PrivacyKey> key_;
+ array<object_ptr<PrivacyRule>> rules_;
+
+ static const std::int32_t ID = -298113238;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updatePrivacy(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUserPhone final : public Update {
+ public:
+ int64 user_id_;
+ string phone_;
+
+ static const std::int32_t ID = 88680979;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateUserPhone(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateReadHistoryInbox final : public Update {
+ public:
+ int32 flags_;
+ int32 folder_id_;
+ object_ptr<Peer> peer_;
+ int32 max_id_;
+ int32 still_unread_count_;
+ int32 pts_;
+ int32 pts_count_;
+ enum Flags : std::int32_t { FOLDER_ID_MASK = 1 };
+
+ updateReadHistoryInbox();
+
+ static const std::int32_t ID = -1667805217;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateReadHistoryOutbox final : public Update {
+ public:
+ object_ptr<Peer> peer_;
+ int32 max_id_;
+ int32 pts_;
+ int32 pts_count_;
+
+ static const std::int32_t ID = 791617983;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateReadHistoryOutbox(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateWebPage final : public Update {
+ public:
+ object_ptr<WebPage> webpage_;
+ int32 pts_;
+ int32 pts_count_;
+
+ static const std::int32_t ID = 2139689491;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateWebPage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateReadMessagesContents final : public Update {
+ public:
+ array<int32> messages_;
+ int32 pts_;
+ int32 pts_count_;
+
+ static const std::int32_t ID = 1757493555;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateReadMessagesContents(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChannelTooLong final : public Update {
+ public:
+ int32 flags_;
+ int64 channel_id_;
+ int32 pts_;
+ enum Flags : std::int32_t { PTS_MASK = 1 };
+
+ updateChannelTooLong();
+
+ updateChannelTooLong(int32 flags_, int64 channel_id_, int32 pts_);
+
+ static const std::int32_t ID = 277713951;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChannel final : public Update {
+ public:
+ int64 channel_id_;
+
+ static const std::int32_t ID = 1666927625;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChannel(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewChannelMessage final : public Update {
+ public:
+ object_ptr<Message> message_;
+ int32 pts_;
+ int32 pts_count_;
+
+ static const std::int32_t ID = 1656358105;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateNewChannelMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateReadChannelInbox final : public Update {
+ public:
+ int32 flags_;
+ int32 folder_id_;
+ int64 channel_id_;
+ int32 max_id_;
+ int32 still_unread_count_;
+ int32 pts_;
+ enum Flags : std::int32_t { FOLDER_ID_MASK = 1 };
+
+ updateReadChannelInbox();
+
+ static const std::int32_t ID = -1842450928;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDeleteChannelMessages final : public Update {
+ public:
+ int64 channel_id_;
+ array<int32> messages_;
+ int32 pts_;
+ int32 pts_count_;
+
+ static const std::int32_t ID = -1020437742;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateDeleteChannelMessages(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChannelMessageViews final : public Update {
+ public:
+ int64 channel_id_;
+ int32 id_;
+ int32 views_;
+
+ static const std::int32_t ID = -232346616;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChannelMessageViews(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatParticipantAdmin final : public Update {
+ public:
+ int64 chat_id_;
+ int64 user_id_;
+ bool is_admin_;
+ int32 version_;
+
+ static const std::int32_t ID = -674602590;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChatParticipantAdmin(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewStickerSet final : public Update {
+ public:
+ object_ptr<messages_StickerSet> stickerset_;
+
+ static const std::int32_t ID = 1753886890;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateNewStickerSet(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateStickerSetsOrder final : public Update {
+ public:
+ int32 flags_;
+ bool masks_;
+ bool emojis_;
+ array<int64> order_;
+
+ updateStickerSetsOrder();
+
+ static const std::int32_t ID = 196268545;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateStickerSets final : public Update {
+ public:
+ int32 flags_;
+ bool masks_;
+ bool emojis_;
+
+ updateStickerSets();
+
+ static const std::int32_t ID = 834816008;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateSavedGifs final : public Update {
+ public:
+
+ static const std::int32_t ID = -1821035490;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotInlineQuery final : public Update {
+ public:
+ int32 flags_;
+ int64 query_id_;
+ int64 user_id_;
+ string query_;
+ object_ptr<GeoPoint> geo_;
+ object_ptr<InlineQueryPeerType> peer_type_;
+ string offset_;
+
+ updateBotInlineQuery();
+
+ static const std::int32_t ID = 1232025500;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotInlineSend final : public Update {
+ public:
+ int32 flags_;
+ int64 user_id_;
+ string query_;
+ object_ptr<GeoPoint> geo_;
+ string id_;
+ object_ptr<InputBotInlineMessageID> msg_id_;
+
+ updateBotInlineSend();
+
+ static const std::int32_t ID = 317794823;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateEditChannelMessage final : public Update {
+ public:
+ object_ptr<Message> message_;
+ int32 pts_;
+ int32 pts_count_;
+
+ updateEditChannelMessage(object_ptr<Message> &&message_, int32 pts_, int32 pts_count_);
+
+ static const std::int32_t ID = 457133559;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateEditChannelMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotCallbackQuery final : public Update {
+ public:
+ int32 flags_;
+ int64 query_id_;
+ int64 user_id_;
+ object_ptr<Peer> peer_;
+ int32 msg_id_;
+ int64 chat_instance_;
+ bytes data_;
+ string game_short_name_;
+ enum Flags : std::int32_t { DATA_MASK = 1, GAME_SHORT_NAME_MASK = 2 };
+
+ updateBotCallbackQuery();
+
+ static const std::int32_t ID = -1177566067;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateEditMessage final : public Update {
+ public:
+ object_ptr<Message> message_;
+ int32 pts_;
+ int32 pts_count_;
+
+ static const std::int32_t ID = -469536605;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateEditMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateInlineBotCallbackQuery final : public Update {
+ public:
+ int32 flags_;
+ int64 query_id_;
+ int64 user_id_;
+ object_ptr<InputBotInlineMessageID> msg_id_;
+ int64 chat_instance_;
+ bytes data_;
+ string game_short_name_;
+ enum Flags : std::int32_t { DATA_MASK = 1, GAME_SHORT_NAME_MASK = 2 };
+
+ updateInlineBotCallbackQuery();
+
+ static const std::int32_t ID = 1763610706;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateReadChannelOutbox final : public Update {
+ public:
+ int64 channel_id_;
+ int32 max_id_;
+
+ static const std::int32_t ID = -1218471511;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateReadChannelOutbox(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDraftMessage final : public Update {
+ public:
+ int32 flags_;
+ object_ptr<Peer> peer_;
+ int32 top_msg_id_;
+ object_ptr<DraftMessage> draft_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+
+ updateDraftMessage();
+
+ static const std::int32_t ID = 457829485;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateReadFeaturedStickers final : public Update {
+ public:
+
+ static const std::int32_t ID = 1461528386;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateRecentStickers final : public Update {
+ public:
+
+ static const std::int32_t ID = -1706939360;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateConfig final : public Update {
+ public:
+
+ static const std::int32_t ID = -1574314746;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePtsChanged final : public Update {
+ public:
+
+ static const std::int32_t ID = 861169551;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChannelWebPage final : public Update {
+ public:
+ int64 channel_id_;
+ object_ptr<WebPage> webpage_;
+ int32 pts_;
+ int32 pts_count_;
+
+ static const std::int32_t ID = 791390623;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChannelWebPage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDialogPinned final : public Update {
+ public:
+ int32 flags_;
+ bool pinned_;
+ int32 folder_id_;
+ object_ptr<DialogPeer> peer_;
+ enum Flags : std::int32_t { FOLDER_ID_MASK = 2 };
+
+ updateDialogPinned();
+
+ static const std::int32_t ID = 1852826908;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePinnedDialogs final : public Update {
+ public:
+ int32 flags_;
+ int32 folder_id_;
+ array<object_ptr<DialogPeer>> order_;
+ enum Flags : std::int32_t { FOLDER_ID_MASK = 2 };
+
+ updatePinnedDialogs();
+
+ static const std::int32_t ID = -99664734;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotWebhookJSON final : public Update {
+ public:
+ object_ptr<dataJSON> data_;
+
+ static const std::int32_t ID = -2095595325;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateBotWebhookJSON(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotWebhookJSONQuery final : public Update {
+ public:
+ int64 query_id_;
+ object_ptr<dataJSON> data_;
+ int32 timeout_;
+
+ static const std::int32_t ID = -1684914010;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateBotWebhookJSONQuery(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotShippingQuery final : public Update {
+ public:
+ int64 query_id_;
+ int64 user_id_;
+ bytes payload_;
+ object_ptr<postAddress> shipping_address_;
+
+ static const std::int32_t ID = -1246823043;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateBotShippingQuery(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotPrecheckoutQuery final : public Update {
+ public:
+ int32 flags_;
+ int64 query_id_;
+ int64 user_id_;
+ bytes payload_;
+ object_ptr<paymentRequestedInfo> info_;
+ string shipping_option_id_;
+ string currency_;
+ int64 total_amount_;
+ enum Flags : std::int32_t { SHIPPING_OPTION_ID_MASK = 2 };
+
+ updateBotPrecheckoutQuery();
+
+ static const std::int32_t ID = -1934976362;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePhoneCall final : public Update {
+ public:
+ object_ptr<PhoneCall> phone_call_;
+
+ static const std::int32_t ID = -1425052898;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updatePhoneCall(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateLangPackTooLong final : public Update {
+ public:
+ string lang_code_;
+
+ static const std::int32_t ID = 1180041828;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateLangPackTooLong(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateLangPack final : public Update {
+ public:
+ object_ptr<langPackDifference> difference_;
+
+ static const std::int32_t ID = 1442983757;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateLangPack(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateFavedStickers final : public Update {
+ public:
+
+ static const std::int32_t ID = -451831443;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChannelReadMessagesContents final : public Update {
+ public:
+ int32 flags_;
+ int64 channel_id_;
+ int32 top_msg_id_;
+ array<int32> messages_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+
+ updateChannelReadMessagesContents();
+
+ static const std::int32_t ID = -366410403;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateContactsReset final : public Update {
+ public:
+
+ static const std::int32_t ID = 1887741886;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChannelAvailableMessages final : public Update {
+ public:
+ int64 channel_id_;
+ int32 available_min_id_;
+
+ static const std::int32_t ID = -1304443240;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChannelAvailableMessages(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDialogUnreadMark final : public Update {
+ public:
+ int32 flags_;
+ bool unread_;
+ object_ptr<DialogPeer> peer_;
+
+ updateDialogUnreadMark();
+
+ static const std::int32_t ID = -513517117;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessagePoll final : public Update {
+ public:
+ int32 flags_;
+ int64 poll_id_;
+ object_ptr<poll> poll_;
+ object_ptr<pollResults> results_;
+
+ updateMessagePoll();
+
+ static const std::int32_t ID = -1398708869;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatDefaultBannedRights final : public Update {
+ public:
+ object_ptr<Peer> peer_;
+ object_ptr<chatBannedRights> default_banned_rights_;
+ int32 version_;
+
+ static const std::int32_t ID = 1421875280;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChatDefaultBannedRights(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateFolderPeers final : public Update {
+ public:
+ array<object_ptr<folderPeer>> folder_peers_;
+ int32 pts_;
+ int32 pts_count_;
+
+ static const std::int32_t ID = 422972864;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateFolderPeers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePeerSettings final : public Update {
+ public:
+ object_ptr<Peer> peer_;
+ object_ptr<peerSettings> settings_;
+
+ static const std::int32_t ID = 1786671974;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updatePeerSettings(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePeerLocated final : public Update {
+ public:
+ array<object_ptr<PeerLocated>> peers_;
+
+ static const std::int32_t ID = -1263546448;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updatePeerLocated(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateNewScheduledMessage final : public Update {
+ public:
+ object_ptr<Message> message_;
+
+ static const std::int32_t ID = 967122427;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateNewScheduledMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDeleteScheduledMessages final : public Update {
+ public:
+ object_ptr<Peer> peer_;
+ array<int32> messages_;
+
+ static const std::int32_t ID = -1870238482;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateDeleteScheduledMessages(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateTheme final : public Update {
+ public:
+ object_ptr<theme> theme_;
+
+ static const std::int32_t ID = -2112423005;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateTheme(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateGeoLiveViewed final : public Update {
+ public:
+ object_ptr<Peer> peer_;
+ int32 msg_id_;
+
+ static const std::int32_t ID = -2027964103;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateGeoLiveViewed(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateLoginToken final : public Update {
+ public:
+
+ static const std::int32_t ID = 1448076945;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessagePollVote final : public Update {
+ public:
+ int64 poll_id_;
+ int64 user_id_;
+ array<bytes> options_;
+ int32 qts_;
+
+ static const std::int32_t ID = 274961865;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateMessagePollVote(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDialogFilter final : public Update {
+ public:
+ int32 flags_;
+ int32 id_;
+ object_ptr<DialogFilter> filter_;
+
+ updateDialogFilter();
+
+ static const std::int32_t ID = 654302845;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDialogFilterOrder final : public Update {
+ public:
+ array<int32> order_;
+
+ static const std::int32_t ID = -1512627963;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateDialogFilterOrder(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateDialogFilters final : public Update {
+ public:
+
+ static const std::int32_t ID = 889491791;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePhoneCallSignalingData final : public Update {
+ public:
+ int64 phone_call_id_;
+ bytes data_;
+
+ static const std::int32_t ID = 643940105;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updatePhoneCallSignalingData(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChannelMessageForwards final : public Update {
+ public:
+ int64 channel_id_;
+ int32 id_;
+ int32 forwards_;
+
+ static const std::int32_t ID = -761649164;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChannelMessageForwards(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateReadChannelDiscussionInbox final : public Update {
+ public:
+ int32 flags_;
+ int64 channel_id_;
+ int32 top_msg_id_;
+ int32 read_max_id_;
+ int64 broadcast_id_;
+ int32 broadcast_post_;
+ enum Flags : std::int32_t { BROADCAST_ID_MASK = 1, BROADCAST_POST_MASK = 1 };
+
+ updateReadChannelDiscussionInbox();
+
+ static const std::int32_t ID = -693004986;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateReadChannelDiscussionOutbox final : public Update {
+ public:
+ int64 channel_id_;
+ int32 top_msg_id_;
+ int32 read_max_id_;
+
+ static const std::int32_t ID = 1767677564;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateReadChannelDiscussionOutbox(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePeerBlocked final : public Update {
+ public:
+ object_ptr<Peer> peer_id_;
+ bool blocked_;
+
+ static const std::int32_t ID = 610945826;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updatePeerBlocked(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChannelUserTyping final : public Update {
+ public:
+ int32 flags_;
+ int64 channel_id_;
+ int32 top_msg_id_;
+ object_ptr<Peer> from_id_;
+ object_ptr<SendMessageAction> action_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+
+ updateChannelUserTyping();
+
+ static const std::int32_t ID = -1937192669;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePinnedMessages final : public Update {
+ public:
+ int32 flags_;
+ bool pinned_;
+ object_ptr<Peer> peer_;
+ array<int32> messages_;
+ int32 pts_;
+ int32 pts_count_;
+
+ updatePinnedMessages();
+
+ static const std::int32_t ID = -309990731;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePinnedChannelMessages final : public Update {
+ public:
+ int32 flags_;
+ bool pinned_;
+ int64 channel_id_;
+ array<int32> messages_;
+ int32 pts_;
+ int32 pts_count_;
+
+ updatePinnedChannelMessages();
+
+ static const std::int32_t ID = 1538885128;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChat final : public Update {
+ public:
+ int64 chat_id_;
+
+ static const std::int32_t ID = -124097970;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateChat(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateGroupCallParticipants final : public Update {
+ public:
+ object_ptr<inputGroupCall> call_;
+ array<object_ptr<groupCallParticipant>> participants_;
+ int32 version_;
+
+ static const std::int32_t ID = -219423922;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateGroupCallParticipants(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateGroupCall final : public Update {
+ public:
+ int64 chat_id_;
+ object_ptr<GroupCall> call_;
+
+ static const std::int32_t ID = 347227392;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateGroupCall(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePeerHistoryTTL final : public Update {
+ public:
+ int32 flags_;
+ object_ptr<Peer> peer_;
+ int32 ttl_period_;
+ enum Flags : std::int32_t { TTL_PERIOD_MASK = 1 };
+
+ updatePeerHistoryTTL();
+
+ static const std::int32_t ID = -1147422299;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChatParticipant final : public Update {
+ public:
+ int32 flags_;
+ int64 chat_id_;
+ int32 date_;
+ int64 actor_id_;
+ int64 user_id_;
+ object_ptr<ChatParticipant> prev_participant_;
+ object_ptr<ChatParticipant> new_participant_;
+ object_ptr<ExportedChatInvite> invite_;
+ int32 qts_;
+
+ updateChatParticipant();
+
+ static const std::int32_t ID = -796432838;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChannelParticipant final : public Update {
+ public:
+ int32 flags_;
+ int64 channel_id_;
+ int32 date_;
+ int64 actor_id_;
+ int64 user_id_;
+ object_ptr<ChannelParticipant> prev_participant_;
+ object_ptr<ChannelParticipant> new_participant_;
+ object_ptr<ExportedChatInvite> invite_;
+ int32 qts_;
+
+ updateChannelParticipant();
+
+ static const std::int32_t ID = -1738720581;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotStopped final : public Update {
+ public:
+ int64 user_id_;
+ int32 date_;
+ bool stopped_;
+ int32 qts_;
+
+ static const std::int32_t ID = -997782967;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateBotStopped(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateGroupCallConnection final : public Update {
+ public:
+ int32 flags_;
+ bool presentation_;
+ object_ptr<dataJSON> params_;
+
+ updateGroupCallConnection();
+
+ static const std::int32_t ID = 192428418;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotCommands final : public Update {
+ public:
+ object_ptr<Peer> peer_;
+ int64 bot_id_;
+ array<object_ptr<botCommand>> commands_;
+
+ static const std::int32_t ID = 1299263278;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateBotCommands(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatePendingJoinRequests final : public Update {
+ public:
+ object_ptr<Peer> peer_;
+ int32 requests_pending_;
+ array<int64> recent_requesters_;
+
+ static const std::int32_t ID = 1885586395;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updatePendingJoinRequests(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotChatInviteRequester final : public Update {
+ public:
+ object_ptr<Peer> peer_;
+ int32 date_;
+ int64 user_id_;
+ string about_;
+ object_ptr<ExportedChatInvite> invite_;
+ int32 qts_;
+
+ static const std::int32_t ID = 299870598;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateBotChatInviteRequester(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageReactions final : public Update {
+ public:
+ int32 flags_;
+ object_ptr<Peer> peer_;
+ int32 msg_id_;
+ int32 top_msg_id_;
+ object_ptr<messageReactions> reactions_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+
+ updateMessageReactions();
+
+ static const std::int32_t ID = 1578843320;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateAttachMenuBots final : public Update {
+ public:
+
+ static const std::int32_t ID = 397910539;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateWebViewResultSent final : public Update {
+ public:
+ int64 query_id_;
+
+ static const std::int32_t ID = 361936797;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateWebViewResultSent(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateBotMenuButton final : public Update {
+ public:
+ int64 bot_id_;
+ object_ptr<BotMenuButton> button_;
+
+ static const std::int32_t ID = 347625491;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateBotMenuButton(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateSavedRingtones final : public Update {
+ public:
+
+ static const std::int32_t ID = 1960361625;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateTranscribedAudio final : public Update {
+ public:
+ int32 flags_;
+ bool pending_;
+ object_ptr<Peer> peer_;
+ int32 msg_id_;
+ int64 transcription_id_;
+ string text_;
+
+ updateTranscribedAudio();
+
+ static const std::int32_t ID = 8703322;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateReadFeaturedEmojiStickers final : public Update {
+ public:
+
+ static const std::int32_t ID = -78886548;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateUserEmojiStatus final : public Update {
+ public:
+ int64 user_id_;
+ object_ptr<EmojiStatus> emoji_status_;
+
+ static const std::int32_t ID = 674706841;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateUserEmojiStatus(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateRecentEmojiStatuses final : public Update {
+ public:
+
+ static const std::int32_t ID = 821314523;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateRecentReactions final : public Update {
+ public:
+
+ static const std::int32_t ID = 1870160884;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMoveStickerSetToTop final : public Update {
+ public:
+ int32 flags_;
+ bool masks_;
+ bool emojis_;
+ int64 stickerset_;
+
+ updateMoveStickerSetToTop();
+
+ static const std::int32_t ID = -2030252155;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateMessageExtendedMedia final : public Update {
+ public:
+ object_ptr<Peer> peer_;
+ int32 msg_id_;
+ object_ptr<MessageExtendedMedia> extended_media_;
+
+ static const std::int32_t ID = 1517529484;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ explicit updateMessageExtendedMedia(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateChannelPinnedTopic final : public Update {
+ public:
+ int32 flags_;
+ int64 channel_id_;
+ int32 topic_id_;
+ enum Flags : std::int32_t { TOPIC_ID_MASK = 1 };
+
+ updateChannelPinnedTopic();
+
+ static const std::int32_t ID = -158027602;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Update> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class Updates: public Object {
+ public:
+
+ static object_ptr<Updates> fetch(TlBufferParser &p);
+};
+
+class updatesTooLong final : public Updates {
+ public:
+
+ static const std::int32_t ID = -484987010;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Updates> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateShortMessage final : public Updates {
+ public:
+ int32 flags_;
+ bool out_;
+ bool mentioned_;
+ bool media_unread_;
+ bool silent_;
+ int32 id_;
+ int64 user_id_;
+ string message_;
+ int32 pts_;
+ int32 pts_count_;
+ int32 date_;
+ object_ptr<messageFwdHeader> fwd_from_;
+ int64 via_bot_id_;
+ object_ptr<messageReplyHeader> reply_to_;
+ array<object_ptr<MessageEntity>> entities_;
+ int32 ttl_period_;
+ enum Flags : std::int32_t { VIA_BOT_ID_MASK = 2048, TTL_PERIOD_MASK = 33554432 };
+
+ updateShortMessage();
+
+ static const std::int32_t ID = 826001400;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Updates> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateShortChatMessage final : public Updates {
+ public:
+ int32 flags_;
+ bool out_;
+ bool mentioned_;
+ bool media_unread_;
+ bool silent_;
+ int32 id_;
+ int64 from_id_;
+ int64 chat_id_;
+ string message_;
+ int32 pts_;
+ int32 pts_count_;
+ int32 date_;
+ object_ptr<messageFwdHeader> fwd_from_;
+ int64 via_bot_id_;
+ object_ptr<messageReplyHeader> reply_to_;
+ array<object_ptr<MessageEntity>> entities_;
+ int32 ttl_period_;
+ enum Flags : std::int32_t { VIA_BOT_ID_MASK = 2048, TTL_PERIOD_MASK = 33554432 };
+
+ updateShortChatMessage();
+
+ static const std::int32_t ID = 1299050149;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Updates> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateShort final : public Updates {
+ public:
+ object_ptr<Update> update_;
+ int32 date_;
+
+ static const std::int32_t ID = 2027216577;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Updates> fetch(TlBufferParser &p);
+
+ explicit updateShort(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updatesCombined final : public Updates {
+ public:
+ array<object_ptr<Update>> updates_;
+ array<object_ptr<User>> users_;
+ array<object_ptr<Chat>> chats_;
+ int32 date_;
+ int32 seq_start_;
+ int32 seq_;
+
+ static const std::int32_t ID = 1918567619;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Updates> fetch(TlBufferParser &p);
+
+ explicit updatesCombined(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updates final : public Updates {
+ public:
+ array<object_ptr<Update>> updates_;
+ array<object_ptr<User>> users_;
+ array<object_ptr<Chat>> chats_;
+ int32 date_;
+ int32 seq_;
+
+ updates();
+
+ static const std::int32_t ID = 1957577280;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Updates> fetch(TlBufferParser &p);
+
+ explicit updates(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updateShortSentMessage final : public Updates {
+ public:
+ int32 flags_;
+ bool out_;
+ int32 id_;
+ int32 pts_;
+ int32 pts_count_;
+ int32 date_;
+ object_ptr<MessageMedia> media_;
+ array<object_ptr<MessageEntity>> entities_;
+ int32 ttl_period_;
+ enum Flags : std::int32_t { TTL_PERIOD_MASK = 33554432 };
+
+ updateShortSentMessage();
+
+ static const std::int32_t ID = -1877614335;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<Updates> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class UrlAuthResult: public Object {
+ public:
+
+ static object_ptr<UrlAuthResult> fetch(TlBufferParser &p);
+};
+
+class urlAuthResultRequest final : public UrlAuthResult {
+ public:
+ int32 flags_;
+ bool request_write_access_;
+ object_ptr<User> bot_;
+ string domain_;
+
+ urlAuthResultRequest();
+
+ static const std::int32_t ID = -1831650802;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UrlAuthResult> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class urlAuthResultAccepted final : public UrlAuthResult {
+ public:
+ string url_;
+
+ static const std::int32_t ID = -1886646706;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UrlAuthResult> fetch(TlBufferParser &p);
+
+ explicit urlAuthResultAccepted(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class urlAuthResultDefault final : public UrlAuthResult {
+ public:
+
+ static const std::int32_t ID = -1445536993;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UrlAuthResult> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class User: public Object {
+ public:
+
+ static object_ptr<User> fetch(TlBufferParser &p);
+};
+
+class userEmpty final : public User {
+ public:
+ int64 id_;
+
+ static const std::int32_t ID = -742634630;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<User> fetch(TlBufferParser &p);
+
+ explicit userEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class user final : public User {
+ public:
+ int32 flags_;
+ bool self_;
+ bool contact_;
+ bool mutual_contact_;
+ bool deleted_;
+ bool bot_;
+ bool bot_chat_history_;
+ bool bot_nochats_;
+ bool verified_;
+ bool restricted_;
+ bool min_;
+ bool bot_inline_geo_;
+ bool support_;
+ bool scam_;
+ bool apply_min_photo_;
+ bool fake_;
+ bool bot_attach_menu_;
+ bool premium_;
+ bool attach_menu_enabled_;
+ int32 flags2_;
+ int64 id_;
+ int64 access_hash_;
+ string first_name_;
+ string last_name_;
+ string username_;
+ string phone_;
+ object_ptr<UserProfilePhoto> photo_;
+ object_ptr<UserStatus> status_;
+ int32 bot_info_version_;
+ array<object_ptr<restrictionReason>> restriction_reason_;
+ string bot_inline_placeholder_;
+ string lang_code_;
+ object_ptr<EmojiStatus> emoji_status_;
+ array<object_ptr<username>> usernames_;
+ enum Flags : std::int32_t { ACCESS_HASH_MASK = 1, FIRST_NAME_MASK = 2, LAST_NAME_MASK = 4, USERNAME_MASK = 8, PHONE_MASK = 16, BOT_INFO_VERSION_MASK = 16384, BOT_INLINE_PLACEHOLDER_MASK = 524288, LANG_CODE_MASK = 4194304 };
+
+ user();
+
+ user(int32 flags_, bool self_, bool contact_, bool mutual_contact_, bool deleted_, bool bot_, bool bot_chat_history_, bool bot_nochats_, bool verified_, bool restricted_, bool min_, bool bot_inline_geo_, bool support_, bool scam_, bool apply_min_photo_, bool fake_, bool bot_attach_menu_, bool premium_, bool attach_menu_enabled_, int32 flags2_, int64 id_, int64 access_hash_, string const &first_name_, string const &last_name_, string const &username_, string const &phone_, object_ptr<UserProfilePhoto> &&photo_, object_ptr<UserStatus> &&status_, int32 bot_info_version_, array<object_ptr<restrictionReason>> &&restriction_reason_, string const &bot_inline_placeholder_, string const &lang_code_, object_ptr<EmojiStatus> &&emoji_status_, array<object_ptr<username>> &&usernames_);
+
+ static const std::int32_t ID = -1885878744;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<User> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userFull final : public Object {
+ public:
+ int32 flags_;
+ bool blocked_;
+ bool phone_calls_available_;
+ bool phone_calls_private_;
+ bool can_pin_message_;
+ bool has_scheduled_;
+ bool video_calls_available_;
+ bool voice_messages_forbidden_;
+ int64 id_;
+ string about_;
+ object_ptr<peerSettings> settings_;
+ object_ptr<Photo> profile_photo_;
+ object_ptr<peerNotifySettings> notify_settings_;
+ object_ptr<botInfo> bot_info_;
+ int32 pinned_msg_id_;
+ int32 common_chats_count_;
+ int32 folder_id_;
+ int32 ttl_period_;
+ string theme_emoticon_;
+ string private_forward_name_;
+ object_ptr<chatAdminRights> bot_group_admin_rights_;
+ object_ptr<chatAdminRights> bot_broadcast_admin_rights_;
+ array<object_ptr<premiumGiftOption>> premium_gifts_;
+ enum Flags : std::int32_t { ABOUT_MASK = 2, PINNED_MSG_ID_MASK = 64, FOLDER_ID_MASK = 2048, TTL_PERIOD_MASK = 16384, THEME_EMOTICON_MASK = 32768, PRIVATE_FORWARD_NAME_MASK = 65536 };
+
+ userFull();
+
+ static const std::int32_t ID = -994968513;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<userFull> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class UserProfilePhoto: public Object {
+ public:
+
+ static object_ptr<UserProfilePhoto> fetch(TlBufferParser &p);
+};
+
+class userProfilePhotoEmpty final : public UserProfilePhoto {
+ public:
+
+ static const std::int32_t ID = 1326562017;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UserProfilePhoto> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userProfilePhoto final : public UserProfilePhoto {
+ public:
+ int32 flags_;
+ bool has_video_;
+ int64 photo_id_;
+ bytes stripped_thumb_;
+ int32 dc_id_;
+ enum Flags : std::int32_t { STRIPPED_THUMB_MASK = 2 };
+
+ userProfilePhoto();
+
+ userProfilePhoto(int32 flags_, bool has_video_, int64 photo_id_, bytes &&stripped_thumb_, int32 dc_id_);
+
+ static const std::int32_t ID = -2100168954;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UserProfilePhoto> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class UserStatus: public Object {
+ public:
+
+ static object_ptr<UserStatus> fetch(TlBufferParser &p);
+};
+
+class userStatusEmpty final : public UserStatus {
+ public:
+
+ static const std::int32_t ID = 164646985;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UserStatus> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userStatusOnline final : public UserStatus {
+ public:
+ int32 expires_;
+
+ static const std::int32_t ID = -306628279;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UserStatus> fetch(TlBufferParser &p);
+
+ explicit userStatusOnline(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userStatusOffline final : public UserStatus {
+ public:
+ int32 was_online_;
+
+ static const std::int32_t ID = 9203775;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UserStatus> fetch(TlBufferParser &p);
+
+ explicit userStatusOffline(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userStatusRecently final : public UserStatus {
+ public:
+
+ static const std::int32_t ID = -496024847;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UserStatus> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userStatusLastWeek final : public UserStatus {
+ public:
+
+ static const std::int32_t ID = 129960444;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UserStatus> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class userStatusLastMonth final : public UserStatus {
+ public:
+
+ static const std::int32_t ID = 2011940674;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<UserStatus> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class username final : public Object {
+ public:
+ int32 flags_;
+ bool editable_;
+ bool active_;
+ string username_;
+
+ username();
+
+ static const std::int32_t ID = -1274595769;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<username> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class videoSize final : public Object {
+ public:
+ int32 flags_;
+ string type_;
+ int32 w_;
+ int32 h_;
+ int32 size_;
+ double video_start_ts_;
+ enum Flags : std::int32_t { VIDEO_START_TS_MASK = 1 };
+
+ videoSize();
+
+ static const std::int32_t ID = -567037804;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<videoSize> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class WallPaper: public Object {
+ public:
+
+ static object_ptr<WallPaper> fetch(TlBufferParser &p);
+};
+
+class wallPaper final : public WallPaper {
+ public:
+ int64 id_;
+ int32 flags_;
+ bool creator_;
+ bool default_;
+ bool pattern_;
+ bool dark_;
+ int64 access_hash_;
+ string slug_;
+ object_ptr<Document> document_;
+ object_ptr<wallPaperSettings> settings_;
+
+ wallPaper();
+
+ static const std::int32_t ID = -1539849235;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<WallPaper> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class wallPaperNoFile final : public WallPaper {
+ public:
+ int64 id_;
+ int32 flags_;
+ bool default_;
+ bool dark_;
+ object_ptr<wallPaperSettings> settings_;
+
+ wallPaperNoFile();
+
+ static const std::int32_t ID = -528465642;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<WallPaper> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class wallPaperSettings final : public Object {
+ public:
+ int32 flags_;
+ bool blur_;
+ bool motion_;
+ int32 background_color_;
+ int32 second_background_color_;
+ int32 third_background_color_;
+ int32 fourth_background_color_;
+ int32 intensity_;
+ int32 rotation_;
+ enum Flags : std::int32_t { BLUR_MASK = 2, MOTION_MASK = 4, BACKGROUND_COLOR_MASK = 1, SECOND_BACKGROUND_COLOR_MASK = 16, THIRD_BACKGROUND_COLOR_MASK = 32, FOURTH_BACKGROUND_COLOR_MASK = 64, INTENSITY_MASK = 8, ROTATION_MASK = 16 };
+
+ wallPaperSettings();
+
+ wallPaperSettings(int32 flags_, bool blur_, bool motion_, int32 background_color_, int32 second_background_color_, int32 third_background_color_, int32 fourth_background_color_, int32 intensity_, int32 rotation_);
+
+ static const std::int32_t ID = 499236004;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<wallPaperSettings> fetch(TlBufferParser &p);
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webAuthorization final : public Object {
+ public:
+ int64 hash_;
+ int64 bot_id_;
+ string domain_;
+ string browser_;
+ string platform_;
+ int32 date_created_;
+ int32 date_active_;
+ string ip_;
+ string region_;
+
+ static const std::int32_t ID = -1493633966;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<webAuthorization> fetch(TlBufferParser &p);
+
+ explicit webAuthorization(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class WebDocument: public Object {
+ public:
+
+ static object_ptr<WebDocument> fetch(TlBufferParser &p);
+};
+
+class webDocument final : public WebDocument {
+ public:
+ string url_;
+ int64 access_hash_;
+ int32 size_;
+ string mime_type_;
+ array<object_ptr<DocumentAttribute>> attributes_;
+
+ static const std::int32_t ID = 475467473;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<WebDocument> fetch(TlBufferParser &p);
+
+ explicit webDocument(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webDocumentNoProxy final : public WebDocument {
+ public:
+ string url_;
+ int32 size_;
+ string mime_type_;
+ array<object_ptr<DocumentAttribute>> attributes_;
+
+ static const std::int32_t ID = -104284986;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<WebDocument> fetch(TlBufferParser &p);
+
+ explicit webDocumentNoProxy(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class WebPage: public Object {
+ public:
+
+ static object_ptr<WebPage> fetch(TlBufferParser &p);
+};
+
+class webPageEmpty final : public WebPage {
+ public:
+ int64 id_;
+
+ static const std::int32_t ID = -350980120;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<WebPage> fetch(TlBufferParser &p);
+
+ explicit webPageEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webPagePending final : public WebPage {
+ public:
+ int64 id_;
+ int32 date_;
+
+ static const std::int32_t ID = -981018084;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<WebPage> fetch(TlBufferParser &p);
+
+ explicit webPagePending(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webPage final : public WebPage {
+ public:
+ int32 flags_;
+ int64 id_;
+ string url_;
+ string display_url_;
+ int32 hash_;
+ string type_;
+ string site_name_;
+ string title_;
+ string description_;
+ object_ptr<Photo> photo_;
+ string embed_url_;
+ string embed_type_;
+ int32 embed_width_;
+ int32 embed_height_;
+ int32 duration_;
+ string author_;
+ object_ptr<Document> document_;
+ object_ptr<page> cached_page_;
+ array<object_ptr<webPageAttributeTheme>> attributes_;
+ enum Flags : std::int32_t { TYPE_MASK = 1, SITE_NAME_MASK = 2, TITLE_MASK = 4, DESCRIPTION_MASK = 8, EMBED_URL_MASK = 32, EMBED_TYPE_MASK = 32, EMBED_WIDTH_MASK = 64, EMBED_HEIGHT_MASK = 64, DURATION_MASK = 128, AUTHOR_MASK = 256 };
+
+ webPage();
+
+ static const std::int32_t ID = -392411726;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<WebPage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webPageNotModified final : public WebPage {
+ public:
+ int32 flags_;
+ int32 cached_page_views_;
+ enum Flags : std::int32_t { CACHED_PAGE_VIEWS_MASK = 1 };
+
+ webPageNotModified();
+
+ static const std::int32_t ID = 1930545681;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<WebPage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webPageAttributeTheme final : public Object {
+ public:
+ int32 flags_;
+ array<object_ptr<Document>> documents_;
+ object_ptr<themeSettings> settings_;
+
+ webPageAttributeTheme();
+
+ static const std::int32_t ID = 1421174295;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<webPageAttributeTheme> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webViewMessageSent final : public Object {
+ public:
+ int32 flags_;
+ object_ptr<InputBotInlineMessageID> msg_id_;
+
+ webViewMessageSent();
+
+ static const std::int32_t ID = 211046684;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<webViewMessageSent> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class webViewResultUrl final : public Object {
+ public:
+ int64 query_id_;
+ string url_;
+
+ static const std::int32_t ID = 202659196;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<webViewResultUrl> fetch(TlBufferParser &p);
+
+ explicit webViewResultUrl(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_authorizationForm final : public Object {
+ public:
+ int32 flags_;
+ array<object_ptr<SecureRequiredType>> required_types_;
+ array<object_ptr<secureValue>> values_;
+ array<object_ptr<SecureValueError>> errors_;
+ array<object_ptr<User>> users_;
+ string privacy_policy_url_;
+ enum Flags : std::int32_t { PRIVACY_POLICY_URL_MASK = 1 };
+
+ account_authorizationForm();
+
+ static const std::int32_t ID = -1389486888;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_authorizationForm> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_authorizations final : public Object {
+ public:
+ int32 authorization_ttl_days_;
+ array<object_ptr<authorization>> authorizations_;
+
+ static const std::int32_t ID = 1275039392;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_authorizations> fetch(TlBufferParser &p);
+
+ explicit account_authorizations(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_autoDownloadSettings final : public Object {
+ public:
+ object_ptr<autoDownloadSettings> low_;
+ object_ptr<autoDownloadSettings> medium_;
+ object_ptr<autoDownloadSettings> high_;
+
+ static const std::int32_t ID = 1674235686;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_autoDownloadSettings> fetch(TlBufferParser &p);
+
+ explicit account_autoDownloadSettings(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_contentSettings final : public Object {
+ public:
+ int32 flags_;
+ bool sensitive_enabled_;
+ bool sensitive_can_change_;
+
+ account_contentSettings();
+
+ static const std::int32_t ID = 1474462241;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_contentSettings> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_EmailVerified: public Object {
+ public:
+
+ static object_ptr<account_EmailVerified> fetch(TlBufferParser &p);
+};
+
+class account_emailVerified final : public account_EmailVerified {
+ public:
+ string email_;
+
+ static const std::int32_t ID = 731303195;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_EmailVerified> fetch(TlBufferParser &p);
+
+ explicit account_emailVerified(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_emailVerifiedLogin final : public account_EmailVerified {
+ public:
+ string email_;
+ object_ptr<auth_sentCode> sent_code_;
+
+ static const std::int32_t ID = -507835039;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_EmailVerified> fetch(TlBufferParser &p);
+
+ explicit account_emailVerifiedLogin(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_EmojiStatuses: public Object {
+ public:
+
+ static object_ptr<account_EmojiStatuses> fetch(TlBufferParser &p);
+};
+
+class account_emojiStatusesNotModified final : public account_EmojiStatuses {
+ public:
+
+ static const std::int32_t ID = -796072379;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_EmojiStatuses> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_emojiStatuses final : public account_EmojiStatuses {
+ public:
+ int64 hash_;
+ array<object_ptr<EmojiStatus>> statuses_;
+
+ static const std::int32_t ID = -1866176559;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_EmojiStatuses> fetch(TlBufferParser &p);
+
+ explicit account_emojiStatuses(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_password final : public Object {
+ public:
+ int32 flags_;
+ bool has_recovery_;
+ bool has_secure_values_;
+ bool has_password_;
+ object_ptr<PasswordKdfAlgo> current_algo_;
+ bytes srp_B_;
+ int64 srp_id_;
+ string hint_;
+ string email_unconfirmed_pattern_;
+ object_ptr<PasswordKdfAlgo> new_algo_;
+ object_ptr<SecurePasswordKdfAlgo> new_secure_algo_;
+ bytes secure_random_;
+ int32 pending_reset_date_;
+ string login_email_pattern_;
+ enum Flags : std::int32_t { SRP_B_MASK = 4, SRP_ID_MASK = 4, HINT_MASK = 8, EMAIL_UNCONFIRMED_PATTERN_MASK = 16, PENDING_RESET_DATE_MASK = 32, LOGIN_EMAIL_PATTERN_MASK = 64 };
+
+ account_password();
+
+ static const std::int32_t ID = -1787080453;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_password> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_passwordInputSettings final : public Object {
+ public:
+ int32 flags_;
+ object_ptr<PasswordKdfAlgo> new_algo_;
+ bytes new_password_hash_;
+ string hint_;
+ string email_;
+ object_ptr<secureSecretSettings> new_secure_settings_;
+ enum Flags : std::int32_t { NEW_ALGO_MASK = 1, NEW_PASSWORD_HASH_MASK = 1, HINT_MASK = 1, EMAIL_MASK = 2, NEW_SECURE_SETTINGS_MASK = 4 };
+
+ account_passwordInputSettings(int32 flags_, object_ptr<PasswordKdfAlgo> &&new_algo_, bytes &&new_password_hash_, string const &hint_, string const &email_, object_ptr<secureSecretSettings> &&new_secure_settings_);
+
+ static const std::int32_t ID = -1036572727;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_passwordSettings final : public Object {
+ public:
+ int32 flags_;
+ string email_;
+ object_ptr<secureSecretSettings> secure_settings_;
+ enum Flags : std::int32_t { EMAIL_MASK = 1 };
+
+ account_passwordSettings();
+
+ static const std::int32_t ID = -1705233435;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_passwordSettings> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_privacyRules final : public Object {
+ public:
+ array<object_ptr<PrivacyRule>> rules_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 1352683077;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_privacyRules> fetch(TlBufferParser &p);
+
+ explicit account_privacyRules(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_ResetPasswordResult: public Object {
+ public:
+
+ static object_ptr<account_ResetPasswordResult> fetch(TlBufferParser &p);
+};
+
+class account_resetPasswordFailedWait final : public account_ResetPasswordResult {
+ public:
+ int32 retry_date_;
+
+ static const std::int32_t ID = -478701471;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_ResetPasswordResult> fetch(TlBufferParser &p);
+
+ explicit account_resetPasswordFailedWait(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_resetPasswordRequestedWait final : public account_ResetPasswordResult {
+ public:
+ int32 until_date_;
+
+ static const std::int32_t ID = -370148227;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_ResetPasswordResult> fetch(TlBufferParser &p);
+
+ explicit account_resetPasswordRequestedWait(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_resetPasswordOk final : public account_ResetPasswordResult {
+ public:
+
+ static const std::int32_t ID = -383330754;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_ResetPasswordResult> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_SavedRingtone: public Object {
+ public:
+
+ static object_ptr<account_SavedRingtone> fetch(TlBufferParser &p);
+};
+
+class account_savedRingtone final : public account_SavedRingtone {
+ public:
+
+ static const std::int32_t ID = -1222230163;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_SavedRingtone> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_savedRingtoneConverted final : public account_SavedRingtone {
+ public:
+ object_ptr<Document> document_;
+
+ static const std::int32_t ID = 523271863;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_SavedRingtone> fetch(TlBufferParser &p);
+
+ explicit account_savedRingtoneConverted(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_SavedRingtones: public Object {
+ public:
+
+ static object_ptr<account_SavedRingtones> fetch(TlBufferParser &p);
+};
+
+class account_savedRingtonesNotModified final : public account_SavedRingtones {
+ public:
+
+ static const std::int32_t ID = -67704655;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_SavedRingtones> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_savedRingtones final : public account_SavedRingtones {
+ public:
+ int64 hash_;
+ array<object_ptr<Document>> ringtones_;
+
+ static const std::int32_t ID = -1041683259;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_SavedRingtones> fetch(TlBufferParser &p);
+
+ explicit account_savedRingtones(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_sentEmailCode final : public Object {
+ public:
+ string email_pattern_;
+ int32 length_;
+
+ static const std::int32_t ID = -2128640689;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_sentEmailCode> fetch(TlBufferParser &p);
+
+ explicit account_sentEmailCode(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_takeout final : public Object {
+ public:
+ int64 id_;
+
+ static const std::int32_t ID = 1304052993;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_takeout> fetch(TlBufferParser &p);
+
+ explicit account_takeout(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_Themes: public Object {
+ public:
+
+ static object_ptr<account_Themes> fetch(TlBufferParser &p);
+};
+
+class account_themesNotModified final : public account_Themes {
+ public:
+
+ static const std::int32_t ID = -199313886;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_Themes> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_themes final : public account_Themes {
+ public:
+ int64 hash_;
+ array<object_ptr<theme>> themes_;
+
+ static const std::int32_t ID = -1707242387;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_Themes> fetch(TlBufferParser &p);
+
+ explicit account_themes(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_tmpPassword final : public Object {
+ public:
+ bytes tmp_password_;
+ int32 valid_until_;
+
+ static const std::int32_t ID = -614138572;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_tmpPassword> fetch(TlBufferParser &p);
+
+ explicit account_tmpPassword(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_WallPapers: public Object {
+ public:
+
+ static object_ptr<account_WallPapers> fetch(TlBufferParser &p);
+};
+
+class account_wallPapersNotModified final : public account_WallPapers {
+ public:
+
+ static const std::int32_t ID = 471437699;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_WallPapers> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_wallPapers final : public account_WallPapers {
+ public:
+ int64 hash_;
+ array<object_ptr<WallPaper>> wallpapers_;
+
+ static const std::int32_t ID = -842824308;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_WallPapers> fetch(TlBufferParser &p);
+
+ explicit account_wallPapers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_webAuthorizations final : public Object {
+ public:
+ array<object_ptr<webAuthorization>> authorizations_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -313079300;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<account_webAuthorizations> fetch(TlBufferParser &p);
+
+ explicit account_webAuthorizations(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_Authorization: public Object {
+ public:
+
+ static object_ptr<auth_Authorization> fetch(TlBufferParser &p);
+};
+
+class auth_authorization final : public auth_Authorization {
+ public:
+ int32 flags_;
+ bool setup_password_required_;
+ int32 otherwise_relogin_days_;
+ int32 tmp_sessions_;
+ object_ptr<User> user_;
+ enum Flags : std::int32_t { OTHERWISE_RELOGIN_DAYS_MASK = 2, TMP_SESSIONS_MASK = 1 };
+
+ auth_authorization();
+
+ static const std::int32_t ID = 872119224;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_Authorization> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_authorizationSignUpRequired final : public auth_Authorization {
+ public:
+ int32 flags_;
+ object_ptr<help_termsOfService> terms_of_service_;
+
+ auth_authorizationSignUpRequired();
+
+ static const std::int32_t ID = 1148485274;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_Authorization> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_CodeType: public Object {
+ public:
+
+ static object_ptr<auth_CodeType> fetch(TlBufferParser &p);
+};
+
+class auth_codeTypeSms final : public auth_CodeType {
+ public:
+
+ static const std::int32_t ID = 1923290508;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_CodeType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_codeTypeCall final : public auth_CodeType {
+ public:
+
+ static const std::int32_t ID = 1948046307;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_CodeType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_codeTypeFlashCall final : public auth_CodeType {
+ public:
+
+ static const std::int32_t ID = 577556219;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_CodeType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_codeTypeMissedCall final : public auth_CodeType {
+ public:
+
+ static const std::int32_t ID = -702884114;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_CodeType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_exportedAuthorization final : public Object {
+ public:
+ int64 id_;
+ bytes bytes_;
+
+ static const std::int32_t ID = -1271602504;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_exportedAuthorization> fetch(TlBufferParser &p);
+
+ explicit auth_exportedAuthorization(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_loggedOut final : public Object {
+ public:
+ int32 flags_;
+ bytes future_auth_token_;
+ enum Flags : std::int32_t { FUTURE_AUTH_TOKEN_MASK = 1 };
+
+ auth_loggedOut();
+
+ static const std::int32_t ID = -1012759713;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_loggedOut> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_LoginToken: public Object {
+ public:
+
+ static object_ptr<auth_LoginToken> fetch(TlBufferParser &p);
+};
+
+class auth_loginToken final : public auth_LoginToken {
+ public:
+ int32 expires_;
+ bytes token_;
+
+ static const std::int32_t ID = 1654593920;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_LoginToken> fetch(TlBufferParser &p);
+
+ explicit auth_loginToken(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_loginTokenMigrateTo final : public auth_LoginToken {
+ public:
+ int32 dc_id_;
+ bytes token_;
+
+ static const std::int32_t ID = 110008598;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_LoginToken> fetch(TlBufferParser &p);
+
+ explicit auth_loginTokenMigrateTo(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_loginTokenSuccess final : public auth_LoginToken {
+ public:
+ object_ptr<auth_Authorization> authorization_;
+
+ static const std::int32_t ID = 957176926;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_LoginToken> fetch(TlBufferParser &p);
+
+ explicit auth_loginTokenSuccess(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_passwordRecovery final : public Object {
+ public:
+ string email_pattern_;
+
+ static const std::int32_t ID = 326715557;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_passwordRecovery> fetch(TlBufferParser &p);
+
+ explicit auth_passwordRecovery(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_sentCode final : public Object {
+ public:
+ int32 flags_;
+ object_ptr<auth_SentCodeType> type_;
+ string phone_code_hash_;
+ object_ptr<auth_CodeType> next_type_;
+ int32 timeout_;
+ enum Flags : std::int32_t { TIMEOUT_MASK = 4 };
+
+ auth_sentCode();
+
+ static const std::int32_t ID = 1577067778;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_sentCode> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_SentCodeType: public Object {
+ public:
+
+ static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p);
+};
+
+class auth_sentCodeTypeApp final : public auth_SentCodeType {
+ public:
+ int32 length_;
+
+ static const std::int32_t ID = 1035688326;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p);
+
+ explicit auth_sentCodeTypeApp(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_sentCodeTypeSms final : public auth_SentCodeType {
+ public:
+ int32 length_;
+
+ static const std::int32_t ID = -1073693790;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p);
+
+ explicit auth_sentCodeTypeSms(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_sentCodeTypeCall final : public auth_SentCodeType {
+ public:
+ int32 length_;
+
+ static const std::int32_t ID = 1398007207;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p);
+
+ explicit auth_sentCodeTypeCall(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_sentCodeTypeFlashCall final : public auth_SentCodeType {
+ public:
+ string pattern_;
+
+ static const std::int32_t ID = -1425815847;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p);
+
+ explicit auth_sentCodeTypeFlashCall(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_sentCodeTypeMissedCall final : public auth_SentCodeType {
+ public:
+ string prefix_;
+ int32 length_;
+
+ static const std::int32_t ID = -2113903484;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p);
+
+ explicit auth_sentCodeTypeMissedCall(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_sentCodeTypeEmailCode final : public auth_SentCodeType {
+ public:
+ int32 flags_;
+ bool apple_signin_allowed_;
+ bool google_signin_allowed_;
+ string email_pattern_;
+ int32 length_;
+ int32 next_phone_login_date_;
+ enum Flags : std::int32_t { NEXT_PHONE_LOGIN_DATE_MASK = 4 };
+
+ auth_sentCodeTypeEmailCode();
+
+ static const std::int32_t ID = 1511364673;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class auth_sentCodeTypeSetUpEmailRequired final : public auth_SentCodeType {
+ public:
+ int32 flags_;
+ bool apple_signin_allowed_;
+ bool google_signin_allowed_;
+
+ auth_sentCodeTypeSetUpEmailRequired();
+
+ static const std::int32_t ID = -1521934870;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channels_adminLogResults final : public Object {
+ public:
+ array<object_ptr<channelAdminLogEvent>> events_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -309659827;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<channels_adminLogResults> fetch(TlBufferParser &p);
+
+ explicit channels_adminLogResults(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channels_channelParticipant final : public Object {
+ public:
+ object_ptr<ChannelParticipant> participant_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -541588713;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<channels_channelParticipant> fetch(TlBufferParser &p);
+
+ explicit channels_channelParticipant(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channels_ChannelParticipants: public Object {
+ public:
+
+ static object_ptr<channels_ChannelParticipants> fetch(TlBufferParser &p);
+};
+
+class channels_channelParticipants final : public channels_ChannelParticipants {
+ public:
+ int32 count_;
+ array<object_ptr<ChannelParticipant>> participants_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1699676497;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<channels_ChannelParticipants> fetch(TlBufferParser &p);
+
+ explicit channels_channelParticipants(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channels_channelParticipantsNotModified final : public channels_ChannelParticipants {
+ public:
+
+ static const std::int32_t ID = -266911767;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<channels_ChannelParticipants> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class channels_sendAsPeers final : public Object {
+ public:
+ array<object_ptr<sendAsPeer>> peers_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -191450938;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<channels_sendAsPeers> fetch(TlBufferParser &p);
+
+ explicit channels_sendAsPeers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contacts_Blocked: public Object {
+ public:
+
+ static object_ptr<contacts_Blocked> fetch(TlBufferParser &p);
+};
+
+class contacts_blocked final : public contacts_Blocked {
+ public:
+ array<object_ptr<peerBlocked>> blocked_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 182326673;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contacts_Blocked> fetch(TlBufferParser &p);
+
+ explicit contacts_blocked(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contacts_blockedSlice final : public contacts_Blocked {
+ public:
+ int32 count_;
+ array<object_ptr<peerBlocked>> blocked_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -513392236;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contacts_Blocked> fetch(TlBufferParser &p);
+
+ explicit contacts_blockedSlice(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contacts_Contacts: public Object {
+ public:
+
+ static object_ptr<contacts_Contacts> fetch(TlBufferParser &p);
+};
+
+class contacts_contactsNotModified final : public contacts_Contacts {
+ public:
+
+ static const std::int32_t ID = -1219778094;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contacts_Contacts> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contacts_contacts final : public contacts_Contacts {
+ public:
+ array<object_ptr<contact>> contacts_;
+ int32 saved_count_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -353862078;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contacts_Contacts> fetch(TlBufferParser &p);
+
+ explicit contacts_contacts(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contacts_found final : public Object {
+ public:
+ array<object_ptr<Peer>> my_results_;
+ array<object_ptr<Peer>> results_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1290580579;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contacts_found> fetch(TlBufferParser &p);
+
+ explicit contacts_found(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contacts_importedContacts final : public Object {
+ public:
+ array<object_ptr<importedContact>> imported_;
+ array<object_ptr<popularContact>> popular_invites_;
+ array<int64> retry_contacts_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 2010127419;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contacts_importedContacts> fetch(TlBufferParser &p);
+
+ explicit contacts_importedContacts(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contacts_resolvedPeer final : public Object {
+ public:
+ object_ptr<Peer> peer_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 2131196633;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contacts_resolvedPeer> fetch(TlBufferParser &p);
+
+ explicit contacts_resolvedPeer(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contacts_TopPeers: public Object {
+ public:
+
+ static object_ptr<contacts_TopPeers> fetch(TlBufferParser &p);
+};
+
+class contacts_topPeersNotModified final : public contacts_TopPeers {
+ public:
+
+ static const std::int32_t ID = -567906571;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contacts_TopPeers> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contacts_topPeers final : public contacts_TopPeers {
+ public:
+ array<object_ptr<topPeerCategoryPeers>> categories_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 1891070632;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contacts_TopPeers> fetch(TlBufferParser &p);
+
+ explicit contacts_topPeers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class contacts_topPeersDisabled final : public contacts_TopPeers {
+ public:
+
+ static const std::int32_t ID = -1255369827;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<contacts_TopPeers> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_AppUpdate: public Object {
+ public:
+
+ static object_ptr<help_AppUpdate> fetch(TlBufferParser &p);
+};
+
+class help_appUpdate final : public help_AppUpdate {
+ public:
+ int32 flags_;
+ bool can_not_skip_;
+ int32 id_;
+ string version_;
+ string text_;
+ array<object_ptr<MessageEntity>> entities_;
+ object_ptr<Document> document_;
+ string url_;
+ object_ptr<Document> sticker_;
+ enum Flags : std::int32_t { URL_MASK = 4 };
+
+ help_appUpdate();
+
+ static const std::int32_t ID = -860107216;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_AppUpdate> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_noAppUpdate final : public help_AppUpdate {
+ public:
+
+ static const std::int32_t ID = -1000708810;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_AppUpdate> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_configSimple final : public Object {
+ public:
+ int32 date_;
+ int32 expires_;
+ array<object_ptr<accessPointRule>> rules_;
+
+ static const std::int32_t ID = 1515793004;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_configSimple> fetch(TlBufferParser &p);
+
+ explicit help_configSimple(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_CountriesList: public Object {
+ public:
+
+ static object_ptr<help_CountriesList> fetch(TlBufferParser &p);
+};
+
+class help_countriesListNotModified final : public help_CountriesList {
+ public:
+
+ static const std::int32_t ID = -1815339214;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_CountriesList> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_countriesList final : public help_CountriesList {
+ public:
+ array<object_ptr<help_country>> countries_;
+ int32 hash_;
+
+ static const std::int32_t ID = -2016381538;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_CountriesList> fetch(TlBufferParser &p);
+
+ explicit help_countriesList(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_country final : public Object {
+ public:
+ int32 flags_;
+ bool hidden_;
+ string iso2_;
+ string default_name_;
+ string name_;
+ array<object_ptr<help_countryCode>> country_codes_;
+ enum Flags : std::int32_t { NAME_MASK = 2 };
+
+ help_country();
+
+ static const std::int32_t ID = -1014526429;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_country> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_countryCode final : public Object {
+ public:
+ int32 flags_;
+ string country_code_;
+ array<string> prefixes_;
+ array<string> patterns_;
+
+ help_countryCode();
+
+ static const std::int32_t ID = 1107543535;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_countryCode> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_DeepLinkInfo: public Object {
+ public:
+
+ static object_ptr<help_DeepLinkInfo> fetch(TlBufferParser &p);
+};
+
+class help_deepLinkInfoEmpty final : public help_DeepLinkInfo {
+ public:
+
+ static const std::int32_t ID = 1722786150;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_DeepLinkInfo> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_deepLinkInfo final : public help_DeepLinkInfo {
+ public:
+ int32 flags_;
+ bool update_app_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+
+ help_deepLinkInfo();
+
+ static const std::int32_t ID = 1783556146;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_DeepLinkInfo> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_inviteText final : public Object {
+ public:
+ string message_;
+
+ static const std::int32_t ID = 415997816;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_inviteText> fetch(TlBufferParser &p);
+
+ explicit help_inviteText(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_PassportConfig: public Object {
+ public:
+
+ static object_ptr<help_PassportConfig> fetch(TlBufferParser &p);
+};
+
+class help_passportConfigNotModified final : public help_PassportConfig {
+ public:
+
+ static const std::int32_t ID = -1078332329;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_PassportConfig> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_passportConfig final : public help_PassportConfig {
+ public:
+ int32 hash_;
+ object_ptr<dataJSON> countries_langs_;
+
+ static const std::int32_t ID = -1600596305;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_PassportConfig> fetch(TlBufferParser &p);
+
+ explicit help_passportConfig(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_premiumPromo final : public Object {
+ public:
+ string status_text_;
+ array<object_ptr<MessageEntity>> status_entities_;
+ array<string> video_sections_;
+ array<object_ptr<Document>> videos_;
+ array<object_ptr<premiumSubscriptionOption>> period_options_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 1395946908;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_premiumPromo> fetch(TlBufferParser &p);
+
+ explicit help_premiumPromo(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_PromoData: public Object {
+ public:
+
+ static object_ptr<help_PromoData> fetch(TlBufferParser &p);
+};
+
+class help_promoDataEmpty final : public help_PromoData {
+ public:
+ int32 expires_;
+
+ static const std::int32_t ID = -1728664459;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_PromoData> fetch(TlBufferParser &p);
+
+ explicit help_promoDataEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_promoData final : public help_PromoData {
+ public:
+ int32 flags_;
+ bool proxy_;
+ int32 expires_;
+ object_ptr<Peer> peer_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ string psa_type_;
+ string psa_message_;
+ enum Flags : std::int32_t { PSA_TYPE_MASK = 2, PSA_MESSAGE_MASK = 4 };
+
+ help_promoData();
+
+ static const std::int32_t ID = -1942390465;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_PromoData> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_recentMeUrls final : public Object {
+ public:
+ array<object_ptr<RecentMeUrl>> urls_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 235081943;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_recentMeUrls> fetch(TlBufferParser &p);
+
+ explicit help_recentMeUrls(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_support final : public Object {
+ public:
+ string phone_number_;
+ object_ptr<User> user_;
+
+ static const std::int32_t ID = 398898678;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_support> fetch(TlBufferParser &p);
+
+ explicit help_support(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_supportName final : public Object {
+ public:
+ string name_;
+
+ static const std::int32_t ID = -1945767479;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_supportName> fetch(TlBufferParser &p);
+
+ explicit help_supportName(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_termsOfService final : public Object {
+ public:
+ int32 flags_;
+ bool popup_;
+ object_ptr<dataJSON> id_;
+ string text_;
+ array<object_ptr<MessageEntity>> entities_;
+ int32 min_age_confirm_;
+ enum Flags : std::int32_t { MIN_AGE_CONFIRM_MASK = 2 };
+
+ help_termsOfService();
+
+ static const std::int32_t ID = 2013922064;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_termsOfService> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_TermsOfServiceUpdate: public Object {
+ public:
+
+ static object_ptr<help_TermsOfServiceUpdate> fetch(TlBufferParser &p);
+};
+
+class help_termsOfServiceUpdateEmpty final : public help_TermsOfServiceUpdate {
+ public:
+ int32 expires_;
+
+ static const std::int32_t ID = -483352705;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_TermsOfServiceUpdate> fetch(TlBufferParser &p);
+
+ explicit help_termsOfServiceUpdateEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_termsOfServiceUpdate final : public help_TermsOfServiceUpdate {
+ public:
+ int32 expires_;
+ object_ptr<help_termsOfService> terms_of_service_;
+
+ static const std::int32_t ID = 686618977;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_TermsOfServiceUpdate> fetch(TlBufferParser &p);
+
+ explicit help_termsOfServiceUpdate(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_UserInfo: public Object {
+ public:
+
+ static object_ptr<help_UserInfo> fetch(TlBufferParser &p);
+};
+
+class help_userInfoEmpty final : public help_UserInfo {
+ public:
+
+ static const std::int32_t ID = -206688531;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_UserInfo> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class help_userInfo final : public help_UserInfo {
+ public:
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+ string author_;
+ int32 date_;
+
+ static const std::int32_t ID = 32192344;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<help_UserInfo> fetch(TlBufferParser &p);
+
+ explicit help_userInfo(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_affectedFoundMessages final : public Object {
+ public:
+ int32 pts_;
+ int32 pts_count_;
+ int32 offset_;
+ array<int32> messages_;
+
+ static const std::int32_t ID = -275956116;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_affectedFoundMessages> fetch(TlBufferParser &p);
+
+ explicit messages_affectedFoundMessages(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_affectedHistory final : public Object {
+ public:
+ int32 pts_;
+ int32 pts_count_;
+ int32 offset_;
+
+ static const std::int32_t ID = -1269012015;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_affectedHistory> fetch(TlBufferParser &p);
+
+ explicit messages_affectedHistory(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_affectedMessages final : public Object {
+ public:
+ int32 pts_;
+ int32 pts_count_;
+
+ static const std::int32_t ID = -2066640507;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_affectedMessages> fetch(TlBufferParser &p);
+
+ explicit messages_affectedMessages(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_AllStickers: public Object {
+ public:
+
+ static object_ptr<messages_AllStickers> fetch(TlBufferParser &p);
+};
+
+class messages_allStickersNotModified final : public messages_AllStickers {
+ public:
+
+ static const std::int32_t ID = -395967805;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_AllStickers> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_allStickers final : public messages_AllStickers {
+ public:
+ int64 hash_;
+ array<object_ptr<stickerSet>> sets_;
+
+ static const std::int32_t ID = -843329861;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_AllStickers> fetch(TlBufferParser &p);
+
+ explicit messages_allStickers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_archivedStickers final : public Object {
+ public:
+ int32 count_;
+ array<object_ptr<StickerSetCovered>> sets_;
+
+ static const std::int32_t ID = 1338747336;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_archivedStickers> fetch(TlBufferParser &p);
+
+ explicit messages_archivedStickers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_AvailableReactions: public Object {
+ public:
+
+ static object_ptr<messages_AvailableReactions> fetch(TlBufferParser &p);
+};
+
+class messages_availableReactionsNotModified final : public messages_AvailableReactions {
+ public:
+
+ static const std::int32_t ID = -1626924713;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_AvailableReactions> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_availableReactions final : public messages_AvailableReactions {
+ public:
+ int32 hash_;
+ array<object_ptr<availableReaction>> reactions_;
+
+ static const std::int32_t ID = 1989032621;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_AvailableReactions> fetch(TlBufferParser &p);
+
+ explicit messages_availableReactions(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_botCallbackAnswer final : public Object {
+ public:
+ int32 flags_;
+ bool alert_;
+ bool has_url_;
+ bool native_ui_;
+ string message_;
+ string url_;
+ int32 cache_time_;
+ enum Flags : std::int32_t { MESSAGE_MASK = 1, URL_MASK = 4 };
+
+ messages_botCallbackAnswer();
+
+ static const std::int32_t ID = 911761060;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_botCallbackAnswer> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_botResults final : public Object {
+ public:
+ int32 flags_;
+ bool gallery_;
+ int64 query_id_;
+ string next_offset_;
+ object_ptr<inlineBotSwitchPM> switch_pm_;
+ array<object_ptr<BotInlineResult>> results_;
+ int32 cache_time_;
+ array<object_ptr<User>> users_;
+ enum Flags : std::int32_t { NEXT_OFFSET_MASK = 2 };
+
+ messages_botResults();
+
+ static const std::int32_t ID = -1803769784;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_botResults> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_chatAdminsWithInvites final : public Object {
+ public:
+ array<object_ptr<chatAdminWithInvites>> admins_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1231326505;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_chatAdminsWithInvites> fetch(TlBufferParser &p);
+
+ explicit messages_chatAdminsWithInvites(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_chatFull final : public Object {
+ public:
+ object_ptr<ChatFull> full_chat_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -438840932;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_chatFull> fetch(TlBufferParser &p);
+
+ explicit messages_chatFull(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_chatInviteImporters final : public Object {
+ public:
+ int32 count_;
+ array<object_ptr<chatInviteImporter>> importers_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -2118733814;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_chatInviteImporters> fetch(TlBufferParser &p);
+
+ explicit messages_chatInviteImporters(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_Chats: public Object {
+ public:
+
+ static object_ptr<messages_Chats> fetch(TlBufferParser &p);
+};
+
+class messages_chats final : public messages_Chats {
+ public:
+ array<object_ptr<Chat>> chats_;
+
+ static const std::int32_t ID = 1694474197;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Chats> fetch(TlBufferParser &p);
+
+ explicit messages_chats(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_chatsSlice final : public messages_Chats {
+ public:
+ int32 count_;
+ array<object_ptr<Chat>> chats_;
+
+ static const std::int32_t ID = -1663561404;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Chats> fetch(TlBufferParser &p);
+
+ explicit messages_chatsSlice(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_checkedHistoryImportPeer final : public Object {
+ public:
+ string confirm_text_;
+
+ static const std::int32_t ID = -1571952873;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_checkedHistoryImportPeer> fetch(TlBufferParser &p);
+
+ explicit messages_checkedHistoryImportPeer(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_DhConfig: public Object {
+ public:
+
+ static object_ptr<messages_DhConfig> fetch(TlBufferParser &p);
+};
+
+class messages_dhConfigNotModified final : public messages_DhConfig {
+ public:
+ bytes random_;
+
+ static const std::int32_t ID = -1058912715;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_DhConfig> fetch(TlBufferParser &p);
+
+ explicit messages_dhConfigNotModified(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_dhConfig final : public messages_DhConfig {
+ public:
+ int32 g_;
+ bytes p_;
+ int32 version_;
+ bytes random_;
+
+ static const std::int32_t ID = 740433629;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_DhConfig> fetch(TlBufferParser &p);
+
+ explicit messages_dhConfig(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_Dialogs: public Object {
+ public:
+
+ static object_ptr<messages_Dialogs> fetch(TlBufferParser &p);
+};
+
+class messages_dialogs final : public messages_Dialogs {
+ public:
+ array<object_ptr<Dialog>> dialogs_;
+ array<object_ptr<Message>> messages_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 364538944;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Dialogs> fetch(TlBufferParser &p);
+
+ explicit messages_dialogs(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_dialogsSlice final : public messages_Dialogs {
+ public:
+ int32 count_;
+ array<object_ptr<Dialog>> dialogs_;
+ array<object_ptr<Message>> messages_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 1910543603;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Dialogs> fetch(TlBufferParser &p);
+
+ explicit messages_dialogsSlice(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_dialogsNotModified final : public messages_Dialogs {
+ public:
+ int32 count_;
+
+ static const std::int32_t ID = -253500010;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Dialogs> fetch(TlBufferParser &p);
+
+ explicit messages_dialogsNotModified(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_discussionMessage final : public Object {
+ public:
+ int32 flags_;
+ array<object_ptr<Message>> messages_;
+ int32 max_id_;
+ int32 read_inbox_max_id_;
+ int32 read_outbox_max_id_;
+ int32 unread_count_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ enum Flags : std::int32_t { MAX_ID_MASK = 1, READ_INBOX_MAX_ID_MASK = 2, READ_OUTBOX_MAX_ID_MASK = 4 };
+
+ messages_discussionMessage();
+
+ static const std::int32_t ID = -1506535550;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_discussionMessage> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_ExportedChatInvite: public Object {
+ public:
+
+ static object_ptr<messages_ExportedChatInvite> fetch(TlBufferParser &p);
+};
+
+class messages_exportedChatInvite final : public messages_ExportedChatInvite {
+ public:
+ object_ptr<ExportedChatInvite> invite_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 410107472;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_ExportedChatInvite> fetch(TlBufferParser &p);
+
+ explicit messages_exportedChatInvite(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_exportedChatInviteReplaced final : public messages_ExportedChatInvite {
+ public:
+ object_ptr<ExportedChatInvite> invite_;
+ object_ptr<ExportedChatInvite> new_invite_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 572915951;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_ExportedChatInvite> fetch(TlBufferParser &p);
+
+ explicit messages_exportedChatInviteReplaced(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_exportedChatInvites final : public Object {
+ public:
+ int32 count_;
+ array<object_ptr<ExportedChatInvite>> invites_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1111085620;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_exportedChatInvites> fetch(TlBufferParser &p);
+
+ explicit messages_exportedChatInvites(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_FavedStickers: public Object {
+ public:
+
+ static object_ptr<messages_FavedStickers> fetch(TlBufferParser &p);
+};
+
+class messages_favedStickersNotModified final : public messages_FavedStickers {
+ public:
+
+ static const std::int32_t ID = -1634752813;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_FavedStickers> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_favedStickers final : public messages_FavedStickers {
+ public:
+ int64 hash_;
+ array<object_ptr<stickerPack>> packs_;
+ array<object_ptr<Document>> stickers_;
+
+ static const std::int32_t ID = 750063767;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_FavedStickers> fetch(TlBufferParser &p);
+
+ explicit messages_favedStickers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_FeaturedStickers: public Object {
+ public:
+
+ static object_ptr<messages_FeaturedStickers> fetch(TlBufferParser &p);
+};
+
+class messages_featuredStickersNotModified final : public messages_FeaturedStickers {
+ public:
+ int32 count_;
+
+ static const std::int32_t ID = -958657434;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_FeaturedStickers> fetch(TlBufferParser &p);
+
+ explicit messages_featuredStickersNotModified(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_featuredStickers final : public messages_FeaturedStickers {
+ public:
+ int32 flags_;
+ bool premium_;
+ int64 hash_;
+ int32 count_;
+ array<object_ptr<StickerSetCovered>> sets_;
+ array<int64> unread_;
+
+ messages_featuredStickers();
+
+ static const std::int32_t ID = -1103615738;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_FeaturedStickers> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_forumTopics final : public Object {
+ public:
+ int32 flags_;
+ bool order_by_create_date_;
+ int32 count_;
+ array<object_ptr<ForumTopic>> topics_;
+ array<object_ptr<Message>> messages_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ int32 pts_;
+
+ messages_forumTopics();
+
+ static const std::int32_t ID = 913709011;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_forumTopics> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_FoundStickerSets: public Object {
+ public:
+
+ static object_ptr<messages_FoundStickerSets> fetch(TlBufferParser &p);
+};
+
+class messages_foundStickerSetsNotModified final : public messages_FoundStickerSets {
+ public:
+
+ static const std::int32_t ID = 223655517;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_FoundStickerSets> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_foundStickerSets final : public messages_FoundStickerSets {
+ public:
+ int64 hash_;
+ array<object_ptr<StickerSetCovered>> sets_;
+
+ static const std::int32_t ID = -1963942446;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_FoundStickerSets> fetch(TlBufferParser &p);
+
+ explicit messages_foundStickerSets(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_highScores final : public Object {
+ public:
+ array<object_ptr<highScore>> scores_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1707344487;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_highScores> fetch(TlBufferParser &p);
+
+ explicit messages_highScores(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_historyImport final : public Object {
+ public:
+ int64 id_;
+
+ static const std::int32_t ID = 375566091;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_historyImport> fetch(TlBufferParser &p);
+
+ explicit messages_historyImport(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_historyImportParsed final : public Object {
+ public:
+ int32 flags_;
+ bool pm_;
+ bool group_;
+ string title_;
+ enum Flags : std::int32_t { TITLE_MASK = 4 };
+
+ messages_historyImportParsed();
+
+ static const std::int32_t ID = 1578088377;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_historyImportParsed> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_inactiveChats final : public Object {
+ public:
+ array<int32> dates_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1456996667;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_inactiveChats> fetch(TlBufferParser &p);
+
+ explicit messages_inactiveChats(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_messageEditData final : public Object {
+ public:
+ int32 flags_;
+ bool caption_;
+
+ messages_messageEditData();
+
+ static const std::int32_t ID = 649453030;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_messageEditData> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_messageReactionsList final : public Object {
+ public:
+ int32 flags_;
+ int32 count_;
+ array<object_ptr<messagePeerReaction>> reactions_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ string next_offset_;
+ enum Flags : std::int32_t { NEXT_OFFSET_MASK = 1 };
+
+ messages_messageReactionsList();
+
+ static const std::int32_t ID = 834488621;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_messageReactionsList> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_messageViews final : public Object {
+ public:
+ array<object_ptr<messageViews>> views_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1228606141;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_messageViews> fetch(TlBufferParser &p);
+
+ explicit messages_messageViews(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_Messages: public Object {
+ public:
+
+ static object_ptr<messages_Messages> fetch(TlBufferParser &p);
+};
+
+class messages_messages final : public messages_Messages {
+ public:
+ array<object_ptr<Message>> messages_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1938715001;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Messages> fetch(TlBufferParser &p);
+
+ explicit messages_messages(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_messagesSlice final : public messages_Messages {
+ public:
+ int32 flags_;
+ bool inexact_;
+ int32 count_;
+ int32 next_rate_;
+ int32 offset_id_offset_;
+ array<object_ptr<Message>> messages_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ enum Flags : std::int32_t { NEXT_RATE_MASK = 1, OFFSET_ID_OFFSET_MASK = 4 };
+
+ messages_messagesSlice();
+
+ static const std::int32_t ID = 978610270;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Messages> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_channelMessages final : public messages_Messages {
+ public:
+ int32 flags_;
+ bool inexact_;
+ int32 pts_;
+ int32 count_;
+ int32 offset_id_offset_;
+ array<object_ptr<Message>> messages_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ enum Flags : std::int32_t { OFFSET_ID_OFFSET_MASK = 4 };
+
+ messages_channelMessages();
+
+ static const std::int32_t ID = 1682413576;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Messages> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_messagesNotModified final : public messages_Messages {
+ public:
+ int32 count_;
+
+ static const std::int32_t ID = 1951620897;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Messages> fetch(TlBufferParser &p);
+
+ explicit messages_messagesNotModified(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_peerDialogs final : public Object {
+ public:
+ array<object_ptr<Dialog>> dialogs_;
+ array<object_ptr<Message>> messages_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ object_ptr<updates_state> state_;
+
+ static const std::int32_t ID = 863093588;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_peerDialogs> fetch(TlBufferParser &p);
+
+ explicit messages_peerDialogs(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_peerSettings final : public Object {
+ public:
+ object_ptr<peerSettings> settings_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 1753266509;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_peerSettings> fetch(TlBufferParser &p);
+
+ explicit messages_peerSettings(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_Reactions: public Object {
+ public:
+
+ static object_ptr<messages_Reactions> fetch(TlBufferParser &p);
+};
+
+class messages_reactionsNotModified final : public messages_Reactions {
+ public:
+
+ static const std::int32_t ID = -1334846497;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Reactions> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_reactions final : public messages_Reactions {
+ public:
+ int64 hash_;
+ array<object_ptr<Reaction>> reactions_;
+
+ static const std::int32_t ID = -352454890;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Reactions> fetch(TlBufferParser &p);
+
+ explicit messages_reactions(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_RecentStickers: public Object {
+ public:
+
+ static object_ptr<messages_RecentStickers> fetch(TlBufferParser &p);
+};
+
+class messages_recentStickersNotModified final : public messages_RecentStickers {
+ public:
+
+ static const std::int32_t ID = 186120336;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_RecentStickers> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_recentStickers final : public messages_RecentStickers {
+ public:
+ int64 hash_;
+ array<object_ptr<stickerPack>> packs_;
+ array<object_ptr<Document>> stickers_;
+ array<int32> dates_;
+
+ static const std::int32_t ID = -1999405994;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_RecentStickers> fetch(TlBufferParser &p);
+
+ explicit messages_recentStickers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_SavedGifs: public Object {
+ public:
+
+ static object_ptr<messages_SavedGifs> fetch(TlBufferParser &p);
+};
+
+class messages_savedGifsNotModified final : public messages_SavedGifs {
+ public:
+
+ static const std::int32_t ID = -402498398;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_SavedGifs> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_savedGifs final : public messages_SavedGifs {
+ public:
+ int64 hash_;
+ array<object_ptr<Document>> gifs_;
+
+ static const std::int32_t ID = -2069878259;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_SavedGifs> fetch(TlBufferParser &p);
+
+ explicit messages_savedGifs(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_searchCounter final : public Object {
+ public:
+ int32 flags_;
+ bool inexact_;
+ object_ptr<MessagesFilter> filter_;
+ int32 count_;
+
+ messages_searchCounter();
+
+ static const std::int32_t ID = -398136321;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_searchCounter> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_searchResultsCalendar final : public Object {
+ public:
+ int32 flags_;
+ bool inexact_;
+ int32 count_;
+ int32 min_date_;
+ int32 min_msg_id_;
+ int32 offset_id_offset_;
+ array<object_ptr<searchResultsCalendarPeriod>> periods_;
+ array<object_ptr<Message>> messages_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ enum Flags : std::int32_t { OFFSET_ID_OFFSET_MASK = 2 };
+
+ messages_searchResultsCalendar();
+
+ static const std::int32_t ID = 343859772;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_searchResultsCalendar> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_searchResultsPositions final : public Object {
+ public:
+ int32 count_;
+ array<object_ptr<searchResultPosition>> positions_;
+
+ static const std::int32_t ID = 1404185519;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_searchResultsPositions> fetch(TlBufferParser &p);
+
+ explicit messages_searchResultsPositions(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_SentEncryptedMessage: public Object {
+ public:
+
+ static object_ptr<messages_SentEncryptedMessage> fetch(TlBufferParser &p);
+};
+
+class messages_sentEncryptedMessage final : public messages_SentEncryptedMessage {
+ public:
+ int32 date_;
+
+ static const std::int32_t ID = 1443858741;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_SentEncryptedMessage> fetch(TlBufferParser &p);
+
+ explicit messages_sentEncryptedMessage(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_sentEncryptedFile final : public messages_SentEncryptedMessage {
+ public:
+ int32 date_;
+ object_ptr<EncryptedFile> file_;
+
+ static const std::int32_t ID = -1802240206;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_SentEncryptedMessage> fetch(TlBufferParser &p);
+
+ explicit messages_sentEncryptedFile(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_SponsoredMessages: public Object {
+ public:
+
+ static object_ptr<messages_SponsoredMessages> fetch(TlBufferParser &p);
+};
+
+class messages_sponsoredMessages final : public messages_SponsoredMessages {
+ public:
+ int32 flags_;
+ int32 posts_between_;
+ array<object_ptr<sponsoredMessage>> messages_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ enum Flags : std::int32_t { POSTS_BETWEEN_MASK = 1 };
+
+ messages_sponsoredMessages();
+
+ static const std::int32_t ID = -907141753;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_SponsoredMessages> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_sponsoredMessagesEmpty final : public messages_SponsoredMessages {
+ public:
+
+ static const std::int32_t ID = 406407439;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_SponsoredMessages> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_StickerSet: public Object {
+ public:
+
+ static object_ptr<messages_StickerSet> fetch(TlBufferParser &p);
+};
+
+class messages_stickerSet final : public messages_StickerSet {
+ public:
+ object_ptr<stickerSet> set_;
+ array<object_ptr<stickerPack>> packs_;
+ array<object_ptr<stickerKeyword>> keywords_;
+ array<object_ptr<Document>> documents_;
+
+ messages_stickerSet(object_ptr<stickerSet> &&set_, array<object_ptr<stickerPack>> &&packs_, array<object_ptr<stickerKeyword>> &&keywords_, array<object_ptr<Document>> &&documents_);
+
+ static const std::int32_t ID = 1846886166;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_StickerSet> fetch(TlBufferParser &p);
+
+ explicit messages_stickerSet(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_stickerSetNotModified final : public messages_StickerSet {
+ public:
+
+ static const std::int32_t ID = -738646805;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_StickerSet> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_StickerSetInstallResult: public Object {
+ public:
+
+ static object_ptr<messages_StickerSetInstallResult> fetch(TlBufferParser &p);
+};
+
+class messages_stickerSetInstallResultSuccess final : public messages_StickerSetInstallResult {
+ public:
+
+ static const std::int32_t ID = 946083368;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_StickerSetInstallResult> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_stickerSetInstallResultArchive final : public messages_StickerSetInstallResult {
+ public:
+ array<object_ptr<StickerSetCovered>> sets_;
+
+ static const std::int32_t ID = 904138920;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_StickerSetInstallResult> fetch(TlBufferParser &p);
+
+ explicit messages_stickerSetInstallResultArchive(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_Stickers: public Object {
+ public:
+
+ static object_ptr<messages_Stickers> fetch(TlBufferParser &p);
+};
+
+class messages_stickersNotModified final : public messages_Stickers {
+ public:
+
+ static const std::int32_t ID = -244016606;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Stickers> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_stickers final : public messages_Stickers {
+ public:
+ int64 hash_;
+ array<object_ptr<Document>> stickers_;
+
+ static const std::int32_t ID = 816245886;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_Stickers> fetch(TlBufferParser &p);
+
+ explicit messages_stickers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_transcribedAudio final : public Object {
+ public:
+ int32 flags_;
+ bool pending_;
+ int64 transcription_id_;
+ string text_;
+
+ messages_transcribedAudio();
+
+ static const std::int32_t ID = -1821037486;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_transcribedAudio> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_TranslatedText: public Object {
+ public:
+
+ static object_ptr<messages_TranslatedText> fetch(TlBufferParser &p);
+};
+
+class messages_translateNoResult final : public messages_TranslatedText {
+ public:
+
+ static const std::int32_t ID = 1741309751;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_TranslatedText> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_translateResultText final : public messages_TranslatedText {
+ public:
+ string text_;
+
+ static const std::int32_t ID = -1575684144;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_TranslatedText> fetch(TlBufferParser &p);
+
+ explicit messages_translateResultText(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class messages_votesList final : public Object {
+ public:
+ int32 flags_;
+ int32 count_;
+ array<object_ptr<MessageUserVote>> votes_;
+ array<object_ptr<User>> users_;
+ string next_offset_;
+ enum Flags : std::int32_t { NEXT_OFFSET_MASK = 1 };
+
+ messages_votesList();
+
+ static const std::int32_t ID = 136574537;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<messages_votesList> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class payments_bankCardData final : public Object {
+ public:
+ string title_;
+ array<object_ptr<bankCardOpenUrl>> open_urls_;
+
+ static const std::int32_t ID = 1042605427;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<payments_bankCardData> fetch(TlBufferParser &p);
+
+ explicit payments_bankCardData(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class payments_exportedInvoice final : public Object {
+ public:
+ string url_;
+
+ static const std::int32_t ID = -1362048039;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<payments_exportedInvoice> fetch(TlBufferParser &p);
+
+ explicit payments_exportedInvoice(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class payments_paymentForm final : public Object {
+ public:
+ int32 flags_;
+ bool can_save_credentials_;
+ bool password_missing_;
+ int64 form_id_;
+ int64 bot_id_;
+ string title_;
+ string description_;
+ object_ptr<WebDocument> photo_;
+ object_ptr<invoice> invoice_;
+ int64 provider_id_;
+ string url_;
+ string native_provider_;
+ object_ptr<dataJSON> native_params_;
+ array<object_ptr<paymentFormMethod>> additional_methods_;
+ object_ptr<paymentRequestedInfo> saved_info_;
+ array<object_ptr<paymentSavedCredentialsCard>> saved_credentials_;
+ array<object_ptr<User>> users_;
+ enum Flags : std::int32_t { NATIVE_PROVIDER_MASK = 16 };
+
+ payments_paymentForm();
+
+ static const std::int32_t ID = -1610250415;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<payments_paymentForm> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class payments_paymentReceipt final : public Object {
+ public:
+ int32 flags_;
+ int32 date_;
+ int64 bot_id_;
+ int64 provider_id_;
+ string title_;
+ string description_;
+ object_ptr<WebDocument> photo_;
+ object_ptr<invoice> invoice_;
+ object_ptr<paymentRequestedInfo> info_;
+ object_ptr<shippingOption> shipping_;
+ int64 tip_amount_;
+ string currency_;
+ int64 total_amount_;
+ string credentials_title_;
+ array<object_ptr<User>> users_;
+ enum Flags : std::int32_t { TIP_AMOUNT_MASK = 8 };
+
+ payments_paymentReceipt();
+
+ static const std::int32_t ID = 1891958275;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<payments_paymentReceipt> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class payments_PaymentResult: public Object {
+ public:
+
+ static object_ptr<payments_PaymentResult> fetch(TlBufferParser &p);
+};
+
+class payments_paymentResult final : public payments_PaymentResult {
+ public:
+ object_ptr<Updates> updates_;
+
+ static const std::int32_t ID = 1314881805;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<payments_PaymentResult> fetch(TlBufferParser &p);
+
+ explicit payments_paymentResult(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class payments_paymentVerificationNeeded final : public payments_PaymentResult {
+ public:
+ string url_;
+
+ static const std::int32_t ID = -666824391;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<payments_PaymentResult> fetch(TlBufferParser &p);
+
+ explicit payments_paymentVerificationNeeded(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class payments_savedInfo final : public Object {
+ public:
+ int32 flags_;
+ bool has_saved_credentials_;
+ object_ptr<paymentRequestedInfo> saved_info_;
+
+ payments_savedInfo();
+
+ static const std::int32_t ID = -74456004;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<payments_savedInfo> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class payments_validatedRequestedInfo final : public Object {
+ public:
+ int32 flags_;
+ string id_;
+ array<object_ptr<shippingOption>> shipping_options_;
+ enum Flags : std::int32_t { ID_MASK = 1 };
+
+ payments_validatedRequestedInfo();
+
+ static const std::int32_t ID = -784000893;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<payments_validatedRequestedInfo> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phone_exportedGroupCallInvite final : public Object {
+ public:
+ string link_;
+
+ static const std::int32_t ID = 541839704;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<phone_exportedGroupCallInvite> fetch(TlBufferParser &p);
+
+ explicit phone_exportedGroupCallInvite(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phone_groupCall final : public Object {
+ public:
+ object_ptr<GroupCall> call_;
+ array<object_ptr<groupCallParticipant>> participants_;
+ string participants_next_offset_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1636664659;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<phone_groupCall> fetch(TlBufferParser &p);
+
+ explicit phone_groupCall(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phone_groupCallStreamChannels final : public Object {
+ public:
+ array<object_ptr<groupCallStreamChannel>> channels_;
+
+ static const std::int32_t ID = -790330702;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<phone_groupCallStreamChannels> fetch(TlBufferParser &p);
+
+ explicit phone_groupCallStreamChannels(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phone_groupCallStreamRtmpUrl final : public Object {
+ public:
+ string url_;
+ string key_;
+
+ static const std::int32_t ID = 767505458;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<phone_groupCallStreamRtmpUrl> fetch(TlBufferParser &p);
+
+ explicit phone_groupCallStreamRtmpUrl(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phone_groupParticipants final : public Object {
+ public:
+ int32 count_;
+ array<object_ptr<groupCallParticipant>> participants_;
+ string next_offset_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ int32 version_;
+
+ phone_groupParticipants(int32 count_, array<object_ptr<groupCallParticipant>> &&participants_, string const &next_offset_, array<object_ptr<Chat>> &&chats_, array<object_ptr<User>> &&users_, int32 version_);
+
+ static const std::int32_t ID = -193506890;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<phone_groupParticipants> fetch(TlBufferParser &p);
+
+ explicit phone_groupParticipants(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phone_joinAsPeers final : public Object {
+ public:
+ array<object_ptr<Peer>> peers_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1343921601;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<phone_joinAsPeers> fetch(TlBufferParser &p);
+
+ explicit phone_joinAsPeers(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class phone_phoneCall final : public Object {
+ public:
+ object_ptr<PhoneCall> phone_call_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -326966976;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<phone_phoneCall> fetch(TlBufferParser &p);
+
+ explicit phone_phoneCall(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photos_photo final : public Object {
+ public:
+ object_ptr<Photo> photo_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 539045032;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<photos_photo> fetch(TlBufferParser &p);
+
+ explicit photos_photo(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photos_Photos: public Object {
+ public:
+
+ static object_ptr<photos_Photos> fetch(TlBufferParser &p);
+};
+
+class photos_photos final : public photos_Photos {
+ public:
+ array<object_ptr<Photo>> photos_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -1916114267;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<photos_Photos> fetch(TlBufferParser &p);
+
+ explicit photos_photos(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class photos_photosSlice final : public photos_Photos {
+ public:
+ int32 count_;
+ array<object_ptr<Photo>> photos_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 352657236;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<photos_Photos> fetch(TlBufferParser &p);
+
+ explicit photos_photosSlice(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stats_broadcastStats final : public Object {
+ public:
+ object_ptr<statsDateRangeDays> period_;
+ object_ptr<statsAbsValueAndPrev> followers_;
+ object_ptr<statsAbsValueAndPrev> views_per_post_;
+ object_ptr<statsAbsValueAndPrev> shares_per_post_;
+ object_ptr<statsPercentValue> enabled_notifications_;
+ object_ptr<StatsGraph> growth_graph_;
+ object_ptr<StatsGraph> followers_graph_;
+ object_ptr<StatsGraph> mute_graph_;
+ object_ptr<StatsGraph> top_hours_graph_;
+ object_ptr<StatsGraph> interactions_graph_;
+ object_ptr<StatsGraph> iv_interactions_graph_;
+ object_ptr<StatsGraph> views_by_source_graph_;
+ object_ptr<StatsGraph> new_followers_by_source_graph_;
+ object_ptr<StatsGraph> languages_graph_;
+ array<object_ptr<messageInteractionCounters>> recent_message_interactions_;
+
+ static const std::int32_t ID = -1107852396;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<stats_broadcastStats> fetch(TlBufferParser &p);
+
+ explicit stats_broadcastStats(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stats_megagroupStats final : public Object {
+ public:
+ object_ptr<statsDateRangeDays> period_;
+ object_ptr<statsAbsValueAndPrev> members_;
+ object_ptr<statsAbsValueAndPrev> messages_;
+ object_ptr<statsAbsValueAndPrev> viewers_;
+ object_ptr<statsAbsValueAndPrev> posters_;
+ object_ptr<StatsGraph> growth_graph_;
+ object_ptr<StatsGraph> members_graph_;
+ object_ptr<StatsGraph> new_members_by_source_graph_;
+ object_ptr<StatsGraph> languages_graph_;
+ object_ptr<StatsGraph> messages_graph_;
+ object_ptr<StatsGraph> actions_graph_;
+ object_ptr<StatsGraph> top_hours_graph_;
+ object_ptr<StatsGraph> weekdays_graph_;
+ array<object_ptr<statsGroupTopPoster>> top_posters_;
+ array<object_ptr<statsGroupTopAdmin>> top_admins_;
+ array<object_ptr<statsGroupTopInviter>> top_inviters_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = -276825834;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<stats_megagroupStats> fetch(TlBufferParser &p);
+
+ explicit stats_megagroupStats(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stats_messageStats final : public Object {
+ public:
+ object_ptr<StatsGraph> views_graph_;
+
+ static const std::int32_t ID = -1986399595;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<stats_messageStats> fetch(TlBufferParser &p);
+
+ explicit stats_messageStats(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class stickers_suggestedShortName final : public Object {
+ public:
+ string short_name_;
+
+ static const std::int32_t ID = -2046910401;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<stickers_suggestedShortName> fetch(TlBufferParser &p);
+
+ explicit stickers_suggestedShortName(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storage_FileType: public Object {
+ public:
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+};
+
+class storage_fileUnknown final : public storage_FileType {
+ public:
+
+ static const std::int32_t ID = -1432995067;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storage_filePartial final : public storage_FileType {
+ public:
+
+ static const std::int32_t ID = 1086091090;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storage_fileJpeg final : public storage_FileType {
+ public:
+
+ static const std::int32_t ID = 8322574;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storage_fileGif final : public storage_FileType {
+ public:
+
+ static const std::int32_t ID = -891180321;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storage_filePng final : public storage_FileType {
+ public:
+
+ static const std::int32_t ID = 172975040;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storage_filePdf final : public storage_FileType {
+ public:
+
+ static const std::int32_t ID = -1373745011;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storage_fileMp3 final : public storage_FileType {
+ public:
+
+ static const std::int32_t ID = 1384777335;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storage_fileMov final : public storage_FileType {
+ public:
+
+ static const std::int32_t ID = 1258941372;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storage_fileMp4 final : public storage_FileType {
+ public:
+
+ static const std::int32_t ID = -1278304028;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class storage_fileWebp final : public storage_FileType {
+ public:
+
+ static const std::int32_t ID = 276907596;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<storage_FileType> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updates_ChannelDifference: public Object {
+ public:
+
+ static object_ptr<updates_ChannelDifference> fetch(TlBufferParser &p);
+};
+
+class updates_channelDifferenceEmpty final : public updates_ChannelDifference {
+ public:
+ int32 flags_;
+ bool final_;
+ int32 pts_;
+ int32 timeout_;
+ enum Flags : std::int32_t { TIMEOUT_MASK = 2 };
+
+ updates_channelDifferenceEmpty();
+
+ static const std::int32_t ID = 1041346555;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<updates_ChannelDifference> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updates_channelDifferenceTooLong final : public updates_ChannelDifference {
+ public:
+ int32 flags_;
+ bool final_;
+ int32 timeout_;
+ object_ptr<Dialog> dialog_;
+ array<object_ptr<Message>> messages_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ enum Flags : std::int32_t { TIMEOUT_MASK = 2 };
+
+ updates_channelDifferenceTooLong();
+
+ static const std::int32_t ID = -1531132162;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<updates_ChannelDifference> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updates_channelDifference final : public updates_ChannelDifference {
+ public:
+ int32 flags_;
+ bool final_;
+ int32 pts_;
+ int32 timeout_;
+ array<object_ptr<Message>> new_messages_;
+ array<object_ptr<Update>> other_updates_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ enum Flags : std::int32_t { TIMEOUT_MASK = 2 };
+
+ updates_channelDifference();
+
+ static const std::int32_t ID = 543450958;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<updates_ChannelDifference> fetch(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updates_Difference: public Object {
+ public:
+
+ static object_ptr<updates_Difference> fetch(TlBufferParser &p);
+};
+
+class updates_differenceEmpty final : public updates_Difference {
+ public:
+ int32 date_;
+ int32 seq_;
+
+ static const std::int32_t ID = 1567990072;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<updates_Difference> fetch(TlBufferParser &p);
+
+ explicit updates_differenceEmpty(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updates_difference final : public updates_Difference {
+ public:
+ array<object_ptr<Message>> new_messages_;
+ array<object_ptr<EncryptedMessage>> new_encrypted_messages_;
+ array<object_ptr<Update>> other_updates_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ object_ptr<updates_state> state_;
+
+ static const std::int32_t ID = 16030880;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<updates_Difference> fetch(TlBufferParser &p);
+
+ explicit updates_difference(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updates_differenceSlice final : public updates_Difference {
+ public:
+ array<object_ptr<Message>> new_messages_;
+ array<object_ptr<EncryptedMessage>> new_encrypted_messages_;
+ array<object_ptr<Update>> other_updates_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+ object_ptr<updates_state> intermediate_state_;
+
+ static const std::int32_t ID = -1459938943;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<updates_Difference> fetch(TlBufferParser &p);
+
+ explicit updates_differenceSlice(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updates_differenceTooLong final : public updates_Difference {
+ public:
+ int32 pts_;
+
+ static const std::int32_t ID = 1258196845;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<updates_Difference> fetch(TlBufferParser &p);
+
+ explicit updates_differenceTooLong(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class updates_state final : public Object {
+ public:
+ int32 pts_;
+ int32 qts_;
+ int32 date_;
+ int32 seq_;
+ int32 unread_count_;
+
+ static const std::int32_t ID = -1519637954;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<updates_state> fetch(TlBufferParser &p);
+
+ explicit updates_state(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class upload_CdnFile: public Object {
+ public:
+
+ static object_ptr<upload_CdnFile> fetch(TlBufferParser &p);
+};
+
+class upload_cdnFileReuploadNeeded final : public upload_CdnFile {
+ public:
+ bytes request_token_;
+
+ static const std::int32_t ID = -290921362;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<upload_CdnFile> fetch(TlBufferParser &p);
+
+ explicit upload_cdnFileReuploadNeeded(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class upload_cdnFile final : public upload_CdnFile {
+ public:
+ bytes bytes_;
+
+ static const std::int32_t ID = -1449145777;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<upload_CdnFile> fetch(TlBufferParser &p);
+
+ explicit upload_cdnFile(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class upload_File: public Object {
+ public:
+
+ static object_ptr<upload_File> fetch(TlBufferParser &p);
+};
+
+class upload_file final : public upload_File {
+ public:
+ object_ptr<storage_FileType> type_;
+ int32 mtime_;
+ bytes bytes_;
+
+ static const std::int32_t ID = 157948117;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<upload_File> fetch(TlBufferParser &p);
+
+ explicit upload_file(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class upload_fileCdnRedirect final : public upload_File {
+ public:
+ int32 dc_id_;
+ bytes file_token_;
+ bytes encryption_key_;
+ bytes encryption_iv_;
+ array<object_ptr<fileHash>> file_hashes_;
+
+ static const std::int32_t ID = -242427324;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<upload_File> fetch(TlBufferParser &p);
+
+ explicit upload_fileCdnRedirect(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class upload_webFile final : public Object {
+ public:
+ int32 size_;
+ string mime_type_;
+ object_ptr<storage_FileType> file_type_;
+ int32 mtime_;
+ bytes bytes_;
+
+ static const std::int32_t ID = 568808380;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<upload_webFile> fetch(TlBufferParser &p);
+
+ explicit upload_webFile(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class users_userFull final : public Object {
+ public:
+ object_ptr<userFull> full_user_;
+ array<object_ptr<Chat>> chats_;
+ array<object_ptr<User>> users_;
+
+ static const std::int32_t ID = 997004590;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ static object_ptr<users_userFull> fetch(TlBufferParser &p);
+
+ explicit users_userFull(TlBufferParser &p);
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+};
+
+class account_acceptAuthorization final : public Function {
+ public:
+ int64 bot_id_;
+ string scope_;
+ string public_key_;
+ array<object_ptr<secureValueHash>> value_hashes_;
+ object_ptr<secureCredentialsEncrypted> credentials_;
+
+ account_acceptAuthorization(int64 bot_id_, string const &scope_, string const &public_key_, array<object_ptr<secureValueHash>> &&value_hashes_, object_ptr<secureCredentialsEncrypted> &&credentials_);
+
+ static const std::int32_t ID = -202552205;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_cancelPasswordEmail final : public Function {
+ public:
+
+ static const std::int32_t ID = -1043606090;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_changeAuthorizationSettings final : public Function {
+ public:
+ int32 flags_;
+ int64 hash_;
+ bool encrypted_requests_disabled_;
+ bool call_requests_disabled_;
+ enum Flags : std::int32_t { ENCRYPTED_REQUESTS_DISABLED_MASK = 1, CALL_REQUESTS_DISABLED_MASK = 2 };
+ mutable int32 var0;
+
+ account_changeAuthorizationSettings(int32 flags_, int64 hash_, bool encrypted_requests_disabled_, bool call_requests_disabled_);
+
+ static const std::int32_t ID = 1089766498;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_changePhone final : public Function {
+ public:
+ string phone_number_;
+ string phone_code_hash_;
+ string phone_code_;
+
+ account_changePhone(string const &phone_number_, string const &phone_code_hash_, string const &phone_code_);
+
+ static const std::int32_t ID = 1891839707;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<User>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_checkUsername final : public Function {
+ public:
+ string username_;
+
+ explicit account_checkUsername(string const &username_);
+
+ static const std::int32_t ID = 655677548;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_clearRecentEmojiStatuses final : public Function {
+ public:
+
+ static const std::int32_t ID = 404757166;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_confirmPasswordEmail final : public Function {
+ public:
+ string code_;
+
+ explicit account_confirmPasswordEmail(string const &code_);
+
+ static const std::int32_t ID = -1881204448;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_confirmPhone final : public Function {
+ public:
+ string phone_code_hash_;
+ string phone_code_;
+
+ account_confirmPhone(string const &phone_code_hash_, string const &phone_code_);
+
+ static const std::int32_t ID = 1596029123;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_createTheme final : public Function {
+ public:
+ int32 flags_;
+ string slug_;
+ string title_;
+ object_ptr<InputDocument> document_;
+ array<object_ptr<inputThemeSettings>> settings_;
+ enum Flags : std::int32_t { DOCUMENT_MASK = 4, SETTINGS_MASK = 8 };
+ mutable int32 var0;
+
+ account_createTheme(int32 flags_, string const &slug_, string const &title_, object_ptr<InputDocument> &&document_, array<object_ptr<inputThemeSettings>> &&settings_);
+
+ static const std::int32_t ID = 1697530880;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<theme>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_declinePasswordReset final : public Function {
+ public:
+
+ static const std::int32_t ID = 1284770294;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_deleteAccount final : public Function {
+ public:
+ int32 flags_;
+ string reason_;
+ object_ptr<InputCheckPasswordSRP> password_;
+ enum Flags : std::int32_t { PASSWORD_MASK = 1 };
+ mutable int32 var0;
+
+ account_deleteAccount(int32 flags_, string const &reason_, object_ptr<InputCheckPasswordSRP> &&password_);
+
+ static const std::int32_t ID = -1564422284;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_deleteSecureValue final : public Function {
+ public:
+ array<object_ptr<SecureValueType>> types_;
+
+ explicit account_deleteSecureValue(array<object_ptr<SecureValueType>> &&types_);
+
+ static const std::int32_t ID = -1199522741;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_finishTakeoutSession final : public Function {
+ public:
+ int32 flags_;
+ bool success_;
+ enum Flags : std::int32_t { SUCCESS_MASK = 1 };
+ mutable int32 var0;
+
+ account_finishTakeoutSession(int32 flags_, bool success_);
+
+ static const std::int32_t ID = 489050862;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getAccountTTL final : public Function {
+ public:
+
+ static const std::int32_t ID = 150761757;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<accountDaysTTL>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getAllSecureValues final : public Function {
+ public:
+
+ static const std::int32_t ID = -1299661699;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<secureValue>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getAuthorizationForm final : public Function {
+ public:
+ int64 bot_id_;
+ string scope_;
+ string public_key_;
+
+ account_getAuthorizationForm(int64 bot_id_, string const &scope_, string const &public_key_);
+
+ static const std::int32_t ID = -1456907910;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_authorizationForm>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getAuthorizations final : public Function {
+ public:
+
+ static const std::int32_t ID = -484392616;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_authorizations>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getAutoDownloadSettings final : public Function {
+ public:
+
+ static const std::int32_t ID = 1457130303;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_autoDownloadSettings>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getChatThemes final : public Function {
+ public:
+ int64 hash_;
+
+ explicit account_getChatThemes(int64 hash_);
+
+ static const std::int32_t ID = -700916087;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_Themes>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getContactSignUpNotification final : public Function {
+ public:
+
+ static const std::int32_t ID = -1626880216;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getContentSettings final : public Function {
+ public:
+
+ static const std::int32_t ID = -1952756306;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_contentSettings>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getDefaultEmojiStatuses final : public Function {
+ public:
+ int64 hash_;
+
+ explicit account_getDefaultEmojiStatuses(int64 hash_);
+
+ static const std::int32_t ID = -696962170;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_EmojiStatuses>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getGlobalPrivacySettings final : public Function {
+ public:
+
+ static const std::int32_t ID = -349483786;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<globalPrivacySettings>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getMultiWallPapers final : public Function {
+ public:
+ array<object_ptr<InputWallPaper>> wallpapers_;
+
+ explicit account_getMultiWallPapers(array<object_ptr<InputWallPaper>> &&wallpapers_);
+
+ static const std::int32_t ID = 1705865692;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<WallPaper>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getNotifyExceptions final : public Function {
+ public:
+ int32 flags_;
+ bool compare_sound_;
+ object_ptr<InputNotifyPeer> peer_;
+ enum Flags : std::int32_t { COMPARE_SOUND_MASK = 2, PEER_MASK = 1 };
+ mutable int32 var0;
+
+ account_getNotifyExceptions(int32 flags_, bool compare_sound_, object_ptr<InputNotifyPeer> &&peer_);
+
+ static const std::int32_t ID = 1398240377;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getNotifySettings final : public Function {
+ public:
+ object_ptr<InputNotifyPeer> peer_;
+
+ explicit account_getNotifySettings(object_ptr<InputNotifyPeer> &&peer_);
+
+ static const std::int32_t ID = 313765169;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<peerNotifySettings>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getPassword final : public Function {
+ public:
+
+ static const std::int32_t ID = 1418342645;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_password>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getPasswordSettings final : public Function {
+ public:
+ object_ptr<InputCheckPasswordSRP> password_;
+
+ explicit account_getPasswordSettings(object_ptr<InputCheckPasswordSRP> &&password_);
+
+ static const std::int32_t ID = -1663767815;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_passwordSettings>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getPrivacy final : public Function {
+ public:
+ object_ptr<InputPrivacyKey> key_;
+
+ explicit account_getPrivacy(object_ptr<InputPrivacyKey> &&key_);
+
+ static const std::int32_t ID = -623130288;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_privacyRules>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getRecentEmojiStatuses final : public Function {
+ public:
+ int64 hash_;
+
+ explicit account_getRecentEmojiStatuses(int64 hash_);
+
+ static const std::int32_t ID = 257392901;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_EmojiStatuses>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getSavedRingtones final : public Function {
+ public:
+ int64 hash_;
+
+ explicit account_getSavedRingtones(int64 hash_);
+
+ static const std::int32_t ID = -510647672;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_SavedRingtones>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getSecureValue final : public Function {
+ public:
+ array<object_ptr<SecureValueType>> types_;
+
+ explicit account_getSecureValue(array<object_ptr<SecureValueType>> &&types_);
+
+ static const std::int32_t ID = 1936088002;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<secureValue>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getTheme final : public Function {
+ public:
+ string format_;
+ object_ptr<InputTheme> theme_;
+
+ account_getTheme(string const &format_, object_ptr<InputTheme> &&theme_);
+
+ static const std::int32_t ID = 978872812;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<theme>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getThemes final : public Function {
+ public:
+ string format_;
+ int64 hash_;
+
+ account_getThemes(string const &format_, int64 hash_);
+
+ static const std::int32_t ID = 1913054296;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_Themes>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getTmpPassword final : public Function {
+ public:
+ object_ptr<InputCheckPasswordSRP> password_;
+ int32 period_;
+
+ account_getTmpPassword(object_ptr<InputCheckPasswordSRP> &&password_, int32 period_);
+
+ static const std::int32_t ID = 1151208273;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_tmpPassword>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getWallPaper final : public Function {
+ public:
+ object_ptr<InputWallPaper> wallpaper_;
+
+ explicit account_getWallPaper(object_ptr<InputWallPaper> &&wallpaper_);
+
+ static const std::int32_t ID = -57811990;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<WallPaper>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getWallPapers final : public Function {
+ public:
+ int64 hash_;
+
+ explicit account_getWallPapers(int64 hash_);
+
+ static const std::int32_t ID = 127302966;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_WallPapers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_getWebAuthorizations final : public Function {
+ public:
+
+ static const std::int32_t ID = 405695855;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_webAuthorizations>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_initTakeoutSession final : public Function {
+ public:
+ int32 flags_;
+ bool contacts_;
+ bool message_users_;
+ bool message_chats_;
+ bool message_megagroups_;
+ bool message_channels_;
+ bool files_;
+ int64 file_max_size_;
+ enum Flags : std::int32_t { CONTACTS_MASK = 1, MESSAGE_USERS_MASK = 2, MESSAGE_CHATS_MASK = 4, MESSAGE_MEGAGROUPS_MASK = 8, MESSAGE_CHANNELS_MASK = 16, FILES_MASK = 32, FILE_MAX_SIZE_MASK = 32 };
+ mutable int32 var0;
+
+ account_initTakeoutSession(int32 flags_, bool contacts_, bool message_users_, bool message_chats_, bool message_megagroups_, bool message_channels_, bool files_, int64 file_max_size_);
+
+ static const std::int32_t ID = -1896617296;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_takeout>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_installTheme final : public Function {
+ public:
+ int32 flags_;
+ bool dark_;
+ object_ptr<InputTheme> theme_;
+ string format_;
+ object_ptr<BaseTheme> base_theme_;
+ enum Flags : std::int32_t { DARK_MASK = 1, THEME_MASK = 2, FORMAT_MASK = 4, BASE_THEME_MASK = 8 };
+ mutable int32 var0;
+
+ account_installTheme(int32 flags_, bool dark_, object_ptr<InputTheme> &&theme_, string const &format_, object_ptr<BaseTheme> &&base_theme_);
+
+ static const std::int32_t ID = -953697477;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_installWallPaper final : public Function {
+ public:
+ object_ptr<InputWallPaper> wallpaper_;
+ object_ptr<wallPaperSettings> settings_;
+
+ account_installWallPaper(object_ptr<InputWallPaper> &&wallpaper_, object_ptr<wallPaperSettings> &&settings_);
+
+ static const std::int32_t ID = -18000023;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_registerDevice final : public Function {
+ public:
+ int32 flags_;
+ bool no_muted_;
+ int32 token_type_;
+ string token_;
+ bool app_sandbox_;
+ bytes secret_;
+ array<int64> other_uids_;
+ enum Flags : std::int32_t { NO_MUTED_MASK = 1 };
+ mutable int32 var0;
+
+ account_registerDevice(int32 flags_, bool no_muted_, int32 token_type_, string const &token_, bool app_sandbox_, bytes &&secret_, array<int64> &&other_uids_);
+
+ static const std::int32_t ID = -326762118;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_reorderUsernames final : public Function {
+ public:
+ array<string> order_;
+
+ explicit account_reorderUsernames(array<string> &&order_);
+
+ static const std::int32_t ID = -279966037;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_reportPeer final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<ReportReason> reason_;
+ string message_;
+
+ account_reportPeer(object_ptr<InputPeer> &&peer_, object_ptr<ReportReason> &&reason_, string const &message_);
+
+ static const std::int32_t ID = -977650298;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_reportProfilePhoto final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputPhoto> photo_id_;
+ object_ptr<ReportReason> reason_;
+ string message_;
+
+ account_reportProfilePhoto(object_ptr<InputPeer> &&peer_, object_ptr<InputPhoto> &&photo_id_, object_ptr<ReportReason> &&reason_, string const &message_);
+
+ static const std::int32_t ID = -91437323;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_resendPasswordEmail final : public Function {
+ public:
+
+ static const std::int32_t ID = 2055154197;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_resetAuthorization final : public Function {
+ public:
+ int64 hash_;
+
+ explicit account_resetAuthorization(int64 hash_);
+
+ static const std::int32_t ID = -545786948;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_resetNotifySettings final : public Function {
+ public:
+
+ static const std::int32_t ID = -612493497;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_resetPassword final : public Function {
+ public:
+
+ static const std::int32_t ID = -1828139493;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_ResetPasswordResult>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_resetWallPapers final : public Function {
+ public:
+
+ static const std::int32_t ID = -1153722364;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_resetWebAuthorization final : public Function {
+ public:
+ int64 hash_;
+
+ explicit account_resetWebAuthorization(int64 hash_);
+
+ static const std::int32_t ID = 755087855;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_resetWebAuthorizations final : public Function {
+ public:
+
+ static const std::int32_t ID = 1747789204;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_saveAutoDownloadSettings final : public Function {
+ public:
+ int32 flags_;
+ bool low_;
+ bool high_;
+ object_ptr<autoDownloadSettings> settings_;
+ enum Flags : std::int32_t { LOW_MASK = 1, HIGH_MASK = 2 };
+ mutable int32 var0;
+
+ account_saveAutoDownloadSettings(int32 flags_, bool low_, bool high_, object_ptr<autoDownloadSettings> &&settings_);
+
+ static const std::int32_t ID = 1995661875;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_saveRingtone final : public Function {
+ public:
+ object_ptr<InputDocument> id_;
+ bool unsave_;
+
+ account_saveRingtone(object_ptr<InputDocument> &&id_, bool unsave_);
+
+ static const std::int32_t ID = 1038768899;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_SavedRingtone>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_saveSecureValue final : public Function {
+ public:
+ object_ptr<inputSecureValue> value_;
+ int64 secure_secret_id_;
+
+ account_saveSecureValue(object_ptr<inputSecureValue> &&value_, int64 secure_secret_id_);
+
+ static const std::int32_t ID = -1986010339;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<secureValue>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_saveTheme final : public Function {
+ public:
+ object_ptr<InputTheme> theme_;
+ bool unsave_;
+
+ account_saveTheme(object_ptr<InputTheme> &&theme_, bool unsave_);
+
+ static const std::int32_t ID = -229175188;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_saveWallPaper final : public Function {
+ public:
+ object_ptr<InputWallPaper> wallpaper_;
+ bool unsave_;
+ object_ptr<wallPaperSettings> settings_;
+
+ account_saveWallPaper(object_ptr<InputWallPaper> &&wallpaper_, bool unsave_, object_ptr<wallPaperSettings> &&settings_);
+
+ static const std::int32_t ID = 1817860919;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_sendChangePhoneCode final : public Function {
+ public:
+ string phone_number_;
+ object_ptr<codeSettings> settings_;
+
+ account_sendChangePhoneCode(string const &phone_number_, object_ptr<codeSettings> &&settings_);
+
+ static const std::int32_t ID = -2108208411;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_sentCode>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_sendConfirmPhoneCode final : public Function {
+ public:
+ string hash_;
+ object_ptr<codeSettings> settings_;
+
+ account_sendConfirmPhoneCode(string const &hash_, object_ptr<codeSettings> &&settings_);
+
+ static const std::int32_t ID = 457157256;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_sentCode>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_sendVerifyEmailCode final : public Function {
+ public:
+ object_ptr<EmailVerifyPurpose> purpose_;
+ string email_;
+
+ account_sendVerifyEmailCode(object_ptr<EmailVerifyPurpose> &&purpose_, string const &email_);
+
+ static const std::int32_t ID = -1730136133;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_sentEmailCode>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_sendVerifyPhoneCode final : public Function {
+ public:
+ string phone_number_;
+ object_ptr<codeSettings> settings_;
+
+ account_sendVerifyPhoneCode(string const &phone_number_, object_ptr<codeSettings> &&settings_);
+
+ static const std::int32_t ID = -1516022023;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_sentCode>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_setAccountTTL final : public Function {
+ public:
+ object_ptr<accountDaysTTL> ttl_;
+
+ explicit account_setAccountTTL(object_ptr<accountDaysTTL> &&ttl_);
+
+ static const std::int32_t ID = 608323678;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_setAuthorizationTTL final : public Function {
+ public:
+ int32 authorization_ttl_days_;
+
+ explicit account_setAuthorizationTTL(int32 authorization_ttl_days_);
+
+ static const std::int32_t ID = -1081501024;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_setContactSignUpNotification final : public Function {
+ public:
+ bool silent_;
+
+ explicit account_setContactSignUpNotification(bool silent_);
+
+ static const std::int32_t ID = -806076575;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_setContentSettings final : public Function {
+ public:
+ int32 flags_;
+ bool sensitive_enabled_;
+ enum Flags : std::int32_t { SENSITIVE_ENABLED_MASK = 1 };
+ mutable int32 var0;
+
+ account_setContentSettings(int32 flags_, bool sensitive_enabled_);
+
+ static const std::int32_t ID = -1250643605;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_setGlobalPrivacySettings final : public Function {
+ public:
+ object_ptr<globalPrivacySettings> settings_;
+
+ explicit account_setGlobalPrivacySettings(object_ptr<globalPrivacySettings> &&settings_);
+
+ static const std::int32_t ID = 517647042;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<globalPrivacySettings>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_setPrivacy final : public Function {
+ public:
+ object_ptr<InputPrivacyKey> key_;
+ array<object_ptr<InputPrivacyRule>> rules_;
+
+ account_setPrivacy(object_ptr<InputPrivacyKey> &&key_, array<object_ptr<InputPrivacyRule>> &&rules_);
+
+ static const std::int32_t ID = -906486552;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_privacyRules>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_toggleUsername final : public Function {
+ public:
+ string username_;
+ bool active_;
+
+ account_toggleUsername(string const &username_, bool active_);
+
+ static const std::int32_t ID = 1490465654;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_unregisterDevice final : public Function {
+ public:
+ int32 token_type_;
+ string token_;
+ array<int64> other_uids_;
+
+ account_unregisterDevice(int32 token_type_, string const &token_, array<int64> &&other_uids_);
+
+ static const std::int32_t ID = 1779249670;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_updateDeviceLocked final : public Function {
+ public:
+ int32 period_;
+
+ explicit account_updateDeviceLocked(int32 period_);
+
+ static const std::int32_t ID = 954152242;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_updateEmojiStatus final : public Function {
+ public:
+ object_ptr<EmojiStatus> emoji_status_;
+
+ explicit account_updateEmojiStatus(object_ptr<EmojiStatus> &&emoji_status_);
+
+ static const std::int32_t ID = -70001045;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_updateNotifySettings final : public Function {
+ public:
+ object_ptr<InputNotifyPeer> peer_;
+ object_ptr<inputPeerNotifySettings> settings_;
+
+ account_updateNotifySettings(object_ptr<InputNotifyPeer> &&peer_, object_ptr<inputPeerNotifySettings> &&settings_);
+
+ static const std::int32_t ID = -2067899501;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_updatePasswordSettings final : public Function {
+ public:
+ object_ptr<InputCheckPasswordSRP> password_;
+ object_ptr<account_passwordInputSettings> new_settings_;
+
+ account_updatePasswordSettings(object_ptr<InputCheckPasswordSRP> &&password_, object_ptr<account_passwordInputSettings> &&new_settings_);
+
+ static const std::int32_t ID = -1516564433;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_updateProfile final : public Function {
+ public:
+ int32 flags_;
+ string first_name_;
+ string last_name_;
+ string about_;
+ enum Flags : std::int32_t { FIRST_NAME_MASK = 1, LAST_NAME_MASK = 2, ABOUT_MASK = 4 };
+ mutable int32 var0;
+
+ account_updateProfile(int32 flags_, string const &first_name_, string const &last_name_, string const &about_);
+
+ static const std::int32_t ID = 2018596725;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<User>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_updateStatus final : public Function {
+ public:
+ bool offline_;
+
+ explicit account_updateStatus(bool offline_);
+
+ static const std::int32_t ID = 1713919532;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_updateTheme final : public Function {
+ public:
+ int32 flags_;
+ string format_;
+ object_ptr<InputTheme> theme_;
+ string slug_;
+ string title_;
+ object_ptr<InputDocument> document_;
+ array<object_ptr<inputThemeSettings>> settings_;
+ enum Flags : std::int32_t { SLUG_MASK = 1, TITLE_MASK = 2, DOCUMENT_MASK = 4, SETTINGS_MASK = 8 };
+ mutable int32 var0;
+
+ account_updateTheme(int32 flags_, string const &format_, object_ptr<InputTheme> &&theme_, string const &slug_, string const &title_, object_ptr<InputDocument> &&document_, array<object_ptr<inputThemeSettings>> &&settings_);
+
+ static const std::int32_t ID = 737414348;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<theme>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_updateUsername final : public Function {
+ public:
+ string username_;
+
+ explicit account_updateUsername(string const &username_);
+
+ static const std::int32_t ID = 1040964988;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<User>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_uploadRingtone final : public Function {
+ public:
+ object_ptr<InputFile> file_;
+ string file_name_;
+ string mime_type_;
+
+ account_uploadRingtone(object_ptr<InputFile> &&file_, string const &file_name_, string const &mime_type_);
+
+ static const std::int32_t ID = -2095414366;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Document>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_uploadTheme final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputFile> file_;
+ object_ptr<InputFile> thumb_;
+ string file_name_;
+ string mime_type_;
+ enum Flags : std::int32_t { THUMB_MASK = 1 };
+ mutable int32 var0;
+
+ account_uploadTheme(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&thumb_, string const &file_name_, string const &mime_type_);
+
+ static const std::int32_t ID = 473805619;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Document>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_uploadWallPaper final : public Function {
+ public:
+ object_ptr<InputFile> file_;
+ string mime_type_;
+ object_ptr<wallPaperSettings> settings_;
+
+ account_uploadWallPaper(object_ptr<InputFile> &&file_, string const &mime_type_, object_ptr<wallPaperSettings> &&settings_);
+
+ static const std::int32_t ID = -578472351;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<WallPaper>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_verifyEmail final : public Function {
+ public:
+ object_ptr<EmailVerifyPurpose> purpose_;
+ object_ptr<EmailVerification> verification_;
+
+ account_verifyEmail(object_ptr<EmailVerifyPurpose> &&purpose_, object_ptr<EmailVerification> &&verification_);
+
+ static const std::int32_t ID = 53322959;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<account_EmailVerified>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class account_verifyPhone final : public Function {
+ public:
+ string phone_number_;
+ string phone_code_hash_;
+ string phone_code_;
+
+ account_verifyPhone(string const &phone_number_, string const &phone_code_hash_, string const &phone_code_);
+
+ static const std::int32_t ID = 1305716726;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_acceptLoginToken final : public Function {
+ public:
+ bytes token_;
+
+ explicit auth_acceptLoginToken(bytes &&token_);
+
+ static const std::int32_t ID = -392909491;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<authorization>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_bindTempAuthKey final : public Function {
+ public:
+ int64 perm_auth_key_id_;
+ int64 nonce_;
+ int32 expires_at_;
+ bytes encrypted_message_;
+
+ auth_bindTempAuthKey(int64 perm_auth_key_id_, int64 nonce_, int32 expires_at_, bytes &&encrypted_message_);
+
+ static const std::int32_t ID = -841733627;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_cancelCode final : public Function {
+ public:
+ string phone_number_;
+ string phone_code_hash_;
+
+ auth_cancelCode(string const &phone_number_, string const &phone_code_hash_);
+
+ static const std::int32_t ID = 520357240;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_checkPassword final : public Function {
+ public:
+ object_ptr<InputCheckPasswordSRP> password_;
+
+ explicit auth_checkPassword(object_ptr<InputCheckPasswordSRP> &&password_);
+
+ static const std::int32_t ID = -779399914;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_Authorization>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_checkRecoveryPassword final : public Function {
+ public:
+ string code_;
+
+ explicit auth_checkRecoveryPassword(string const &code_);
+
+ static const std::int32_t ID = 221691769;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_dropTempAuthKeys final : public Function {
+ public:
+ array<int64> except_auth_keys_;
+
+ explicit auth_dropTempAuthKeys(array<int64> &&except_auth_keys_);
+
+ static const std::int32_t ID = -1907842680;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_exportAuthorization final : public Function {
+ public:
+ int32 dc_id_;
+
+ explicit auth_exportAuthorization(int32 dc_id_);
+
+ static const std::int32_t ID = -440401971;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_exportedAuthorization>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_exportLoginToken final : public Function {
+ public:
+ int32 api_id_;
+ string api_hash_;
+ array<int64> except_ids_;
+
+ auth_exportLoginToken(int32 api_id_, string const &api_hash_, array<int64> &&except_ids_);
+
+ static const std::int32_t ID = -1210022402;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_LoginToken>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_importAuthorization final : public Function {
+ public:
+ int64 id_;
+ bytes bytes_;
+
+ auth_importAuthorization(int64 id_, bytes &&bytes_);
+
+ static const std::int32_t ID = -1518699091;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_Authorization>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_importBotAuthorization final : public Function {
+ public:
+ int32 flags_;
+ int32 api_id_;
+ string api_hash_;
+ string bot_auth_token_;
+
+ auth_importBotAuthorization(int32 flags_, int32 api_id_, string const &api_hash_, string const &bot_auth_token_);
+
+ static const std::int32_t ID = 1738800940;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_Authorization>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_importLoginToken final : public Function {
+ public:
+ bytes token_;
+
+ explicit auth_importLoginToken(bytes &&token_);
+
+ static const std::int32_t ID = -1783866140;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_LoginToken>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_logOut final : public Function {
+ public:
+
+ static const std::int32_t ID = 1047706137;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_loggedOut>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_recoverPassword final : public Function {
+ public:
+ int32 flags_;
+ string code_;
+ object_ptr<account_passwordInputSettings> new_settings_;
+ enum Flags : std::int32_t { NEW_SETTINGS_MASK = 1 };
+ mutable int32 var0;
+
+ auth_recoverPassword(int32 flags_, string const &code_, object_ptr<account_passwordInputSettings> &&new_settings_);
+
+ static const std::int32_t ID = 923364464;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_Authorization>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_requestPasswordRecovery final : public Function {
+ public:
+
+ static const std::int32_t ID = -661144474;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_passwordRecovery>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_resendCode final : public Function {
+ public:
+ string phone_number_;
+ string phone_code_hash_;
+
+ auth_resendCode(string const &phone_number_, string const &phone_code_hash_);
+
+ static const std::int32_t ID = 1056025023;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_sentCode>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_resetAuthorizations final : public Function {
+ public:
+
+ static const std::int32_t ID = -1616179942;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_sendCode final : public Function {
+ public:
+ string phone_number_;
+ int32 api_id_;
+ string api_hash_;
+ object_ptr<codeSettings> settings_;
+
+ auth_sendCode(string const &phone_number_, int32 api_id_, string const &api_hash_, object_ptr<codeSettings> &&settings_);
+
+ static const std::int32_t ID = -1502141361;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_sentCode>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_signIn final : public Function {
+ public:
+ int32 flags_;
+ string phone_number_;
+ string phone_code_hash_;
+ string phone_code_;
+ object_ptr<EmailVerification> email_verification_;
+ enum Flags : std::int32_t { PHONE_CODE_MASK = 1, EMAIL_VERIFICATION_MASK = 2 };
+ mutable int32 var0;
+
+ auth_signIn(int32 flags_, string const &phone_number_, string const &phone_code_hash_, string const &phone_code_, object_ptr<EmailVerification> &&email_verification_);
+
+ static const std::int32_t ID = -1923962543;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_Authorization>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class auth_signUp final : public Function {
+ public:
+ string phone_number_;
+ string phone_code_hash_;
+ string first_name_;
+ string last_name_;
+
+ auth_signUp(string const &phone_number_, string const &phone_code_hash_, string const &first_name_, string const &last_name_);
+
+ static const std::int32_t ID = -2131827673;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<auth_Authorization>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class bots_answerWebhookJSONQuery final : public Function {
+ public:
+ int64 query_id_;
+ object_ptr<dataJSON> data_;
+
+ bots_answerWebhookJSONQuery(int64 query_id_, object_ptr<dataJSON> &&data_);
+
+ static const std::int32_t ID = -434028723;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class bots_getBotCommands final : public Function {
+ public:
+ object_ptr<BotCommandScope> scope_;
+ string lang_code_;
+
+ bots_getBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_);
+
+ static const std::int32_t ID = -481554986;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<botCommand>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class bots_getBotMenuButton final : public Function {
+ public:
+ object_ptr<InputUser> user_id_;
+
+ explicit bots_getBotMenuButton(object_ptr<InputUser> &&user_id_);
+
+ static const std::int32_t ID = -1671369944;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<BotMenuButton>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class bots_resetBotCommands final : public Function {
+ public:
+ object_ptr<BotCommandScope> scope_;
+ string lang_code_;
+
+ bots_resetBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_);
+
+ static const std::int32_t ID = 1032708345;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class bots_sendCustomRequest final : public Function {
+ public:
+ string custom_method_;
+ object_ptr<dataJSON> params_;
+
+ bots_sendCustomRequest(string const &custom_method_, object_ptr<dataJSON> &&params_);
+
+ static const std::int32_t ID = -1440257555;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<dataJSON>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class bots_setBotBroadcastDefaultAdminRights final : public Function {
+ public:
+ object_ptr<chatAdminRights> admin_rights_;
+
+ explicit bots_setBotBroadcastDefaultAdminRights(object_ptr<chatAdminRights> &&admin_rights_);
+
+ static const std::int32_t ID = 2021942497;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class bots_setBotCommands final : public Function {
+ public:
+ object_ptr<BotCommandScope> scope_;
+ string lang_code_;
+ array<object_ptr<botCommand>> commands_;
+
+ bots_setBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_, array<object_ptr<botCommand>> &&commands_);
+
+ static const std::int32_t ID = 85399130;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class bots_setBotGroupDefaultAdminRights final : public Function {
+ public:
+ object_ptr<chatAdminRights> admin_rights_;
+
+ explicit bots_setBotGroupDefaultAdminRights(object_ptr<chatAdminRights> &&admin_rights_);
+
+ static const std::int32_t ID = -1839281686;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class bots_setBotMenuButton final : public Function {
+ public:
+ object_ptr<InputUser> user_id_;
+ object_ptr<BotMenuButton> button_;
+
+ bots_setBotMenuButton(object_ptr<InputUser> &&user_id_, object_ptr<BotMenuButton> &&button_);
+
+ static const std::int32_t ID = 1157944655;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_checkUsername final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ string username_;
+
+ channels_checkUsername(object_ptr<InputChannel> &&channel_, string const &username_);
+
+ static const std::int32_t ID = 283557164;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_convertToGigagroup final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+
+ explicit channels_convertToGigagroup(object_ptr<InputChannel> &&channel_);
+
+ static const std::int32_t ID = 187239529;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_createChannel final : public Function {
+ public:
+ int32 flags_;
+ bool broadcast_;
+ bool megagroup_;
+ bool for_import_;
+ string title_;
+ string about_;
+ object_ptr<InputGeoPoint> geo_point_;
+ string address_;
+ enum Flags : std::int32_t { BROADCAST_MASK = 1, MEGAGROUP_MASK = 2, FOR_IMPORT_MASK = 8, GEO_POINT_MASK = 4, ADDRESS_MASK = 4 };
+ mutable int32 var0;
+
+ channels_createChannel(int32 flags_, bool broadcast_, bool megagroup_, bool for_import_, string const &title_, string const &about_, object_ptr<InputGeoPoint> &&geo_point_, string const &address_);
+
+ static const std::int32_t ID = 1029681423;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_createForumTopic final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputChannel> channel_;
+ string title_;
+ int32 icon_color_;
+ int64 icon_emoji_id_;
+ int64 random_id_;
+ object_ptr<InputPeer> send_as_;
+ enum Flags : std::int32_t { ICON_COLOR_MASK = 1, ICON_EMOJI_ID_MASK = 8, SEND_AS_MASK = 4 };
+ mutable int32 var0;
+
+ channels_createForumTopic(int32 flags_, object_ptr<InputChannel> &&channel_, string const &title_, int32 icon_color_, int64 icon_emoji_id_, int64 random_id_, object_ptr<InputPeer> &&send_as_);
+
+ static const std::int32_t ID = -200539612;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_deactivateAllUsernames final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+
+ explicit channels_deactivateAllUsernames(object_ptr<InputChannel> &&channel_);
+
+ static const std::int32_t ID = 170155475;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_deleteChannel final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+
+ explicit channels_deleteChannel(object_ptr<InputChannel> &&channel_);
+
+ static const std::int32_t ID = -1072619549;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_deleteHistory final : public Function {
+ public:
+ int32 flags_;
+ bool for_everyone_;
+ object_ptr<InputChannel> channel_;
+ int32 max_id_;
+ enum Flags : std::int32_t { FOR_EVERYONE_MASK = 1 };
+ mutable int32 var0;
+
+ channels_deleteHistory(int32 flags_, bool for_everyone_, object_ptr<InputChannel> &&channel_, int32 max_id_);
+
+ static const std::int32_t ID = -1683319225;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_deleteMessages final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ array<int32> id_;
+
+ channels_deleteMessages(object_ptr<InputChannel> &&channel_, array<int32> &&id_);
+
+ static const std::int32_t ID = -2067661490;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedMessages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_deleteParticipantHistory final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ object_ptr<InputPeer> participant_;
+
+ channels_deleteParticipantHistory(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_);
+
+ static const std::int32_t ID = 913655003;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedHistory>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_deleteTopicHistory final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ int32 top_msg_id_;
+
+ channels_deleteTopicHistory(object_ptr<InputChannel> &&channel_, int32 top_msg_id_);
+
+ static const std::int32_t ID = 876830509;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedHistory>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_editAdmin final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ object_ptr<InputUser> user_id_;
+ object_ptr<chatAdminRights> admin_rights_;
+ string rank_;
+
+ channels_editAdmin(object_ptr<InputChannel> &&channel_, object_ptr<InputUser> &&user_id_, object_ptr<chatAdminRights> &&admin_rights_, string const &rank_);
+
+ static const std::int32_t ID = -751007486;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_editBanned final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ object_ptr<InputPeer> participant_;
+ object_ptr<chatBannedRights> banned_rights_;
+
+ channels_editBanned(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_, object_ptr<chatBannedRights> &&banned_rights_);
+
+ static const std::int32_t ID = -1763259007;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_editCreator final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ object_ptr<InputUser> user_id_;
+ object_ptr<InputCheckPasswordSRP> password_;
+
+ channels_editCreator(object_ptr<InputChannel> &&channel_, object_ptr<InputUser> &&user_id_, object_ptr<InputCheckPasswordSRP> &&password_);
+
+ static const std::int32_t ID = -1892102881;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_editForumTopic final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputChannel> channel_;
+ int32 topic_id_;
+ string title_;
+ int64 icon_emoji_id_;
+ bool closed_;
+ enum Flags : std::int32_t { TITLE_MASK = 1, ICON_EMOJI_ID_MASK = 2, CLOSED_MASK = 4 };
+ mutable int32 var0;
+
+ channels_editForumTopic(int32 flags_, object_ptr<InputChannel> &&channel_, int32 topic_id_, string const &title_, int64 icon_emoji_id_, bool closed_);
+
+ static const std::int32_t ID = 1820868141;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_editLocation final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ object_ptr<InputGeoPoint> geo_point_;
+ string address_;
+
+ channels_editLocation(object_ptr<InputChannel> &&channel_, object_ptr<InputGeoPoint> &&geo_point_, string const &address_);
+
+ static const std::int32_t ID = 1491484525;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_editPhoto final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ object_ptr<InputChatPhoto> photo_;
+
+ channels_editPhoto(object_ptr<InputChannel> &&channel_, object_ptr<InputChatPhoto> &&photo_);
+
+ static const std::int32_t ID = -248621111;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_editTitle final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ string title_;
+
+ channels_editTitle(object_ptr<InputChannel> &&channel_, string const &title_);
+
+ static const std::int32_t ID = 1450044624;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_exportMessageLink final : public Function {
+ public:
+ int32 flags_;
+ bool grouped_;
+ bool thread_;
+ object_ptr<InputChannel> channel_;
+ int32 id_;
+ enum Flags : std::int32_t { GROUPED_MASK = 1, THREAD_MASK = 2 };
+ mutable int32 var0;
+
+ channels_exportMessageLink(int32 flags_, bool grouped_, bool thread_, object_ptr<InputChannel> &&channel_, int32 id_);
+
+ static const std::int32_t ID = -432034325;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<exportedMessageLink>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getAdminLog final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputChannel> channel_;
+ string q_;
+ object_ptr<channelAdminLogEventsFilter> events_filter_;
+ array<object_ptr<InputUser>> admins_;
+ int64 max_id_;
+ int64 min_id_;
+ int32 limit_;
+ enum Flags : std::int32_t { EVENTS_FILTER_MASK = 1, ADMINS_MASK = 2 };
+ mutable int32 var0;
+
+ channels_getAdminLog(int32 flags_, object_ptr<InputChannel> &&channel_, string const &q_, object_ptr<channelAdminLogEventsFilter> &&events_filter_, array<object_ptr<InputUser>> &&admins_, int64 max_id_, int64 min_id_, int32 limit_);
+
+ static const std::int32_t ID = 870184064;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<channels_adminLogResults>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getAdminedPublicChannels final : public Function {
+ public:
+ int32 flags_;
+ bool by_location_;
+ bool check_limit_;
+ enum Flags : std::int32_t { BY_LOCATION_MASK = 1, CHECK_LIMIT_MASK = 2 };
+ mutable int32 var0;
+
+ channels_getAdminedPublicChannels(int32 flags_, bool by_location_, bool check_limit_);
+
+ static const std::int32_t ID = -122669393;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Chats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getChannels final : public Function {
+ public:
+ array<object_ptr<InputChannel>> id_;
+
+ explicit channels_getChannels(array<object_ptr<InputChannel>> &&id_);
+
+ static const std::int32_t ID = 176122811;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Chats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getForumTopics final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputChannel> channel_;
+ string q_;
+ int32 offset_date_;
+ int32 offset_id_;
+ int32 offset_topic_;
+ int32 limit_;
+ enum Flags : std::int32_t { Q_MASK = 1 };
+ mutable int32 var0;
+
+ channels_getForumTopics(int32 flags_, object_ptr<InputChannel> &&channel_, string const &q_, int32 offset_date_, int32 offset_id_, int32 offset_topic_, int32 limit_);
+
+ static const std::int32_t ID = 233136337;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_forumTopics>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getForumTopicsByID final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ array<int32> topics_;
+
+ channels_getForumTopicsByID(object_ptr<InputChannel> &&channel_, array<int32> &&topics_);
+
+ static const std::int32_t ID = -1333584199;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_forumTopics>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getFullChannel final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+
+ explicit channels_getFullChannel(object_ptr<InputChannel> &&channel_);
+
+ static const std::int32_t ID = 141781513;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_chatFull>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getGroupsForDiscussion final : public Function {
+ public:
+
+ static const std::int32_t ID = -170208392;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Chats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getInactiveChannels final : public Function {
+ public:
+
+ static const std::int32_t ID = 300429806;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_inactiveChats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getLeftChannels final : public Function {
+ public:
+ int32 offset_;
+
+ explicit channels_getLeftChannels(int32 offset_);
+
+ static const std::int32_t ID = -2092831552;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Chats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getMessages final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ array<object_ptr<InputMessage>> id_;
+
+ channels_getMessages(object_ptr<InputChannel> &&channel_, array<object_ptr<InputMessage>> &&id_);
+
+ static const std::int32_t ID = -1383294429;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getParticipant final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ object_ptr<InputPeer> participant_;
+
+ channels_getParticipant(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_);
+
+ static const std::int32_t ID = -1599378234;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<channels_channelParticipant>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getParticipants final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ object_ptr<ChannelParticipantsFilter> filter_;
+ int32 offset_;
+ int32 limit_;
+ int64 hash_;
+
+ channels_getParticipants(object_ptr<InputChannel> &&channel_, object_ptr<ChannelParticipantsFilter> &&filter_, int32 offset_, int32 limit_, int64 hash_);
+
+ static const std::int32_t ID = 2010044880;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<channels_ChannelParticipants>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getSendAs final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit channels_getSendAs(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = 231174382;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<channels_sendAsPeers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_getSponsoredMessages final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+
+ explicit channels_getSponsoredMessages(object_ptr<InputChannel> &&channel_);
+
+ static const std::int32_t ID = -333377601;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_SponsoredMessages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_inviteToChannel final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ array<object_ptr<InputUser>> users_;
+
+ channels_inviteToChannel(object_ptr<InputChannel> &&channel_, array<object_ptr<InputUser>> &&users_);
+
+ static const std::int32_t ID = 429865580;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_joinChannel final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+
+ explicit channels_joinChannel(object_ptr<InputChannel> &&channel_);
+
+ static const std::int32_t ID = 615851205;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_leaveChannel final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+
+ explicit channels_leaveChannel(object_ptr<InputChannel> &&channel_);
+
+ static const std::int32_t ID = -130635115;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_readHistory final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ int32 max_id_;
+
+ channels_readHistory(object_ptr<InputChannel> &&channel_, int32 max_id_);
+
+ static const std::int32_t ID = -871347913;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_readMessageContents final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ array<int32> id_;
+
+ channels_readMessageContents(object_ptr<InputChannel> &&channel_, array<int32> &&id_);
+
+ static const std::int32_t ID = -357180360;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_reorderUsernames final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ array<string> order_;
+
+ channels_reorderUsernames(object_ptr<InputChannel> &&channel_, array<string> &&order_);
+
+ static const std::int32_t ID = -1268978403;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_reportSpam final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ object_ptr<InputPeer> participant_;
+ array<int32> id_;
+
+ channels_reportSpam(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_, array<int32> &&id_);
+
+ static const std::int32_t ID = -196443371;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_setDiscussionGroup final : public Function {
+ public:
+ object_ptr<InputChannel> broadcast_;
+ object_ptr<InputChannel> group_;
+
+ channels_setDiscussionGroup(object_ptr<InputChannel> &&broadcast_, object_ptr<InputChannel> &&group_);
+
+ static const std::int32_t ID = 1079520178;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_setStickers final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ object_ptr<InputStickerSet> stickerset_;
+
+ channels_setStickers(object_ptr<InputChannel> &&channel_, object_ptr<InputStickerSet> &&stickerset_);
+
+ static const std::int32_t ID = -359881479;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_toggleForum final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ bool enabled_;
+
+ channels_toggleForum(object_ptr<InputChannel> &&channel_, bool enabled_);
+
+ static const std::int32_t ID = -1540781271;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_toggleJoinRequest final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ bool enabled_;
+
+ channels_toggleJoinRequest(object_ptr<InputChannel> &&channel_, bool enabled_);
+
+ static const std::int32_t ID = 1277789622;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_toggleJoinToSend final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ bool enabled_;
+
+ channels_toggleJoinToSend(object_ptr<InputChannel> &&channel_, bool enabled_);
+
+ static const std::int32_t ID = -456419968;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_togglePreHistoryHidden final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ bool enabled_;
+
+ channels_togglePreHistoryHidden(object_ptr<InputChannel> &&channel_, bool enabled_);
+
+ static const std::int32_t ID = -356796084;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_toggleSignatures final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ bool enabled_;
+
+ channels_toggleSignatures(object_ptr<InputChannel> &&channel_, bool enabled_);
+
+ static const std::int32_t ID = 527021574;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_toggleSlowMode final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ int32 seconds_;
+
+ channels_toggleSlowMode(object_ptr<InputChannel> &&channel_, int32 seconds_);
+
+ static const std::int32_t ID = -304832784;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_toggleUsername final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ string username_;
+ bool active_;
+
+ channels_toggleUsername(object_ptr<InputChannel> &&channel_, string const &username_, bool active_);
+
+ static const std::int32_t ID = 1358053637;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_updatePinnedForumTopic final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ int32 topic_id_;
+ bool pinned_;
+
+ channels_updatePinnedForumTopic(object_ptr<InputChannel> &&channel_, int32 topic_id_, bool pinned_);
+
+ static const std::int32_t ID = 1814925350;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_updateUsername final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ string username_;
+
+ channels_updateUsername(object_ptr<InputChannel> &&channel_, string const &username_);
+
+ static const std::int32_t ID = 890549214;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class channels_viewSponsoredMessage final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ bytes random_id_;
+
+ channels_viewSponsoredMessage(object_ptr<InputChannel> &&channel_, bytes &&random_id_);
+
+ static const std::int32_t ID = -1095836780;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_acceptContact final : public Function {
+ public:
+ object_ptr<InputUser> id_;
+
+ explicit contacts_acceptContact(object_ptr<InputUser> &&id_);
+
+ static const std::int32_t ID = -130964977;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_addContact final : public Function {
+ public:
+ int32 flags_;
+ bool add_phone_privacy_exception_;
+ object_ptr<InputUser> id_;
+ string first_name_;
+ string last_name_;
+ string phone_;
+ enum Flags : std::int32_t { ADD_PHONE_PRIVACY_EXCEPTION_MASK = 1 };
+ mutable int32 var0;
+
+ contacts_addContact(int32 flags_, bool add_phone_privacy_exception_, object_ptr<InputUser> &&id_, string const &first_name_, string const &last_name_, string const &phone_);
+
+ static const std::int32_t ID = -386636848;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_block final : public Function {
+ public:
+ object_ptr<InputPeer> id_;
+
+ explicit contacts_block(object_ptr<InputPeer> &&id_);
+
+ static const std::int32_t ID = 1758204945;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_blockFromReplies final : public Function {
+ public:
+ int32 flags_;
+ bool delete_message_;
+ bool delete_history_;
+ bool report_spam_;
+ int32 msg_id_;
+ enum Flags : std::int32_t { DELETE_MESSAGE_MASK = 1, DELETE_HISTORY_MASK = 2, REPORT_SPAM_MASK = 4 };
+ mutable int32 var0;
+
+ contacts_blockFromReplies(int32 flags_, bool delete_message_, bool delete_history_, bool report_spam_, int32 msg_id_);
+
+ static const std::int32_t ID = 698914348;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_deleteByPhones final : public Function {
+ public:
+ array<string> phones_;
+
+ explicit contacts_deleteByPhones(array<string> &&phones_);
+
+ static const std::int32_t ID = 269745566;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_deleteContacts final : public Function {
+ public:
+ array<object_ptr<InputUser>> id_;
+
+ explicit contacts_deleteContacts(array<object_ptr<InputUser>> &&id_);
+
+ static const std::int32_t ID = 157945344;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_getBlocked final : public Function {
+ public:
+ int32 offset_;
+ int32 limit_;
+
+ contacts_getBlocked(int32 offset_, int32 limit_);
+
+ static const std::int32_t ID = -176409329;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<contacts_Blocked>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_getContactIDs final : public Function {
+ public:
+ int64 hash_;
+
+ explicit contacts_getContactIDs(int64 hash_);
+
+ static const std::int32_t ID = 2061264541;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<int32>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_getContacts final : public Function {
+ public:
+ int64 hash_;
+
+ explicit contacts_getContacts(int64 hash_);
+
+ static const std::int32_t ID = 1574346258;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<contacts_Contacts>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_getLocated final : public Function {
+ public:
+ int32 flags_;
+ bool background_;
+ object_ptr<InputGeoPoint> geo_point_;
+ int32 self_expires_;
+ enum Flags : std::int32_t { BACKGROUND_MASK = 2, SELF_EXPIRES_MASK = 1 };
+ mutable int32 var0;
+
+ contacts_getLocated(int32 flags_, bool background_, object_ptr<InputGeoPoint> &&geo_point_, int32 self_expires_);
+
+ static const std::int32_t ID = -750207932;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_getSaved final : public Function {
+ public:
+
+ static const std::int32_t ID = -2098076769;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<savedPhoneContact>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_getStatuses final : public Function {
+ public:
+
+ static const std::int32_t ID = -995929106;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<contactStatus>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_getTopPeers final : public Function {
+ public:
+ int32 flags_;
+ bool correspondents_;
+ bool bots_pm_;
+ bool bots_inline_;
+ bool phone_calls_;
+ bool forward_users_;
+ bool forward_chats_;
+ bool groups_;
+ bool channels_;
+ int32 offset_;
+ int32 limit_;
+ int64 hash_;
+ enum Flags : std::int32_t { CORRESPONDENTS_MASK = 1, BOTS_PM_MASK = 2, BOTS_INLINE_MASK = 4, PHONE_CALLS_MASK = 8, FORWARD_USERS_MASK = 16, FORWARD_CHATS_MASK = 32, GROUPS_MASK = 1024, CHANNELS_MASK = 32768 };
+ mutable int32 var0;
+
+ contacts_getTopPeers(int32 flags_, bool correspondents_, bool bots_pm_, bool bots_inline_, bool phone_calls_, bool forward_users_, bool forward_chats_, bool groups_, bool channels_, int32 offset_, int32 limit_, int64 hash_);
+
+ static const std::int32_t ID = -1758168906;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<contacts_TopPeers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_importContacts final : public Function {
+ public:
+ array<object_ptr<inputPhoneContact>> contacts_;
+
+ explicit contacts_importContacts(array<object_ptr<inputPhoneContact>> &&contacts_);
+
+ static const std::int32_t ID = 746589157;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<contacts_importedContacts>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_resetSaved final : public Function {
+ public:
+
+ static const std::int32_t ID = -2020263951;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_resetTopPeerRating final : public Function {
+ public:
+ object_ptr<TopPeerCategory> category_;
+ object_ptr<InputPeer> peer_;
+
+ contacts_resetTopPeerRating(object_ptr<TopPeerCategory> &&category_, object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = 451113900;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_resolvePhone final : public Function {
+ public:
+ string phone_;
+
+ explicit contacts_resolvePhone(string const &phone_);
+
+ static const std::int32_t ID = -1963375804;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<contacts_resolvedPeer>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_resolveUsername final : public Function {
+ public:
+ string username_;
+
+ explicit contacts_resolveUsername(string const &username_);
+
+ static const std::int32_t ID = -113456221;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<contacts_resolvedPeer>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_search final : public Function {
+ public:
+ string q_;
+ int32 limit_;
+
+ contacts_search(string const &q_, int32 limit_);
+
+ static const std::int32_t ID = 301470424;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<contacts_found>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_toggleTopPeers final : public Function {
+ public:
+ bool enabled_;
+
+ explicit contacts_toggleTopPeers(bool enabled_);
+
+ static const std::int32_t ID = -2062238246;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class contacts_unblock final : public Function {
+ public:
+ object_ptr<InputPeer> id_;
+
+ explicit contacts_unblock(object_ptr<InputPeer> &&id_);
+
+ static const std::int32_t ID = -1096393392;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class folders_deleteFolder final : public Function {
+ public:
+ int32 folder_id_;
+
+ explicit folders_deleteFolder(int32 folder_id_);
+
+ static const std::int32_t ID = 472471681;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class folders_editPeerFolders final : public Function {
+ public:
+ array<object_ptr<inputFolderPeer>> folder_peers_;
+
+ explicit folders_editPeerFolders(array<object_ptr<inputFolderPeer>> &&folder_peers_);
+
+ static const std::int32_t ID = 1749536939;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_acceptTermsOfService final : public Function {
+ public:
+ object_ptr<dataJSON> id_;
+
+ explicit help_acceptTermsOfService(object_ptr<dataJSON> &&id_);
+
+ static const std::int32_t ID = -294455398;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_dismissSuggestion final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ string suggestion_;
+
+ help_dismissSuggestion(object_ptr<InputPeer> &&peer_, string const &suggestion_);
+
+ static const std::int32_t ID = -183649631;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_editUserInfo final : public Function {
+ public:
+ object_ptr<InputUser> user_id_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+
+ help_editUserInfo(object_ptr<InputUser> &&user_id_, string const &message_, array<object_ptr<MessageEntity>> &&entities_);
+
+ static const std::int32_t ID = 1723407216;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_UserInfo>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getAppChangelog final : public Function {
+ public:
+ string prev_app_version_;
+
+ explicit help_getAppChangelog(string const &prev_app_version_);
+
+ static const std::int32_t ID = -1877938321;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getAppConfig final : public Function {
+ public:
+
+ static const std::int32_t ID = -1735311088;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<JSONValue>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getAppUpdate final : public Function {
+ public:
+ string source_;
+
+ explicit help_getAppUpdate(string const &source_);
+
+ static const std::int32_t ID = 1378703997;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_AppUpdate>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getCdnConfig final : public Function {
+ public:
+
+ static const std::int32_t ID = 1375900482;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<cdnConfig>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getConfig final : public Function {
+ public:
+
+ static const std::int32_t ID = -990308245;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<config>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getCountriesList final : public Function {
+ public:
+ string lang_code_;
+ int32 hash_;
+
+ help_getCountriesList(string const &lang_code_, int32 hash_);
+
+ static const std::int32_t ID = 1935116200;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_CountriesList>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getDeepLinkInfo final : public Function {
+ public:
+ string path_;
+
+ explicit help_getDeepLinkInfo(string const &path_);
+
+ static const std::int32_t ID = 1072547679;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_DeepLinkInfo>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getInviteText final : public Function {
+ public:
+
+ static const std::int32_t ID = 1295590211;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_inviteText>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getNearestDc final : public Function {
+ public:
+
+ static const std::int32_t ID = 531836966;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<nearestDc>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getPassportConfig final : public Function {
+ public:
+ int32 hash_;
+
+ explicit help_getPassportConfig(int32 hash_);
+
+ static const std::int32_t ID = -966677240;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_PassportConfig>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getPremiumPromo final : public Function {
+ public:
+
+ static const std::int32_t ID = -1206152236;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_premiumPromo>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getPromoData final : public Function {
+ public:
+
+ static const std::int32_t ID = -1063816159;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_PromoData>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getRecentMeUrls final : public Function {
+ public:
+ string referer_;
+
+ explicit help_getRecentMeUrls(string const &referer_);
+
+ static const std::int32_t ID = 1036054804;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_recentMeUrls>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getSupport final : public Function {
+ public:
+
+ static const std::int32_t ID = -1663104819;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_support>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getSupportName final : public Function {
+ public:
+
+ static const std::int32_t ID = -748624084;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_supportName>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getTermsOfServiceUpdate final : public Function {
+ public:
+
+ static const std::int32_t ID = 749019089;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_TermsOfServiceUpdate>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_getUserInfo final : public Function {
+ public:
+ object_ptr<InputUser> user_id_;
+
+ explicit help_getUserInfo(object_ptr<InputUser> &&user_id_);
+
+ static const std::int32_t ID = 59377875;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_UserInfo>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_hidePromoData final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit help_hidePromoData(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = 505748629;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_saveAppLog final : public Function {
+ public:
+ array<object_ptr<inputAppEvent>> events_;
+
+ explicit help_saveAppLog(array<object_ptr<inputAppEvent>> &&events_);
+
+ static const std::int32_t ID = 1862465352;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class help_setBotUpdatesStatus final : public Function {
+ public:
+ int32 pending_updates_count_;
+ string message_;
+
+ help_setBotUpdatesStatus(int32 pending_updates_count_, string const &message_);
+
+ static const std::int32_t ID = -333262899;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class langpack_getDifference final : public Function {
+ public:
+ string lang_pack_;
+ string lang_code_;
+ int32 from_version_;
+
+ langpack_getDifference(string const &lang_pack_, string const &lang_code_, int32 from_version_);
+
+ static const std::int32_t ID = -845657435;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<langPackDifference>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class langpack_getLangPack final : public Function {
+ public:
+ string lang_pack_;
+ string lang_code_;
+
+ langpack_getLangPack(string const &lang_pack_, string const &lang_code_);
+
+ static const std::int32_t ID = -219008246;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<langPackDifference>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class langpack_getLanguage final : public Function {
+ public:
+ string lang_pack_;
+ string lang_code_;
+
+ langpack_getLanguage(string const &lang_pack_, string const &lang_code_);
+
+ static const std::int32_t ID = 1784243458;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<langPackLanguage>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class langpack_getLanguages final : public Function {
+ public:
+ string lang_pack_;
+
+ explicit langpack_getLanguages(string const &lang_pack_);
+
+ static const std::int32_t ID = 1120311183;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<langPackLanguage>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class langpack_getStrings final : public Function {
+ public:
+ string lang_pack_;
+ string lang_code_;
+ array<string> keys_;
+
+ langpack_getStrings(string const &lang_pack_, string const &lang_code_, array<string> &&keys_);
+
+ static const std::int32_t ID = -269862909;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<LangPackString>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_acceptEncryption final : public Function {
+ public:
+ object_ptr<inputEncryptedChat> peer_;
+ bytes g_b_;
+ int64 key_fingerprint_;
+
+ messages_acceptEncryption(object_ptr<inputEncryptedChat> &&peer_, bytes &&g_b_, int64 key_fingerprint_);
+
+ static const std::int32_t ID = 1035731989;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<EncryptedChat>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_acceptUrlAuth final : public Function {
+ public:
+ int32 flags_;
+ bool write_allowed_;
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ int32 button_id_;
+ string url_;
+ enum Flags : std::int32_t { WRITE_ALLOWED_MASK = 1, PEER_MASK = 2, MSG_ID_MASK = 2, BUTTON_ID_MASK = 2, URL_MASK = 4 };
+ mutable int32 var0;
+
+ messages_acceptUrlAuth(int32 flags_, bool write_allowed_, object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 button_id_, string const &url_);
+
+ static const std::int32_t ID = -1322487515;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<UrlAuthResult>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_addChatUser final : public Function {
+ public:
+ int64 chat_id_;
+ object_ptr<InputUser> user_id_;
+ int32 fwd_limit_;
+
+ messages_addChatUser(int64 chat_id_, object_ptr<InputUser> &&user_id_, int32 fwd_limit_);
+
+ static const std::int32_t ID = -230206493;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_checkChatInvite final : public Function {
+ public:
+ string hash_;
+
+ explicit messages_checkChatInvite(string const &hash_);
+
+ static const std::int32_t ID = 1051570619;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ChatInvite>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_checkHistoryImport final : public Function {
+ public:
+ string import_head_;
+
+ explicit messages_checkHistoryImport(string const &import_head_);
+
+ static const std::int32_t ID = 1140726259;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_historyImportParsed>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_checkHistoryImportPeer final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit messages_checkHistoryImportPeer(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = 1573261059;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_checkedHistoryImportPeer>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_clearAllDrafts final : public Function {
+ public:
+
+ static const std::int32_t ID = 2119757468;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_clearRecentReactions final : public Function {
+ public:
+
+ static const std::int32_t ID = -1644236876;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_clearRecentStickers final : public Function {
+ public:
+ int32 flags_;
+ bool attached_;
+ enum Flags : std::int32_t { ATTACHED_MASK = 1 };
+ mutable int32 var0;
+
+ messages_clearRecentStickers(int32 flags_, bool attached_);
+
+ static const std::int32_t ID = -1986437075;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_createChat final : public Function {
+ public:
+ array<object_ptr<InputUser>> users_;
+ string title_;
+
+ messages_createChat(array<object_ptr<InputUser>> &&users_, string const &title_);
+
+ static const std::int32_t ID = 164303470;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_deleteChat final : public Function {
+ public:
+ int64 chat_id_;
+
+ explicit messages_deleteChat(int64 chat_id_);
+
+ static const std::int32_t ID = 1540419152;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_deleteChatUser final : public Function {
+ public:
+ int32 flags_;
+ bool revoke_history_;
+ int64 chat_id_;
+ object_ptr<InputUser> user_id_;
+ enum Flags : std::int32_t { REVOKE_HISTORY_MASK = 1 };
+ mutable int32 var0;
+
+ messages_deleteChatUser(int32 flags_, bool revoke_history_, int64 chat_id_, object_ptr<InputUser> &&user_id_);
+
+ static const std::int32_t ID = -1575461717;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_deleteExportedChatInvite final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ string link_;
+
+ messages_deleteExportedChatInvite(object_ptr<InputPeer> &&peer_, string const &link_);
+
+ static const std::int32_t ID = -731601877;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_deleteHistory final : public Function {
+ public:
+ int32 flags_;
+ bool just_clear_;
+ bool revoke_;
+ object_ptr<InputPeer> peer_;
+ int32 max_id_;
+ int32 min_date_;
+ int32 max_date_;
+ enum Flags : std::int32_t { JUST_CLEAR_MASK = 1, REVOKE_MASK = 2, MIN_DATE_MASK = 4, MAX_DATE_MASK = 8 };
+ mutable int32 var0;
+
+ messages_deleteHistory(int32 flags_, bool just_clear_, bool revoke_, object_ptr<InputPeer> &&peer_, int32 max_id_, int32 min_date_, int32 max_date_);
+
+ static const std::int32_t ID = -1332768214;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedHistory>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_deleteMessages final : public Function {
+ public:
+ int32 flags_;
+ bool revoke_;
+ array<int32> id_;
+ enum Flags : std::int32_t { REVOKE_MASK = 1 };
+ mutable int32 var0;
+
+ messages_deleteMessages(int32 flags_, bool revoke_, array<int32> &&id_);
+
+ static const std::int32_t ID = -443640366;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedMessages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_deletePhoneCallHistory final : public Function {
+ public:
+ int32 flags_;
+ bool revoke_;
+ enum Flags : std::int32_t { REVOKE_MASK = 1 };
+ mutable int32 var0;
+
+ messages_deletePhoneCallHistory(int32 flags_, bool revoke_);
+
+ static const std::int32_t ID = -104078327;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedFoundMessages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_deleteRevokedExportedChatInvites final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputUser> admin_id_;
+
+ messages_deleteRevokedExportedChatInvites(object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&admin_id_);
+
+ static const std::int32_t ID = 1452833749;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_deleteScheduledMessages final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ array<int32> id_;
+
+ messages_deleteScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_);
+
+ static const std::int32_t ID = 1504586518;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_discardEncryption final : public Function {
+ public:
+ int32 flags_;
+ bool delete_history_;
+ int32 chat_id_;
+ enum Flags : std::int32_t { DELETE_HISTORY_MASK = 1 };
+ mutable int32 var0;
+
+ messages_discardEncryption(int32 flags_, bool delete_history_, int32 chat_id_);
+
+ static const std::int32_t ID = -208425312;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_editChatAbout final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ string about_;
+
+ messages_editChatAbout(object_ptr<InputPeer> &&peer_, string const &about_);
+
+ static const std::int32_t ID = -554301545;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_editChatAdmin final : public Function {
+ public:
+ int64 chat_id_;
+ object_ptr<InputUser> user_id_;
+ bool is_admin_;
+
+ messages_editChatAdmin(int64 chat_id_, object_ptr<InputUser> &&user_id_, bool is_admin_);
+
+ static const std::int32_t ID = -1470377534;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_editChatDefaultBannedRights final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<chatBannedRights> banned_rights_;
+
+ messages_editChatDefaultBannedRights(object_ptr<InputPeer> &&peer_, object_ptr<chatBannedRights> &&banned_rights_);
+
+ static const std::int32_t ID = -1517917375;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_editChatPhoto final : public Function {
+ public:
+ int64 chat_id_;
+ object_ptr<InputChatPhoto> photo_;
+
+ messages_editChatPhoto(int64 chat_id_, object_ptr<InputChatPhoto> &&photo_);
+
+ static const std::int32_t ID = 903730804;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_editChatTitle final : public Function {
+ public:
+ int64 chat_id_;
+ string title_;
+
+ messages_editChatTitle(int64 chat_id_, string const &title_);
+
+ static const std::int32_t ID = 1937260541;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_editExportedChatInvite final : public Function {
+ public:
+ int32 flags_;
+ bool revoked_;
+ object_ptr<InputPeer> peer_;
+ string link_;
+ int32 expire_date_;
+ int32 usage_limit_;
+ bool request_needed_;
+ string title_;
+ enum Flags : std::int32_t { REVOKED_MASK = 4, EXPIRE_DATE_MASK = 1, USAGE_LIMIT_MASK = 2, REQUEST_NEEDED_MASK = 8, TITLE_MASK = 16 };
+ mutable int32 var0;
+
+ messages_editExportedChatInvite(int32 flags_, bool revoked_, object_ptr<InputPeer> &&peer_, string const &link_, int32 expire_date_, int32 usage_limit_, bool request_needed_, string const &title_);
+
+ static const std::int32_t ID = -1110823051;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_ExportedChatInvite>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_editInlineBotMessage final : public Function {
+ public:
+ int32 flags_;
+ bool no_webpage_;
+ object_ptr<InputBotInlineMessageID> id_;
+ string message_;
+ object_ptr<InputMedia> media_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ array<object_ptr<MessageEntity>> entities_;
+ enum Flags : std::int32_t { NO_WEBPAGE_MASK = 2, MESSAGE_MASK = 2048, MEDIA_MASK = 16384, REPLY_MARKUP_MASK = 4, ENTITIES_MASK = 8 };
+ mutable int32 var0;
+
+ messages_editInlineBotMessage(int32 flags_, bool no_webpage_, object_ptr<InputBotInlineMessageID> &&id_, string const &message_, object_ptr<InputMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_);
+
+ static const std::int32_t ID = -2091549254;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_editMessage final : public Function {
+ public:
+ int32 flags_;
+ bool no_webpage_;
+ object_ptr<InputPeer> peer_;
+ int32 id_;
+ string message_;
+ object_ptr<InputMedia> media_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ array<object_ptr<MessageEntity>> entities_;
+ int32 schedule_date_;
+ enum Flags : std::int32_t { NO_WEBPAGE_MASK = 2, MESSAGE_MASK = 2048, MEDIA_MASK = 16384, REPLY_MARKUP_MASK = 4, ENTITIES_MASK = 8, SCHEDULE_DATE_MASK = 32768 };
+ mutable int32 var0;
+
+ messages_editMessage(int32 flags_, bool no_webpage_, object_ptr<InputPeer> &&peer_, int32 id_, string const &message_, object_ptr<InputMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_);
+
+ static const std::int32_t ID = 1224152952;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_exportChatInvite final : public Function {
+ public:
+ int32 flags_;
+ bool legacy_revoke_permanent_;
+ bool request_needed_;
+ object_ptr<InputPeer> peer_;
+ int32 expire_date_;
+ int32 usage_limit_;
+ string title_;
+ enum Flags : std::int32_t { LEGACY_REVOKE_PERMANENT_MASK = 4, REQUEST_NEEDED_MASK = 8, EXPIRE_DATE_MASK = 1, USAGE_LIMIT_MASK = 2, TITLE_MASK = 16 };
+ mutable int32 var0;
+
+ messages_exportChatInvite(int32 flags_, bool legacy_revoke_permanent_, bool request_needed_, object_ptr<InputPeer> &&peer_, int32 expire_date_, int32 usage_limit_, string const &title_);
+
+ static const std::int32_t ID = -1607670315;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<ExportedChatInvite>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_faveSticker final : public Function {
+ public:
+ object_ptr<InputDocument> id_;
+ bool unfave_;
+
+ messages_faveSticker(object_ptr<InputDocument> &&id_, bool unfave_);
+
+ static const std::int32_t ID = -1174420133;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_forwardMessages final : public Function {
+ public:
+ int32 flags_;
+ bool silent_;
+ bool background_;
+ bool with_my_score_;
+ bool drop_author_;
+ bool drop_media_captions_;
+ bool noforwards_;
+ object_ptr<InputPeer> from_peer_;
+ array<int32> id_;
+ array<int64> random_id_;
+ object_ptr<InputPeer> to_peer_;
+ int32 top_msg_id_;
+ int32 schedule_date_;
+ object_ptr<InputPeer> send_as_;
+ enum Flags : std::int32_t { SILENT_MASK = 32, BACKGROUND_MASK = 64, WITH_MY_SCORE_MASK = 256, DROP_AUTHOR_MASK = 2048, DROP_MEDIA_CAPTIONS_MASK = 4096, NOFORWARDS_MASK = 16384, TOP_MSG_ID_MASK = 512, SCHEDULE_DATE_MASK = 1024, SEND_AS_MASK = 8192 };
+ mutable int32 var0;
+
+ messages_forwardMessages(int32 flags_, bool silent_, bool background_, bool with_my_score_, bool drop_author_, bool drop_media_captions_, bool noforwards_, object_ptr<InputPeer> &&from_peer_, array<int32> &&id_, array<int64> &&random_id_, object_ptr<InputPeer> &&to_peer_, int32 top_msg_id_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_);
+
+ static const std::int32_t ID = -966673468;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getAdminsWithInvites final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit messages_getAdminsWithInvites(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = 958457583;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_chatAdminsWithInvites>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getAllChats final : public Function {
+ public:
+ array<int64> except_ids_;
+
+ explicit messages_getAllChats(array<int64> &&except_ids_);
+
+ static const std::int32_t ID = -2023787330;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Chats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getAllDrafts final : public Function {
+ public:
+
+ static const std::int32_t ID = 1782549861;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getAllStickers final : public Function {
+ public:
+ int64 hash_;
+
+ explicit messages_getAllStickers(int64 hash_);
+
+ static const std::int32_t ID = -1197432408;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_AllStickers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getArchivedStickers final : public Function {
+ public:
+ int32 flags_;
+ bool masks_;
+ bool emojis_;
+ int64 offset_id_;
+ int32 limit_;
+ enum Flags : std::int32_t { MASKS_MASK = 1, EMOJIS_MASK = 2 };
+ mutable int32 var0;
+
+ messages_getArchivedStickers(int32 flags_, bool masks_, bool emojis_, int64 offset_id_, int32 limit_);
+
+ static const std::int32_t ID = 1475442322;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_archivedStickers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getAttachMenuBot final : public Function {
+ public:
+ object_ptr<InputUser> bot_;
+
+ explicit messages_getAttachMenuBot(object_ptr<InputUser> &&bot_);
+
+ static const std::int32_t ID = 1998676370;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<attachMenuBotsBot>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getAttachMenuBots final : public Function {
+ public:
+ int64 hash_;
+
+ explicit messages_getAttachMenuBots(int64 hash_);
+
+ static const std::int32_t ID = 385663691;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<AttachMenuBots>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getAttachedStickers final : public Function {
+ public:
+ object_ptr<InputStickeredMedia> media_;
+
+ explicit messages_getAttachedStickers(object_ptr<InputStickeredMedia> &&media_);
+
+ static const std::int32_t ID = -866424884;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<StickerSetCovered>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getAvailableReactions final : public Function {
+ public:
+ int32 hash_;
+
+ explicit messages_getAvailableReactions(int32 hash_);
+
+ static const std::int32_t ID = 417243308;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_AvailableReactions>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getBotCallbackAnswer final : public Function {
+ public:
+ int32 flags_;
+ bool game_;
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ bytes data_;
+ object_ptr<InputCheckPasswordSRP> password_;
+ enum Flags : std::int32_t { GAME_MASK = 2, DATA_MASK = 1, PASSWORD_MASK = 4 };
+ mutable int32 var0;
+
+ messages_getBotCallbackAnswer(int32 flags_, bool game_, object_ptr<InputPeer> &&peer_, int32 msg_id_, bytes &&data_, object_ptr<InputCheckPasswordSRP> &&password_);
+
+ static const std::int32_t ID = -1824339449;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_botCallbackAnswer>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getChatInviteImporters final : public Function {
+ public:
+ int32 flags_;
+ bool requested_;
+ object_ptr<InputPeer> peer_;
+ string link_;
+ string q_;
+ int32 offset_date_;
+ object_ptr<InputUser> offset_user_;
+ int32 limit_;
+ enum Flags : std::int32_t { REQUESTED_MASK = 1, LINK_MASK = 2, Q_MASK = 4 };
+ mutable int32 var0;
+
+ messages_getChatInviteImporters(int32 flags_, bool requested_, object_ptr<InputPeer> &&peer_, string const &link_, string const &q_, int32 offset_date_, object_ptr<InputUser> &&offset_user_, int32 limit_);
+
+ static const std::int32_t ID = -553329330;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_chatInviteImporters>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getChats final : public Function {
+ public:
+ array<int64> id_;
+
+ explicit messages_getChats(array<int64> &&id_);
+
+ static const std::int32_t ID = 1240027791;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Chats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getCommonChats final : public Function {
+ public:
+ object_ptr<InputUser> user_id_;
+ int64 max_id_;
+ int32 limit_;
+
+ messages_getCommonChats(object_ptr<InputUser> &&user_id_, int64 max_id_, int32 limit_);
+
+ static const std::int32_t ID = -468934396;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Chats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getCustomEmojiDocuments final : public Function {
+ public:
+ array<int64> document_id_;
+
+ explicit messages_getCustomEmojiDocuments(array<int64> &&document_id_);
+
+ static const std::int32_t ID = -643100844;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<Document>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getDhConfig final : public Function {
+ public:
+ int32 version_;
+ int32 random_length_;
+
+ messages_getDhConfig(int32 version_, int32 random_length_);
+
+ static const std::int32_t ID = 651135312;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_DhConfig>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getDialogFilters final : public Function {
+ public:
+
+ static const std::int32_t ID = -241247891;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<DialogFilter>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getDialogUnreadMarks final : public Function {
+ public:
+
+ static const std::int32_t ID = 585256482;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<DialogPeer>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getDialogs final : public Function {
+ public:
+ int32 flags_;
+ bool exclude_pinned_;
+ int32 folder_id_;
+ int32 offset_date_;
+ int32 offset_id_;
+ object_ptr<InputPeer> offset_peer_;
+ int32 limit_;
+ int64 hash_;
+ enum Flags : std::int32_t { EXCLUDE_PINNED_MASK = 1, FOLDER_ID_MASK = 2 };
+ mutable int32 var0;
+
+ messages_getDialogs(int32 flags_, bool exclude_pinned_, int32 folder_id_, int32 offset_date_, int32 offset_id_, object_ptr<InputPeer> &&offset_peer_, int32 limit_, int64 hash_);
+
+ static const std::int32_t ID = -1594569905;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Dialogs>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getDiscussionMessage final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+
+ messages_getDiscussionMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_);
+
+ static const std::int32_t ID = 1147761405;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_discussionMessage>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getDocumentByHash final : public Function {
+ public:
+ bytes sha256_;
+ int64 size_;
+ string mime_type_;
+
+ messages_getDocumentByHash(bytes &&sha256_, int64 size_, string const &mime_type_);
+
+ static const std::int32_t ID = -1309538785;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Document>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getEmojiKeywords final : public Function {
+ public:
+ string lang_code_;
+
+ explicit messages_getEmojiKeywords(string const &lang_code_);
+
+ static const std::int32_t ID = 899735650;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emojiKeywordsDifference>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getEmojiKeywordsDifference final : public Function {
+ public:
+ string lang_code_;
+ int32 from_version_;
+
+ messages_getEmojiKeywordsDifference(string const &lang_code_, int32 from_version_);
+
+ static const std::int32_t ID = 352892591;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emojiKeywordsDifference>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getEmojiKeywordsLanguages final : public Function {
+ public:
+ array<string> lang_codes_;
+
+ explicit messages_getEmojiKeywordsLanguages(array<string> &&lang_codes_);
+
+ static const std::int32_t ID = 1318675378;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<emojiLanguage>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getEmojiStickers final : public Function {
+ public:
+ int64 hash_;
+
+ explicit messages_getEmojiStickers(int64 hash_);
+
+ static const std::int32_t ID = -67329649;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_AllStickers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getEmojiURL final : public Function {
+ public:
+ string lang_code_;
+
+ explicit messages_getEmojiURL(string const &lang_code_);
+
+ static const std::int32_t ID = -709817306;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<emojiURL>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getExportedChatInvite final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ string link_;
+
+ messages_getExportedChatInvite(object_ptr<InputPeer> &&peer_, string const &link_);
+
+ static const std::int32_t ID = 1937010524;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_ExportedChatInvite>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getExportedChatInvites final : public Function {
+ public:
+ int32 flags_;
+ bool revoked_;
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputUser> admin_id_;
+ int32 offset_date_;
+ string offset_link_;
+ int32 limit_;
+ enum Flags : std::int32_t { REVOKED_MASK = 8, OFFSET_DATE_MASK = 4, OFFSET_LINK_MASK = 4 };
+ mutable int32 var0;
+
+ messages_getExportedChatInvites(int32 flags_, bool revoked_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&admin_id_, int32 offset_date_, string const &offset_link_, int32 limit_);
+
+ static const std::int32_t ID = -1565154314;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_exportedChatInvites>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getExtendedMedia final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ array<int32> id_;
+
+ messages_getExtendedMedia(object_ptr<InputPeer> &&peer_, array<int32> &&id_);
+
+ static const std::int32_t ID = -2064119788;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getFavedStickers final : public Function {
+ public:
+ int64 hash_;
+
+ explicit messages_getFavedStickers(int64 hash_);
+
+ static const std::int32_t ID = 82946729;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_FavedStickers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getFeaturedEmojiStickers final : public Function {
+ public:
+ int64 hash_;
+
+ explicit messages_getFeaturedEmojiStickers(int64 hash_);
+
+ static const std::int32_t ID = 248473398;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_FeaturedStickers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getFeaturedStickers final : public Function {
+ public:
+ int64 hash_;
+
+ explicit messages_getFeaturedStickers(int64 hash_);
+
+ static const std::int32_t ID = 1685588756;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_FeaturedStickers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getFullChat final : public Function {
+ public:
+ int64 chat_id_;
+
+ explicit messages_getFullChat(int64 chat_id_);
+
+ static const std::int32_t ID = -1364194508;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_chatFull>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getGameHighScores final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 id_;
+ object_ptr<InputUser> user_id_;
+
+ messages_getGameHighScores(object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputUser> &&user_id_);
+
+ static const std::int32_t ID = -400399203;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_highScores>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getHistory final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 offset_id_;
+ int32 offset_date_;
+ int32 add_offset_;
+ int32 limit_;
+ int32 max_id_;
+ int32 min_id_;
+ int64 hash_;
+
+ messages_getHistory(object_ptr<InputPeer> &&peer_, int32 offset_id_, int32 offset_date_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_);
+
+ static const std::int32_t ID = 1143203525;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getInlineBotResults final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputUser> bot_;
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputGeoPoint> geo_point_;
+ string query_;
+ string offset_;
+ enum Flags : std::int32_t { GEO_POINT_MASK = 1 };
+ mutable int32 var0;
+
+ messages_getInlineBotResults(int32 flags_, object_ptr<InputUser> &&bot_, object_ptr<InputPeer> &&peer_, object_ptr<InputGeoPoint> &&geo_point_, string const &query_, string const &offset_);
+
+ static const std::int32_t ID = 1364105629;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_botResults>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getInlineGameHighScores final : public Function {
+ public:
+ object_ptr<InputBotInlineMessageID> id_;
+ object_ptr<InputUser> user_id_;
+
+ messages_getInlineGameHighScores(object_ptr<InputBotInlineMessageID> &&id_, object_ptr<InputUser> &&user_id_);
+
+ static const std::int32_t ID = 258170395;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_highScores>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getMaskStickers final : public Function {
+ public:
+ int64 hash_;
+
+ explicit messages_getMaskStickers(int64 hash_);
+
+ static const std::int32_t ID = 1678738104;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_AllStickers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getMessageEditData final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 id_;
+
+ messages_getMessageEditData(object_ptr<InputPeer> &&peer_, int32 id_);
+
+ static const std::int32_t ID = -39416522;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_messageEditData>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getMessageReactionsList final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 id_;
+ object_ptr<Reaction> reaction_;
+ string offset_;
+ int32 limit_;
+ enum Flags : std::int32_t { REACTION_MASK = 1, OFFSET_MASK = 2 };
+ mutable int32 var0;
+
+ messages_getMessageReactionsList(int32 flags_, object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<Reaction> &&reaction_, string const &offset_, int32 limit_);
+
+ static const std::int32_t ID = 1176190792;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_messageReactionsList>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getMessageReadParticipants final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+
+ messages_getMessageReadParticipants(object_ptr<InputPeer> &&peer_, int32 msg_id_);
+
+ static const std::int32_t ID = 745510839;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<int64>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getMessages final : public Function {
+ public:
+ array<object_ptr<InputMessage>> id_;
+
+ explicit messages_getMessages(array<object_ptr<InputMessage>> &&id_);
+
+ static const std::int32_t ID = 1673946374;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getMessagesReactions final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ array<int32> id_;
+
+ messages_getMessagesReactions(object_ptr<InputPeer> &&peer_, array<int32> &&id_);
+
+ static const std::int32_t ID = -1950707482;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getMessagesViews final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ array<int32> id_;
+ bool increment_;
+
+ messages_getMessagesViews(object_ptr<InputPeer> &&peer_, array<int32> &&id_, bool increment_);
+
+ static const std::int32_t ID = 1468322785;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_messageViews>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getOldFeaturedStickers final : public Function {
+ public:
+ int32 offset_;
+ int32 limit_;
+ int64 hash_;
+
+ messages_getOldFeaturedStickers(int32 offset_, int32 limit_, int64 hash_);
+
+ static const std::int32_t ID = 2127598753;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_FeaturedStickers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getOnlines final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit messages_getOnlines(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = 1848369232;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<chatOnlines>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getPeerDialogs final : public Function {
+ public:
+ array<object_ptr<InputDialogPeer>> peers_;
+
+ explicit messages_getPeerDialogs(array<object_ptr<InputDialogPeer>> &&peers_);
+
+ static const std::int32_t ID = -462373635;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_peerDialogs>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getPeerSettings final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit messages_getPeerSettings(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = -270948702;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_peerSettings>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getPinnedDialogs final : public Function {
+ public:
+ int32 folder_id_;
+
+ explicit messages_getPinnedDialogs(int32 folder_id_);
+
+ static const std::int32_t ID = -692498958;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_peerDialogs>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getPollResults final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+
+ messages_getPollResults(object_ptr<InputPeer> &&peer_, int32 msg_id_);
+
+ static const std::int32_t ID = 1941660731;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getPollVotes final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 id_;
+ bytes option_;
+ string offset_;
+ int32 limit_;
+ enum Flags : std::int32_t { OPTION_MASK = 1, OFFSET_MASK = 2 };
+ mutable int32 var0;
+
+ messages_getPollVotes(int32 flags_, object_ptr<InputPeer> &&peer_, int32 id_, bytes &&option_, string const &offset_, int32 limit_);
+
+ static const std::int32_t ID = -1200736242;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_votesList>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getRecentLocations final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 limit_;
+ int64 hash_;
+
+ messages_getRecentLocations(object_ptr<InputPeer> &&peer_, int32 limit_, int64 hash_);
+
+ static const std::int32_t ID = 1881817312;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getRecentReactions final : public Function {
+ public:
+ int32 limit_;
+ int64 hash_;
+
+ messages_getRecentReactions(int32 limit_, int64 hash_);
+
+ static const std::int32_t ID = 960896434;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Reactions>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getRecentStickers final : public Function {
+ public:
+ int32 flags_;
+ bool attached_;
+ int64 hash_;
+ enum Flags : std::int32_t { ATTACHED_MASK = 1 };
+ mutable int32 var0;
+
+ messages_getRecentStickers(int32 flags_, bool attached_, int64 hash_);
+
+ static const std::int32_t ID = -1649852357;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_RecentStickers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getReplies final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ int32 offset_id_;
+ int32 offset_date_;
+ int32 add_offset_;
+ int32 limit_;
+ int32 max_id_;
+ int32 min_id_;
+ int64 hash_;
+
+ messages_getReplies(object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 offset_id_, int32 offset_date_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_);
+
+ static const std::int32_t ID = 584962828;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getSavedGifs final : public Function {
+ public:
+ int64 hash_;
+
+ explicit messages_getSavedGifs(int64 hash_);
+
+ static const std::int32_t ID = 1559270965;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_SavedGifs>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getScheduledHistory final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int64 hash_;
+
+ messages_getScheduledHistory(object_ptr<InputPeer> &&peer_, int64 hash_);
+
+ static const std::int32_t ID = -183077365;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getScheduledMessages final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ array<int32> id_;
+
+ messages_getScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_);
+
+ static const std::int32_t ID = -1111817116;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getSearchCounters final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 top_msg_id_;
+ array<object_ptr<MessagesFilter>> filters_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+ mutable int32 var0;
+
+ messages_getSearchCounters(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, array<object_ptr<MessagesFilter>> &&filters_);
+
+ static const std::int32_t ID = 11435201;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<messages_searchCounter>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getSearchResultsCalendar final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<MessagesFilter> filter_;
+ int32 offset_id_;
+ int32 offset_date_;
+
+ messages_getSearchResultsCalendar(object_ptr<InputPeer> &&peer_, object_ptr<MessagesFilter> &&filter_, int32 offset_id_, int32 offset_date_);
+
+ static const std::int32_t ID = 1240514025;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_searchResultsCalendar>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getSearchResultsPositions final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<MessagesFilter> filter_;
+ int32 offset_id_;
+ int32 limit_;
+
+ messages_getSearchResultsPositions(object_ptr<InputPeer> &&peer_, object_ptr<MessagesFilter> &&filter_, int32 offset_id_, int32 limit_);
+
+ static const std::int32_t ID = 1855292323;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_searchResultsPositions>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getSplitRanges final : public Function {
+ public:
+
+ static const std::int32_t ID = 486505992;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<messageRange>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getStickerSet final : public Function {
+ public:
+ object_ptr<InputStickerSet> stickerset_;
+ int32 hash_;
+
+ messages_getStickerSet(object_ptr<InputStickerSet> &&stickerset_, int32 hash_);
+
+ static const std::int32_t ID = -928977804;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_StickerSet>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getStickers final : public Function {
+ public:
+ string emoticon_;
+ int64 hash_;
+
+ messages_getStickers(string const &emoticon_, int64 hash_);
+
+ static const std::int32_t ID = -710552671;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Stickers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getSuggestedDialogFilters final : public Function {
+ public:
+
+ static const std::int32_t ID = -1566780372;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<dialogFilterSuggested>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getTopReactions final : public Function {
+ public:
+ int32 limit_;
+ int64 hash_;
+
+ messages_getTopReactions(int32 limit_, int64 hash_);
+
+ static const std::int32_t ID = -1149164102;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Reactions>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getUnreadMentions final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 top_msg_id_;
+ int32 offset_id_;
+ int32 add_offset_;
+ int32 limit_;
+ int32 max_id_;
+ int32 min_id_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+ mutable int32 var0;
+
+ messages_getUnreadMentions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_);
+
+ static const std::int32_t ID = -251140208;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getUnreadReactions final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 top_msg_id_;
+ int32 offset_id_;
+ int32 add_offset_;
+ int32 limit_;
+ int32 max_id_;
+ int32 min_id_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+ mutable int32 var0;
+
+ messages_getUnreadReactions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_);
+
+ static const std::int32_t ID = 841173339;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getWebPage final : public Function {
+ public:
+ string url_;
+ int32 hash_;
+
+ messages_getWebPage(string const &url_, int32 hash_);
+
+ static const std::int32_t ID = 852135825;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<WebPage>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_getWebPagePreview final : public Function {
+ public:
+ int32 flags_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+ enum Flags : std::int32_t { ENTITIES_MASK = 8 };
+ mutable int32 var0;
+
+ messages_getWebPagePreview(int32 flags_, string const &message_, array<object_ptr<MessageEntity>> &&entities_);
+
+ static const std::int32_t ID = -1956073268;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<MessageMedia>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_hideAllChatJoinRequests final : public Function {
+ public:
+ int32 flags_;
+ bool approved_;
+ object_ptr<InputPeer> peer_;
+ string link_;
+ enum Flags : std::int32_t { APPROVED_MASK = 1, LINK_MASK = 2 };
+ mutable int32 var0;
+
+ messages_hideAllChatJoinRequests(int32 flags_, bool approved_, object_ptr<InputPeer> &&peer_, string const &link_);
+
+ static const std::int32_t ID = -528091926;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_hideChatJoinRequest final : public Function {
+ public:
+ int32 flags_;
+ bool approved_;
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputUser> user_id_;
+ enum Flags : std::int32_t { APPROVED_MASK = 1 };
+ mutable int32 var0;
+
+ messages_hideChatJoinRequest(int32 flags_, bool approved_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&user_id_);
+
+ static const std::int32_t ID = 2145904661;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_hidePeerSettingsBar final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit messages_hidePeerSettingsBar(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = 1336717624;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_importChatInvite final : public Function {
+ public:
+ string hash_;
+
+ explicit messages_importChatInvite(string const &hash_);
+
+ static const std::int32_t ID = 1817183516;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_initHistoryImport final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputFile> file_;
+ int32 media_count_;
+
+ messages_initHistoryImport(object_ptr<InputPeer> &&peer_, object_ptr<InputFile> &&file_, int32 media_count_);
+
+ static const std::int32_t ID = 873008187;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_historyImport>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_installStickerSet final : public Function {
+ public:
+ object_ptr<InputStickerSet> stickerset_;
+ bool archived_;
+
+ messages_installStickerSet(object_ptr<InputStickerSet> &&stickerset_, bool archived_);
+
+ static const std::int32_t ID = -946871200;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_StickerSetInstallResult>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_markDialogUnread final : public Function {
+ public:
+ int32 flags_;
+ bool unread_;
+ object_ptr<InputDialogPeer> peer_;
+ enum Flags : std::int32_t { UNREAD_MASK = 1 };
+ mutable int32 var0;
+
+ messages_markDialogUnread(int32 flags_, bool unread_, object_ptr<InputDialogPeer> &&peer_);
+
+ static const std::int32_t ID = -1031349873;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_migrateChat final : public Function {
+ public:
+ int64 chat_id_;
+
+ explicit messages_migrateChat(int64 chat_id_);
+
+ static const std::int32_t ID = -1568189671;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_prolongWebView final : public Function {
+ public:
+ int32 flags_;
+ bool silent_;
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputUser> bot_;
+ int64 query_id_;
+ int32 reply_to_msg_id_;
+ int32 top_msg_id_;
+ object_ptr<InputPeer> send_as_;
+ enum Flags : std::int32_t { SILENT_MASK = 32, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, SEND_AS_MASK = 8192 };
+ mutable int32 var0;
+
+ messages_prolongWebView(int32 flags_, bool silent_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&bot_, int64 query_id_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&send_as_);
+
+ static const std::int32_t ID = 2146648841;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_rateTranscribedAudio final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ int64 transcription_id_;
+ bool good_;
+
+ messages_rateTranscribedAudio(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 transcription_id_, bool good_);
+
+ static const std::int32_t ID = 2132608815;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_readDiscussion final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ int32 read_max_id_;
+
+ messages_readDiscussion(object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 read_max_id_);
+
+ static const std::int32_t ID = -147740172;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_readEncryptedHistory final : public Function {
+ public:
+ object_ptr<inputEncryptedChat> peer_;
+ int32 max_date_;
+
+ messages_readEncryptedHistory(object_ptr<inputEncryptedChat> &&peer_, int32 max_date_);
+
+ static const std::int32_t ID = 2135648522;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_readFeaturedStickers final : public Function {
+ public:
+ array<int64> id_;
+
+ explicit messages_readFeaturedStickers(array<int64> &&id_);
+
+ static const std::int32_t ID = 1527873830;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_readHistory final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 max_id_;
+
+ messages_readHistory(object_ptr<InputPeer> &&peer_, int32 max_id_);
+
+ static const std::int32_t ID = 238054714;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedMessages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_readMentions final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 top_msg_id_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+ mutable int32 var0;
+
+ messages_readMentions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_);
+
+ static const std::int32_t ID = 921026381;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedHistory>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_readMessageContents final : public Function {
+ public:
+ array<int32> id_;
+
+ explicit messages_readMessageContents(array<int32> &&id_);
+
+ static const std::int32_t ID = 916930423;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedMessages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_readReactions final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 top_msg_id_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+ mutable int32 var0;
+
+ messages_readReactions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_);
+
+ static const std::int32_t ID = 1420459918;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedHistory>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_receivedMessages final : public Function {
+ public:
+ int32 max_id_;
+
+ explicit messages_receivedMessages(int32 max_id_);
+
+ static const std::int32_t ID = 94983360;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<receivedNotifyMessage>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_receivedQueue final : public Function {
+ public:
+ int32 max_qts_;
+
+ explicit messages_receivedQueue(int32 max_qts_);
+
+ static const std::int32_t ID = 1436924774;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<int64>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_reorderPinnedDialogs final : public Function {
+ public:
+ int32 flags_;
+ bool force_;
+ int32 folder_id_;
+ array<object_ptr<InputDialogPeer>> order_;
+ enum Flags : std::int32_t { FORCE_MASK = 1 };
+ mutable int32 var0;
+
+ messages_reorderPinnedDialogs(int32 flags_, bool force_, int32 folder_id_, array<object_ptr<InputDialogPeer>> &&order_);
+
+ static const std::int32_t ID = 991616823;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_reorderStickerSets final : public Function {
+ public:
+ int32 flags_;
+ bool masks_;
+ bool emojis_;
+ array<int64> order_;
+ enum Flags : std::int32_t { MASKS_MASK = 1, EMOJIS_MASK = 2 };
+ mutable int32 var0;
+
+ messages_reorderStickerSets(int32 flags_, bool masks_, bool emojis_, array<int64> &&order_);
+
+ static const std::int32_t ID = 2016638777;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_report final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ array<int32> id_;
+ object_ptr<ReportReason> reason_;
+ string message_;
+
+ messages_report(object_ptr<InputPeer> &&peer_, array<int32> &&id_, object_ptr<ReportReason> &&reason_, string const &message_);
+
+ static const std::int32_t ID = -1991005362;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_reportEncryptedSpam final : public Function {
+ public:
+ object_ptr<inputEncryptedChat> peer_;
+
+ explicit messages_reportEncryptedSpam(object_ptr<inputEncryptedChat> &&peer_);
+
+ static const std::int32_t ID = 1259113487;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_reportReaction final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 id_;
+ object_ptr<InputPeer> reaction_peer_;
+
+ messages_reportReaction(object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputPeer> &&reaction_peer_);
+
+ static const std::int32_t ID = 1063567478;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_reportSpam final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit messages_reportSpam(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = -820669733;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_requestEncryption final : public Function {
+ public:
+ object_ptr<InputUser> user_id_;
+ int32 random_id_;
+ bytes g_a_;
+
+ messages_requestEncryption(object_ptr<InputUser> &&user_id_, int32 random_id_, bytes &&g_a_);
+
+ static const std::int32_t ID = -162681021;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<EncryptedChat>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_requestSimpleWebView final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputUser> bot_;
+ string url_;
+ object_ptr<dataJSON> theme_params_;
+ string platform_;
+ enum Flags : std::int32_t { THEME_PARAMS_MASK = 1 };
+ mutable int32 var0;
+
+ messages_requestSimpleWebView(int32 flags_, object_ptr<InputUser> &&bot_, string const &url_, object_ptr<dataJSON> &&theme_params_, string const &platform_);
+
+ static const std::int32_t ID = 698084494;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<simpleWebViewResultUrl>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_requestUrlAuth final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ int32 button_id_;
+ string url_;
+ enum Flags : std::int32_t { PEER_MASK = 2, MSG_ID_MASK = 2, BUTTON_ID_MASK = 2, URL_MASK = 4 };
+ mutable int32 var0;
+
+ messages_requestUrlAuth(int32 flags_, object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 button_id_, string const &url_);
+
+ static const std::int32_t ID = 428848198;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<UrlAuthResult>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_requestWebView final : public Function {
+ public:
+ int32 flags_;
+ bool from_bot_menu_;
+ bool silent_;
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputUser> bot_;
+ string url_;
+ string start_param_;
+ object_ptr<dataJSON> theme_params_;
+ string platform_;
+ int32 reply_to_msg_id_;
+ int32 top_msg_id_;
+ object_ptr<InputPeer> send_as_;
+ enum Flags : std::int32_t { FROM_BOT_MENU_MASK = 16, SILENT_MASK = 32, URL_MASK = 2, START_PARAM_MASK = 8, THEME_PARAMS_MASK = 4, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, SEND_AS_MASK = 8192 };
+ mutable int32 var0;
+
+ messages_requestWebView(int32 flags_, bool from_bot_menu_, bool silent_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&bot_, string const &url_, string const &start_param_, object_ptr<dataJSON> &&theme_params_, string const &platform_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&send_as_);
+
+ static const std::int32_t ID = 395003915;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<webViewResultUrl>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_saveDefaultSendAs final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputPeer> send_as_;
+
+ messages_saveDefaultSendAs(object_ptr<InputPeer> &&peer_, object_ptr<InputPeer> &&send_as_);
+
+ static const std::int32_t ID = -855777386;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_saveDraft final : public Function {
+ public:
+ int32 flags_;
+ bool no_webpage_;
+ int32 reply_to_msg_id_;
+ int32 top_msg_id_;
+ object_ptr<InputPeer> peer_;
+ string message_;
+ array<object_ptr<MessageEntity>> entities_;
+ enum Flags : std::int32_t { NO_WEBPAGE_MASK = 2, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 4, ENTITIES_MASK = 8 };
+ mutable int32 var0;
+
+ messages_saveDraft(int32 flags_, bool no_webpage_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&peer_, string const &message_, array<object_ptr<MessageEntity>> &&entities_);
+
+ static const std::int32_t ID = -1271718337;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_saveGif final : public Function {
+ public:
+ object_ptr<InputDocument> id_;
+ bool unsave_;
+
+ messages_saveGif(object_ptr<InputDocument> &&id_, bool unsave_);
+
+ static const std::int32_t ID = 846868683;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_saveRecentSticker final : public Function {
+ public:
+ int32 flags_;
+ bool attached_;
+ object_ptr<InputDocument> id_;
+ bool unsave_;
+ enum Flags : std::int32_t { ATTACHED_MASK = 1 };
+ mutable int32 var0;
+
+ messages_saveRecentSticker(int32 flags_, bool attached_, object_ptr<InputDocument> &&id_, bool unsave_);
+
+ static const std::int32_t ID = 958863608;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_search final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ string q_;
+ object_ptr<InputPeer> from_id_;
+ int32 top_msg_id_;
+ object_ptr<MessagesFilter> filter_;
+ int32 min_date_;
+ int32 max_date_;
+ int32 offset_id_;
+ int32 add_offset_;
+ int32 limit_;
+ int32 max_id_;
+ int32 min_id_;
+ int64 hash_;
+ enum Flags : std::int32_t { FROM_ID_MASK = 1, TOP_MSG_ID_MASK = 2 };
+ mutable int32 var0;
+
+ messages_search(int32 flags_, object_ptr<InputPeer> &&peer_, string const &q_, object_ptr<InputPeer> &&from_id_, int32 top_msg_id_, object_ptr<MessagesFilter> &&filter_, int32 min_date_, int32 max_date_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_);
+
+ static const std::int32_t ID = -1593989278;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_searchGlobal final : public Function {
+ public:
+ int32 flags_;
+ int32 folder_id_;
+ string q_;
+ object_ptr<MessagesFilter> filter_;
+ int32 min_date_;
+ int32 max_date_;
+ int32 offset_rate_;
+ object_ptr<InputPeer> offset_peer_;
+ int32 offset_id_;
+ int32 limit_;
+ enum Flags : std::int32_t { FOLDER_ID_MASK = 1 };
+ mutable int32 var0;
+
+ messages_searchGlobal(int32 flags_, int32 folder_id_, string const &q_, object_ptr<MessagesFilter> &&filter_, int32 min_date_, int32 max_date_, int32 offset_rate_, object_ptr<InputPeer> &&offset_peer_, int32 offset_id_, int32 limit_);
+
+ static const std::int32_t ID = 1271290010;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_searchSentMedia final : public Function {
+ public:
+ string q_;
+ object_ptr<MessagesFilter> filter_;
+ int32 limit_;
+
+ messages_searchSentMedia(string const &q_, object_ptr<MessagesFilter> &&filter_, int32 limit_);
+
+ static const std::int32_t ID = 276705696;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_searchStickerSets final : public Function {
+ public:
+ int32 flags_;
+ bool exclude_featured_;
+ string q_;
+ int64 hash_;
+ enum Flags : std::int32_t { EXCLUDE_FEATURED_MASK = 1 };
+ mutable int32 var0;
+
+ messages_searchStickerSets(int32 flags_, bool exclude_featured_, string const &q_, int64 hash_);
+
+ static const std::int32_t ID = 896555914;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_FoundStickerSets>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendEncrypted final : public Function {
+ public:
+ int32 flags_;
+ bool silent_;
+ object_ptr<inputEncryptedChat> peer_;
+ int64 random_id_;
+ bytes data_;
+ enum Flags : std::int32_t { SILENT_MASK = 1 };
+ mutable int32 var0;
+
+ messages_sendEncrypted(int32 flags_, bool silent_, object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_);
+
+ static const std::int32_t ID = 1157265941;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_SentEncryptedMessage>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendEncryptedFile final : public Function {
+ public:
+ int32 flags_;
+ bool silent_;
+ object_ptr<inputEncryptedChat> peer_;
+ int64 random_id_;
+ bytes data_;
+ object_ptr<InputEncryptedFile> file_;
+ enum Flags : std::int32_t { SILENT_MASK = 1 };
+ mutable int32 var0;
+
+ messages_sendEncryptedFile(int32 flags_, bool silent_, object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_, object_ptr<InputEncryptedFile> &&file_);
+
+ static const std::int32_t ID = 1431914525;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_SentEncryptedMessage>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendEncryptedService final : public Function {
+ public:
+ object_ptr<inputEncryptedChat> peer_;
+ int64 random_id_;
+ bytes data_;
+
+ messages_sendEncryptedService(object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_);
+
+ static const std::int32_t ID = 852769188;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_SentEncryptedMessage>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendInlineBotResult final : public Function {
+ public:
+ int32 flags_;
+ bool silent_;
+ bool background_;
+ bool clear_draft_;
+ bool hide_via_;
+ object_ptr<InputPeer> peer_;
+ int32 reply_to_msg_id_;
+ int32 top_msg_id_;
+ int64 random_id_;
+ int64 query_id_;
+ string id_;
+ int32 schedule_date_;
+ object_ptr<InputPeer> send_as_;
+ enum Flags : std::int32_t { SILENT_MASK = 32, BACKGROUND_MASK = 64, CLEAR_DRAFT_MASK = 128, HIDE_VIA_MASK = 2048, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, SCHEDULE_DATE_MASK = 1024, SEND_AS_MASK = 8192 };
+ mutable int32 var0;
+
+ messages_sendInlineBotResult(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool hide_via_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, int64 random_id_, int64 query_id_, string const &id_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_);
+
+ static const std::int32_t ID = -738468661;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendMedia final : public Function {
+ public:
+ int32 flags_;
+ bool silent_;
+ bool background_;
+ bool clear_draft_;
+ bool noforwards_;
+ bool update_stickersets_order_;
+ object_ptr<InputPeer> peer_;
+ int32 reply_to_msg_id_;
+ int32 top_msg_id_;
+ object_ptr<InputMedia> media_;
+ string message_;
+ int64 random_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ array<object_ptr<MessageEntity>> entities_;
+ int32 schedule_date_;
+ object_ptr<InputPeer> send_as_;
+ enum Flags : std::int32_t { SILENT_MASK = 32, BACKGROUND_MASK = 64, CLEAR_DRAFT_MASK = 128, NOFORWARDS_MASK = 16384, UPDATE_STICKERSETS_ORDER_MASK = 32768, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, REPLY_MARKUP_MASK = 4, ENTITIES_MASK = 8, SCHEDULE_DATE_MASK = 1024, SEND_AS_MASK = 8192 };
+ mutable int32 var0;
+
+ messages_sendMedia(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputMedia> &&media_, string const &message_, int64 random_id_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_);
+
+ static const std::int32_t ID = 1967638886;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendMessage final : public Function {
+ public:
+ int32 flags_;
+ bool no_webpage_;
+ bool silent_;
+ bool background_;
+ bool clear_draft_;
+ bool noforwards_;
+ bool update_stickersets_order_;
+ object_ptr<InputPeer> peer_;
+ int32 reply_to_msg_id_;
+ int32 top_msg_id_;
+ string message_;
+ int64 random_id_;
+ object_ptr<ReplyMarkup> reply_markup_;
+ array<object_ptr<MessageEntity>> entities_;
+ int32 schedule_date_;
+ object_ptr<InputPeer> send_as_;
+ enum Flags : std::int32_t { NO_WEBPAGE_MASK = 2, SILENT_MASK = 32, BACKGROUND_MASK = 64, CLEAR_DRAFT_MASK = 128, NOFORWARDS_MASK = 16384, UPDATE_STICKERSETS_ORDER_MASK = 32768, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, REPLY_MARKUP_MASK = 4, ENTITIES_MASK = 8, SCHEDULE_DATE_MASK = 1024, SEND_AS_MASK = 8192 };
+ mutable int32 var0;
+
+ messages_sendMessage(int32 flags_, bool no_webpage_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, string const &message_, int64 random_id_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_);
+
+ static const std::int32_t ID = 482476935;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendMultiMedia final : public Function {
+ public:
+ int32 flags_;
+ bool silent_;
+ bool background_;
+ bool clear_draft_;
+ bool noforwards_;
+ bool update_stickersets_order_;
+ object_ptr<InputPeer> peer_;
+ int32 reply_to_msg_id_;
+ int32 top_msg_id_;
+ array<object_ptr<inputSingleMedia>> multi_media_;
+ int32 schedule_date_;
+ object_ptr<InputPeer> send_as_;
+ enum Flags : std::int32_t { SILENT_MASK = 32, BACKGROUND_MASK = 64, CLEAR_DRAFT_MASK = 128, NOFORWARDS_MASK = 16384, UPDATE_STICKERSETS_ORDER_MASK = 32768, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, SCHEDULE_DATE_MASK = 1024, SEND_AS_MASK = 8192 };
+ mutable int32 var0;
+
+ messages_sendMultiMedia(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, array<object_ptr<inputSingleMedia>> &&multi_media_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_);
+
+ static const std::int32_t ID = -1225713124;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendReaction final : public Function {
+ public:
+ int32 flags_;
+ bool big_;
+ bool add_to_recent_;
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ array<object_ptr<Reaction>> reaction_;
+ enum Flags : std::int32_t { BIG_MASK = 2, ADD_TO_RECENT_MASK = 4, REACTION_MASK = 1 };
+ mutable int32 var0;
+
+ messages_sendReaction(int32 flags_, bool big_, bool add_to_recent_, object_ptr<InputPeer> &&peer_, int32 msg_id_, array<object_ptr<Reaction>> &&reaction_);
+
+ static const std::int32_t ID = -754091820;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendScheduledMessages final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ array<int32> id_;
+
+ messages_sendScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_);
+
+ static const std::int32_t ID = -1120369398;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendScreenshotNotification final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 reply_to_msg_id_;
+ int64 random_id_;
+
+ messages_sendScreenshotNotification(object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int64 random_id_);
+
+ static const std::int32_t ID = -914493408;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendVote final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ array<bytes> options_;
+
+ messages_sendVote(object_ptr<InputPeer> &&peer_, int32 msg_id_, array<bytes> &&options_);
+
+ static const std::int32_t ID = 283795844;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendWebViewData final : public Function {
+ public:
+ object_ptr<InputUser> bot_;
+ int64 random_id_;
+ string button_text_;
+ string data_;
+
+ messages_sendWebViewData(object_ptr<InputUser> &&bot_, int64 random_id_, string const &button_text_, string const &data_);
+
+ static const std::int32_t ID = -603831608;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_sendWebViewResultMessage final : public Function {
+ public:
+ string bot_query_id_;
+ object_ptr<InputBotInlineResult> result_;
+
+ messages_sendWebViewResultMessage(string const &bot_query_id_, object_ptr<InputBotInlineResult> &&result_);
+
+ static const std::int32_t ID = 172168437;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<webViewMessageSent>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setBotCallbackAnswer final : public Function {
+ public:
+ int32 flags_;
+ bool alert_;
+ int64 query_id_;
+ string message_;
+ string url_;
+ int32 cache_time_;
+ enum Flags : std::int32_t { ALERT_MASK = 2, MESSAGE_MASK = 1, URL_MASK = 4 };
+ mutable int32 var0;
+
+ messages_setBotCallbackAnswer(int32 flags_, bool alert_, int64 query_id_, string const &message_, string const &url_, int32 cache_time_);
+
+ static const std::int32_t ID = -712043766;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setBotPrecheckoutResults final : public Function {
+ public:
+ int32 flags_;
+ bool success_;
+ int64 query_id_;
+ string error_;
+ enum Flags : std::int32_t { SUCCESS_MASK = 2, ERROR_MASK = 1 };
+ mutable int32 var0;
+
+ messages_setBotPrecheckoutResults(int32 flags_, bool success_, int64 query_id_, string const &error_);
+
+ static const std::int32_t ID = 163765653;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setBotShippingResults final : public Function {
+ public:
+ int32 flags_;
+ int64 query_id_;
+ string error_;
+ array<object_ptr<shippingOption>> shipping_options_;
+ enum Flags : std::int32_t { ERROR_MASK = 1, SHIPPING_OPTIONS_MASK = 2 };
+ mutable int32 var0;
+
+ messages_setBotShippingResults(int32 flags_, int64 query_id_, string const &error_, array<object_ptr<shippingOption>> &&shipping_options_);
+
+ static const std::int32_t ID = -436833542;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setChatAvailableReactions final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<ChatReactions> available_reactions_;
+
+ messages_setChatAvailableReactions(object_ptr<InputPeer> &&peer_, object_ptr<ChatReactions> &&available_reactions_);
+
+ static const std::int32_t ID = -21928079;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setChatTheme final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ string emoticon_;
+
+ messages_setChatTheme(object_ptr<InputPeer> &&peer_, string const &emoticon_);
+
+ static const std::int32_t ID = -432283329;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setDefaultReaction final : public Function {
+ public:
+ object_ptr<Reaction> reaction_;
+
+ explicit messages_setDefaultReaction(object_ptr<Reaction> &&reaction_);
+
+ static const std::int32_t ID = 1330094102;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setEncryptedTyping final : public Function {
+ public:
+ object_ptr<inputEncryptedChat> peer_;
+ bool typing_;
+
+ messages_setEncryptedTyping(object_ptr<inputEncryptedChat> &&peer_, bool typing_);
+
+ static const std::int32_t ID = 2031374829;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setGameScore final : public Function {
+ public:
+ int32 flags_;
+ bool edit_message_;
+ bool force_;
+ object_ptr<InputPeer> peer_;
+ int32 id_;
+ object_ptr<InputUser> user_id_;
+ int32 score_;
+ enum Flags : std::int32_t { EDIT_MESSAGE_MASK = 1, FORCE_MASK = 2 };
+ mutable int32 var0;
+
+ messages_setGameScore(int32 flags_, bool edit_message_, bool force_, object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputUser> &&user_id_, int32 score_);
+
+ static const std::int32_t ID = -1896289088;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setHistoryTTL final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 period_;
+
+ messages_setHistoryTTL(object_ptr<InputPeer> &&peer_, int32 period_);
+
+ static const std::int32_t ID = -1207017500;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setInlineBotResults final : public Function {
+ public:
+ int32 flags_;
+ bool gallery_;
+ bool private_;
+ int64 query_id_;
+ array<object_ptr<InputBotInlineResult>> results_;
+ int32 cache_time_;
+ string next_offset_;
+ object_ptr<inlineBotSwitchPM> switch_pm_;
+ enum Flags : std::int32_t { GALLERY_MASK = 1, PRIVATE_MASK = 2, NEXT_OFFSET_MASK = 4, SWITCH_PM_MASK = 8 };
+ mutable int32 var0;
+
+ messages_setInlineBotResults(int32 flags_, bool gallery_, bool private_, int64 query_id_, array<object_ptr<InputBotInlineResult>> &&results_, int32 cache_time_, string const &next_offset_, object_ptr<inlineBotSwitchPM> &&switch_pm_);
+
+ static const std::int32_t ID = -346119674;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setInlineGameScore final : public Function {
+ public:
+ int32 flags_;
+ bool edit_message_;
+ bool force_;
+ object_ptr<InputBotInlineMessageID> id_;
+ object_ptr<InputUser> user_id_;
+ int32 score_;
+ enum Flags : std::int32_t { EDIT_MESSAGE_MASK = 1, FORCE_MASK = 2 };
+ mutable int32 var0;
+
+ messages_setInlineGameScore(int32 flags_, bool edit_message_, bool force_, object_ptr<InputBotInlineMessageID> &&id_, object_ptr<InputUser> &&user_id_, int32 score_);
+
+ static const std::int32_t ID = 363700068;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_setTyping final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 top_msg_id_;
+ object_ptr<SendMessageAction> action_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+ mutable int32 var0;
+
+ messages_setTyping(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, object_ptr<SendMessageAction> &&action_);
+
+ static const std::int32_t ID = 1486110434;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_startBot final : public Function {
+ public:
+ object_ptr<InputUser> bot_;
+ object_ptr<InputPeer> peer_;
+ int64 random_id_;
+ string start_param_;
+
+ messages_startBot(object_ptr<InputUser> &&bot_, object_ptr<InputPeer> &&peer_, int64 random_id_, string const &start_param_);
+
+ static const std::int32_t ID = -421563528;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_startHistoryImport final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int64 import_id_;
+
+ messages_startHistoryImport(object_ptr<InputPeer> &&peer_, int64 import_id_);
+
+ static const std::int32_t ID = -1271008444;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_toggleBotInAttachMenu final : public Function {
+ public:
+ object_ptr<InputUser> bot_;
+ bool enabled_;
+
+ messages_toggleBotInAttachMenu(object_ptr<InputUser> &&bot_, bool enabled_);
+
+ static const std::int32_t ID = 451818415;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_toggleDialogPin final : public Function {
+ public:
+ int32 flags_;
+ bool pinned_;
+ object_ptr<InputDialogPeer> peer_;
+ enum Flags : std::int32_t { PINNED_MASK = 1 };
+ mutable int32 var0;
+
+ messages_toggleDialogPin(int32 flags_, bool pinned_, object_ptr<InputDialogPeer> &&peer_);
+
+ static const std::int32_t ID = -1489903017;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_toggleNoForwards final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ bool enabled_;
+
+ messages_toggleNoForwards(object_ptr<InputPeer> &&peer_, bool enabled_);
+
+ static const std::int32_t ID = -1323389022;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_toggleStickerSets final : public Function {
+ public:
+ int32 flags_;
+ bool uninstall_;
+ bool archive_;
+ bool unarchive_;
+ array<object_ptr<InputStickerSet>> stickersets_;
+ enum Flags : std::int32_t { UNINSTALL_MASK = 1, ARCHIVE_MASK = 2, UNARCHIVE_MASK = 4 };
+ mutable int32 var0;
+
+ messages_toggleStickerSets(int32 flags_, bool uninstall_, bool archive_, bool unarchive_, array<object_ptr<InputStickerSet>> &&stickersets_);
+
+ static const std::int32_t ID = -1257951254;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_transcribeAudio final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+
+ messages_transcribeAudio(object_ptr<InputPeer> &&peer_, int32 msg_id_);
+
+ static const std::int32_t ID = 647928393;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_transcribedAudio>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_translateText final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+ string text_;
+ string from_lang_;
+ string to_lang_;
+ enum Flags : std::int32_t { PEER_MASK = 1, MSG_ID_MASK = 1, TEXT_MASK = 2, FROM_LANG_MASK = 4 };
+ mutable int32 var0;
+
+ messages_translateText(int32 flags_, object_ptr<InputPeer> &&peer_, int32 msg_id_, string const &text_, string const &from_lang_, string const &to_lang_);
+
+ static const std::int32_t ID = 617508334;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_TranslatedText>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_uninstallStickerSet final : public Function {
+ public:
+ object_ptr<InputStickerSet> stickerset_;
+
+ explicit messages_uninstallStickerSet(object_ptr<InputStickerSet> &&stickerset_);
+
+ static const std::int32_t ID = -110209570;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_unpinAllMessages final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputPeer> peer_;
+ int32 top_msg_id_;
+ enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 };
+ mutable int32 var0;
+
+ messages_unpinAllMessages(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_);
+
+ static const std::int32_t ID = -299714136;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_affectedHistory>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_updateDialogFilter final : public Function {
+ public:
+ int32 flags_;
+ int32 id_;
+ object_ptr<DialogFilter> filter_;
+ enum Flags : std::int32_t { FILTER_MASK = 1 };
+ mutable int32 var0;
+
+ messages_updateDialogFilter(int32 flags_, int32 id_, object_ptr<DialogFilter> &&filter_);
+
+ static const std::int32_t ID = 450142282;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_updateDialogFiltersOrder final : public Function {
+ public:
+ array<int32> order_;
+
+ explicit messages_updateDialogFiltersOrder(array<int32> &&order_);
+
+ static const std::int32_t ID = -983318044;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_updatePinnedMessage final : public Function {
+ public:
+ int32 flags_;
+ bool silent_;
+ bool unpin_;
+ bool pm_oneside_;
+ object_ptr<InputPeer> peer_;
+ int32 id_;
+ enum Flags : std::int32_t { SILENT_MASK = 1, UNPIN_MASK = 2, PM_ONESIDE_MASK = 4 };
+ mutable int32 var0;
+
+ messages_updatePinnedMessage(int32 flags_, bool silent_, bool unpin_, bool pm_oneside_, object_ptr<InputPeer> &&peer_, int32 id_);
+
+ static const std::int32_t ID = -760547348;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_uploadEncryptedFile final : public Function {
+ public:
+ object_ptr<inputEncryptedChat> peer_;
+ object_ptr<InputEncryptedFile> file_;
+
+ messages_uploadEncryptedFile(object_ptr<inputEncryptedChat> &&peer_, object_ptr<InputEncryptedFile> &&file_);
+
+ static const std::int32_t ID = 1347929239;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<EncryptedFile>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_uploadImportedMedia final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int64 import_id_;
+ string file_name_;
+ object_ptr<InputMedia> media_;
+
+ messages_uploadImportedMedia(object_ptr<InputPeer> &&peer_, int64 import_id_, string const &file_name_, object_ptr<InputMedia> &&media_);
+
+ static const std::int32_t ID = 713433234;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<MessageMedia>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class messages_uploadMedia final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputMedia> media_;
+
+ messages_uploadMedia(object_ptr<InputPeer> &&peer_, object_ptr<InputMedia> &&media_);
+
+ static const std::int32_t ID = 1369162417;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<MessageMedia>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_assignAppStoreTransaction final : public Function {
+ public:
+ bytes receipt_;
+ object_ptr<InputStorePaymentPurpose> purpose_;
+
+ payments_assignAppStoreTransaction(bytes &&receipt_, object_ptr<InputStorePaymentPurpose> &&purpose_);
+
+ static const std::int32_t ID = -2131921795;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_assignPlayMarketTransaction final : public Function {
+ public:
+ object_ptr<dataJSON> receipt_;
+ object_ptr<InputStorePaymentPurpose> purpose_;
+
+ payments_assignPlayMarketTransaction(object_ptr<dataJSON> &&receipt_, object_ptr<InputStorePaymentPurpose> &&purpose_);
+
+ static const std::int32_t ID = -537046829;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_canPurchasePremium final : public Function {
+ public:
+ object_ptr<InputStorePaymentPurpose> purpose_;
+
+ explicit payments_canPurchasePremium(object_ptr<InputStorePaymentPurpose> &&purpose_);
+
+ static const std::int32_t ID = -1614700874;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_clearSavedInfo final : public Function {
+ public:
+ int32 flags_;
+ bool credentials_;
+ bool info_;
+ enum Flags : std::int32_t { CREDENTIALS_MASK = 1, INFO_MASK = 2 };
+ mutable int32 var0;
+
+ payments_clearSavedInfo(int32 flags_, bool credentials_, bool info_);
+
+ static const std::int32_t ID = -667062079;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_exportInvoice final : public Function {
+ public:
+ object_ptr<InputMedia> invoice_media_;
+
+ explicit payments_exportInvoice(object_ptr<InputMedia> &&invoice_media_);
+
+ static const std::int32_t ID = 261206117;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<payments_exportedInvoice>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_getBankCardData final : public Function {
+ public:
+ string number_;
+
+ explicit payments_getBankCardData(string const &number_);
+
+ static const std::int32_t ID = 779736953;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<payments_bankCardData>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_getPaymentForm final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputInvoice> invoice_;
+ object_ptr<dataJSON> theme_params_;
+ enum Flags : std::int32_t { THEME_PARAMS_MASK = 1 };
+ mutable int32 var0;
+
+ payments_getPaymentForm(int32 flags_, object_ptr<InputInvoice> &&invoice_, object_ptr<dataJSON> &&theme_params_);
+
+ static const std::int32_t ID = 924093883;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<payments_paymentForm>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_getPaymentReceipt final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ int32 msg_id_;
+
+ payments_getPaymentReceipt(object_ptr<InputPeer> &&peer_, int32 msg_id_);
+
+ static const std::int32_t ID = 611897804;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<payments_paymentReceipt>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_getSavedInfo final : public Function {
+ public:
+
+ static const std::int32_t ID = 578650699;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<payments_savedInfo>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_sendPaymentForm final : public Function {
+ public:
+ int32 flags_;
+ int64 form_id_;
+ object_ptr<InputInvoice> invoice_;
+ string requested_info_id_;
+ string shipping_option_id_;
+ object_ptr<InputPaymentCredentials> credentials_;
+ int64 tip_amount_;
+ enum Flags : std::int32_t { REQUESTED_INFO_ID_MASK = 1, SHIPPING_OPTION_ID_MASK = 2, TIP_AMOUNT_MASK = 4 };
+ mutable int32 var0;
+
+ payments_sendPaymentForm(int32 flags_, int64 form_id_, object_ptr<InputInvoice> &&invoice_, string const &requested_info_id_, string const &shipping_option_id_, object_ptr<InputPaymentCredentials> &&credentials_, int64 tip_amount_);
+
+ static const std::int32_t ID = 755192367;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<payments_PaymentResult>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class payments_validateRequestedInfo final : public Function {
+ public:
+ int32 flags_;
+ bool save_;
+ object_ptr<InputInvoice> invoice_;
+ object_ptr<paymentRequestedInfo> info_;
+ enum Flags : std::int32_t { SAVE_MASK = 1 };
+ mutable int32 var0;
+
+ payments_validateRequestedInfo(int32 flags_, bool save_, object_ptr<InputInvoice> &&invoice_, object_ptr<paymentRequestedInfo> &&info_);
+
+ static const std::int32_t ID = -1228345045;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<payments_validatedRequestedInfo>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_acceptCall final : public Function {
+ public:
+ object_ptr<inputPhoneCall> peer_;
+ bytes g_b_;
+ object_ptr<phoneCallProtocol> protocol_;
+
+ phone_acceptCall(object_ptr<inputPhoneCall> &&peer_, bytes &&g_b_, object_ptr<phoneCallProtocol> &&protocol_);
+
+ static const std::int32_t ID = 1003664544;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phone_phoneCall>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_checkGroupCall final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+ array<int32> sources_;
+
+ phone_checkGroupCall(object_ptr<inputGroupCall> &&call_, array<int32> &&sources_);
+
+ static const std::int32_t ID = -1248003721;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<int32>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_confirmCall final : public Function {
+ public:
+ object_ptr<inputPhoneCall> peer_;
+ bytes g_a_;
+ int64 key_fingerprint_;
+ object_ptr<phoneCallProtocol> protocol_;
+
+ phone_confirmCall(object_ptr<inputPhoneCall> &&peer_, bytes &&g_a_, int64 key_fingerprint_, object_ptr<phoneCallProtocol> &&protocol_);
+
+ static const std::int32_t ID = 788404002;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phone_phoneCall>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_createGroupCall final : public Function {
+ public:
+ int32 flags_;
+ bool rtmp_stream_;
+ object_ptr<InputPeer> peer_;
+ int32 random_id_;
+ string title_;
+ int32 schedule_date_;
+ enum Flags : std::int32_t { RTMP_STREAM_MASK = 4, TITLE_MASK = 1, SCHEDULE_DATE_MASK = 2 };
+ mutable int32 var0;
+
+ phone_createGroupCall(int32 flags_, bool rtmp_stream_, object_ptr<InputPeer> &&peer_, int32 random_id_, string const &title_, int32 schedule_date_);
+
+ static const std::int32_t ID = 1221445336;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_discardCall final : public Function {
+ public:
+ int32 flags_;
+ bool video_;
+ object_ptr<inputPhoneCall> peer_;
+ int32 duration_;
+ object_ptr<PhoneCallDiscardReason> reason_;
+ int64 connection_id_;
+ enum Flags : std::int32_t { VIDEO_MASK = 1 };
+ mutable int32 var0;
+
+ phone_discardCall(int32 flags_, bool video_, object_ptr<inputPhoneCall> &&peer_, int32 duration_, object_ptr<PhoneCallDiscardReason> &&reason_, int64 connection_id_);
+
+ static const std::int32_t ID = -1295269440;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_discardGroupCall final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+
+ explicit phone_discardGroupCall(object_ptr<inputGroupCall> &&call_);
+
+ static const std::int32_t ID = 2054648117;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_editGroupCallParticipant final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<inputGroupCall> call_;
+ object_ptr<InputPeer> participant_;
+ bool muted_;
+ int32 volume_;
+ bool raise_hand_;
+ bool video_stopped_;
+ bool video_paused_;
+ bool presentation_paused_;
+ enum Flags : std::int32_t { MUTED_MASK = 1, VOLUME_MASK = 2, RAISE_HAND_MASK = 4, VIDEO_STOPPED_MASK = 8, VIDEO_PAUSED_MASK = 16, PRESENTATION_PAUSED_MASK = 32 };
+ mutable int32 var0;
+
+ phone_editGroupCallParticipant(int32 flags_, object_ptr<inputGroupCall> &&call_, object_ptr<InputPeer> &&participant_, bool muted_, int32 volume_, bool raise_hand_, bool video_stopped_, bool video_paused_, bool presentation_paused_);
+
+ static const std::int32_t ID = -1524155713;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_editGroupCallTitle final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+ string title_;
+
+ phone_editGroupCallTitle(object_ptr<inputGroupCall> &&call_, string const &title_);
+
+ static const std::int32_t ID = 480685066;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_exportGroupCallInvite final : public Function {
+ public:
+ int32 flags_;
+ bool can_self_unmute_;
+ object_ptr<inputGroupCall> call_;
+ enum Flags : std::int32_t { CAN_SELF_UNMUTE_MASK = 1 };
+ mutable int32 var0;
+
+ phone_exportGroupCallInvite(int32 flags_, bool can_self_unmute_, object_ptr<inputGroupCall> &&call_);
+
+ static const std::int32_t ID = -425040769;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phone_exportedGroupCallInvite>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_getCallConfig final : public Function {
+ public:
+
+ static const std::int32_t ID = 1430593449;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<dataJSON>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_getGroupCall final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+ int32 limit_;
+
+ phone_getGroupCall(object_ptr<inputGroupCall> &&call_, int32 limit_);
+
+ static const std::int32_t ID = 68699611;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phone_groupCall>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_getGroupCallJoinAs final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+
+ explicit phone_getGroupCallJoinAs(object_ptr<InputPeer> &&peer_);
+
+ static const std::int32_t ID = -277077702;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phone_joinAsPeers>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_getGroupCallStreamChannels final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+
+ explicit phone_getGroupCallStreamChannels(object_ptr<inputGroupCall> &&call_);
+
+ static const std::int32_t ID = 447879488;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phone_groupCallStreamChannels>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_getGroupCallStreamRtmpUrl final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ bool revoke_;
+
+ phone_getGroupCallStreamRtmpUrl(object_ptr<InputPeer> &&peer_, bool revoke_);
+
+ static const std::int32_t ID = -558650433;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phone_groupCallStreamRtmpUrl>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_getGroupParticipants final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+ array<object_ptr<InputPeer>> ids_;
+ array<int32> sources_;
+ string offset_;
+ int32 limit_;
+
+ phone_getGroupParticipants(object_ptr<inputGroupCall> &&call_, array<object_ptr<InputPeer>> &&ids_, array<int32> &&sources_, string const &offset_, int32 limit_);
+
+ static const std::int32_t ID = -984033109;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phone_groupParticipants>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_inviteToGroupCall final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+ array<object_ptr<InputUser>> users_;
+
+ phone_inviteToGroupCall(object_ptr<inputGroupCall> &&call_, array<object_ptr<InputUser>> &&users_);
+
+ static const std::int32_t ID = 2067345760;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_joinGroupCall final : public Function {
+ public:
+ int32 flags_;
+ bool muted_;
+ bool video_stopped_;
+ object_ptr<inputGroupCall> call_;
+ object_ptr<InputPeer> join_as_;
+ string invite_hash_;
+ object_ptr<dataJSON> params_;
+ enum Flags : std::int32_t { MUTED_MASK = 1, VIDEO_STOPPED_MASK = 4, INVITE_HASH_MASK = 2 };
+ mutable int32 var0;
+
+ phone_joinGroupCall(int32 flags_, bool muted_, bool video_stopped_, object_ptr<inputGroupCall> &&call_, object_ptr<InputPeer> &&join_as_, string const &invite_hash_, object_ptr<dataJSON> &&params_);
+
+ static const std::int32_t ID = -1322057861;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_joinGroupCallPresentation final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+ object_ptr<dataJSON> params_;
+
+ phone_joinGroupCallPresentation(object_ptr<inputGroupCall> &&call_, object_ptr<dataJSON> &&params_);
+
+ static const std::int32_t ID = -873829436;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_leaveGroupCall final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+ int32 source_;
+
+ phone_leaveGroupCall(object_ptr<inputGroupCall> &&call_, int32 source_);
+
+ static const std::int32_t ID = 1342404601;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_leaveGroupCallPresentation final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+
+ explicit phone_leaveGroupCallPresentation(object_ptr<inputGroupCall> &&call_);
+
+ static const std::int32_t ID = 475058500;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_receivedCall final : public Function {
+ public:
+ object_ptr<inputPhoneCall> peer_;
+
+ explicit phone_receivedCall(object_ptr<inputPhoneCall> &&peer_);
+
+ static const std::int32_t ID = 399855457;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_requestCall final : public Function {
+ public:
+ int32 flags_;
+ bool video_;
+ object_ptr<InputUser> user_id_;
+ int32 random_id_;
+ bytes g_a_hash_;
+ object_ptr<phoneCallProtocol> protocol_;
+ enum Flags : std::int32_t { VIDEO_MASK = 1 };
+ mutable int32 var0;
+
+ phone_requestCall(int32 flags_, bool video_, object_ptr<InputUser> &&user_id_, int32 random_id_, bytes &&g_a_hash_, object_ptr<phoneCallProtocol> &&protocol_);
+
+ static const std::int32_t ID = 1124046573;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<phone_phoneCall>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_saveCallDebug final : public Function {
+ public:
+ object_ptr<inputPhoneCall> peer_;
+ object_ptr<dataJSON> debug_;
+
+ phone_saveCallDebug(object_ptr<inputPhoneCall> &&peer_, object_ptr<dataJSON> &&debug_);
+
+ static const std::int32_t ID = 662363518;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_saveCallLog final : public Function {
+ public:
+ object_ptr<inputPhoneCall> peer_;
+ object_ptr<InputFile> file_;
+
+ phone_saveCallLog(object_ptr<inputPhoneCall> &&peer_, object_ptr<InputFile> &&file_);
+
+ static const std::int32_t ID = 1092913030;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_saveDefaultGroupCallJoinAs final : public Function {
+ public:
+ object_ptr<InputPeer> peer_;
+ object_ptr<InputPeer> join_as_;
+
+ phone_saveDefaultGroupCallJoinAs(object_ptr<InputPeer> &&peer_, object_ptr<InputPeer> &&join_as_);
+
+ static const std::int32_t ID = 1465786252;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_sendSignalingData final : public Function {
+ public:
+ object_ptr<inputPhoneCall> peer_;
+ bytes data_;
+
+ phone_sendSignalingData(object_ptr<inputPhoneCall> &&peer_, bytes &&data_);
+
+ static const std::int32_t ID = -8744061;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_setCallRating final : public Function {
+ public:
+ int32 flags_;
+ bool user_initiative_;
+ object_ptr<inputPhoneCall> peer_;
+ int32 rating_;
+ string comment_;
+ enum Flags : std::int32_t { USER_INITIATIVE_MASK = 1 };
+ mutable int32 var0;
+
+ phone_setCallRating(int32 flags_, bool user_initiative_, object_ptr<inputPhoneCall> &&peer_, int32 rating_, string const &comment_);
+
+ static const std::int32_t ID = 1508562471;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_startScheduledGroupCall final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+
+ explicit phone_startScheduledGroupCall(object_ptr<inputGroupCall> &&call_);
+
+ static const std::int32_t ID = 1451287362;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_toggleGroupCallRecord final : public Function {
+ public:
+ int32 flags_;
+ bool start_;
+ bool video_;
+ object_ptr<inputGroupCall> call_;
+ string title_;
+ bool video_portrait_;
+ enum Flags : std::int32_t { START_MASK = 1, VIDEO_MASK = 4, TITLE_MASK = 2, VIDEO_PORTRAIT_MASK = 4 };
+ mutable int32 var0;
+
+ phone_toggleGroupCallRecord(int32 flags_, bool start_, bool video_, object_ptr<inputGroupCall> &&call_, string const &title_, bool video_portrait_);
+
+ static const std::int32_t ID = -248985848;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_toggleGroupCallSettings final : public Function {
+ public:
+ int32 flags_;
+ bool reset_invite_hash_;
+ object_ptr<inputGroupCall> call_;
+ bool join_muted_;
+ enum Flags : std::int32_t { RESET_INVITE_HASH_MASK = 2, JOIN_MUTED_MASK = 1 };
+ mutable int32 var0;
+
+ phone_toggleGroupCallSettings(int32 flags_, bool reset_invite_hash_, object_ptr<inputGroupCall> &&call_, bool join_muted_);
+
+ static const std::int32_t ID = 1958458429;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class phone_toggleGroupCallStartSubscription final : public Function {
+ public:
+ object_ptr<inputGroupCall> call_;
+ bool subscribed_;
+
+ phone_toggleGroupCallStartSubscription(object_ptr<inputGroupCall> &&call_, bool subscribed_);
+
+ static const std::int32_t ID = 563885286;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<Updates>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class photos_deletePhotos final : public Function {
+ public:
+ array<object_ptr<InputPhoto>> id_;
+
+ explicit photos_deletePhotos(array<object_ptr<InputPhoto>> &&id_);
+
+ static const std::int32_t ID = -2016444625;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<int64>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class photos_getUserPhotos final : public Function {
+ public:
+ object_ptr<InputUser> user_id_;
+ int32 offset_;
+ int64 max_id_;
+ int32 limit_;
+
+ photos_getUserPhotos(object_ptr<InputUser> &&user_id_, int32 offset_, int64 max_id_, int32 limit_);
+
+ static const std::int32_t ID = -1848823128;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<photos_Photos>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class photos_updateProfilePhoto final : public Function {
+ public:
+ object_ptr<InputPhoto> id_;
+
+ explicit photos_updateProfilePhoto(object_ptr<InputPhoto> &&id_);
+
+ static const std::int32_t ID = 1926525996;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<photos_photo>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class photos_uploadProfilePhoto final : public Function {
+ public:
+ int32 flags_;
+ object_ptr<InputFile> file_;
+ object_ptr<InputFile> video_;
+ double video_start_ts_;
+ enum Flags : std::int32_t { FILE_MASK = 1, VIDEO_MASK = 2, VIDEO_START_TS_MASK = 4 };
+ mutable int32 var0;
+
+ photos_uploadProfilePhoto(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&video_, double video_start_ts_);
+
+ static const std::int32_t ID = -1980559511;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<photos_photo>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stats_getBroadcastStats final : public Function {
+ public:
+ int32 flags_;
+ bool dark_;
+ object_ptr<InputChannel> channel_;
+ enum Flags : std::int32_t { DARK_MASK = 1 };
+ mutable int32 var0;
+
+ stats_getBroadcastStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_);
+
+ static const std::int32_t ID = -1421720550;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stats_broadcastStats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stats_getMegagroupStats final : public Function {
+ public:
+ int32 flags_;
+ bool dark_;
+ object_ptr<InputChannel> channel_;
+ enum Flags : std::int32_t { DARK_MASK = 1 };
+ mutable int32 var0;
+
+ stats_getMegagroupStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_);
+
+ static const std::int32_t ID = -589330937;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stats_megagroupStats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stats_getMessagePublicForwards final : public Function {
+ public:
+ object_ptr<InputChannel> channel_;
+ int32 msg_id_;
+ int32 offset_rate_;
+ object_ptr<InputPeer> offset_peer_;
+ int32 offset_id_;
+ int32 limit_;
+
+ stats_getMessagePublicForwards(object_ptr<InputChannel> &&channel_, int32 msg_id_, int32 offset_rate_, object_ptr<InputPeer> &&offset_peer_, int32 offset_id_, int32 limit_);
+
+ static const std::int32_t ID = 1445996571;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_Messages>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stats_getMessageStats final : public Function {
+ public:
+ int32 flags_;
+ bool dark_;
+ object_ptr<InputChannel> channel_;
+ int32 msg_id_;
+ enum Flags : std::int32_t { DARK_MASK = 1 };
+ mutable int32 var0;
+
+ stats_getMessageStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_, int32 msg_id_);
+
+ static const std::int32_t ID = -1226791947;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stats_messageStats>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stats_loadAsyncGraph final : public Function {
+ public:
+ int32 flags_;
+ string token_;
+ int64 x_;
+ enum Flags : std::int32_t { X_MASK = 1 };
+ mutable int32 var0;
+
+ stats_loadAsyncGraph(int32 flags_, string const &token_, int64 x_);
+
+ static const std::int32_t ID = 1646092192;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<StatsGraph>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stickers_addStickerToSet final : public Function {
+ public:
+ object_ptr<InputStickerSet> stickerset_;
+ object_ptr<inputStickerSetItem> sticker_;
+
+ stickers_addStickerToSet(object_ptr<InputStickerSet> &&stickerset_, object_ptr<inputStickerSetItem> &&sticker_);
+
+ static const std::int32_t ID = -2041315650;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_StickerSet>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stickers_changeStickerPosition final : public Function {
+ public:
+ object_ptr<InputDocument> sticker_;
+ int32 position_;
+
+ stickers_changeStickerPosition(object_ptr<InputDocument> &&sticker_, int32 position_);
+
+ static const std::int32_t ID = -4795190;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_StickerSet>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stickers_checkShortName final : public Function {
+ public:
+ string short_name_;
+
+ explicit stickers_checkShortName(string const &short_name_);
+
+ static const std::int32_t ID = 676017721;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stickers_createStickerSet final : public Function {
+ public:
+ int32 flags_;
+ bool masks_;
+ bool animated_;
+ bool videos_;
+ object_ptr<InputUser> user_id_;
+ string title_;
+ string short_name_;
+ object_ptr<InputDocument> thumb_;
+ array<object_ptr<inputStickerSetItem>> stickers_;
+ string software_;
+ enum Flags : std::int32_t { MASKS_MASK = 1, ANIMATED_MASK = 2, VIDEOS_MASK = 16, THUMB_MASK = 4, SOFTWARE_MASK = 8 };
+ mutable int32 var0;
+
+ stickers_createStickerSet(int32 flags_, bool masks_, bool animated_, bool videos_, object_ptr<InputUser> &&user_id_, string const &title_, string const &short_name_, object_ptr<InputDocument> &&thumb_, array<object_ptr<inputStickerSetItem>> &&stickers_, string const &software_);
+
+ static const std::int32_t ID = -1876841625;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_StickerSet>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stickers_removeStickerFromSet final : public Function {
+ public:
+ object_ptr<InputDocument> sticker_;
+
+ explicit stickers_removeStickerFromSet(object_ptr<InputDocument> &&sticker_);
+
+ static const std::int32_t ID = -143257775;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_StickerSet>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stickers_setStickerSetThumb final : public Function {
+ public:
+ object_ptr<InputStickerSet> stickerset_;
+ object_ptr<InputDocument> thumb_;
+
+ stickers_setStickerSetThumb(object_ptr<InputStickerSet> &&stickerset_, object_ptr<InputDocument> &&thumb_);
+
+ static const std::int32_t ID = -1707717072;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<messages_StickerSet>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class stickers_suggestShortName final : public Function {
+ public:
+ string title_;
+
+ explicit stickers_suggestShortName(string const &title_);
+
+ static const std::int32_t ID = 1303364867;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<stickers_suggestedShortName>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class test_parseInputAppEvent final : public Function {
+ public:
+
+ static const std::int32_t ID = -1156741135;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<inputAppEvent>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class test_useConfigSimple final : public Function {
+ public:
+
+ static const std::int32_t ID = -105401795;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<help_configSimple>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class test_useError final : public Function {
+ public:
+
+ static const std::int32_t ID = -294277375;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<error>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class updates_getChannelDifference final : public Function {
+ public:
+ int32 flags_;
+ bool force_;
+ object_ptr<InputChannel> channel_;
+ object_ptr<ChannelMessagesFilter> filter_;
+ int32 pts_;
+ int32 limit_;
+ enum Flags : std::int32_t { FORCE_MASK = 1 };
+ mutable int32 var0;
+
+ updates_getChannelDifference(int32 flags_, bool force_, object_ptr<InputChannel> &&channel_, object_ptr<ChannelMessagesFilter> &&filter_, int32 pts_, int32 limit_);
+
+ static const std::int32_t ID = 51854712;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<updates_ChannelDifference>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class updates_getDifference final : public Function {
+ public:
+ int32 flags_;
+ int32 pts_;
+ int32 pts_total_limit_;
+ int32 date_;
+ int32 qts_;
+ enum Flags : std::int32_t { PTS_TOTAL_LIMIT_MASK = 1 };
+ mutable int32 var0;
+
+ updates_getDifference(int32 flags_, int32 pts_, int32 pts_total_limit_, int32 date_, int32 qts_);
+
+ static const std::int32_t ID = 630429265;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<updates_Difference>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class updates_getState final : public Function {
+ public:
+
+ static const std::int32_t ID = -304838614;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<updates_state>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class upload_getCdnFile final : public Function {
+ public:
+ bytes file_token_;
+ int64 offset_;
+ int32 limit_;
+
+ upload_getCdnFile(bytes &&file_token_, int64 offset_, int32 limit_);
+
+ static const std::int32_t ID = 962554330;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<upload_CdnFile>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class upload_getCdnFileHashes final : public Function {
+ public:
+ bytes file_token_;
+ int64 offset_;
+
+ upload_getCdnFileHashes(bytes &&file_token_, int64 offset_);
+
+ static const std::int32_t ID = -1847836879;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<fileHash>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class upload_getFile final : public Function {
+ public:
+ int32 flags_;
+ bool precise_;
+ bool cdn_supported_;
+ object_ptr<InputFileLocation> location_;
+ int64 offset_;
+ int32 limit_;
+ enum Flags : std::int32_t { PRECISE_MASK = 1, CDN_SUPPORTED_MASK = 2 };
+ mutable int32 var0;
+
+ upload_getFile(int32 flags_, bool precise_, bool cdn_supported_, object_ptr<InputFileLocation> &&location_, int64 offset_, int32 limit_);
+
+ static const std::int32_t ID = -1101843010;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<upload_File>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class upload_getFileHashes final : public Function {
+ public:
+ object_ptr<InputFileLocation> location_;
+ int64 offset_;
+
+ upload_getFileHashes(object_ptr<InputFileLocation> &&location_, int64 offset_);
+
+ static const std::int32_t ID = -1856595926;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<fileHash>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class upload_getWebFile final : public Function {
+ public:
+ object_ptr<InputWebFileLocation> location_;
+ int32 offset_;
+ int32 limit_;
+
+ upload_getWebFile(object_ptr<InputWebFileLocation> &&location_, int32 offset_, int32 limit_);
+
+ static const std::int32_t ID = 619086221;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<upload_webFile>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class upload_reuploadCdnFile final : public Function {
+ public:
+ bytes file_token_;
+ bytes request_token_;
+
+ upload_reuploadCdnFile(bytes &&file_token_, bytes &&request_token_);
+
+ static const std::int32_t ID = -1691921240;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<fileHash>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class upload_saveBigFilePart final : public Function {
+ public:
+ int64 file_id_;
+ int32 file_part_;
+ int32 file_total_parts_;
+ bytes bytes_;
+
+ upload_saveBigFilePart(int64 file_id_, int32 file_part_, int32 file_total_parts_, bytes &&bytes_);
+
+ static const std::int32_t ID = -562337987;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class upload_saveFilePart final : public Function {
+ public:
+ int64 file_id_;
+ int32 file_part_;
+ bytes bytes_;
+
+ upload_saveFilePart(int64 file_id_, int32 file_part_, bytes &&bytes_);
+
+ static const std::int32_t ID = -1291540959;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class users_getFullUser final : public Function {
+ public:
+ object_ptr<InputUser> id_;
+
+ explicit users_getFullUser(object_ptr<InputUser> &&id_);
+
+ static const std::int32_t ID = -1240508136;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = object_ptr<users_userFull>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class users_getUsers final : public Function {
+ public:
+ array<object_ptr<InputUser>> id_;
+
+ explicit users_getUsers(array<object_ptr<InputUser>> &&id_);
+
+ static const std::int32_t ID = 227648840;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = array<object_ptr<User>>;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+class users_setSecureValueErrors final : public Function {
+ public:
+ object_ptr<InputUser> id_;
+ array<object_ptr<SecureValueError>> errors_;
+
+ users_setSecureValueErrors(object_ptr<InputUser> &&id_, array<object_ptr<SecureValueError>> &&errors_);
+
+ static const std::int32_t ID = -1865902923;
+ std::int32_t get_id() const final {
+ return ID;
+ }
+
+ using ReturnType = bool;
+
+ void store(TlStorerCalcLength &s) const final;
+
+ void store(TlStorerUnsafe &s) const final;
+
+ void store(TlStorerToString &s, const char *field_name) const final;
+
+ static ReturnType fetch_result(TlBufferParser &p);
+};
+
+} // namespace telegram_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.hpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.hpp
new file mode 100644
index 0000000000..f339ea4e81
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.hpp
@@ -0,0 +1,9507 @@
+#pragma once
+
+/**
+ * \file
+ * Contains downcast_call methods for calling a function object on downcasted to
+ * the most derived class TDLib API object.
+ */
+#include "telegram_api.h"
+
+namespace td {
+namespace telegram_api {
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Object &obj, const T &func) {
+ switch (obj.get_id()) {
+ case accessPointRule::ID:
+ func(static_cast<accessPointRule &>(obj));
+ return true;
+ case accountDaysTTL::ID:
+ func(static_cast<accountDaysTTL &>(obj));
+ return true;
+ case attachMenuBot::ID:
+ func(static_cast<attachMenuBot &>(obj));
+ return true;
+ case attachMenuBotIcon::ID:
+ func(static_cast<attachMenuBotIcon &>(obj));
+ return true;
+ case attachMenuBotIconColor::ID:
+ func(static_cast<attachMenuBotIconColor &>(obj));
+ return true;
+ case attachMenuBotsNotModified::ID:
+ func(static_cast<attachMenuBotsNotModified &>(obj));
+ return true;
+ case attachMenuBots::ID:
+ func(static_cast<attachMenuBots &>(obj));
+ return true;
+ case attachMenuBotsBot::ID:
+ func(static_cast<attachMenuBotsBot &>(obj));
+ return true;
+ case attachMenuPeerTypeSameBotPM::ID:
+ func(static_cast<attachMenuPeerTypeSameBotPM &>(obj));
+ return true;
+ case attachMenuPeerTypeBotPM::ID:
+ func(static_cast<attachMenuPeerTypeBotPM &>(obj));
+ return true;
+ case attachMenuPeerTypePM::ID:
+ func(static_cast<attachMenuPeerTypePM &>(obj));
+ return true;
+ case attachMenuPeerTypeChat::ID:
+ func(static_cast<attachMenuPeerTypeChat &>(obj));
+ return true;
+ case attachMenuPeerTypeBroadcast::ID:
+ func(static_cast<attachMenuPeerTypeBroadcast &>(obj));
+ return true;
+ case authorization::ID:
+ func(static_cast<authorization &>(obj));
+ return true;
+ case autoDownloadSettings::ID:
+ func(static_cast<autoDownloadSettings &>(obj));
+ return true;
+ case availableReaction::ID:
+ func(static_cast<availableReaction &>(obj));
+ return true;
+ case bankCardOpenUrl::ID:
+ func(static_cast<bankCardOpenUrl &>(obj));
+ return true;
+ case baseThemeClassic::ID:
+ func(static_cast<baseThemeClassic &>(obj));
+ return true;
+ case baseThemeDay::ID:
+ func(static_cast<baseThemeDay &>(obj));
+ return true;
+ case baseThemeNight::ID:
+ func(static_cast<baseThemeNight &>(obj));
+ return true;
+ case baseThemeTinted::ID:
+ func(static_cast<baseThemeTinted &>(obj));
+ return true;
+ case baseThemeArctic::ID:
+ func(static_cast<baseThemeArctic &>(obj));
+ return true;
+ case botCommand::ID:
+ func(static_cast<botCommand &>(obj));
+ return true;
+ case botCommandScopeDefault::ID:
+ func(static_cast<botCommandScopeDefault &>(obj));
+ return true;
+ case botCommandScopeUsers::ID:
+ func(static_cast<botCommandScopeUsers &>(obj));
+ return true;
+ case botCommandScopeChats::ID:
+ func(static_cast<botCommandScopeChats &>(obj));
+ return true;
+ case botCommandScopeChatAdmins::ID:
+ func(static_cast<botCommandScopeChatAdmins &>(obj));
+ return true;
+ case botCommandScopePeer::ID:
+ func(static_cast<botCommandScopePeer &>(obj));
+ return true;
+ case botCommandScopePeerAdmins::ID:
+ func(static_cast<botCommandScopePeerAdmins &>(obj));
+ return true;
+ case botCommandScopePeerUser::ID:
+ func(static_cast<botCommandScopePeerUser &>(obj));
+ return true;
+ case botInfo::ID:
+ func(static_cast<botInfo &>(obj));
+ return true;
+ case botInlineMessageMediaAuto::ID:
+ func(static_cast<botInlineMessageMediaAuto &>(obj));
+ return true;
+ case botInlineMessageText::ID:
+ func(static_cast<botInlineMessageText &>(obj));
+ return true;
+ case botInlineMessageMediaGeo::ID:
+ func(static_cast<botInlineMessageMediaGeo &>(obj));
+ return true;
+ case botInlineMessageMediaVenue::ID:
+ func(static_cast<botInlineMessageMediaVenue &>(obj));
+ return true;
+ case botInlineMessageMediaContact::ID:
+ func(static_cast<botInlineMessageMediaContact &>(obj));
+ return true;
+ case botInlineMessageMediaInvoice::ID:
+ func(static_cast<botInlineMessageMediaInvoice &>(obj));
+ return true;
+ case botInlineResult::ID:
+ func(static_cast<botInlineResult &>(obj));
+ return true;
+ case botInlineMediaResult::ID:
+ func(static_cast<botInlineMediaResult &>(obj));
+ return true;
+ case botMenuButtonDefault::ID:
+ func(static_cast<botMenuButtonDefault &>(obj));
+ return true;
+ case botMenuButtonCommands::ID:
+ func(static_cast<botMenuButtonCommands &>(obj));
+ return true;
+ case botMenuButton::ID:
+ func(static_cast<botMenuButton &>(obj));
+ return true;
+ case cdnConfig::ID:
+ func(static_cast<cdnConfig &>(obj));
+ return true;
+ case cdnPublicKey::ID:
+ func(static_cast<cdnPublicKey &>(obj));
+ return true;
+ case channelAdminLogEvent::ID:
+ func(static_cast<channelAdminLogEvent &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeTitle::ID:
+ func(static_cast<channelAdminLogEventActionChangeTitle &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeAbout::ID:
+ func(static_cast<channelAdminLogEventActionChangeAbout &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeUsername::ID:
+ func(static_cast<channelAdminLogEventActionChangeUsername &>(obj));
+ return true;
+ case channelAdminLogEventActionChangePhoto::ID:
+ func(static_cast<channelAdminLogEventActionChangePhoto &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleInvites::ID:
+ func(static_cast<channelAdminLogEventActionToggleInvites &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleSignatures::ID:
+ func(static_cast<channelAdminLogEventActionToggleSignatures &>(obj));
+ return true;
+ case channelAdminLogEventActionUpdatePinned::ID:
+ func(static_cast<channelAdminLogEventActionUpdatePinned &>(obj));
+ return true;
+ case channelAdminLogEventActionEditMessage::ID:
+ func(static_cast<channelAdminLogEventActionEditMessage &>(obj));
+ return true;
+ case channelAdminLogEventActionDeleteMessage::ID:
+ func(static_cast<channelAdminLogEventActionDeleteMessage &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantJoin::ID:
+ func(static_cast<channelAdminLogEventActionParticipantJoin &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantLeave::ID:
+ func(static_cast<channelAdminLogEventActionParticipantLeave &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantInvite::ID:
+ func(static_cast<channelAdminLogEventActionParticipantInvite &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantToggleBan::ID:
+ func(static_cast<channelAdminLogEventActionParticipantToggleBan &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantToggleAdmin::ID:
+ func(static_cast<channelAdminLogEventActionParticipantToggleAdmin &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeStickerSet::ID:
+ func(static_cast<channelAdminLogEventActionChangeStickerSet &>(obj));
+ return true;
+ case channelAdminLogEventActionTogglePreHistoryHidden::ID:
+ func(static_cast<channelAdminLogEventActionTogglePreHistoryHidden &>(obj));
+ return true;
+ case channelAdminLogEventActionDefaultBannedRights::ID:
+ func(static_cast<channelAdminLogEventActionDefaultBannedRights &>(obj));
+ return true;
+ case channelAdminLogEventActionStopPoll::ID:
+ func(static_cast<channelAdminLogEventActionStopPoll &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeLinkedChat::ID:
+ func(static_cast<channelAdminLogEventActionChangeLinkedChat &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeLocation::ID:
+ func(static_cast<channelAdminLogEventActionChangeLocation &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleSlowMode::ID:
+ func(static_cast<channelAdminLogEventActionToggleSlowMode &>(obj));
+ return true;
+ case channelAdminLogEventActionStartGroupCall::ID:
+ func(static_cast<channelAdminLogEventActionStartGroupCall &>(obj));
+ return true;
+ case channelAdminLogEventActionDiscardGroupCall::ID:
+ func(static_cast<channelAdminLogEventActionDiscardGroupCall &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantMute::ID:
+ func(static_cast<channelAdminLogEventActionParticipantMute &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantUnmute::ID:
+ func(static_cast<channelAdminLogEventActionParticipantUnmute &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleGroupCallSetting::ID:
+ func(static_cast<channelAdminLogEventActionToggleGroupCallSetting &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantJoinByInvite::ID:
+ func(static_cast<channelAdminLogEventActionParticipantJoinByInvite &>(obj));
+ return true;
+ case channelAdminLogEventActionExportedInviteDelete::ID:
+ func(static_cast<channelAdminLogEventActionExportedInviteDelete &>(obj));
+ return true;
+ case channelAdminLogEventActionExportedInviteRevoke::ID:
+ func(static_cast<channelAdminLogEventActionExportedInviteRevoke &>(obj));
+ return true;
+ case channelAdminLogEventActionExportedInviteEdit::ID:
+ func(static_cast<channelAdminLogEventActionExportedInviteEdit &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantVolume::ID:
+ func(static_cast<channelAdminLogEventActionParticipantVolume &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeHistoryTTL::ID:
+ func(static_cast<channelAdminLogEventActionChangeHistoryTTL &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantJoinByRequest::ID:
+ func(static_cast<channelAdminLogEventActionParticipantJoinByRequest &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleNoForwards::ID:
+ func(static_cast<channelAdminLogEventActionToggleNoForwards &>(obj));
+ return true;
+ case channelAdminLogEventActionSendMessage::ID:
+ func(static_cast<channelAdminLogEventActionSendMessage &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeAvailableReactions::ID:
+ func(static_cast<channelAdminLogEventActionChangeAvailableReactions &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeUsernames::ID:
+ func(static_cast<channelAdminLogEventActionChangeUsernames &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleForum::ID:
+ func(static_cast<channelAdminLogEventActionToggleForum &>(obj));
+ return true;
+ case channelAdminLogEventActionCreateTopic::ID:
+ func(static_cast<channelAdminLogEventActionCreateTopic &>(obj));
+ return true;
+ case channelAdminLogEventActionEditTopic::ID:
+ func(static_cast<channelAdminLogEventActionEditTopic &>(obj));
+ return true;
+ case channelAdminLogEventActionDeleteTopic::ID:
+ func(static_cast<channelAdminLogEventActionDeleteTopic &>(obj));
+ return true;
+ case channelAdminLogEventActionPinTopic::ID:
+ func(static_cast<channelAdminLogEventActionPinTopic &>(obj));
+ return true;
+ case channelAdminLogEventsFilter::ID:
+ func(static_cast<channelAdminLogEventsFilter &>(obj));
+ return true;
+ case channelLocationEmpty::ID:
+ func(static_cast<channelLocationEmpty &>(obj));
+ return true;
+ case channelLocation::ID:
+ func(static_cast<channelLocation &>(obj));
+ return true;
+ case channelMessagesFilterEmpty::ID:
+ func(static_cast<channelMessagesFilterEmpty &>(obj));
+ return true;
+ case channelMessagesFilter::ID:
+ func(static_cast<channelMessagesFilter &>(obj));
+ return true;
+ case channelParticipant::ID:
+ func(static_cast<channelParticipant &>(obj));
+ return true;
+ case channelParticipantSelf::ID:
+ func(static_cast<channelParticipantSelf &>(obj));
+ return true;
+ case channelParticipantCreator::ID:
+ func(static_cast<channelParticipantCreator &>(obj));
+ return true;
+ case channelParticipantAdmin::ID:
+ func(static_cast<channelParticipantAdmin &>(obj));
+ return true;
+ case channelParticipantBanned::ID:
+ func(static_cast<channelParticipantBanned &>(obj));
+ return true;
+ case channelParticipantLeft::ID:
+ func(static_cast<channelParticipantLeft &>(obj));
+ return true;
+ case channelParticipantsRecent::ID:
+ func(static_cast<channelParticipantsRecent &>(obj));
+ return true;
+ case channelParticipantsAdmins::ID:
+ func(static_cast<channelParticipantsAdmins &>(obj));
+ return true;
+ case channelParticipantsKicked::ID:
+ func(static_cast<channelParticipantsKicked &>(obj));
+ return true;
+ case channelParticipantsBots::ID:
+ func(static_cast<channelParticipantsBots &>(obj));
+ return true;
+ case channelParticipantsBanned::ID:
+ func(static_cast<channelParticipantsBanned &>(obj));
+ return true;
+ case channelParticipantsSearch::ID:
+ func(static_cast<channelParticipantsSearch &>(obj));
+ return true;
+ case channelParticipantsContacts::ID:
+ func(static_cast<channelParticipantsContacts &>(obj));
+ return true;
+ case channelParticipantsMentions::ID:
+ func(static_cast<channelParticipantsMentions &>(obj));
+ return true;
+ case chatEmpty::ID:
+ func(static_cast<chatEmpty &>(obj));
+ return true;
+ case chat::ID:
+ func(static_cast<chat &>(obj));
+ return true;
+ case chatForbidden::ID:
+ func(static_cast<chatForbidden &>(obj));
+ return true;
+ case channel::ID:
+ func(static_cast<channel &>(obj));
+ return true;
+ case channelForbidden::ID:
+ func(static_cast<channelForbidden &>(obj));
+ return true;
+ case chatAdminRights::ID:
+ func(static_cast<chatAdminRights &>(obj));
+ return true;
+ case chatAdminWithInvites::ID:
+ func(static_cast<chatAdminWithInvites &>(obj));
+ return true;
+ case chatBannedRights::ID:
+ func(static_cast<chatBannedRights &>(obj));
+ return true;
+ case chatFull::ID:
+ func(static_cast<chatFull &>(obj));
+ return true;
+ case channelFull::ID:
+ func(static_cast<channelFull &>(obj));
+ return true;
+ case chatInviteAlready::ID:
+ func(static_cast<chatInviteAlready &>(obj));
+ return true;
+ case chatInvite::ID:
+ func(static_cast<chatInvite &>(obj));
+ return true;
+ case chatInvitePeek::ID:
+ func(static_cast<chatInvitePeek &>(obj));
+ return true;
+ case chatInviteImporter::ID:
+ func(static_cast<chatInviteImporter &>(obj));
+ return true;
+ case chatOnlines::ID:
+ func(static_cast<chatOnlines &>(obj));
+ return true;
+ case chatParticipant::ID:
+ func(static_cast<chatParticipant &>(obj));
+ return true;
+ case chatParticipantCreator::ID:
+ func(static_cast<chatParticipantCreator &>(obj));
+ return true;
+ case chatParticipantAdmin::ID:
+ func(static_cast<chatParticipantAdmin &>(obj));
+ return true;
+ case chatParticipantsForbidden::ID:
+ func(static_cast<chatParticipantsForbidden &>(obj));
+ return true;
+ case chatParticipants::ID:
+ func(static_cast<chatParticipants &>(obj));
+ return true;
+ case chatPhotoEmpty::ID:
+ func(static_cast<chatPhotoEmpty &>(obj));
+ return true;
+ case chatPhoto::ID:
+ func(static_cast<chatPhoto &>(obj));
+ return true;
+ case chatReactionsNone::ID:
+ func(static_cast<chatReactionsNone &>(obj));
+ return true;
+ case chatReactionsAll::ID:
+ func(static_cast<chatReactionsAll &>(obj));
+ return true;
+ case chatReactionsSome::ID:
+ func(static_cast<chatReactionsSome &>(obj));
+ return true;
+ case codeSettings::ID:
+ func(static_cast<codeSettings &>(obj));
+ return true;
+ case config::ID:
+ func(static_cast<config &>(obj));
+ return true;
+ case contact::ID:
+ func(static_cast<contact &>(obj));
+ return true;
+ case contactStatus::ID:
+ func(static_cast<contactStatus &>(obj));
+ return true;
+ case dataJSON::ID:
+ func(static_cast<dataJSON &>(obj));
+ return true;
+ case dcOption::ID:
+ func(static_cast<dcOption &>(obj));
+ return true;
+ case dialog::ID:
+ func(static_cast<dialog &>(obj));
+ return true;
+ case dialogFolder::ID:
+ func(static_cast<dialogFolder &>(obj));
+ return true;
+ case dialogFilter::ID:
+ func(static_cast<dialogFilter &>(obj));
+ return true;
+ case dialogFilterDefault::ID:
+ func(static_cast<dialogFilterDefault &>(obj));
+ return true;
+ case dialogFilterSuggested::ID:
+ func(static_cast<dialogFilterSuggested &>(obj));
+ return true;
+ case dialogPeer::ID:
+ func(static_cast<dialogPeer &>(obj));
+ return true;
+ case dialogPeerFolder::ID:
+ func(static_cast<dialogPeerFolder &>(obj));
+ return true;
+ case documentEmpty::ID:
+ func(static_cast<documentEmpty &>(obj));
+ return true;
+ case document::ID:
+ func(static_cast<document &>(obj));
+ return true;
+ case documentAttributeImageSize::ID:
+ func(static_cast<documentAttributeImageSize &>(obj));
+ return true;
+ case documentAttributeAnimated::ID:
+ func(static_cast<documentAttributeAnimated &>(obj));
+ return true;
+ case documentAttributeSticker::ID:
+ func(static_cast<documentAttributeSticker &>(obj));
+ return true;
+ case documentAttributeVideo::ID:
+ func(static_cast<documentAttributeVideo &>(obj));
+ return true;
+ case documentAttributeAudio::ID:
+ func(static_cast<documentAttributeAudio &>(obj));
+ return true;
+ case documentAttributeFilename::ID:
+ func(static_cast<documentAttributeFilename &>(obj));
+ return true;
+ case documentAttributeHasStickers::ID:
+ func(static_cast<documentAttributeHasStickers &>(obj));
+ return true;
+ case documentAttributeCustomEmoji::ID:
+ func(static_cast<documentAttributeCustomEmoji &>(obj));
+ return true;
+ case draftMessageEmpty::ID:
+ func(static_cast<draftMessageEmpty &>(obj));
+ return true;
+ case draftMessage::ID:
+ func(static_cast<draftMessage &>(obj));
+ return true;
+ case emailVerificationCode::ID:
+ func(static_cast<emailVerificationCode &>(obj));
+ return true;
+ case emailVerificationGoogle::ID:
+ func(static_cast<emailVerificationGoogle &>(obj));
+ return true;
+ case emailVerificationApple::ID:
+ func(static_cast<emailVerificationApple &>(obj));
+ return true;
+ case emailVerifyPurposeLoginSetup::ID:
+ func(static_cast<emailVerifyPurposeLoginSetup &>(obj));
+ return true;
+ case emailVerifyPurposeLoginChange::ID:
+ func(static_cast<emailVerifyPurposeLoginChange &>(obj));
+ return true;
+ case emailVerifyPurposePassport::ID:
+ func(static_cast<emailVerifyPurposePassport &>(obj));
+ return true;
+ case emojiKeyword::ID:
+ func(static_cast<emojiKeyword &>(obj));
+ return true;
+ case emojiKeywordDeleted::ID:
+ func(static_cast<emojiKeywordDeleted &>(obj));
+ return true;
+ case emojiKeywordsDifference::ID:
+ func(static_cast<emojiKeywordsDifference &>(obj));
+ return true;
+ case emojiLanguage::ID:
+ func(static_cast<emojiLanguage &>(obj));
+ return true;
+ case emojiStatusEmpty::ID:
+ func(static_cast<emojiStatusEmpty &>(obj));
+ return true;
+ case emojiStatus::ID:
+ func(static_cast<emojiStatus &>(obj));
+ return true;
+ case emojiStatusUntil::ID:
+ func(static_cast<emojiStatusUntil &>(obj));
+ return true;
+ case emojiURL::ID:
+ func(static_cast<emojiURL &>(obj));
+ return true;
+ case encryptedChatEmpty::ID:
+ func(static_cast<encryptedChatEmpty &>(obj));
+ return true;
+ case encryptedChatWaiting::ID:
+ func(static_cast<encryptedChatWaiting &>(obj));
+ return true;
+ case encryptedChatRequested::ID:
+ func(static_cast<encryptedChatRequested &>(obj));
+ return true;
+ case encryptedChat::ID:
+ func(static_cast<encryptedChat &>(obj));
+ return true;
+ case encryptedChatDiscarded::ID:
+ func(static_cast<encryptedChatDiscarded &>(obj));
+ return true;
+ case encryptedFileEmpty::ID:
+ func(static_cast<encryptedFileEmpty &>(obj));
+ return true;
+ case encryptedFile::ID:
+ func(static_cast<encryptedFile &>(obj));
+ return true;
+ case encryptedMessage::ID:
+ func(static_cast<encryptedMessage &>(obj));
+ return true;
+ case encryptedMessageService::ID:
+ func(static_cast<encryptedMessageService &>(obj));
+ return true;
+ case error::ID:
+ func(static_cast<error &>(obj));
+ return true;
+ case chatInviteExported::ID:
+ func(static_cast<chatInviteExported &>(obj));
+ return true;
+ case chatInvitePublicJoinRequests::ID:
+ func(static_cast<chatInvitePublicJoinRequests &>(obj));
+ return true;
+ case exportedMessageLink::ID:
+ func(static_cast<exportedMessageLink &>(obj));
+ return true;
+ case fileHash::ID:
+ func(static_cast<fileHash &>(obj));
+ return true;
+ case folder::ID:
+ func(static_cast<folder &>(obj));
+ return true;
+ case folderPeer::ID:
+ func(static_cast<folderPeer &>(obj));
+ return true;
+ case forumTopicDeleted::ID:
+ func(static_cast<forumTopicDeleted &>(obj));
+ return true;
+ case forumTopic::ID:
+ func(static_cast<forumTopic &>(obj));
+ return true;
+ case game::ID:
+ func(static_cast<game &>(obj));
+ return true;
+ case geoPointEmpty::ID:
+ func(static_cast<geoPointEmpty &>(obj));
+ return true;
+ case geoPoint::ID:
+ func(static_cast<geoPoint &>(obj));
+ return true;
+ case globalPrivacySettings::ID:
+ func(static_cast<globalPrivacySettings &>(obj));
+ return true;
+ case groupCallDiscarded::ID:
+ func(static_cast<groupCallDiscarded &>(obj));
+ return true;
+ case groupCall::ID:
+ func(static_cast<groupCall &>(obj));
+ return true;
+ case groupCallParticipant::ID:
+ func(static_cast<groupCallParticipant &>(obj));
+ return true;
+ case groupCallParticipantVideo::ID:
+ func(static_cast<groupCallParticipantVideo &>(obj));
+ return true;
+ case groupCallParticipantVideoSourceGroup::ID:
+ func(static_cast<groupCallParticipantVideoSourceGroup &>(obj));
+ return true;
+ case groupCallStreamChannel::ID:
+ func(static_cast<groupCallStreamChannel &>(obj));
+ return true;
+ case highScore::ID:
+ func(static_cast<highScore &>(obj));
+ return true;
+ case importedContact::ID:
+ func(static_cast<importedContact &>(obj));
+ return true;
+ case inlineBotSwitchPM::ID:
+ func(static_cast<inlineBotSwitchPM &>(obj));
+ return true;
+ case inlineQueryPeerTypeSameBotPM::ID:
+ func(static_cast<inlineQueryPeerTypeSameBotPM &>(obj));
+ return true;
+ case inlineQueryPeerTypePM::ID:
+ func(static_cast<inlineQueryPeerTypePM &>(obj));
+ return true;
+ case inlineQueryPeerTypeChat::ID:
+ func(static_cast<inlineQueryPeerTypeChat &>(obj));
+ return true;
+ case inlineQueryPeerTypeMegagroup::ID:
+ func(static_cast<inlineQueryPeerTypeMegagroup &>(obj));
+ return true;
+ case inlineQueryPeerTypeBroadcast::ID:
+ func(static_cast<inlineQueryPeerTypeBroadcast &>(obj));
+ return true;
+ case inputAppEvent::ID:
+ func(static_cast<inputAppEvent &>(obj));
+ return true;
+ case inputBotInlineMessageMediaAuto::ID:
+ func(static_cast<inputBotInlineMessageMediaAuto &>(obj));
+ return true;
+ case inputBotInlineMessageText::ID:
+ func(static_cast<inputBotInlineMessageText &>(obj));
+ return true;
+ case inputBotInlineMessageMediaGeo::ID:
+ func(static_cast<inputBotInlineMessageMediaGeo &>(obj));
+ return true;
+ case inputBotInlineMessageMediaVenue::ID:
+ func(static_cast<inputBotInlineMessageMediaVenue &>(obj));
+ return true;
+ case inputBotInlineMessageMediaContact::ID:
+ func(static_cast<inputBotInlineMessageMediaContact &>(obj));
+ return true;
+ case inputBotInlineMessageGame::ID:
+ func(static_cast<inputBotInlineMessageGame &>(obj));
+ return true;
+ case inputBotInlineMessageMediaInvoice::ID:
+ func(static_cast<inputBotInlineMessageMediaInvoice &>(obj));
+ return true;
+ case inputBotInlineMessageID::ID:
+ func(static_cast<inputBotInlineMessageID &>(obj));
+ return true;
+ case inputBotInlineMessageID64::ID:
+ func(static_cast<inputBotInlineMessageID64 &>(obj));
+ return true;
+ case inputBotInlineResult::ID:
+ func(static_cast<inputBotInlineResult &>(obj));
+ return true;
+ case inputBotInlineResultPhoto::ID:
+ func(static_cast<inputBotInlineResultPhoto &>(obj));
+ return true;
+ case inputBotInlineResultDocument::ID:
+ func(static_cast<inputBotInlineResultDocument &>(obj));
+ return true;
+ case inputBotInlineResultGame::ID:
+ func(static_cast<inputBotInlineResultGame &>(obj));
+ return true;
+ case inputChannelEmpty::ID:
+ func(static_cast<inputChannelEmpty &>(obj));
+ return true;
+ case inputChannel::ID:
+ func(static_cast<inputChannel &>(obj));
+ return true;
+ case inputChannelFromMessage::ID:
+ func(static_cast<inputChannelFromMessage &>(obj));
+ return true;
+ case inputChatPhotoEmpty::ID:
+ func(static_cast<inputChatPhotoEmpty &>(obj));
+ return true;
+ case inputChatUploadedPhoto::ID:
+ func(static_cast<inputChatUploadedPhoto &>(obj));
+ return true;
+ case inputChatPhoto::ID:
+ func(static_cast<inputChatPhoto &>(obj));
+ return true;
+ case inputCheckPasswordEmpty::ID:
+ func(static_cast<inputCheckPasswordEmpty &>(obj));
+ return true;
+ case inputCheckPasswordSRP::ID:
+ func(static_cast<inputCheckPasswordSRP &>(obj));
+ return true;
+ case inputClientProxy::ID:
+ func(static_cast<inputClientProxy &>(obj));
+ return true;
+ case inputPhoneContact::ID:
+ func(static_cast<inputPhoneContact &>(obj));
+ return true;
+ case inputDialogPeer::ID:
+ func(static_cast<inputDialogPeer &>(obj));
+ return true;
+ case inputDialogPeerFolder::ID:
+ func(static_cast<inputDialogPeerFolder &>(obj));
+ return true;
+ case inputDocumentEmpty::ID:
+ func(static_cast<inputDocumentEmpty &>(obj));
+ return true;
+ case inputDocument::ID:
+ func(static_cast<inputDocument &>(obj));
+ return true;
+ case inputEncryptedChat::ID:
+ func(static_cast<inputEncryptedChat &>(obj));
+ return true;
+ case inputEncryptedFileEmpty::ID:
+ func(static_cast<inputEncryptedFileEmpty &>(obj));
+ return true;
+ case inputEncryptedFileUploaded::ID:
+ func(static_cast<inputEncryptedFileUploaded &>(obj));
+ return true;
+ case inputEncryptedFile::ID:
+ func(static_cast<inputEncryptedFile &>(obj));
+ return true;
+ case inputEncryptedFileBigUploaded::ID:
+ func(static_cast<inputEncryptedFileBigUploaded &>(obj));
+ return true;
+ case inputFile::ID:
+ func(static_cast<inputFile &>(obj));
+ return true;
+ case inputFileBig::ID:
+ func(static_cast<inputFileBig &>(obj));
+ return true;
+ case inputPeerPhotoFileLocationLegacy::ID:
+ func(static_cast<inputPeerPhotoFileLocationLegacy &>(obj));
+ return true;
+ case inputStickerSetThumbLegacy::ID:
+ func(static_cast<inputStickerSetThumbLegacy &>(obj));
+ return true;
+ case inputFileLocation::ID:
+ func(static_cast<inputFileLocation &>(obj));
+ return true;
+ case inputEncryptedFileLocation::ID:
+ func(static_cast<inputEncryptedFileLocation &>(obj));
+ return true;
+ case inputDocumentFileLocation::ID:
+ func(static_cast<inputDocumentFileLocation &>(obj));
+ return true;
+ case inputSecureFileLocation::ID:
+ func(static_cast<inputSecureFileLocation &>(obj));
+ return true;
+ case inputTakeoutFileLocation::ID:
+ func(static_cast<inputTakeoutFileLocation &>(obj));
+ return true;
+ case inputPhotoFileLocation::ID:
+ func(static_cast<inputPhotoFileLocation &>(obj));
+ return true;
+ case inputPhotoLegacyFileLocation::ID:
+ func(static_cast<inputPhotoLegacyFileLocation &>(obj));
+ return true;
+ case inputPeerPhotoFileLocation::ID:
+ func(static_cast<inputPeerPhotoFileLocation &>(obj));
+ return true;
+ case inputStickerSetThumb::ID:
+ func(static_cast<inputStickerSetThumb &>(obj));
+ return true;
+ case inputGroupCallStream::ID:
+ func(static_cast<inputGroupCallStream &>(obj));
+ return true;
+ case inputFolderPeer::ID:
+ func(static_cast<inputFolderPeer &>(obj));
+ return true;
+ case inputGameID::ID:
+ func(static_cast<inputGameID &>(obj));
+ return true;
+ case inputGameShortName::ID:
+ func(static_cast<inputGameShortName &>(obj));
+ return true;
+ case inputGeoPointEmpty::ID:
+ func(static_cast<inputGeoPointEmpty &>(obj));
+ return true;
+ case inputGeoPoint::ID:
+ func(static_cast<inputGeoPoint &>(obj));
+ return true;
+ case inputGroupCall::ID:
+ func(static_cast<inputGroupCall &>(obj));
+ return true;
+ case inputInvoiceMessage::ID:
+ func(static_cast<inputInvoiceMessage &>(obj));
+ return true;
+ case inputInvoiceSlug::ID:
+ func(static_cast<inputInvoiceSlug &>(obj));
+ return true;
+ case inputMediaEmpty::ID:
+ func(static_cast<inputMediaEmpty &>(obj));
+ return true;
+ case inputMediaUploadedPhoto::ID:
+ func(static_cast<inputMediaUploadedPhoto &>(obj));
+ return true;
+ case inputMediaPhoto::ID:
+ func(static_cast<inputMediaPhoto &>(obj));
+ return true;
+ case inputMediaGeoPoint::ID:
+ func(static_cast<inputMediaGeoPoint &>(obj));
+ return true;
+ case inputMediaContact::ID:
+ func(static_cast<inputMediaContact &>(obj));
+ return true;
+ case inputMediaUploadedDocument::ID:
+ func(static_cast<inputMediaUploadedDocument &>(obj));
+ return true;
+ case inputMediaDocument::ID:
+ func(static_cast<inputMediaDocument &>(obj));
+ return true;
+ case inputMediaVenue::ID:
+ func(static_cast<inputMediaVenue &>(obj));
+ return true;
+ case inputMediaPhotoExternal::ID:
+ func(static_cast<inputMediaPhotoExternal &>(obj));
+ return true;
+ case inputMediaDocumentExternal::ID:
+ func(static_cast<inputMediaDocumentExternal &>(obj));
+ return true;
+ case inputMediaGame::ID:
+ func(static_cast<inputMediaGame &>(obj));
+ return true;
+ case inputMediaInvoice::ID:
+ func(static_cast<inputMediaInvoice &>(obj));
+ return true;
+ case inputMediaGeoLive::ID:
+ func(static_cast<inputMediaGeoLive &>(obj));
+ return true;
+ case inputMediaPoll::ID:
+ func(static_cast<inputMediaPoll &>(obj));
+ return true;
+ case inputMediaDice::ID:
+ func(static_cast<inputMediaDice &>(obj));
+ return true;
+ case inputMessageID::ID:
+ func(static_cast<inputMessageID &>(obj));
+ return true;
+ case inputMessageReplyTo::ID:
+ func(static_cast<inputMessageReplyTo &>(obj));
+ return true;
+ case inputMessagePinned::ID:
+ func(static_cast<inputMessagePinned &>(obj));
+ return true;
+ case inputMessageCallbackQuery::ID:
+ func(static_cast<inputMessageCallbackQuery &>(obj));
+ return true;
+ case inputNotifyPeer::ID:
+ func(static_cast<inputNotifyPeer &>(obj));
+ return true;
+ case inputNotifyUsers::ID:
+ func(static_cast<inputNotifyUsers &>(obj));
+ return true;
+ case inputNotifyChats::ID:
+ func(static_cast<inputNotifyChats &>(obj));
+ return true;
+ case inputNotifyBroadcasts::ID:
+ func(static_cast<inputNotifyBroadcasts &>(obj));
+ return true;
+ case inputNotifyForumTopic::ID:
+ func(static_cast<inputNotifyForumTopic &>(obj));
+ return true;
+ case inputPaymentCredentialsSaved::ID:
+ func(static_cast<inputPaymentCredentialsSaved &>(obj));
+ return true;
+ case inputPaymentCredentials::ID:
+ func(static_cast<inputPaymentCredentials &>(obj));
+ return true;
+ case inputPaymentCredentialsApplePay::ID:
+ func(static_cast<inputPaymentCredentialsApplePay &>(obj));
+ return true;
+ case inputPaymentCredentialsGooglePay::ID:
+ func(static_cast<inputPaymentCredentialsGooglePay &>(obj));
+ return true;
+ case inputPeerEmpty::ID:
+ func(static_cast<inputPeerEmpty &>(obj));
+ return true;
+ case inputPeerSelf::ID:
+ func(static_cast<inputPeerSelf &>(obj));
+ return true;
+ case inputPeerChat::ID:
+ func(static_cast<inputPeerChat &>(obj));
+ return true;
+ case inputPeerUser::ID:
+ func(static_cast<inputPeerUser &>(obj));
+ return true;
+ case inputPeerChannel::ID:
+ func(static_cast<inputPeerChannel &>(obj));
+ return true;
+ case inputPeerUserFromMessage::ID:
+ func(static_cast<inputPeerUserFromMessage &>(obj));
+ return true;
+ case inputPeerChannelFromMessage::ID:
+ func(static_cast<inputPeerChannelFromMessage &>(obj));
+ return true;
+ case inputPeerNotifySettings::ID:
+ func(static_cast<inputPeerNotifySettings &>(obj));
+ return true;
+ case inputPhoneCall::ID:
+ func(static_cast<inputPhoneCall &>(obj));
+ return true;
+ case inputPhotoEmpty::ID:
+ func(static_cast<inputPhotoEmpty &>(obj));
+ return true;
+ case inputPhoto::ID:
+ func(static_cast<inputPhoto &>(obj));
+ return true;
+ case inputPrivacyKeyStatusTimestamp::ID:
+ func(static_cast<inputPrivacyKeyStatusTimestamp &>(obj));
+ return true;
+ case inputPrivacyKeyChatInvite::ID:
+ func(static_cast<inputPrivacyKeyChatInvite &>(obj));
+ return true;
+ case inputPrivacyKeyPhoneCall::ID:
+ func(static_cast<inputPrivacyKeyPhoneCall &>(obj));
+ return true;
+ case inputPrivacyKeyPhoneP2P::ID:
+ func(static_cast<inputPrivacyKeyPhoneP2P &>(obj));
+ return true;
+ case inputPrivacyKeyForwards::ID:
+ func(static_cast<inputPrivacyKeyForwards &>(obj));
+ return true;
+ case inputPrivacyKeyProfilePhoto::ID:
+ func(static_cast<inputPrivacyKeyProfilePhoto &>(obj));
+ return true;
+ case inputPrivacyKeyPhoneNumber::ID:
+ func(static_cast<inputPrivacyKeyPhoneNumber &>(obj));
+ return true;
+ case inputPrivacyKeyAddedByPhone::ID:
+ func(static_cast<inputPrivacyKeyAddedByPhone &>(obj));
+ return true;
+ case inputPrivacyKeyVoiceMessages::ID:
+ func(static_cast<inputPrivacyKeyVoiceMessages &>(obj));
+ return true;
+ case inputPrivacyValueAllowContacts::ID:
+ func(static_cast<inputPrivacyValueAllowContacts &>(obj));
+ return true;
+ case inputPrivacyValueAllowAll::ID:
+ func(static_cast<inputPrivacyValueAllowAll &>(obj));
+ return true;
+ case inputPrivacyValueAllowUsers::ID:
+ func(static_cast<inputPrivacyValueAllowUsers &>(obj));
+ return true;
+ case inputPrivacyValueDisallowContacts::ID:
+ func(static_cast<inputPrivacyValueDisallowContacts &>(obj));
+ return true;
+ case inputPrivacyValueDisallowAll::ID:
+ func(static_cast<inputPrivacyValueDisallowAll &>(obj));
+ return true;
+ case inputPrivacyValueDisallowUsers::ID:
+ func(static_cast<inputPrivacyValueDisallowUsers &>(obj));
+ return true;
+ case inputPrivacyValueAllowChatParticipants::ID:
+ func(static_cast<inputPrivacyValueAllowChatParticipants &>(obj));
+ return true;
+ case inputPrivacyValueDisallowChatParticipants::ID:
+ func(static_cast<inputPrivacyValueDisallowChatParticipants &>(obj));
+ return true;
+ case inputSecureFileUploaded::ID:
+ func(static_cast<inputSecureFileUploaded &>(obj));
+ return true;
+ case inputSecureFile::ID:
+ func(static_cast<inputSecureFile &>(obj));
+ return true;
+ case inputSecureValue::ID:
+ func(static_cast<inputSecureValue &>(obj));
+ return true;
+ case inputSingleMedia::ID:
+ func(static_cast<inputSingleMedia &>(obj));
+ return true;
+ case inputStickerSetEmpty::ID:
+ func(static_cast<inputStickerSetEmpty &>(obj));
+ return true;
+ case inputStickerSetID::ID:
+ func(static_cast<inputStickerSetID &>(obj));
+ return true;
+ case inputStickerSetShortName::ID:
+ func(static_cast<inputStickerSetShortName &>(obj));
+ return true;
+ case inputStickerSetAnimatedEmoji::ID:
+ func(static_cast<inputStickerSetAnimatedEmoji &>(obj));
+ return true;
+ case inputStickerSetDice::ID:
+ func(static_cast<inputStickerSetDice &>(obj));
+ return true;
+ case inputStickerSetAnimatedEmojiAnimations::ID:
+ func(static_cast<inputStickerSetAnimatedEmojiAnimations &>(obj));
+ return true;
+ case inputStickerSetPremiumGifts::ID:
+ func(static_cast<inputStickerSetPremiumGifts &>(obj));
+ return true;
+ case inputStickerSetEmojiGenericAnimations::ID:
+ func(static_cast<inputStickerSetEmojiGenericAnimations &>(obj));
+ return true;
+ case inputStickerSetEmojiDefaultStatuses::ID:
+ func(static_cast<inputStickerSetEmojiDefaultStatuses &>(obj));
+ return true;
+ case inputStickerSetEmojiDefaultTopicIcons::ID:
+ func(static_cast<inputStickerSetEmojiDefaultTopicIcons &>(obj));
+ return true;
+ case inputStickerSetItem::ID:
+ func(static_cast<inputStickerSetItem &>(obj));
+ return true;
+ case inputStickeredMediaPhoto::ID:
+ func(static_cast<inputStickeredMediaPhoto &>(obj));
+ return true;
+ case inputStickeredMediaDocument::ID:
+ func(static_cast<inputStickeredMediaDocument &>(obj));
+ return true;
+ case inputStorePaymentPremiumSubscription::ID:
+ func(static_cast<inputStorePaymentPremiumSubscription &>(obj));
+ return true;
+ case inputStorePaymentGiftPremium::ID:
+ func(static_cast<inputStorePaymentGiftPremium &>(obj));
+ return true;
+ case inputTheme::ID:
+ func(static_cast<inputTheme &>(obj));
+ return true;
+ case inputThemeSlug::ID:
+ func(static_cast<inputThemeSlug &>(obj));
+ return true;
+ case inputThemeSettings::ID:
+ func(static_cast<inputThemeSettings &>(obj));
+ return true;
+ case inputUserEmpty::ID:
+ func(static_cast<inputUserEmpty &>(obj));
+ return true;
+ case inputUserSelf::ID:
+ func(static_cast<inputUserSelf &>(obj));
+ return true;
+ case inputUser::ID:
+ func(static_cast<inputUser &>(obj));
+ return true;
+ case inputUserFromMessage::ID:
+ func(static_cast<inputUserFromMessage &>(obj));
+ return true;
+ case inputWallPaper::ID:
+ func(static_cast<inputWallPaper &>(obj));
+ return true;
+ case inputWallPaperSlug::ID:
+ func(static_cast<inputWallPaperSlug &>(obj));
+ return true;
+ case inputWallPaperNoFile::ID:
+ func(static_cast<inputWallPaperNoFile &>(obj));
+ return true;
+ case inputWebDocument::ID:
+ func(static_cast<inputWebDocument &>(obj));
+ return true;
+ case inputWebFileLocation::ID:
+ func(static_cast<inputWebFileLocation &>(obj));
+ return true;
+ case inputWebFileGeoPointLocation::ID:
+ func(static_cast<inputWebFileGeoPointLocation &>(obj));
+ return true;
+ case inputWebFileAudioAlbumThumbLocation::ID:
+ func(static_cast<inputWebFileAudioAlbumThumbLocation &>(obj));
+ return true;
+ case invoice::ID:
+ func(static_cast<invoice &>(obj));
+ return true;
+ case ipPort::ID:
+ func(static_cast<ipPort &>(obj));
+ return true;
+ case ipPortSecret::ID:
+ func(static_cast<ipPortSecret &>(obj));
+ return true;
+ case jsonObjectValue::ID:
+ func(static_cast<jsonObjectValue &>(obj));
+ return true;
+ case jsonNull::ID:
+ func(static_cast<jsonNull &>(obj));
+ return true;
+ case jsonBool::ID:
+ func(static_cast<jsonBool &>(obj));
+ return true;
+ case jsonNumber::ID:
+ func(static_cast<jsonNumber &>(obj));
+ return true;
+ case jsonString::ID:
+ func(static_cast<jsonString &>(obj));
+ return true;
+ case jsonArray::ID:
+ func(static_cast<jsonArray &>(obj));
+ return true;
+ case jsonObject::ID:
+ func(static_cast<jsonObject &>(obj));
+ return true;
+ case keyboardButton::ID:
+ func(static_cast<keyboardButton &>(obj));
+ return true;
+ case keyboardButtonUrl::ID:
+ func(static_cast<keyboardButtonUrl &>(obj));
+ return true;
+ case keyboardButtonCallback::ID:
+ func(static_cast<keyboardButtonCallback &>(obj));
+ return true;
+ case keyboardButtonRequestPhone::ID:
+ func(static_cast<keyboardButtonRequestPhone &>(obj));
+ return true;
+ case keyboardButtonRequestGeoLocation::ID:
+ func(static_cast<keyboardButtonRequestGeoLocation &>(obj));
+ return true;
+ case keyboardButtonSwitchInline::ID:
+ func(static_cast<keyboardButtonSwitchInline &>(obj));
+ return true;
+ case keyboardButtonGame::ID:
+ func(static_cast<keyboardButtonGame &>(obj));
+ return true;
+ case keyboardButtonBuy::ID:
+ func(static_cast<keyboardButtonBuy &>(obj));
+ return true;
+ case keyboardButtonUrlAuth::ID:
+ func(static_cast<keyboardButtonUrlAuth &>(obj));
+ return true;
+ case inputKeyboardButtonUrlAuth::ID:
+ func(static_cast<inputKeyboardButtonUrlAuth &>(obj));
+ return true;
+ case keyboardButtonRequestPoll::ID:
+ func(static_cast<keyboardButtonRequestPoll &>(obj));
+ return true;
+ case inputKeyboardButtonUserProfile::ID:
+ func(static_cast<inputKeyboardButtonUserProfile &>(obj));
+ return true;
+ case keyboardButtonUserProfile::ID:
+ func(static_cast<keyboardButtonUserProfile &>(obj));
+ return true;
+ case keyboardButtonWebView::ID:
+ func(static_cast<keyboardButtonWebView &>(obj));
+ return true;
+ case keyboardButtonSimpleWebView::ID:
+ func(static_cast<keyboardButtonSimpleWebView &>(obj));
+ return true;
+ case keyboardButtonRow::ID:
+ func(static_cast<keyboardButtonRow &>(obj));
+ return true;
+ case labeledPrice::ID:
+ func(static_cast<labeledPrice &>(obj));
+ return true;
+ case langPackDifference::ID:
+ func(static_cast<langPackDifference &>(obj));
+ return true;
+ case langPackLanguage::ID:
+ func(static_cast<langPackLanguage &>(obj));
+ return true;
+ case langPackString::ID:
+ func(static_cast<langPackString &>(obj));
+ return true;
+ case langPackStringPluralized::ID:
+ func(static_cast<langPackStringPluralized &>(obj));
+ return true;
+ case langPackStringDeleted::ID:
+ func(static_cast<langPackStringDeleted &>(obj));
+ return true;
+ case maskCoords::ID:
+ func(static_cast<maskCoords &>(obj));
+ return true;
+ case messageEmpty::ID:
+ func(static_cast<messageEmpty &>(obj));
+ return true;
+ case message::ID:
+ func(static_cast<message &>(obj));
+ return true;
+ case messageService::ID:
+ func(static_cast<messageService &>(obj));
+ return true;
+ case messageActionEmpty::ID:
+ func(static_cast<messageActionEmpty &>(obj));
+ return true;
+ case messageActionChatCreate::ID:
+ func(static_cast<messageActionChatCreate &>(obj));
+ return true;
+ case messageActionChatEditTitle::ID:
+ func(static_cast<messageActionChatEditTitle &>(obj));
+ return true;
+ case messageActionChatEditPhoto::ID:
+ func(static_cast<messageActionChatEditPhoto &>(obj));
+ return true;
+ case messageActionChatDeletePhoto::ID:
+ func(static_cast<messageActionChatDeletePhoto &>(obj));
+ return true;
+ case messageActionChatAddUser::ID:
+ func(static_cast<messageActionChatAddUser &>(obj));
+ return true;
+ case messageActionChatDeleteUser::ID:
+ func(static_cast<messageActionChatDeleteUser &>(obj));
+ return true;
+ case messageActionChatJoinedByLink::ID:
+ func(static_cast<messageActionChatJoinedByLink &>(obj));
+ return true;
+ case messageActionChannelCreate::ID:
+ func(static_cast<messageActionChannelCreate &>(obj));
+ return true;
+ case messageActionChatMigrateTo::ID:
+ func(static_cast<messageActionChatMigrateTo &>(obj));
+ return true;
+ case messageActionChannelMigrateFrom::ID:
+ func(static_cast<messageActionChannelMigrateFrom &>(obj));
+ return true;
+ case messageActionPinMessage::ID:
+ func(static_cast<messageActionPinMessage &>(obj));
+ return true;
+ case messageActionHistoryClear::ID:
+ func(static_cast<messageActionHistoryClear &>(obj));
+ return true;
+ case messageActionGameScore::ID:
+ func(static_cast<messageActionGameScore &>(obj));
+ return true;
+ case messageActionPaymentSentMe::ID:
+ func(static_cast<messageActionPaymentSentMe &>(obj));
+ return true;
+ case messageActionPaymentSent::ID:
+ func(static_cast<messageActionPaymentSent &>(obj));
+ return true;
+ case messageActionPhoneCall::ID:
+ func(static_cast<messageActionPhoneCall &>(obj));
+ return true;
+ case messageActionScreenshotTaken::ID:
+ func(static_cast<messageActionScreenshotTaken &>(obj));
+ return true;
+ case messageActionCustomAction::ID:
+ func(static_cast<messageActionCustomAction &>(obj));
+ return true;
+ case messageActionBotAllowed::ID:
+ func(static_cast<messageActionBotAllowed &>(obj));
+ return true;
+ case messageActionSecureValuesSentMe::ID:
+ func(static_cast<messageActionSecureValuesSentMe &>(obj));
+ return true;
+ case messageActionSecureValuesSent::ID:
+ func(static_cast<messageActionSecureValuesSent &>(obj));
+ return true;
+ case messageActionContactSignUp::ID:
+ func(static_cast<messageActionContactSignUp &>(obj));
+ return true;
+ case messageActionGeoProximityReached::ID:
+ func(static_cast<messageActionGeoProximityReached &>(obj));
+ return true;
+ case messageActionGroupCall::ID:
+ func(static_cast<messageActionGroupCall &>(obj));
+ return true;
+ case messageActionInviteToGroupCall::ID:
+ func(static_cast<messageActionInviteToGroupCall &>(obj));
+ return true;
+ case messageActionSetMessagesTTL::ID:
+ func(static_cast<messageActionSetMessagesTTL &>(obj));
+ return true;
+ case messageActionGroupCallScheduled::ID:
+ func(static_cast<messageActionGroupCallScheduled &>(obj));
+ return true;
+ case messageActionSetChatTheme::ID:
+ func(static_cast<messageActionSetChatTheme &>(obj));
+ return true;
+ case messageActionChatJoinedByRequest::ID:
+ func(static_cast<messageActionChatJoinedByRequest &>(obj));
+ return true;
+ case messageActionWebViewDataSentMe::ID:
+ func(static_cast<messageActionWebViewDataSentMe &>(obj));
+ return true;
+ case messageActionWebViewDataSent::ID:
+ func(static_cast<messageActionWebViewDataSent &>(obj));
+ return true;
+ case messageActionGiftPremium::ID:
+ func(static_cast<messageActionGiftPremium &>(obj));
+ return true;
+ case messageActionTopicCreate::ID:
+ func(static_cast<messageActionTopicCreate &>(obj));
+ return true;
+ case messageActionTopicEdit::ID:
+ func(static_cast<messageActionTopicEdit &>(obj));
+ return true;
+ case messageEntityUnknown::ID:
+ func(static_cast<messageEntityUnknown &>(obj));
+ return true;
+ case messageEntityMention::ID:
+ func(static_cast<messageEntityMention &>(obj));
+ return true;
+ case messageEntityHashtag::ID:
+ func(static_cast<messageEntityHashtag &>(obj));
+ return true;
+ case messageEntityBotCommand::ID:
+ func(static_cast<messageEntityBotCommand &>(obj));
+ return true;
+ case messageEntityUrl::ID:
+ func(static_cast<messageEntityUrl &>(obj));
+ return true;
+ case messageEntityEmail::ID:
+ func(static_cast<messageEntityEmail &>(obj));
+ return true;
+ case messageEntityBold::ID:
+ func(static_cast<messageEntityBold &>(obj));
+ return true;
+ case messageEntityItalic::ID:
+ func(static_cast<messageEntityItalic &>(obj));
+ return true;
+ case messageEntityCode::ID:
+ func(static_cast<messageEntityCode &>(obj));
+ return true;
+ case messageEntityPre::ID:
+ func(static_cast<messageEntityPre &>(obj));
+ return true;
+ case messageEntityTextUrl::ID:
+ func(static_cast<messageEntityTextUrl &>(obj));
+ return true;
+ case messageEntityMentionName::ID:
+ func(static_cast<messageEntityMentionName &>(obj));
+ return true;
+ case inputMessageEntityMentionName::ID:
+ func(static_cast<inputMessageEntityMentionName &>(obj));
+ return true;
+ case messageEntityPhone::ID:
+ func(static_cast<messageEntityPhone &>(obj));
+ return true;
+ case messageEntityCashtag::ID:
+ func(static_cast<messageEntityCashtag &>(obj));
+ return true;
+ case messageEntityUnderline::ID:
+ func(static_cast<messageEntityUnderline &>(obj));
+ return true;
+ case messageEntityStrike::ID:
+ func(static_cast<messageEntityStrike &>(obj));
+ return true;
+ case messageEntityBlockquote::ID:
+ func(static_cast<messageEntityBlockquote &>(obj));
+ return true;
+ case messageEntityBankCard::ID:
+ func(static_cast<messageEntityBankCard &>(obj));
+ return true;
+ case messageEntitySpoiler::ID:
+ func(static_cast<messageEntitySpoiler &>(obj));
+ return true;
+ case messageEntityCustomEmoji::ID:
+ func(static_cast<messageEntityCustomEmoji &>(obj));
+ return true;
+ case messageExtendedMediaPreview::ID:
+ func(static_cast<messageExtendedMediaPreview &>(obj));
+ return true;
+ case messageExtendedMedia::ID:
+ func(static_cast<messageExtendedMedia &>(obj));
+ return true;
+ case messageFwdHeader::ID:
+ func(static_cast<messageFwdHeader &>(obj));
+ return true;
+ case messageInteractionCounters::ID:
+ func(static_cast<messageInteractionCounters &>(obj));
+ return true;
+ case messageMediaEmpty::ID:
+ func(static_cast<messageMediaEmpty &>(obj));
+ return true;
+ case messageMediaPhoto::ID:
+ func(static_cast<messageMediaPhoto &>(obj));
+ return true;
+ case messageMediaGeo::ID:
+ func(static_cast<messageMediaGeo &>(obj));
+ return true;
+ case messageMediaContact::ID:
+ func(static_cast<messageMediaContact &>(obj));
+ return true;
+ case messageMediaUnsupported::ID:
+ func(static_cast<messageMediaUnsupported &>(obj));
+ return true;
+ case messageMediaDocument::ID:
+ func(static_cast<messageMediaDocument &>(obj));
+ return true;
+ case messageMediaWebPage::ID:
+ func(static_cast<messageMediaWebPage &>(obj));
+ return true;
+ case messageMediaVenue::ID:
+ func(static_cast<messageMediaVenue &>(obj));
+ return true;
+ case messageMediaGame::ID:
+ func(static_cast<messageMediaGame &>(obj));
+ return true;
+ case messageMediaInvoice::ID:
+ func(static_cast<messageMediaInvoice &>(obj));
+ return true;
+ case messageMediaGeoLive::ID:
+ func(static_cast<messageMediaGeoLive &>(obj));
+ return true;
+ case messageMediaPoll::ID:
+ func(static_cast<messageMediaPoll &>(obj));
+ return true;
+ case messageMediaDice::ID:
+ func(static_cast<messageMediaDice &>(obj));
+ return true;
+ case messagePeerReaction::ID:
+ func(static_cast<messagePeerReaction &>(obj));
+ return true;
+ case messageRange::ID:
+ func(static_cast<messageRange &>(obj));
+ return true;
+ case messageReactions::ID:
+ func(static_cast<messageReactions &>(obj));
+ return true;
+ case messageReplies::ID:
+ func(static_cast<messageReplies &>(obj));
+ return true;
+ case messageReplyHeader::ID:
+ func(static_cast<messageReplyHeader &>(obj));
+ return true;
+ case messageUserVote::ID:
+ func(static_cast<messageUserVote &>(obj));
+ return true;
+ case messageUserVoteInputOption::ID:
+ func(static_cast<messageUserVoteInputOption &>(obj));
+ return true;
+ case messageUserVoteMultiple::ID:
+ func(static_cast<messageUserVoteMultiple &>(obj));
+ return true;
+ case messageViews::ID:
+ func(static_cast<messageViews &>(obj));
+ return true;
+ case inputMessagesFilterEmpty::ID:
+ func(static_cast<inputMessagesFilterEmpty &>(obj));
+ return true;
+ case inputMessagesFilterPhotos::ID:
+ func(static_cast<inputMessagesFilterPhotos &>(obj));
+ return true;
+ case inputMessagesFilterVideo::ID:
+ func(static_cast<inputMessagesFilterVideo &>(obj));
+ return true;
+ case inputMessagesFilterPhotoVideo::ID:
+ func(static_cast<inputMessagesFilterPhotoVideo &>(obj));
+ return true;
+ case inputMessagesFilterDocument::ID:
+ func(static_cast<inputMessagesFilterDocument &>(obj));
+ return true;
+ case inputMessagesFilterUrl::ID:
+ func(static_cast<inputMessagesFilterUrl &>(obj));
+ return true;
+ case inputMessagesFilterGif::ID:
+ func(static_cast<inputMessagesFilterGif &>(obj));
+ return true;
+ case inputMessagesFilterVoice::ID:
+ func(static_cast<inputMessagesFilterVoice &>(obj));
+ return true;
+ case inputMessagesFilterMusic::ID:
+ func(static_cast<inputMessagesFilterMusic &>(obj));
+ return true;
+ case inputMessagesFilterChatPhotos::ID:
+ func(static_cast<inputMessagesFilterChatPhotos &>(obj));
+ return true;
+ case inputMessagesFilterPhoneCalls::ID:
+ func(static_cast<inputMessagesFilterPhoneCalls &>(obj));
+ return true;
+ case inputMessagesFilterRoundVoice::ID:
+ func(static_cast<inputMessagesFilterRoundVoice &>(obj));
+ return true;
+ case inputMessagesFilterRoundVideo::ID:
+ func(static_cast<inputMessagesFilterRoundVideo &>(obj));
+ return true;
+ case inputMessagesFilterMyMentions::ID:
+ func(static_cast<inputMessagesFilterMyMentions &>(obj));
+ return true;
+ case inputMessagesFilterGeo::ID:
+ func(static_cast<inputMessagesFilterGeo &>(obj));
+ return true;
+ case inputMessagesFilterContacts::ID:
+ func(static_cast<inputMessagesFilterContacts &>(obj));
+ return true;
+ case inputMessagesFilterPinned::ID:
+ func(static_cast<inputMessagesFilterPinned &>(obj));
+ return true;
+ case nearestDc::ID:
+ func(static_cast<nearestDc &>(obj));
+ return true;
+ case notificationSoundDefault::ID:
+ func(static_cast<notificationSoundDefault &>(obj));
+ return true;
+ case notificationSoundNone::ID:
+ func(static_cast<notificationSoundNone &>(obj));
+ return true;
+ case notificationSoundLocal::ID:
+ func(static_cast<notificationSoundLocal &>(obj));
+ return true;
+ case notificationSoundRingtone::ID:
+ func(static_cast<notificationSoundRingtone &>(obj));
+ return true;
+ case notifyPeer::ID:
+ func(static_cast<notifyPeer &>(obj));
+ return true;
+ case notifyUsers::ID:
+ func(static_cast<notifyUsers &>(obj));
+ return true;
+ case notifyChats::ID:
+ func(static_cast<notifyChats &>(obj));
+ return true;
+ case notifyBroadcasts::ID:
+ func(static_cast<notifyBroadcasts &>(obj));
+ return true;
+ case notifyForumTopic::ID:
+ func(static_cast<notifyForumTopic &>(obj));
+ return true;
+ case page::ID:
+ func(static_cast<page &>(obj));
+ return true;
+ case pageBlockUnsupported::ID:
+ func(static_cast<pageBlockUnsupported &>(obj));
+ return true;
+ case pageBlockTitle::ID:
+ func(static_cast<pageBlockTitle &>(obj));
+ return true;
+ case pageBlockSubtitle::ID:
+ func(static_cast<pageBlockSubtitle &>(obj));
+ return true;
+ case pageBlockAuthorDate::ID:
+ func(static_cast<pageBlockAuthorDate &>(obj));
+ return true;
+ case pageBlockHeader::ID:
+ func(static_cast<pageBlockHeader &>(obj));
+ return true;
+ case pageBlockSubheader::ID:
+ func(static_cast<pageBlockSubheader &>(obj));
+ return true;
+ case pageBlockParagraph::ID:
+ func(static_cast<pageBlockParagraph &>(obj));
+ return true;
+ case pageBlockPreformatted::ID:
+ func(static_cast<pageBlockPreformatted &>(obj));
+ return true;
+ case pageBlockFooter::ID:
+ func(static_cast<pageBlockFooter &>(obj));
+ return true;
+ case pageBlockDivider::ID:
+ func(static_cast<pageBlockDivider &>(obj));
+ return true;
+ case pageBlockAnchor::ID:
+ func(static_cast<pageBlockAnchor &>(obj));
+ return true;
+ case pageBlockList::ID:
+ func(static_cast<pageBlockList &>(obj));
+ return true;
+ case pageBlockBlockquote::ID:
+ func(static_cast<pageBlockBlockquote &>(obj));
+ return true;
+ case pageBlockPullquote::ID:
+ func(static_cast<pageBlockPullquote &>(obj));
+ return true;
+ case pageBlockPhoto::ID:
+ func(static_cast<pageBlockPhoto &>(obj));
+ return true;
+ case pageBlockVideo::ID:
+ func(static_cast<pageBlockVideo &>(obj));
+ return true;
+ case pageBlockCover::ID:
+ func(static_cast<pageBlockCover &>(obj));
+ return true;
+ case pageBlockEmbed::ID:
+ func(static_cast<pageBlockEmbed &>(obj));
+ return true;
+ case pageBlockEmbedPost::ID:
+ func(static_cast<pageBlockEmbedPost &>(obj));
+ return true;
+ case pageBlockCollage::ID:
+ func(static_cast<pageBlockCollage &>(obj));
+ return true;
+ case pageBlockSlideshow::ID:
+ func(static_cast<pageBlockSlideshow &>(obj));
+ return true;
+ case pageBlockChannel::ID:
+ func(static_cast<pageBlockChannel &>(obj));
+ return true;
+ case pageBlockAudio::ID:
+ func(static_cast<pageBlockAudio &>(obj));
+ return true;
+ case pageBlockKicker::ID:
+ func(static_cast<pageBlockKicker &>(obj));
+ return true;
+ case pageBlockTable::ID:
+ func(static_cast<pageBlockTable &>(obj));
+ return true;
+ case pageBlockOrderedList::ID:
+ func(static_cast<pageBlockOrderedList &>(obj));
+ return true;
+ case pageBlockDetails::ID:
+ func(static_cast<pageBlockDetails &>(obj));
+ return true;
+ case pageBlockRelatedArticles::ID:
+ func(static_cast<pageBlockRelatedArticles &>(obj));
+ return true;
+ case pageBlockMap::ID:
+ func(static_cast<pageBlockMap &>(obj));
+ return true;
+ case pageCaption::ID:
+ func(static_cast<pageCaption &>(obj));
+ return true;
+ case pageListItemText::ID:
+ func(static_cast<pageListItemText &>(obj));
+ return true;
+ case pageListItemBlocks::ID:
+ func(static_cast<pageListItemBlocks &>(obj));
+ return true;
+ case pageListOrderedItemText::ID:
+ func(static_cast<pageListOrderedItemText &>(obj));
+ return true;
+ case pageListOrderedItemBlocks::ID:
+ func(static_cast<pageListOrderedItemBlocks &>(obj));
+ return true;
+ case pageRelatedArticle::ID:
+ func(static_cast<pageRelatedArticle &>(obj));
+ return true;
+ case pageTableCell::ID:
+ func(static_cast<pageTableCell &>(obj));
+ return true;
+ case pageTableRow::ID:
+ func(static_cast<pageTableRow &>(obj));
+ return true;
+ case passwordKdfAlgoUnknown::ID:
+ func(static_cast<passwordKdfAlgoUnknown &>(obj));
+ return true;
+ case passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::ID:
+ func(static_cast<passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow &>(obj));
+ return true;
+ case paymentCharge::ID:
+ func(static_cast<paymentCharge &>(obj));
+ return true;
+ case paymentFormMethod::ID:
+ func(static_cast<paymentFormMethod &>(obj));
+ return true;
+ case paymentRequestedInfo::ID:
+ func(static_cast<paymentRequestedInfo &>(obj));
+ return true;
+ case paymentSavedCredentialsCard::ID:
+ func(static_cast<paymentSavedCredentialsCard &>(obj));
+ return true;
+ case peerUser::ID:
+ func(static_cast<peerUser &>(obj));
+ return true;
+ case peerChat::ID:
+ func(static_cast<peerChat &>(obj));
+ return true;
+ case peerChannel::ID:
+ func(static_cast<peerChannel &>(obj));
+ return true;
+ case peerBlocked::ID:
+ func(static_cast<peerBlocked &>(obj));
+ return true;
+ case peerLocated::ID:
+ func(static_cast<peerLocated &>(obj));
+ return true;
+ case peerSelfLocated::ID:
+ func(static_cast<peerSelfLocated &>(obj));
+ return true;
+ case peerNotifySettings::ID:
+ func(static_cast<peerNotifySettings &>(obj));
+ return true;
+ case peerSettings::ID:
+ func(static_cast<peerSettings &>(obj));
+ return true;
+ case phoneCallEmpty::ID:
+ func(static_cast<phoneCallEmpty &>(obj));
+ return true;
+ case phoneCallWaiting::ID:
+ func(static_cast<phoneCallWaiting &>(obj));
+ return true;
+ case phoneCallRequested::ID:
+ func(static_cast<phoneCallRequested &>(obj));
+ return true;
+ case phoneCallAccepted::ID:
+ func(static_cast<phoneCallAccepted &>(obj));
+ return true;
+ case phoneCall::ID:
+ func(static_cast<phoneCall &>(obj));
+ return true;
+ case phoneCallDiscarded::ID:
+ func(static_cast<phoneCallDiscarded &>(obj));
+ return true;
+ case phoneCallDiscardReasonMissed::ID:
+ func(static_cast<phoneCallDiscardReasonMissed &>(obj));
+ return true;
+ case phoneCallDiscardReasonDisconnect::ID:
+ func(static_cast<phoneCallDiscardReasonDisconnect &>(obj));
+ return true;
+ case phoneCallDiscardReasonHangup::ID:
+ func(static_cast<phoneCallDiscardReasonHangup &>(obj));
+ return true;
+ case phoneCallDiscardReasonBusy::ID:
+ func(static_cast<phoneCallDiscardReasonBusy &>(obj));
+ return true;
+ case phoneCallProtocol::ID:
+ func(static_cast<phoneCallProtocol &>(obj));
+ return true;
+ case phoneConnection::ID:
+ func(static_cast<phoneConnection &>(obj));
+ return true;
+ case phoneConnectionWebrtc::ID:
+ func(static_cast<phoneConnectionWebrtc &>(obj));
+ return true;
+ case photoEmpty::ID:
+ func(static_cast<photoEmpty &>(obj));
+ return true;
+ case photo::ID:
+ func(static_cast<photo &>(obj));
+ return true;
+ case photoSizeEmpty::ID:
+ func(static_cast<photoSizeEmpty &>(obj));
+ return true;
+ case photoSize::ID:
+ func(static_cast<photoSize &>(obj));
+ return true;
+ case photoCachedSize::ID:
+ func(static_cast<photoCachedSize &>(obj));
+ return true;
+ case photoStrippedSize::ID:
+ func(static_cast<photoStrippedSize &>(obj));
+ return true;
+ case photoSizeProgressive::ID:
+ func(static_cast<photoSizeProgressive &>(obj));
+ return true;
+ case photoPathSize::ID:
+ func(static_cast<photoPathSize &>(obj));
+ return true;
+ case poll::ID:
+ func(static_cast<poll &>(obj));
+ return true;
+ case pollAnswer::ID:
+ func(static_cast<pollAnswer &>(obj));
+ return true;
+ case pollAnswerVoters::ID:
+ func(static_cast<pollAnswerVoters &>(obj));
+ return true;
+ case pollResults::ID:
+ func(static_cast<pollResults &>(obj));
+ return true;
+ case popularContact::ID:
+ func(static_cast<popularContact &>(obj));
+ return true;
+ case postAddress::ID:
+ func(static_cast<postAddress &>(obj));
+ return true;
+ case premiumGiftOption::ID:
+ func(static_cast<premiumGiftOption &>(obj));
+ return true;
+ case premiumSubscriptionOption::ID:
+ func(static_cast<premiumSubscriptionOption &>(obj));
+ return true;
+ case privacyKeyStatusTimestamp::ID:
+ func(static_cast<privacyKeyStatusTimestamp &>(obj));
+ return true;
+ case privacyKeyChatInvite::ID:
+ func(static_cast<privacyKeyChatInvite &>(obj));
+ return true;
+ case privacyKeyPhoneCall::ID:
+ func(static_cast<privacyKeyPhoneCall &>(obj));
+ return true;
+ case privacyKeyPhoneP2P::ID:
+ func(static_cast<privacyKeyPhoneP2P &>(obj));
+ return true;
+ case privacyKeyForwards::ID:
+ func(static_cast<privacyKeyForwards &>(obj));
+ return true;
+ case privacyKeyProfilePhoto::ID:
+ func(static_cast<privacyKeyProfilePhoto &>(obj));
+ return true;
+ case privacyKeyPhoneNumber::ID:
+ func(static_cast<privacyKeyPhoneNumber &>(obj));
+ return true;
+ case privacyKeyAddedByPhone::ID:
+ func(static_cast<privacyKeyAddedByPhone &>(obj));
+ return true;
+ case privacyKeyVoiceMessages::ID:
+ func(static_cast<privacyKeyVoiceMessages &>(obj));
+ return true;
+ case privacyValueAllowContacts::ID:
+ func(static_cast<privacyValueAllowContacts &>(obj));
+ return true;
+ case privacyValueAllowAll::ID:
+ func(static_cast<privacyValueAllowAll &>(obj));
+ return true;
+ case privacyValueAllowUsers::ID:
+ func(static_cast<privacyValueAllowUsers &>(obj));
+ return true;
+ case privacyValueDisallowContacts::ID:
+ func(static_cast<privacyValueDisallowContacts &>(obj));
+ return true;
+ case privacyValueDisallowAll::ID:
+ func(static_cast<privacyValueDisallowAll &>(obj));
+ return true;
+ case privacyValueDisallowUsers::ID:
+ func(static_cast<privacyValueDisallowUsers &>(obj));
+ return true;
+ case privacyValueAllowChatParticipants::ID:
+ func(static_cast<privacyValueAllowChatParticipants &>(obj));
+ return true;
+ case privacyValueDisallowChatParticipants::ID:
+ func(static_cast<privacyValueDisallowChatParticipants &>(obj));
+ return true;
+ case reactionEmpty::ID:
+ func(static_cast<reactionEmpty &>(obj));
+ return true;
+ case reactionEmoji::ID:
+ func(static_cast<reactionEmoji &>(obj));
+ return true;
+ case reactionCustomEmoji::ID:
+ func(static_cast<reactionCustomEmoji &>(obj));
+ return true;
+ case reactionCount::ID:
+ func(static_cast<reactionCount &>(obj));
+ return true;
+ case receivedNotifyMessage::ID:
+ func(static_cast<receivedNotifyMessage &>(obj));
+ return true;
+ case recentMeUrlUnknown::ID:
+ func(static_cast<recentMeUrlUnknown &>(obj));
+ return true;
+ case recentMeUrlUser::ID:
+ func(static_cast<recentMeUrlUser &>(obj));
+ return true;
+ case recentMeUrlChat::ID:
+ func(static_cast<recentMeUrlChat &>(obj));
+ return true;
+ case recentMeUrlChatInvite::ID:
+ func(static_cast<recentMeUrlChatInvite &>(obj));
+ return true;
+ case recentMeUrlStickerSet::ID:
+ func(static_cast<recentMeUrlStickerSet &>(obj));
+ return true;
+ case replyKeyboardHide::ID:
+ func(static_cast<replyKeyboardHide &>(obj));
+ return true;
+ case replyKeyboardForceReply::ID:
+ func(static_cast<replyKeyboardForceReply &>(obj));
+ return true;
+ case replyKeyboardMarkup::ID:
+ func(static_cast<replyKeyboardMarkup &>(obj));
+ return true;
+ case replyInlineMarkup::ID:
+ func(static_cast<replyInlineMarkup &>(obj));
+ return true;
+ case inputReportReasonSpam::ID:
+ func(static_cast<inputReportReasonSpam &>(obj));
+ return true;
+ case inputReportReasonViolence::ID:
+ func(static_cast<inputReportReasonViolence &>(obj));
+ return true;
+ case inputReportReasonPornography::ID:
+ func(static_cast<inputReportReasonPornography &>(obj));
+ return true;
+ case inputReportReasonChildAbuse::ID:
+ func(static_cast<inputReportReasonChildAbuse &>(obj));
+ return true;
+ case inputReportReasonOther::ID:
+ func(static_cast<inputReportReasonOther &>(obj));
+ return true;
+ case inputReportReasonCopyright::ID:
+ func(static_cast<inputReportReasonCopyright &>(obj));
+ return true;
+ case inputReportReasonGeoIrrelevant::ID:
+ func(static_cast<inputReportReasonGeoIrrelevant &>(obj));
+ return true;
+ case inputReportReasonFake::ID:
+ func(static_cast<inputReportReasonFake &>(obj));
+ return true;
+ case inputReportReasonIllegalDrugs::ID:
+ func(static_cast<inputReportReasonIllegalDrugs &>(obj));
+ return true;
+ case inputReportReasonPersonalDetails::ID:
+ func(static_cast<inputReportReasonPersonalDetails &>(obj));
+ return true;
+ case restrictionReason::ID:
+ func(static_cast<restrictionReason &>(obj));
+ return true;
+ case textEmpty::ID:
+ func(static_cast<textEmpty &>(obj));
+ return true;
+ case textPlain::ID:
+ func(static_cast<textPlain &>(obj));
+ return true;
+ case textBold::ID:
+ func(static_cast<textBold &>(obj));
+ return true;
+ case textItalic::ID:
+ func(static_cast<textItalic &>(obj));
+ return true;
+ case textUnderline::ID:
+ func(static_cast<textUnderline &>(obj));
+ return true;
+ case textStrike::ID:
+ func(static_cast<textStrike &>(obj));
+ return true;
+ case textFixed::ID:
+ func(static_cast<textFixed &>(obj));
+ return true;
+ case textUrl::ID:
+ func(static_cast<textUrl &>(obj));
+ return true;
+ case textEmail::ID:
+ func(static_cast<textEmail &>(obj));
+ return true;
+ case textConcat::ID:
+ func(static_cast<textConcat &>(obj));
+ return true;
+ case textSubscript::ID:
+ func(static_cast<textSubscript &>(obj));
+ return true;
+ case textSuperscript::ID:
+ func(static_cast<textSuperscript &>(obj));
+ return true;
+ case textMarked::ID:
+ func(static_cast<textMarked &>(obj));
+ return true;
+ case textPhone::ID:
+ func(static_cast<textPhone &>(obj));
+ return true;
+ case textImage::ID:
+ func(static_cast<textImage &>(obj));
+ return true;
+ case textAnchor::ID:
+ func(static_cast<textAnchor &>(obj));
+ return true;
+ case savedPhoneContact::ID:
+ func(static_cast<savedPhoneContact &>(obj));
+ return true;
+ case searchResultsCalendarPeriod::ID:
+ func(static_cast<searchResultsCalendarPeriod &>(obj));
+ return true;
+ case searchResultPosition::ID:
+ func(static_cast<searchResultPosition &>(obj));
+ return true;
+ case secureCredentialsEncrypted::ID:
+ func(static_cast<secureCredentialsEncrypted &>(obj));
+ return true;
+ case secureData::ID:
+ func(static_cast<secureData &>(obj));
+ return true;
+ case secureFileEmpty::ID:
+ func(static_cast<secureFileEmpty &>(obj));
+ return true;
+ case secureFile::ID:
+ func(static_cast<secureFile &>(obj));
+ return true;
+ case securePasswordKdfAlgoUnknown::ID:
+ func(static_cast<securePasswordKdfAlgoUnknown &>(obj));
+ return true;
+ case securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::ID:
+ func(static_cast<securePasswordKdfAlgoPBKDF2HMACSHA512iter100000 &>(obj));
+ return true;
+ case securePasswordKdfAlgoSHA512::ID:
+ func(static_cast<securePasswordKdfAlgoSHA512 &>(obj));
+ return true;
+ case securePlainPhone::ID:
+ func(static_cast<securePlainPhone &>(obj));
+ return true;
+ case securePlainEmail::ID:
+ func(static_cast<securePlainEmail &>(obj));
+ return true;
+ case secureRequiredType::ID:
+ func(static_cast<secureRequiredType &>(obj));
+ return true;
+ case secureRequiredTypeOneOf::ID:
+ func(static_cast<secureRequiredTypeOneOf &>(obj));
+ return true;
+ case secureSecretSettings::ID:
+ func(static_cast<secureSecretSettings &>(obj));
+ return true;
+ case secureValue::ID:
+ func(static_cast<secureValue &>(obj));
+ return true;
+ case secureValueErrorData::ID:
+ func(static_cast<secureValueErrorData &>(obj));
+ return true;
+ case secureValueErrorFrontSide::ID:
+ func(static_cast<secureValueErrorFrontSide &>(obj));
+ return true;
+ case secureValueErrorReverseSide::ID:
+ func(static_cast<secureValueErrorReverseSide &>(obj));
+ return true;
+ case secureValueErrorSelfie::ID:
+ func(static_cast<secureValueErrorSelfie &>(obj));
+ return true;
+ case secureValueErrorFile::ID:
+ func(static_cast<secureValueErrorFile &>(obj));
+ return true;
+ case secureValueErrorFiles::ID:
+ func(static_cast<secureValueErrorFiles &>(obj));
+ return true;
+ case secureValueError::ID:
+ func(static_cast<secureValueError &>(obj));
+ return true;
+ case secureValueErrorTranslationFile::ID:
+ func(static_cast<secureValueErrorTranslationFile &>(obj));
+ return true;
+ case secureValueErrorTranslationFiles::ID:
+ func(static_cast<secureValueErrorTranslationFiles &>(obj));
+ return true;
+ case secureValueHash::ID:
+ func(static_cast<secureValueHash &>(obj));
+ return true;
+ case secureValueTypePersonalDetails::ID:
+ func(static_cast<secureValueTypePersonalDetails &>(obj));
+ return true;
+ case secureValueTypePassport::ID:
+ func(static_cast<secureValueTypePassport &>(obj));
+ return true;
+ case secureValueTypeDriverLicense::ID:
+ func(static_cast<secureValueTypeDriverLicense &>(obj));
+ return true;
+ case secureValueTypeIdentityCard::ID:
+ func(static_cast<secureValueTypeIdentityCard &>(obj));
+ return true;
+ case secureValueTypeInternalPassport::ID:
+ func(static_cast<secureValueTypeInternalPassport &>(obj));
+ return true;
+ case secureValueTypeAddress::ID:
+ func(static_cast<secureValueTypeAddress &>(obj));
+ return true;
+ case secureValueTypeUtilityBill::ID:
+ func(static_cast<secureValueTypeUtilityBill &>(obj));
+ return true;
+ case secureValueTypeBankStatement::ID:
+ func(static_cast<secureValueTypeBankStatement &>(obj));
+ return true;
+ case secureValueTypeRentalAgreement::ID:
+ func(static_cast<secureValueTypeRentalAgreement &>(obj));
+ return true;
+ case secureValueTypePassportRegistration::ID:
+ func(static_cast<secureValueTypePassportRegistration &>(obj));
+ return true;
+ case secureValueTypeTemporaryRegistration::ID:
+ func(static_cast<secureValueTypeTemporaryRegistration &>(obj));
+ return true;
+ case secureValueTypePhone::ID:
+ func(static_cast<secureValueTypePhone &>(obj));
+ return true;
+ case secureValueTypeEmail::ID:
+ func(static_cast<secureValueTypeEmail &>(obj));
+ return true;
+ case sendAsPeer::ID:
+ func(static_cast<sendAsPeer &>(obj));
+ return true;
+ case sendMessageTypingAction::ID:
+ func(static_cast<sendMessageTypingAction &>(obj));
+ return true;
+ case sendMessageCancelAction::ID:
+ func(static_cast<sendMessageCancelAction &>(obj));
+ return true;
+ case sendMessageRecordVideoAction::ID:
+ func(static_cast<sendMessageRecordVideoAction &>(obj));
+ return true;
+ case sendMessageUploadVideoAction::ID:
+ func(static_cast<sendMessageUploadVideoAction &>(obj));
+ return true;
+ case sendMessageRecordAudioAction::ID:
+ func(static_cast<sendMessageRecordAudioAction &>(obj));
+ return true;
+ case sendMessageUploadAudioAction::ID:
+ func(static_cast<sendMessageUploadAudioAction &>(obj));
+ return true;
+ case sendMessageUploadPhotoAction::ID:
+ func(static_cast<sendMessageUploadPhotoAction &>(obj));
+ return true;
+ case sendMessageUploadDocumentAction::ID:
+ func(static_cast<sendMessageUploadDocumentAction &>(obj));
+ return true;
+ case sendMessageGeoLocationAction::ID:
+ func(static_cast<sendMessageGeoLocationAction &>(obj));
+ return true;
+ case sendMessageChooseContactAction::ID:
+ func(static_cast<sendMessageChooseContactAction &>(obj));
+ return true;
+ case sendMessageGamePlayAction::ID:
+ func(static_cast<sendMessageGamePlayAction &>(obj));
+ return true;
+ case sendMessageRecordRoundAction::ID:
+ func(static_cast<sendMessageRecordRoundAction &>(obj));
+ return true;
+ case sendMessageUploadRoundAction::ID:
+ func(static_cast<sendMessageUploadRoundAction &>(obj));
+ return true;
+ case speakingInGroupCallAction::ID:
+ func(static_cast<speakingInGroupCallAction &>(obj));
+ return true;
+ case sendMessageHistoryImportAction::ID:
+ func(static_cast<sendMessageHistoryImportAction &>(obj));
+ return true;
+ case sendMessageChooseStickerAction::ID:
+ func(static_cast<sendMessageChooseStickerAction &>(obj));
+ return true;
+ case sendMessageEmojiInteraction::ID:
+ func(static_cast<sendMessageEmojiInteraction &>(obj));
+ return true;
+ case sendMessageEmojiInteractionSeen::ID:
+ func(static_cast<sendMessageEmojiInteractionSeen &>(obj));
+ return true;
+ case shippingOption::ID:
+ func(static_cast<shippingOption &>(obj));
+ return true;
+ case simpleWebViewResultUrl::ID:
+ func(static_cast<simpleWebViewResultUrl &>(obj));
+ return true;
+ case sponsoredMessage::ID:
+ func(static_cast<sponsoredMessage &>(obj));
+ return true;
+ case statsAbsValueAndPrev::ID:
+ func(static_cast<statsAbsValueAndPrev &>(obj));
+ return true;
+ case statsDateRangeDays::ID:
+ func(static_cast<statsDateRangeDays &>(obj));
+ return true;
+ case statsGraphAsync::ID:
+ func(static_cast<statsGraphAsync &>(obj));
+ return true;
+ case statsGraphError::ID:
+ func(static_cast<statsGraphError &>(obj));
+ return true;
+ case statsGraph::ID:
+ func(static_cast<statsGraph &>(obj));
+ return true;
+ case statsGroupTopAdmin::ID:
+ func(static_cast<statsGroupTopAdmin &>(obj));
+ return true;
+ case statsGroupTopInviter::ID:
+ func(static_cast<statsGroupTopInviter &>(obj));
+ return true;
+ case statsGroupTopPoster::ID:
+ func(static_cast<statsGroupTopPoster &>(obj));
+ return true;
+ case statsPercentValue::ID:
+ func(static_cast<statsPercentValue &>(obj));
+ return true;
+ case statsURL::ID:
+ func(static_cast<statsURL &>(obj));
+ return true;
+ case stickerKeyword::ID:
+ func(static_cast<stickerKeyword &>(obj));
+ return true;
+ case stickerPack::ID:
+ func(static_cast<stickerPack &>(obj));
+ return true;
+ case stickerSet::ID:
+ func(static_cast<stickerSet &>(obj));
+ return true;
+ case stickerSetCovered::ID:
+ func(static_cast<stickerSetCovered &>(obj));
+ return true;
+ case stickerSetMultiCovered::ID:
+ func(static_cast<stickerSetMultiCovered &>(obj));
+ return true;
+ case stickerSetFullCovered::ID:
+ func(static_cast<stickerSetFullCovered &>(obj));
+ return true;
+ case theme::ID:
+ func(static_cast<theme &>(obj));
+ return true;
+ case themeSettings::ID:
+ func(static_cast<themeSettings &>(obj));
+ return true;
+ case topPeer::ID:
+ func(static_cast<topPeer &>(obj));
+ return true;
+ case topPeerCategoryBotsPM::ID:
+ func(static_cast<topPeerCategoryBotsPM &>(obj));
+ return true;
+ case topPeerCategoryBotsInline::ID:
+ func(static_cast<topPeerCategoryBotsInline &>(obj));
+ return true;
+ case topPeerCategoryCorrespondents::ID:
+ func(static_cast<topPeerCategoryCorrespondents &>(obj));
+ return true;
+ case topPeerCategoryGroups::ID:
+ func(static_cast<topPeerCategoryGroups &>(obj));
+ return true;
+ case topPeerCategoryChannels::ID:
+ func(static_cast<topPeerCategoryChannels &>(obj));
+ return true;
+ case topPeerCategoryPhoneCalls::ID:
+ func(static_cast<topPeerCategoryPhoneCalls &>(obj));
+ return true;
+ case topPeerCategoryForwardUsers::ID:
+ func(static_cast<topPeerCategoryForwardUsers &>(obj));
+ return true;
+ case topPeerCategoryForwardChats::ID:
+ func(static_cast<topPeerCategoryForwardChats &>(obj));
+ return true;
+ case topPeerCategoryPeers::ID:
+ func(static_cast<topPeerCategoryPeers &>(obj));
+ return true;
+ case updateNewMessage::ID:
+ func(static_cast<updateNewMessage &>(obj));
+ return true;
+ case updateMessageID::ID:
+ func(static_cast<updateMessageID &>(obj));
+ return true;
+ case updateDeleteMessages::ID:
+ func(static_cast<updateDeleteMessages &>(obj));
+ return true;
+ case updateUserTyping::ID:
+ func(static_cast<updateUserTyping &>(obj));
+ return true;
+ case updateChatUserTyping::ID:
+ func(static_cast<updateChatUserTyping &>(obj));
+ return true;
+ case updateChatParticipants::ID:
+ func(static_cast<updateChatParticipants &>(obj));
+ return true;
+ case updateUserStatus::ID:
+ func(static_cast<updateUserStatus &>(obj));
+ return true;
+ case updateUserName::ID:
+ func(static_cast<updateUserName &>(obj));
+ return true;
+ case updateUserPhoto::ID:
+ func(static_cast<updateUserPhoto &>(obj));
+ return true;
+ case updateNewEncryptedMessage::ID:
+ func(static_cast<updateNewEncryptedMessage &>(obj));
+ return true;
+ case updateEncryptedChatTyping::ID:
+ func(static_cast<updateEncryptedChatTyping &>(obj));
+ return true;
+ case updateEncryption::ID:
+ func(static_cast<updateEncryption &>(obj));
+ return true;
+ case updateEncryptedMessagesRead::ID:
+ func(static_cast<updateEncryptedMessagesRead &>(obj));
+ return true;
+ case updateChatParticipantAdd::ID:
+ func(static_cast<updateChatParticipantAdd &>(obj));
+ return true;
+ case updateChatParticipantDelete::ID:
+ func(static_cast<updateChatParticipantDelete &>(obj));
+ return true;
+ case updateDcOptions::ID:
+ func(static_cast<updateDcOptions &>(obj));
+ return true;
+ case updateNotifySettings::ID:
+ func(static_cast<updateNotifySettings &>(obj));
+ return true;
+ case updateServiceNotification::ID:
+ func(static_cast<updateServiceNotification &>(obj));
+ return true;
+ case updatePrivacy::ID:
+ func(static_cast<updatePrivacy &>(obj));
+ return true;
+ case updateUserPhone::ID:
+ func(static_cast<updateUserPhone &>(obj));
+ return true;
+ case updateReadHistoryInbox::ID:
+ func(static_cast<updateReadHistoryInbox &>(obj));
+ return true;
+ case updateReadHistoryOutbox::ID:
+ func(static_cast<updateReadHistoryOutbox &>(obj));
+ return true;
+ case updateWebPage::ID:
+ func(static_cast<updateWebPage &>(obj));
+ return true;
+ case updateReadMessagesContents::ID:
+ func(static_cast<updateReadMessagesContents &>(obj));
+ return true;
+ case updateChannelTooLong::ID:
+ func(static_cast<updateChannelTooLong &>(obj));
+ return true;
+ case updateChannel::ID:
+ func(static_cast<updateChannel &>(obj));
+ return true;
+ case updateNewChannelMessage::ID:
+ func(static_cast<updateNewChannelMessage &>(obj));
+ return true;
+ case updateReadChannelInbox::ID:
+ func(static_cast<updateReadChannelInbox &>(obj));
+ return true;
+ case updateDeleteChannelMessages::ID:
+ func(static_cast<updateDeleteChannelMessages &>(obj));
+ return true;
+ case updateChannelMessageViews::ID:
+ func(static_cast<updateChannelMessageViews &>(obj));
+ return true;
+ case updateChatParticipantAdmin::ID:
+ func(static_cast<updateChatParticipantAdmin &>(obj));
+ return true;
+ case updateNewStickerSet::ID:
+ func(static_cast<updateNewStickerSet &>(obj));
+ return true;
+ case updateStickerSetsOrder::ID:
+ func(static_cast<updateStickerSetsOrder &>(obj));
+ return true;
+ case updateStickerSets::ID:
+ func(static_cast<updateStickerSets &>(obj));
+ return true;
+ case updateSavedGifs::ID:
+ func(static_cast<updateSavedGifs &>(obj));
+ return true;
+ case updateBotInlineQuery::ID:
+ func(static_cast<updateBotInlineQuery &>(obj));
+ return true;
+ case updateBotInlineSend::ID:
+ func(static_cast<updateBotInlineSend &>(obj));
+ return true;
+ case updateEditChannelMessage::ID:
+ func(static_cast<updateEditChannelMessage &>(obj));
+ return true;
+ case updateBotCallbackQuery::ID:
+ func(static_cast<updateBotCallbackQuery &>(obj));
+ return true;
+ case updateEditMessage::ID:
+ func(static_cast<updateEditMessage &>(obj));
+ return true;
+ case updateInlineBotCallbackQuery::ID:
+ func(static_cast<updateInlineBotCallbackQuery &>(obj));
+ return true;
+ case updateReadChannelOutbox::ID:
+ func(static_cast<updateReadChannelOutbox &>(obj));
+ return true;
+ case updateDraftMessage::ID:
+ func(static_cast<updateDraftMessage &>(obj));
+ return true;
+ case updateReadFeaturedStickers::ID:
+ func(static_cast<updateReadFeaturedStickers &>(obj));
+ return true;
+ case updateRecentStickers::ID:
+ func(static_cast<updateRecentStickers &>(obj));
+ return true;
+ case updateConfig::ID:
+ func(static_cast<updateConfig &>(obj));
+ return true;
+ case updatePtsChanged::ID:
+ func(static_cast<updatePtsChanged &>(obj));
+ return true;
+ case updateChannelWebPage::ID:
+ func(static_cast<updateChannelWebPage &>(obj));
+ return true;
+ case updateDialogPinned::ID:
+ func(static_cast<updateDialogPinned &>(obj));
+ return true;
+ case updatePinnedDialogs::ID:
+ func(static_cast<updatePinnedDialogs &>(obj));
+ return true;
+ case updateBotWebhookJSON::ID:
+ func(static_cast<updateBotWebhookJSON &>(obj));
+ return true;
+ case updateBotWebhookJSONQuery::ID:
+ func(static_cast<updateBotWebhookJSONQuery &>(obj));
+ return true;
+ case updateBotShippingQuery::ID:
+ func(static_cast<updateBotShippingQuery &>(obj));
+ return true;
+ case updateBotPrecheckoutQuery::ID:
+ func(static_cast<updateBotPrecheckoutQuery &>(obj));
+ return true;
+ case updatePhoneCall::ID:
+ func(static_cast<updatePhoneCall &>(obj));
+ return true;
+ case updateLangPackTooLong::ID:
+ func(static_cast<updateLangPackTooLong &>(obj));
+ return true;
+ case updateLangPack::ID:
+ func(static_cast<updateLangPack &>(obj));
+ return true;
+ case updateFavedStickers::ID:
+ func(static_cast<updateFavedStickers &>(obj));
+ return true;
+ case updateChannelReadMessagesContents::ID:
+ func(static_cast<updateChannelReadMessagesContents &>(obj));
+ return true;
+ case updateContactsReset::ID:
+ func(static_cast<updateContactsReset &>(obj));
+ return true;
+ case updateChannelAvailableMessages::ID:
+ func(static_cast<updateChannelAvailableMessages &>(obj));
+ return true;
+ case updateDialogUnreadMark::ID:
+ func(static_cast<updateDialogUnreadMark &>(obj));
+ return true;
+ case updateMessagePoll::ID:
+ func(static_cast<updateMessagePoll &>(obj));
+ return true;
+ case updateChatDefaultBannedRights::ID:
+ func(static_cast<updateChatDefaultBannedRights &>(obj));
+ return true;
+ case updateFolderPeers::ID:
+ func(static_cast<updateFolderPeers &>(obj));
+ return true;
+ case updatePeerSettings::ID:
+ func(static_cast<updatePeerSettings &>(obj));
+ return true;
+ case updatePeerLocated::ID:
+ func(static_cast<updatePeerLocated &>(obj));
+ return true;
+ case updateNewScheduledMessage::ID:
+ func(static_cast<updateNewScheduledMessage &>(obj));
+ return true;
+ case updateDeleteScheduledMessages::ID:
+ func(static_cast<updateDeleteScheduledMessages &>(obj));
+ return true;
+ case updateTheme::ID:
+ func(static_cast<updateTheme &>(obj));
+ return true;
+ case updateGeoLiveViewed::ID:
+ func(static_cast<updateGeoLiveViewed &>(obj));
+ return true;
+ case updateLoginToken::ID:
+ func(static_cast<updateLoginToken &>(obj));
+ return true;
+ case updateMessagePollVote::ID:
+ func(static_cast<updateMessagePollVote &>(obj));
+ return true;
+ case updateDialogFilter::ID:
+ func(static_cast<updateDialogFilter &>(obj));
+ return true;
+ case updateDialogFilterOrder::ID:
+ func(static_cast<updateDialogFilterOrder &>(obj));
+ return true;
+ case updateDialogFilters::ID:
+ func(static_cast<updateDialogFilters &>(obj));
+ return true;
+ case updatePhoneCallSignalingData::ID:
+ func(static_cast<updatePhoneCallSignalingData &>(obj));
+ return true;
+ case updateChannelMessageForwards::ID:
+ func(static_cast<updateChannelMessageForwards &>(obj));
+ return true;
+ case updateReadChannelDiscussionInbox::ID:
+ func(static_cast<updateReadChannelDiscussionInbox &>(obj));
+ return true;
+ case updateReadChannelDiscussionOutbox::ID:
+ func(static_cast<updateReadChannelDiscussionOutbox &>(obj));
+ return true;
+ case updatePeerBlocked::ID:
+ func(static_cast<updatePeerBlocked &>(obj));
+ return true;
+ case updateChannelUserTyping::ID:
+ func(static_cast<updateChannelUserTyping &>(obj));
+ return true;
+ case updatePinnedMessages::ID:
+ func(static_cast<updatePinnedMessages &>(obj));
+ return true;
+ case updatePinnedChannelMessages::ID:
+ func(static_cast<updatePinnedChannelMessages &>(obj));
+ return true;
+ case updateChat::ID:
+ func(static_cast<updateChat &>(obj));
+ return true;
+ case updateGroupCallParticipants::ID:
+ func(static_cast<updateGroupCallParticipants &>(obj));
+ return true;
+ case updateGroupCall::ID:
+ func(static_cast<updateGroupCall &>(obj));
+ return true;
+ case updatePeerHistoryTTL::ID:
+ func(static_cast<updatePeerHistoryTTL &>(obj));
+ return true;
+ case updateChatParticipant::ID:
+ func(static_cast<updateChatParticipant &>(obj));
+ return true;
+ case updateChannelParticipant::ID:
+ func(static_cast<updateChannelParticipant &>(obj));
+ return true;
+ case updateBotStopped::ID:
+ func(static_cast<updateBotStopped &>(obj));
+ return true;
+ case updateGroupCallConnection::ID:
+ func(static_cast<updateGroupCallConnection &>(obj));
+ return true;
+ case updateBotCommands::ID:
+ func(static_cast<updateBotCommands &>(obj));
+ return true;
+ case updatePendingJoinRequests::ID:
+ func(static_cast<updatePendingJoinRequests &>(obj));
+ return true;
+ case updateBotChatInviteRequester::ID:
+ func(static_cast<updateBotChatInviteRequester &>(obj));
+ return true;
+ case updateMessageReactions::ID:
+ func(static_cast<updateMessageReactions &>(obj));
+ return true;
+ case updateAttachMenuBots::ID:
+ func(static_cast<updateAttachMenuBots &>(obj));
+ return true;
+ case updateWebViewResultSent::ID:
+ func(static_cast<updateWebViewResultSent &>(obj));
+ return true;
+ case updateBotMenuButton::ID:
+ func(static_cast<updateBotMenuButton &>(obj));
+ return true;
+ case updateSavedRingtones::ID:
+ func(static_cast<updateSavedRingtones &>(obj));
+ return true;
+ case updateTranscribedAudio::ID:
+ func(static_cast<updateTranscribedAudio &>(obj));
+ return true;
+ case updateReadFeaturedEmojiStickers::ID:
+ func(static_cast<updateReadFeaturedEmojiStickers &>(obj));
+ return true;
+ case updateUserEmojiStatus::ID:
+ func(static_cast<updateUserEmojiStatus &>(obj));
+ return true;
+ case updateRecentEmojiStatuses::ID:
+ func(static_cast<updateRecentEmojiStatuses &>(obj));
+ return true;
+ case updateRecentReactions::ID:
+ func(static_cast<updateRecentReactions &>(obj));
+ return true;
+ case updateMoveStickerSetToTop::ID:
+ func(static_cast<updateMoveStickerSetToTop &>(obj));
+ return true;
+ case updateMessageExtendedMedia::ID:
+ func(static_cast<updateMessageExtendedMedia &>(obj));
+ return true;
+ case updateChannelPinnedTopic::ID:
+ func(static_cast<updateChannelPinnedTopic &>(obj));
+ return true;
+ case updatesTooLong::ID:
+ func(static_cast<updatesTooLong &>(obj));
+ return true;
+ case updateShortMessage::ID:
+ func(static_cast<updateShortMessage &>(obj));
+ return true;
+ case updateShortChatMessage::ID:
+ func(static_cast<updateShortChatMessage &>(obj));
+ return true;
+ case updateShort::ID:
+ func(static_cast<updateShort &>(obj));
+ return true;
+ case updatesCombined::ID:
+ func(static_cast<updatesCombined &>(obj));
+ return true;
+ case updates::ID:
+ func(static_cast<updates &>(obj));
+ return true;
+ case updateShortSentMessage::ID:
+ func(static_cast<updateShortSentMessage &>(obj));
+ return true;
+ case urlAuthResultRequest::ID:
+ func(static_cast<urlAuthResultRequest &>(obj));
+ return true;
+ case urlAuthResultAccepted::ID:
+ func(static_cast<urlAuthResultAccepted &>(obj));
+ return true;
+ case urlAuthResultDefault::ID:
+ func(static_cast<urlAuthResultDefault &>(obj));
+ return true;
+ case userEmpty::ID:
+ func(static_cast<userEmpty &>(obj));
+ return true;
+ case user::ID:
+ func(static_cast<user &>(obj));
+ return true;
+ case userFull::ID:
+ func(static_cast<userFull &>(obj));
+ return true;
+ case userProfilePhotoEmpty::ID:
+ func(static_cast<userProfilePhotoEmpty &>(obj));
+ return true;
+ case userProfilePhoto::ID:
+ func(static_cast<userProfilePhoto &>(obj));
+ return true;
+ case userStatusEmpty::ID:
+ func(static_cast<userStatusEmpty &>(obj));
+ return true;
+ case userStatusOnline::ID:
+ func(static_cast<userStatusOnline &>(obj));
+ return true;
+ case userStatusOffline::ID:
+ func(static_cast<userStatusOffline &>(obj));
+ return true;
+ case userStatusRecently::ID:
+ func(static_cast<userStatusRecently &>(obj));
+ return true;
+ case userStatusLastWeek::ID:
+ func(static_cast<userStatusLastWeek &>(obj));
+ return true;
+ case userStatusLastMonth::ID:
+ func(static_cast<userStatusLastMonth &>(obj));
+ return true;
+ case username::ID:
+ func(static_cast<username &>(obj));
+ return true;
+ case videoSize::ID:
+ func(static_cast<videoSize &>(obj));
+ return true;
+ case wallPaper::ID:
+ func(static_cast<wallPaper &>(obj));
+ return true;
+ case wallPaperNoFile::ID:
+ func(static_cast<wallPaperNoFile &>(obj));
+ return true;
+ case wallPaperSettings::ID:
+ func(static_cast<wallPaperSettings &>(obj));
+ return true;
+ case webAuthorization::ID:
+ func(static_cast<webAuthorization &>(obj));
+ return true;
+ case webDocument::ID:
+ func(static_cast<webDocument &>(obj));
+ return true;
+ case webDocumentNoProxy::ID:
+ func(static_cast<webDocumentNoProxy &>(obj));
+ return true;
+ case webPageEmpty::ID:
+ func(static_cast<webPageEmpty &>(obj));
+ return true;
+ case webPagePending::ID:
+ func(static_cast<webPagePending &>(obj));
+ return true;
+ case webPage::ID:
+ func(static_cast<webPage &>(obj));
+ return true;
+ case webPageNotModified::ID:
+ func(static_cast<webPageNotModified &>(obj));
+ return true;
+ case webPageAttributeTheme::ID:
+ func(static_cast<webPageAttributeTheme &>(obj));
+ return true;
+ case webViewMessageSent::ID:
+ func(static_cast<webViewMessageSent &>(obj));
+ return true;
+ case webViewResultUrl::ID:
+ func(static_cast<webViewResultUrl &>(obj));
+ return true;
+ case account_authorizationForm::ID:
+ func(static_cast<account_authorizationForm &>(obj));
+ return true;
+ case account_authorizations::ID:
+ func(static_cast<account_authorizations &>(obj));
+ return true;
+ case account_autoDownloadSettings::ID:
+ func(static_cast<account_autoDownloadSettings &>(obj));
+ return true;
+ case account_contentSettings::ID:
+ func(static_cast<account_contentSettings &>(obj));
+ return true;
+ case account_emailVerified::ID:
+ func(static_cast<account_emailVerified &>(obj));
+ return true;
+ case account_emailVerifiedLogin::ID:
+ func(static_cast<account_emailVerifiedLogin &>(obj));
+ return true;
+ case account_emojiStatusesNotModified::ID:
+ func(static_cast<account_emojiStatusesNotModified &>(obj));
+ return true;
+ case account_emojiStatuses::ID:
+ func(static_cast<account_emojiStatuses &>(obj));
+ return true;
+ case account_password::ID:
+ func(static_cast<account_password &>(obj));
+ return true;
+ case account_passwordInputSettings::ID:
+ func(static_cast<account_passwordInputSettings &>(obj));
+ return true;
+ case account_passwordSettings::ID:
+ func(static_cast<account_passwordSettings &>(obj));
+ return true;
+ case account_privacyRules::ID:
+ func(static_cast<account_privacyRules &>(obj));
+ return true;
+ case account_resetPasswordFailedWait::ID:
+ func(static_cast<account_resetPasswordFailedWait &>(obj));
+ return true;
+ case account_resetPasswordRequestedWait::ID:
+ func(static_cast<account_resetPasswordRequestedWait &>(obj));
+ return true;
+ case account_resetPasswordOk::ID:
+ func(static_cast<account_resetPasswordOk &>(obj));
+ return true;
+ case account_savedRingtone::ID:
+ func(static_cast<account_savedRingtone &>(obj));
+ return true;
+ case account_savedRingtoneConverted::ID:
+ func(static_cast<account_savedRingtoneConverted &>(obj));
+ return true;
+ case account_savedRingtonesNotModified::ID:
+ func(static_cast<account_savedRingtonesNotModified &>(obj));
+ return true;
+ case account_savedRingtones::ID:
+ func(static_cast<account_savedRingtones &>(obj));
+ return true;
+ case account_sentEmailCode::ID:
+ func(static_cast<account_sentEmailCode &>(obj));
+ return true;
+ case account_takeout::ID:
+ func(static_cast<account_takeout &>(obj));
+ return true;
+ case account_themesNotModified::ID:
+ func(static_cast<account_themesNotModified &>(obj));
+ return true;
+ case account_themes::ID:
+ func(static_cast<account_themes &>(obj));
+ return true;
+ case account_tmpPassword::ID:
+ func(static_cast<account_tmpPassword &>(obj));
+ return true;
+ case account_wallPapersNotModified::ID:
+ func(static_cast<account_wallPapersNotModified &>(obj));
+ return true;
+ case account_wallPapers::ID:
+ func(static_cast<account_wallPapers &>(obj));
+ return true;
+ case account_webAuthorizations::ID:
+ func(static_cast<account_webAuthorizations &>(obj));
+ return true;
+ case auth_authorization::ID:
+ func(static_cast<auth_authorization &>(obj));
+ return true;
+ case auth_authorizationSignUpRequired::ID:
+ func(static_cast<auth_authorizationSignUpRequired &>(obj));
+ return true;
+ case auth_codeTypeSms::ID:
+ func(static_cast<auth_codeTypeSms &>(obj));
+ return true;
+ case auth_codeTypeCall::ID:
+ func(static_cast<auth_codeTypeCall &>(obj));
+ return true;
+ case auth_codeTypeFlashCall::ID:
+ func(static_cast<auth_codeTypeFlashCall &>(obj));
+ return true;
+ case auth_codeTypeMissedCall::ID:
+ func(static_cast<auth_codeTypeMissedCall &>(obj));
+ return true;
+ case auth_exportedAuthorization::ID:
+ func(static_cast<auth_exportedAuthorization &>(obj));
+ return true;
+ case auth_loggedOut::ID:
+ func(static_cast<auth_loggedOut &>(obj));
+ return true;
+ case auth_loginToken::ID:
+ func(static_cast<auth_loginToken &>(obj));
+ return true;
+ case auth_loginTokenMigrateTo::ID:
+ func(static_cast<auth_loginTokenMigrateTo &>(obj));
+ return true;
+ case auth_loginTokenSuccess::ID:
+ func(static_cast<auth_loginTokenSuccess &>(obj));
+ return true;
+ case auth_passwordRecovery::ID:
+ func(static_cast<auth_passwordRecovery &>(obj));
+ return true;
+ case auth_sentCode::ID:
+ func(static_cast<auth_sentCode &>(obj));
+ return true;
+ case auth_sentCodeTypeApp::ID:
+ func(static_cast<auth_sentCodeTypeApp &>(obj));
+ return true;
+ case auth_sentCodeTypeSms::ID:
+ func(static_cast<auth_sentCodeTypeSms &>(obj));
+ return true;
+ case auth_sentCodeTypeCall::ID:
+ func(static_cast<auth_sentCodeTypeCall &>(obj));
+ return true;
+ case auth_sentCodeTypeFlashCall::ID:
+ func(static_cast<auth_sentCodeTypeFlashCall &>(obj));
+ return true;
+ case auth_sentCodeTypeMissedCall::ID:
+ func(static_cast<auth_sentCodeTypeMissedCall &>(obj));
+ return true;
+ case auth_sentCodeTypeEmailCode::ID:
+ func(static_cast<auth_sentCodeTypeEmailCode &>(obj));
+ return true;
+ case auth_sentCodeTypeSetUpEmailRequired::ID:
+ func(static_cast<auth_sentCodeTypeSetUpEmailRequired &>(obj));
+ return true;
+ case channels_adminLogResults::ID:
+ func(static_cast<channels_adminLogResults &>(obj));
+ return true;
+ case channels_channelParticipant::ID:
+ func(static_cast<channels_channelParticipant &>(obj));
+ return true;
+ case channels_channelParticipants::ID:
+ func(static_cast<channels_channelParticipants &>(obj));
+ return true;
+ case channels_channelParticipantsNotModified::ID:
+ func(static_cast<channels_channelParticipantsNotModified &>(obj));
+ return true;
+ case channels_sendAsPeers::ID:
+ func(static_cast<channels_sendAsPeers &>(obj));
+ return true;
+ case contacts_blocked::ID:
+ func(static_cast<contacts_blocked &>(obj));
+ return true;
+ case contacts_blockedSlice::ID:
+ func(static_cast<contacts_blockedSlice &>(obj));
+ return true;
+ case contacts_contactsNotModified::ID:
+ func(static_cast<contacts_contactsNotModified &>(obj));
+ return true;
+ case contacts_contacts::ID:
+ func(static_cast<contacts_contacts &>(obj));
+ return true;
+ case contacts_found::ID:
+ func(static_cast<contacts_found &>(obj));
+ return true;
+ case contacts_importedContacts::ID:
+ func(static_cast<contacts_importedContacts &>(obj));
+ return true;
+ case contacts_resolvedPeer::ID:
+ func(static_cast<contacts_resolvedPeer &>(obj));
+ return true;
+ case contacts_topPeersNotModified::ID:
+ func(static_cast<contacts_topPeersNotModified &>(obj));
+ return true;
+ case contacts_topPeers::ID:
+ func(static_cast<contacts_topPeers &>(obj));
+ return true;
+ case contacts_topPeersDisabled::ID:
+ func(static_cast<contacts_topPeersDisabled &>(obj));
+ return true;
+ case help_appUpdate::ID:
+ func(static_cast<help_appUpdate &>(obj));
+ return true;
+ case help_noAppUpdate::ID:
+ func(static_cast<help_noAppUpdate &>(obj));
+ return true;
+ case help_configSimple::ID:
+ func(static_cast<help_configSimple &>(obj));
+ return true;
+ case help_countriesListNotModified::ID:
+ func(static_cast<help_countriesListNotModified &>(obj));
+ return true;
+ case help_countriesList::ID:
+ func(static_cast<help_countriesList &>(obj));
+ return true;
+ case help_country::ID:
+ func(static_cast<help_country &>(obj));
+ return true;
+ case help_countryCode::ID:
+ func(static_cast<help_countryCode &>(obj));
+ return true;
+ case help_deepLinkInfoEmpty::ID:
+ func(static_cast<help_deepLinkInfoEmpty &>(obj));
+ return true;
+ case help_deepLinkInfo::ID:
+ func(static_cast<help_deepLinkInfo &>(obj));
+ return true;
+ case help_inviteText::ID:
+ func(static_cast<help_inviteText &>(obj));
+ return true;
+ case help_passportConfigNotModified::ID:
+ func(static_cast<help_passportConfigNotModified &>(obj));
+ return true;
+ case help_passportConfig::ID:
+ func(static_cast<help_passportConfig &>(obj));
+ return true;
+ case help_premiumPromo::ID:
+ func(static_cast<help_premiumPromo &>(obj));
+ return true;
+ case help_promoDataEmpty::ID:
+ func(static_cast<help_promoDataEmpty &>(obj));
+ return true;
+ case help_promoData::ID:
+ func(static_cast<help_promoData &>(obj));
+ return true;
+ case help_recentMeUrls::ID:
+ func(static_cast<help_recentMeUrls &>(obj));
+ return true;
+ case help_support::ID:
+ func(static_cast<help_support &>(obj));
+ return true;
+ case help_supportName::ID:
+ func(static_cast<help_supportName &>(obj));
+ return true;
+ case help_termsOfService::ID:
+ func(static_cast<help_termsOfService &>(obj));
+ return true;
+ case help_termsOfServiceUpdateEmpty::ID:
+ func(static_cast<help_termsOfServiceUpdateEmpty &>(obj));
+ return true;
+ case help_termsOfServiceUpdate::ID:
+ func(static_cast<help_termsOfServiceUpdate &>(obj));
+ return true;
+ case help_userInfoEmpty::ID:
+ func(static_cast<help_userInfoEmpty &>(obj));
+ return true;
+ case help_userInfo::ID:
+ func(static_cast<help_userInfo &>(obj));
+ return true;
+ case messages_affectedFoundMessages::ID:
+ func(static_cast<messages_affectedFoundMessages &>(obj));
+ return true;
+ case messages_affectedHistory::ID:
+ func(static_cast<messages_affectedHistory &>(obj));
+ return true;
+ case messages_affectedMessages::ID:
+ func(static_cast<messages_affectedMessages &>(obj));
+ return true;
+ case messages_allStickersNotModified::ID:
+ func(static_cast<messages_allStickersNotModified &>(obj));
+ return true;
+ case messages_allStickers::ID:
+ func(static_cast<messages_allStickers &>(obj));
+ return true;
+ case messages_archivedStickers::ID:
+ func(static_cast<messages_archivedStickers &>(obj));
+ return true;
+ case messages_availableReactionsNotModified::ID:
+ func(static_cast<messages_availableReactionsNotModified &>(obj));
+ return true;
+ case messages_availableReactions::ID:
+ func(static_cast<messages_availableReactions &>(obj));
+ return true;
+ case messages_botCallbackAnswer::ID:
+ func(static_cast<messages_botCallbackAnswer &>(obj));
+ return true;
+ case messages_botResults::ID:
+ func(static_cast<messages_botResults &>(obj));
+ return true;
+ case messages_chatAdminsWithInvites::ID:
+ func(static_cast<messages_chatAdminsWithInvites &>(obj));
+ return true;
+ case messages_chatFull::ID:
+ func(static_cast<messages_chatFull &>(obj));
+ return true;
+ case messages_chatInviteImporters::ID:
+ func(static_cast<messages_chatInviteImporters &>(obj));
+ return true;
+ case messages_chats::ID:
+ func(static_cast<messages_chats &>(obj));
+ return true;
+ case messages_chatsSlice::ID:
+ func(static_cast<messages_chatsSlice &>(obj));
+ return true;
+ case messages_checkedHistoryImportPeer::ID:
+ func(static_cast<messages_checkedHistoryImportPeer &>(obj));
+ return true;
+ case messages_dhConfigNotModified::ID:
+ func(static_cast<messages_dhConfigNotModified &>(obj));
+ return true;
+ case messages_dhConfig::ID:
+ func(static_cast<messages_dhConfig &>(obj));
+ return true;
+ case messages_dialogs::ID:
+ func(static_cast<messages_dialogs &>(obj));
+ return true;
+ case messages_dialogsSlice::ID:
+ func(static_cast<messages_dialogsSlice &>(obj));
+ return true;
+ case messages_dialogsNotModified::ID:
+ func(static_cast<messages_dialogsNotModified &>(obj));
+ return true;
+ case messages_discussionMessage::ID:
+ func(static_cast<messages_discussionMessage &>(obj));
+ return true;
+ case messages_exportedChatInvite::ID:
+ func(static_cast<messages_exportedChatInvite &>(obj));
+ return true;
+ case messages_exportedChatInviteReplaced::ID:
+ func(static_cast<messages_exportedChatInviteReplaced &>(obj));
+ return true;
+ case messages_exportedChatInvites::ID:
+ func(static_cast<messages_exportedChatInvites &>(obj));
+ return true;
+ case messages_favedStickersNotModified::ID:
+ func(static_cast<messages_favedStickersNotModified &>(obj));
+ return true;
+ case messages_favedStickers::ID:
+ func(static_cast<messages_favedStickers &>(obj));
+ return true;
+ case messages_featuredStickersNotModified::ID:
+ func(static_cast<messages_featuredStickersNotModified &>(obj));
+ return true;
+ case messages_featuredStickers::ID:
+ func(static_cast<messages_featuredStickers &>(obj));
+ return true;
+ case messages_forumTopics::ID:
+ func(static_cast<messages_forumTopics &>(obj));
+ return true;
+ case messages_foundStickerSetsNotModified::ID:
+ func(static_cast<messages_foundStickerSetsNotModified &>(obj));
+ return true;
+ case messages_foundStickerSets::ID:
+ func(static_cast<messages_foundStickerSets &>(obj));
+ return true;
+ case messages_highScores::ID:
+ func(static_cast<messages_highScores &>(obj));
+ return true;
+ case messages_historyImport::ID:
+ func(static_cast<messages_historyImport &>(obj));
+ return true;
+ case messages_historyImportParsed::ID:
+ func(static_cast<messages_historyImportParsed &>(obj));
+ return true;
+ case messages_inactiveChats::ID:
+ func(static_cast<messages_inactiveChats &>(obj));
+ return true;
+ case messages_messageEditData::ID:
+ func(static_cast<messages_messageEditData &>(obj));
+ return true;
+ case messages_messageReactionsList::ID:
+ func(static_cast<messages_messageReactionsList &>(obj));
+ return true;
+ case messages_messageViews::ID:
+ func(static_cast<messages_messageViews &>(obj));
+ return true;
+ case messages_messages::ID:
+ func(static_cast<messages_messages &>(obj));
+ return true;
+ case messages_messagesSlice::ID:
+ func(static_cast<messages_messagesSlice &>(obj));
+ return true;
+ case messages_channelMessages::ID:
+ func(static_cast<messages_channelMessages &>(obj));
+ return true;
+ case messages_messagesNotModified::ID:
+ func(static_cast<messages_messagesNotModified &>(obj));
+ return true;
+ case messages_peerDialogs::ID:
+ func(static_cast<messages_peerDialogs &>(obj));
+ return true;
+ case messages_peerSettings::ID:
+ func(static_cast<messages_peerSettings &>(obj));
+ return true;
+ case messages_reactionsNotModified::ID:
+ func(static_cast<messages_reactionsNotModified &>(obj));
+ return true;
+ case messages_reactions::ID:
+ func(static_cast<messages_reactions &>(obj));
+ return true;
+ case messages_recentStickersNotModified::ID:
+ func(static_cast<messages_recentStickersNotModified &>(obj));
+ return true;
+ case messages_recentStickers::ID:
+ func(static_cast<messages_recentStickers &>(obj));
+ return true;
+ case messages_savedGifsNotModified::ID:
+ func(static_cast<messages_savedGifsNotModified &>(obj));
+ return true;
+ case messages_savedGifs::ID:
+ func(static_cast<messages_savedGifs &>(obj));
+ return true;
+ case messages_searchCounter::ID:
+ func(static_cast<messages_searchCounter &>(obj));
+ return true;
+ case messages_searchResultsCalendar::ID:
+ func(static_cast<messages_searchResultsCalendar &>(obj));
+ return true;
+ case messages_searchResultsPositions::ID:
+ func(static_cast<messages_searchResultsPositions &>(obj));
+ return true;
+ case messages_sentEncryptedMessage::ID:
+ func(static_cast<messages_sentEncryptedMessage &>(obj));
+ return true;
+ case messages_sentEncryptedFile::ID:
+ func(static_cast<messages_sentEncryptedFile &>(obj));
+ return true;
+ case messages_sponsoredMessages::ID:
+ func(static_cast<messages_sponsoredMessages &>(obj));
+ return true;
+ case messages_sponsoredMessagesEmpty::ID:
+ func(static_cast<messages_sponsoredMessagesEmpty &>(obj));
+ return true;
+ case messages_stickerSet::ID:
+ func(static_cast<messages_stickerSet &>(obj));
+ return true;
+ case messages_stickerSetNotModified::ID:
+ func(static_cast<messages_stickerSetNotModified &>(obj));
+ return true;
+ case messages_stickerSetInstallResultSuccess::ID:
+ func(static_cast<messages_stickerSetInstallResultSuccess &>(obj));
+ return true;
+ case messages_stickerSetInstallResultArchive::ID:
+ func(static_cast<messages_stickerSetInstallResultArchive &>(obj));
+ return true;
+ case messages_stickersNotModified::ID:
+ func(static_cast<messages_stickersNotModified &>(obj));
+ return true;
+ case messages_stickers::ID:
+ func(static_cast<messages_stickers &>(obj));
+ return true;
+ case messages_transcribedAudio::ID:
+ func(static_cast<messages_transcribedAudio &>(obj));
+ return true;
+ case messages_translateNoResult::ID:
+ func(static_cast<messages_translateNoResult &>(obj));
+ return true;
+ case messages_translateResultText::ID:
+ func(static_cast<messages_translateResultText &>(obj));
+ return true;
+ case messages_votesList::ID:
+ func(static_cast<messages_votesList &>(obj));
+ return true;
+ case payments_bankCardData::ID:
+ func(static_cast<payments_bankCardData &>(obj));
+ return true;
+ case payments_exportedInvoice::ID:
+ func(static_cast<payments_exportedInvoice &>(obj));
+ return true;
+ case payments_paymentForm::ID:
+ func(static_cast<payments_paymentForm &>(obj));
+ return true;
+ case payments_paymentReceipt::ID:
+ func(static_cast<payments_paymentReceipt &>(obj));
+ return true;
+ case payments_paymentResult::ID:
+ func(static_cast<payments_paymentResult &>(obj));
+ return true;
+ case payments_paymentVerificationNeeded::ID:
+ func(static_cast<payments_paymentVerificationNeeded &>(obj));
+ return true;
+ case payments_savedInfo::ID:
+ func(static_cast<payments_savedInfo &>(obj));
+ return true;
+ case payments_validatedRequestedInfo::ID:
+ func(static_cast<payments_validatedRequestedInfo &>(obj));
+ return true;
+ case phone_exportedGroupCallInvite::ID:
+ func(static_cast<phone_exportedGroupCallInvite &>(obj));
+ return true;
+ case phone_groupCall::ID:
+ func(static_cast<phone_groupCall &>(obj));
+ return true;
+ case phone_groupCallStreamChannels::ID:
+ func(static_cast<phone_groupCallStreamChannels &>(obj));
+ return true;
+ case phone_groupCallStreamRtmpUrl::ID:
+ func(static_cast<phone_groupCallStreamRtmpUrl &>(obj));
+ return true;
+ case phone_groupParticipants::ID:
+ func(static_cast<phone_groupParticipants &>(obj));
+ return true;
+ case phone_joinAsPeers::ID:
+ func(static_cast<phone_joinAsPeers &>(obj));
+ return true;
+ case phone_phoneCall::ID:
+ func(static_cast<phone_phoneCall &>(obj));
+ return true;
+ case photos_photo::ID:
+ func(static_cast<photos_photo &>(obj));
+ return true;
+ case photos_photos::ID:
+ func(static_cast<photos_photos &>(obj));
+ return true;
+ case photos_photosSlice::ID:
+ func(static_cast<photos_photosSlice &>(obj));
+ return true;
+ case stats_broadcastStats::ID:
+ func(static_cast<stats_broadcastStats &>(obj));
+ return true;
+ case stats_megagroupStats::ID:
+ func(static_cast<stats_megagroupStats &>(obj));
+ return true;
+ case stats_messageStats::ID:
+ func(static_cast<stats_messageStats &>(obj));
+ return true;
+ case stickers_suggestedShortName::ID:
+ func(static_cast<stickers_suggestedShortName &>(obj));
+ return true;
+ case storage_fileUnknown::ID:
+ func(static_cast<storage_fileUnknown &>(obj));
+ return true;
+ case storage_filePartial::ID:
+ func(static_cast<storage_filePartial &>(obj));
+ return true;
+ case storage_fileJpeg::ID:
+ func(static_cast<storage_fileJpeg &>(obj));
+ return true;
+ case storage_fileGif::ID:
+ func(static_cast<storage_fileGif &>(obj));
+ return true;
+ case storage_filePng::ID:
+ func(static_cast<storage_filePng &>(obj));
+ return true;
+ case storage_filePdf::ID:
+ func(static_cast<storage_filePdf &>(obj));
+ return true;
+ case storage_fileMp3::ID:
+ func(static_cast<storage_fileMp3 &>(obj));
+ return true;
+ case storage_fileMov::ID:
+ func(static_cast<storage_fileMov &>(obj));
+ return true;
+ case storage_fileMp4::ID:
+ func(static_cast<storage_fileMp4 &>(obj));
+ return true;
+ case storage_fileWebp::ID:
+ func(static_cast<storage_fileWebp &>(obj));
+ return true;
+ case updates_channelDifferenceEmpty::ID:
+ func(static_cast<updates_channelDifferenceEmpty &>(obj));
+ return true;
+ case updates_channelDifferenceTooLong::ID:
+ func(static_cast<updates_channelDifferenceTooLong &>(obj));
+ return true;
+ case updates_channelDifference::ID:
+ func(static_cast<updates_channelDifference &>(obj));
+ return true;
+ case updates_differenceEmpty::ID:
+ func(static_cast<updates_differenceEmpty &>(obj));
+ return true;
+ case updates_difference::ID:
+ func(static_cast<updates_difference &>(obj));
+ return true;
+ case updates_differenceSlice::ID:
+ func(static_cast<updates_differenceSlice &>(obj));
+ return true;
+ case updates_differenceTooLong::ID:
+ func(static_cast<updates_differenceTooLong &>(obj));
+ return true;
+ case updates_state::ID:
+ func(static_cast<updates_state &>(obj));
+ return true;
+ case upload_cdnFileReuploadNeeded::ID:
+ func(static_cast<upload_cdnFileReuploadNeeded &>(obj));
+ return true;
+ case upload_cdnFile::ID:
+ func(static_cast<upload_cdnFile &>(obj));
+ return true;
+ case upload_file::ID:
+ func(static_cast<upload_file &>(obj));
+ return true;
+ case upload_fileCdnRedirect::ID:
+ func(static_cast<upload_fileCdnRedirect &>(obj));
+ return true;
+ case upload_webFile::ID:
+ func(static_cast<upload_webFile &>(obj));
+ return true;
+ case users_userFull::ID:
+ func(static_cast<users_userFull &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Function &obj, const T &func) {
+ switch (obj.get_id()) {
+ case account_acceptAuthorization::ID:
+ func(static_cast<account_acceptAuthorization &>(obj));
+ return true;
+ case account_cancelPasswordEmail::ID:
+ func(static_cast<account_cancelPasswordEmail &>(obj));
+ return true;
+ case account_changeAuthorizationSettings::ID:
+ func(static_cast<account_changeAuthorizationSettings &>(obj));
+ return true;
+ case account_changePhone::ID:
+ func(static_cast<account_changePhone &>(obj));
+ return true;
+ case account_checkUsername::ID:
+ func(static_cast<account_checkUsername &>(obj));
+ return true;
+ case account_clearRecentEmojiStatuses::ID:
+ func(static_cast<account_clearRecentEmojiStatuses &>(obj));
+ return true;
+ case account_confirmPasswordEmail::ID:
+ func(static_cast<account_confirmPasswordEmail &>(obj));
+ return true;
+ case account_confirmPhone::ID:
+ func(static_cast<account_confirmPhone &>(obj));
+ return true;
+ case account_createTheme::ID:
+ func(static_cast<account_createTheme &>(obj));
+ return true;
+ case account_declinePasswordReset::ID:
+ func(static_cast<account_declinePasswordReset &>(obj));
+ return true;
+ case account_deleteAccount::ID:
+ func(static_cast<account_deleteAccount &>(obj));
+ return true;
+ case account_deleteSecureValue::ID:
+ func(static_cast<account_deleteSecureValue &>(obj));
+ return true;
+ case account_finishTakeoutSession::ID:
+ func(static_cast<account_finishTakeoutSession &>(obj));
+ return true;
+ case account_getAccountTTL::ID:
+ func(static_cast<account_getAccountTTL &>(obj));
+ return true;
+ case account_getAllSecureValues::ID:
+ func(static_cast<account_getAllSecureValues &>(obj));
+ return true;
+ case account_getAuthorizationForm::ID:
+ func(static_cast<account_getAuthorizationForm &>(obj));
+ return true;
+ case account_getAuthorizations::ID:
+ func(static_cast<account_getAuthorizations &>(obj));
+ return true;
+ case account_getAutoDownloadSettings::ID:
+ func(static_cast<account_getAutoDownloadSettings &>(obj));
+ return true;
+ case account_getChatThemes::ID:
+ func(static_cast<account_getChatThemes &>(obj));
+ return true;
+ case account_getContactSignUpNotification::ID:
+ func(static_cast<account_getContactSignUpNotification &>(obj));
+ return true;
+ case account_getContentSettings::ID:
+ func(static_cast<account_getContentSettings &>(obj));
+ return true;
+ case account_getDefaultEmojiStatuses::ID:
+ func(static_cast<account_getDefaultEmojiStatuses &>(obj));
+ return true;
+ case account_getGlobalPrivacySettings::ID:
+ func(static_cast<account_getGlobalPrivacySettings &>(obj));
+ return true;
+ case account_getMultiWallPapers::ID:
+ func(static_cast<account_getMultiWallPapers &>(obj));
+ return true;
+ case account_getNotifyExceptions::ID:
+ func(static_cast<account_getNotifyExceptions &>(obj));
+ return true;
+ case account_getNotifySettings::ID:
+ func(static_cast<account_getNotifySettings &>(obj));
+ return true;
+ case account_getPassword::ID:
+ func(static_cast<account_getPassword &>(obj));
+ return true;
+ case account_getPasswordSettings::ID:
+ func(static_cast<account_getPasswordSettings &>(obj));
+ return true;
+ case account_getPrivacy::ID:
+ func(static_cast<account_getPrivacy &>(obj));
+ return true;
+ case account_getRecentEmojiStatuses::ID:
+ func(static_cast<account_getRecentEmojiStatuses &>(obj));
+ return true;
+ case account_getSavedRingtones::ID:
+ func(static_cast<account_getSavedRingtones &>(obj));
+ return true;
+ case account_getSecureValue::ID:
+ func(static_cast<account_getSecureValue &>(obj));
+ return true;
+ case account_getTheme::ID:
+ func(static_cast<account_getTheme &>(obj));
+ return true;
+ case account_getThemes::ID:
+ func(static_cast<account_getThemes &>(obj));
+ return true;
+ case account_getTmpPassword::ID:
+ func(static_cast<account_getTmpPassword &>(obj));
+ return true;
+ case account_getWallPaper::ID:
+ func(static_cast<account_getWallPaper &>(obj));
+ return true;
+ case account_getWallPapers::ID:
+ func(static_cast<account_getWallPapers &>(obj));
+ return true;
+ case account_getWebAuthorizations::ID:
+ func(static_cast<account_getWebAuthorizations &>(obj));
+ return true;
+ case account_initTakeoutSession::ID:
+ func(static_cast<account_initTakeoutSession &>(obj));
+ return true;
+ case account_installTheme::ID:
+ func(static_cast<account_installTheme &>(obj));
+ return true;
+ case account_installWallPaper::ID:
+ func(static_cast<account_installWallPaper &>(obj));
+ return true;
+ case account_registerDevice::ID:
+ func(static_cast<account_registerDevice &>(obj));
+ return true;
+ case account_reorderUsernames::ID:
+ func(static_cast<account_reorderUsernames &>(obj));
+ return true;
+ case account_reportPeer::ID:
+ func(static_cast<account_reportPeer &>(obj));
+ return true;
+ case account_reportProfilePhoto::ID:
+ func(static_cast<account_reportProfilePhoto &>(obj));
+ return true;
+ case account_resendPasswordEmail::ID:
+ func(static_cast<account_resendPasswordEmail &>(obj));
+ return true;
+ case account_resetAuthorization::ID:
+ func(static_cast<account_resetAuthorization &>(obj));
+ return true;
+ case account_resetNotifySettings::ID:
+ func(static_cast<account_resetNotifySettings &>(obj));
+ return true;
+ case account_resetPassword::ID:
+ func(static_cast<account_resetPassword &>(obj));
+ return true;
+ case account_resetWallPapers::ID:
+ func(static_cast<account_resetWallPapers &>(obj));
+ return true;
+ case account_resetWebAuthorization::ID:
+ func(static_cast<account_resetWebAuthorization &>(obj));
+ return true;
+ case account_resetWebAuthorizations::ID:
+ func(static_cast<account_resetWebAuthorizations &>(obj));
+ return true;
+ case account_saveAutoDownloadSettings::ID:
+ func(static_cast<account_saveAutoDownloadSettings &>(obj));
+ return true;
+ case account_saveRingtone::ID:
+ func(static_cast<account_saveRingtone &>(obj));
+ return true;
+ case account_saveSecureValue::ID:
+ func(static_cast<account_saveSecureValue &>(obj));
+ return true;
+ case account_saveTheme::ID:
+ func(static_cast<account_saveTheme &>(obj));
+ return true;
+ case account_saveWallPaper::ID:
+ func(static_cast<account_saveWallPaper &>(obj));
+ return true;
+ case account_sendChangePhoneCode::ID:
+ func(static_cast<account_sendChangePhoneCode &>(obj));
+ return true;
+ case account_sendConfirmPhoneCode::ID:
+ func(static_cast<account_sendConfirmPhoneCode &>(obj));
+ return true;
+ case account_sendVerifyEmailCode::ID:
+ func(static_cast<account_sendVerifyEmailCode &>(obj));
+ return true;
+ case account_sendVerifyPhoneCode::ID:
+ func(static_cast<account_sendVerifyPhoneCode &>(obj));
+ return true;
+ case account_setAccountTTL::ID:
+ func(static_cast<account_setAccountTTL &>(obj));
+ return true;
+ case account_setAuthorizationTTL::ID:
+ func(static_cast<account_setAuthorizationTTL &>(obj));
+ return true;
+ case account_setContactSignUpNotification::ID:
+ func(static_cast<account_setContactSignUpNotification &>(obj));
+ return true;
+ case account_setContentSettings::ID:
+ func(static_cast<account_setContentSettings &>(obj));
+ return true;
+ case account_setGlobalPrivacySettings::ID:
+ func(static_cast<account_setGlobalPrivacySettings &>(obj));
+ return true;
+ case account_setPrivacy::ID:
+ func(static_cast<account_setPrivacy &>(obj));
+ return true;
+ case account_toggleUsername::ID:
+ func(static_cast<account_toggleUsername &>(obj));
+ return true;
+ case account_unregisterDevice::ID:
+ func(static_cast<account_unregisterDevice &>(obj));
+ return true;
+ case account_updateDeviceLocked::ID:
+ func(static_cast<account_updateDeviceLocked &>(obj));
+ return true;
+ case account_updateEmojiStatus::ID:
+ func(static_cast<account_updateEmojiStatus &>(obj));
+ return true;
+ case account_updateNotifySettings::ID:
+ func(static_cast<account_updateNotifySettings &>(obj));
+ return true;
+ case account_updatePasswordSettings::ID:
+ func(static_cast<account_updatePasswordSettings &>(obj));
+ return true;
+ case account_updateProfile::ID:
+ func(static_cast<account_updateProfile &>(obj));
+ return true;
+ case account_updateStatus::ID:
+ func(static_cast<account_updateStatus &>(obj));
+ return true;
+ case account_updateTheme::ID:
+ func(static_cast<account_updateTheme &>(obj));
+ return true;
+ case account_updateUsername::ID:
+ func(static_cast<account_updateUsername &>(obj));
+ return true;
+ case account_uploadRingtone::ID:
+ func(static_cast<account_uploadRingtone &>(obj));
+ return true;
+ case account_uploadTheme::ID:
+ func(static_cast<account_uploadTheme &>(obj));
+ return true;
+ case account_uploadWallPaper::ID:
+ func(static_cast<account_uploadWallPaper &>(obj));
+ return true;
+ case account_verifyEmail::ID:
+ func(static_cast<account_verifyEmail &>(obj));
+ return true;
+ case account_verifyPhone::ID:
+ func(static_cast<account_verifyPhone &>(obj));
+ return true;
+ case auth_acceptLoginToken::ID:
+ func(static_cast<auth_acceptLoginToken &>(obj));
+ return true;
+ case auth_bindTempAuthKey::ID:
+ func(static_cast<auth_bindTempAuthKey &>(obj));
+ return true;
+ case auth_cancelCode::ID:
+ func(static_cast<auth_cancelCode &>(obj));
+ return true;
+ case auth_checkPassword::ID:
+ func(static_cast<auth_checkPassword &>(obj));
+ return true;
+ case auth_checkRecoveryPassword::ID:
+ func(static_cast<auth_checkRecoveryPassword &>(obj));
+ return true;
+ case auth_dropTempAuthKeys::ID:
+ func(static_cast<auth_dropTempAuthKeys &>(obj));
+ return true;
+ case auth_exportAuthorization::ID:
+ func(static_cast<auth_exportAuthorization &>(obj));
+ return true;
+ case auth_exportLoginToken::ID:
+ func(static_cast<auth_exportLoginToken &>(obj));
+ return true;
+ case auth_importAuthorization::ID:
+ func(static_cast<auth_importAuthorization &>(obj));
+ return true;
+ case auth_importBotAuthorization::ID:
+ func(static_cast<auth_importBotAuthorization &>(obj));
+ return true;
+ case auth_importLoginToken::ID:
+ func(static_cast<auth_importLoginToken &>(obj));
+ return true;
+ case auth_logOut::ID:
+ func(static_cast<auth_logOut &>(obj));
+ return true;
+ case auth_recoverPassword::ID:
+ func(static_cast<auth_recoverPassword &>(obj));
+ return true;
+ case auth_requestPasswordRecovery::ID:
+ func(static_cast<auth_requestPasswordRecovery &>(obj));
+ return true;
+ case auth_resendCode::ID:
+ func(static_cast<auth_resendCode &>(obj));
+ return true;
+ case auth_resetAuthorizations::ID:
+ func(static_cast<auth_resetAuthorizations &>(obj));
+ return true;
+ case auth_sendCode::ID:
+ func(static_cast<auth_sendCode &>(obj));
+ return true;
+ case auth_signIn::ID:
+ func(static_cast<auth_signIn &>(obj));
+ return true;
+ case auth_signUp::ID:
+ func(static_cast<auth_signUp &>(obj));
+ return true;
+ case bots_answerWebhookJSONQuery::ID:
+ func(static_cast<bots_answerWebhookJSONQuery &>(obj));
+ return true;
+ case bots_getBotCommands::ID:
+ func(static_cast<bots_getBotCommands &>(obj));
+ return true;
+ case bots_getBotMenuButton::ID:
+ func(static_cast<bots_getBotMenuButton &>(obj));
+ return true;
+ case bots_resetBotCommands::ID:
+ func(static_cast<bots_resetBotCommands &>(obj));
+ return true;
+ case bots_sendCustomRequest::ID:
+ func(static_cast<bots_sendCustomRequest &>(obj));
+ return true;
+ case bots_setBotBroadcastDefaultAdminRights::ID:
+ func(static_cast<bots_setBotBroadcastDefaultAdminRights &>(obj));
+ return true;
+ case bots_setBotCommands::ID:
+ func(static_cast<bots_setBotCommands &>(obj));
+ return true;
+ case bots_setBotGroupDefaultAdminRights::ID:
+ func(static_cast<bots_setBotGroupDefaultAdminRights &>(obj));
+ return true;
+ case bots_setBotMenuButton::ID:
+ func(static_cast<bots_setBotMenuButton &>(obj));
+ return true;
+ case channels_checkUsername::ID:
+ func(static_cast<channels_checkUsername &>(obj));
+ return true;
+ case channels_convertToGigagroup::ID:
+ func(static_cast<channels_convertToGigagroup &>(obj));
+ return true;
+ case channels_createChannel::ID:
+ func(static_cast<channels_createChannel &>(obj));
+ return true;
+ case channels_createForumTopic::ID:
+ func(static_cast<channels_createForumTopic &>(obj));
+ return true;
+ case channels_deactivateAllUsernames::ID:
+ func(static_cast<channels_deactivateAllUsernames &>(obj));
+ return true;
+ case channels_deleteChannel::ID:
+ func(static_cast<channels_deleteChannel &>(obj));
+ return true;
+ case channels_deleteHistory::ID:
+ func(static_cast<channels_deleteHistory &>(obj));
+ return true;
+ case channels_deleteMessages::ID:
+ func(static_cast<channels_deleteMessages &>(obj));
+ return true;
+ case channels_deleteParticipantHistory::ID:
+ func(static_cast<channels_deleteParticipantHistory &>(obj));
+ return true;
+ case channels_deleteTopicHistory::ID:
+ func(static_cast<channels_deleteTopicHistory &>(obj));
+ return true;
+ case channels_editAdmin::ID:
+ func(static_cast<channels_editAdmin &>(obj));
+ return true;
+ case channels_editBanned::ID:
+ func(static_cast<channels_editBanned &>(obj));
+ return true;
+ case channels_editCreator::ID:
+ func(static_cast<channels_editCreator &>(obj));
+ return true;
+ case channels_editForumTopic::ID:
+ func(static_cast<channels_editForumTopic &>(obj));
+ return true;
+ case channels_editLocation::ID:
+ func(static_cast<channels_editLocation &>(obj));
+ return true;
+ case channels_editPhoto::ID:
+ func(static_cast<channels_editPhoto &>(obj));
+ return true;
+ case channels_editTitle::ID:
+ func(static_cast<channels_editTitle &>(obj));
+ return true;
+ case channels_exportMessageLink::ID:
+ func(static_cast<channels_exportMessageLink &>(obj));
+ return true;
+ case channels_getAdminLog::ID:
+ func(static_cast<channels_getAdminLog &>(obj));
+ return true;
+ case channels_getAdminedPublicChannels::ID:
+ func(static_cast<channels_getAdminedPublicChannels &>(obj));
+ return true;
+ case channels_getChannels::ID:
+ func(static_cast<channels_getChannels &>(obj));
+ return true;
+ case channels_getForumTopics::ID:
+ func(static_cast<channels_getForumTopics &>(obj));
+ return true;
+ case channels_getForumTopicsByID::ID:
+ func(static_cast<channels_getForumTopicsByID &>(obj));
+ return true;
+ case channels_getFullChannel::ID:
+ func(static_cast<channels_getFullChannel &>(obj));
+ return true;
+ case channels_getGroupsForDiscussion::ID:
+ func(static_cast<channels_getGroupsForDiscussion &>(obj));
+ return true;
+ case channels_getInactiveChannels::ID:
+ func(static_cast<channels_getInactiveChannels &>(obj));
+ return true;
+ case channels_getLeftChannels::ID:
+ func(static_cast<channels_getLeftChannels &>(obj));
+ return true;
+ case channels_getMessages::ID:
+ func(static_cast<channels_getMessages &>(obj));
+ return true;
+ case channels_getParticipant::ID:
+ func(static_cast<channels_getParticipant &>(obj));
+ return true;
+ case channels_getParticipants::ID:
+ func(static_cast<channels_getParticipants &>(obj));
+ return true;
+ case channels_getSendAs::ID:
+ func(static_cast<channels_getSendAs &>(obj));
+ return true;
+ case channels_getSponsoredMessages::ID:
+ func(static_cast<channels_getSponsoredMessages &>(obj));
+ return true;
+ case channels_inviteToChannel::ID:
+ func(static_cast<channels_inviteToChannel &>(obj));
+ return true;
+ case channels_joinChannel::ID:
+ func(static_cast<channels_joinChannel &>(obj));
+ return true;
+ case channels_leaveChannel::ID:
+ func(static_cast<channels_leaveChannel &>(obj));
+ return true;
+ case channels_readHistory::ID:
+ func(static_cast<channels_readHistory &>(obj));
+ return true;
+ case channels_readMessageContents::ID:
+ func(static_cast<channels_readMessageContents &>(obj));
+ return true;
+ case channels_reorderUsernames::ID:
+ func(static_cast<channels_reorderUsernames &>(obj));
+ return true;
+ case channels_reportSpam::ID:
+ func(static_cast<channels_reportSpam &>(obj));
+ return true;
+ case channels_setDiscussionGroup::ID:
+ func(static_cast<channels_setDiscussionGroup &>(obj));
+ return true;
+ case channels_setStickers::ID:
+ func(static_cast<channels_setStickers &>(obj));
+ return true;
+ case channels_toggleForum::ID:
+ func(static_cast<channels_toggleForum &>(obj));
+ return true;
+ case channels_toggleJoinRequest::ID:
+ func(static_cast<channels_toggleJoinRequest &>(obj));
+ return true;
+ case channels_toggleJoinToSend::ID:
+ func(static_cast<channels_toggleJoinToSend &>(obj));
+ return true;
+ case channels_togglePreHistoryHidden::ID:
+ func(static_cast<channels_togglePreHistoryHidden &>(obj));
+ return true;
+ case channels_toggleSignatures::ID:
+ func(static_cast<channels_toggleSignatures &>(obj));
+ return true;
+ case channels_toggleSlowMode::ID:
+ func(static_cast<channels_toggleSlowMode &>(obj));
+ return true;
+ case channels_toggleUsername::ID:
+ func(static_cast<channels_toggleUsername &>(obj));
+ return true;
+ case channels_updatePinnedForumTopic::ID:
+ func(static_cast<channels_updatePinnedForumTopic &>(obj));
+ return true;
+ case channels_updateUsername::ID:
+ func(static_cast<channels_updateUsername &>(obj));
+ return true;
+ case channels_viewSponsoredMessage::ID:
+ func(static_cast<channels_viewSponsoredMessage &>(obj));
+ return true;
+ case contacts_acceptContact::ID:
+ func(static_cast<contacts_acceptContact &>(obj));
+ return true;
+ case contacts_addContact::ID:
+ func(static_cast<contacts_addContact &>(obj));
+ return true;
+ case contacts_block::ID:
+ func(static_cast<contacts_block &>(obj));
+ return true;
+ case contacts_blockFromReplies::ID:
+ func(static_cast<contacts_blockFromReplies &>(obj));
+ return true;
+ case contacts_deleteByPhones::ID:
+ func(static_cast<contacts_deleteByPhones &>(obj));
+ return true;
+ case contacts_deleteContacts::ID:
+ func(static_cast<contacts_deleteContacts &>(obj));
+ return true;
+ case contacts_getBlocked::ID:
+ func(static_cast<contacts_getBlocked &>(obj));
+ return true;
+ case contacts_getContactIDs::ID:
+ func(static_cast<contacts_getContactIDs &>(obj));
+ return true;
+ case contacts_getContacts::ID:
+ func(static_cast<contacts_getContacts &>(obj));
+ return true;
+ case contacts_getLocated::ID:
+ func(static_cast<contacts_getLocated &>(obj));
+ return true;
+ case contacts_getSaved::ID:
+ func(static_cast<contacts_getSaved &>(obj));
+ return true;
+ case contacts_getStatuses::ID:
+ func(static_cast<contacts_getStatuses &>(obj));
+ return true;
+ case contacts_getTopPeers::ID:
+ func(static_cast<contacts_getTopPeers &>(obj));
+ return true;
+ case contacts_importContacts::ID:
+ func(static_cast<contacts_importContacts &>(obj));
+ return true;
+ case contacts_resetSaved::ID:
+ func(static_cast<contacts_resetSaved &>(obj));
+ return true;
+ case contacts_resetTopPeerRating::ID:
+ func(static_cast<contacts_resetTopPeerRating &>(obj));
+ return true;
+ case contacts_resolvePhone::ID:
+ func(static_cast<contacts_resolvePhone &>(obj));
+ return true;
+ case contacts_resolveUsername::ID:
+ func(static_cast<contacts_resolveUsername &>(obj));
+ return true;
+ case contacts_search::ID:
+ func(static_cast<contacts_search &>(obj));
+ return true;
+ case contacts_toggleTopPeers::ID:
+ func(static_cast<contacts_toggleTopPeers &>(obj));
+ return true;
+ case contacts_unblock::ID:
+ func(static_cast<contacts_unblock &>(obj));
+ return true;
+ case folders_deleteFolder::ID:
+ func(static_cast<folders_deleteFolder &>(obj));
+ return true;
+ case folders_editPeerFolders::ID:
+ func(static_cast<folders_editPeerFolders &>(obj));
+ return true;
+ case help_acceptTermsOfService::ID:
+ func(static_cast<help_acceptTermsOfService &>(obj));
+ return true;
+ case help_dismissSuggestion::ID:
+ func(static_cast<help_dismissSuggestion &>(obj));
+ return true;
+ case help_editUserInfo::ID:
+ func(static_cast<help_editUserInfo &>(obj));
+ return true;
+ case help_getAppChangelog::ID:
+ func(static_cast<help_getAppChangelog &>(obj));
+ return true;
+ case help_getAppConfig::ID:
+ func(static_cast<help_getAppConfig &>(obj));
+ return true;
+ case help_getAppUpdate::ID:
+ func(static_cast<help_getAppUpdate &>(obj));
+ return true;
+ case help_getCdnConfig::ID:
+ func(static_cast<help_getCdnConfig &>(obj));
+ return true;
+ case help_getConfig::ID:
+ func(static_cast<help_getConfig &>(obj));
+ return true;
+ case help_getCountriesList::ID:
+ func(static_cast<help_getCountriesList &>(obj));
+ return true;
+ case help_getDeepLinkInfo::ID:
+ func(static_cast<help_getDeepLinkInfo &>(obj));
+ return true;
+ case help_getInviteText::ID:
+ func(static_cast<help_getInviteText &>(obj));
+ return true;
+ case help_getNearestDc::ID:
+ func(static_cast<help_getNearestDc &>(obj));
+ return true;
+ case help_getPassportConfig::ID:
+ func(static_cast<help_getPassportConfig &>(obj));
+ return true;
+ case help_getPremiumPromo::ID:
+ func(static_cast<help_getPremiumPromo &>(obj));
+ return true;
+ case help_getPromoData::ID:
+ func(static_cast<help_getPromoData &>(obj));
+ return true;
+ case help_getRecentMeUrls::ID:
+ func(static_cast<help_getRecentMeUrls &>(obj));
+ return true;
+ case help_getSupport::ID:
+ func(static_cast<help_getSupport &>(obj));
+ return true;
+ case help_getSupportName::ID:
+ func(static_cast<help_getSupportName &>(obj));
+ return true;
+ case help_getTermsOfServiceUpdate::ID:
+ func(static_cast<help_getTermsOfServiceUpdate &>(obj));
+ return true;
+ case help_getUserInfo::ID:
+ func(static_cast<help_getUserInfo &>(obj));
+ return true;
+ case help_hidePromoData::ID:
+ func(static_cast<help_hidePromoData &>(obj));
+ return true;
+ case help_saveAppLog::ID:
+ func(static_cast<help_saveAppLog &>(obj));
+ return true;
+ case help_setBotUpdatesStatus::ID:
+ func(static_cast<help_setBotUpdatesStatus &>(obj));
+ return true;
+ case langpack_getDifference::ID:
+ func(static_cast<langpack_getDifference &>(obj));
+ return true;
+ case langpack_getLangPack::ID:
+ func(static_cast<langpack_getLangPack &>(obj));
+ return true;
+ case langpack_getLanguage::ID:
+ func(static_cast<langpack_getLanguage &>(obj));
+ return true;
+ case langpack_getLanguages::ID:
+ func(static_cast<langpack_getLanguages &>(obj));
+ return true;
+ case langpack_getStrings::ID:
+ func(static_cast<langpack_getStrings &>(obj));
+ return true;
+ case messages_acceptEncryption::ID:
+ func(static_cast<messages_acceptEncryption &>(obj));
+ return true;
+ case messages_acceptUrlAuth::ID:
+ func(static_cast<messages_acceptUrlAuth &>(obj));
+ return true;
+ case messages_addChatUser::ID:
+ func(static_cast<messages_addChatUser &>(obj));
+ return true;
+ case messages_checkChatInvite::ID:
+ func(static_cast<messages_checkChatInvite &>(obj));
+ return true;
+ case messages_checkHistoryImport::ID:
+ func(static_cast<messages_checkHistoryImport &>(obj));
+ return true;
+ case messages_checkHistoryImportPeer::ID:
+ func(static_cast<messages_checkHistoryImportPeer &>(obj));
+ return true;
+ case messages_clearAllDrafts::ID:
+ func(static_cast<messages_clearAllDrafts &>(obj));
+ return true;
+ case messages_clearRecentReactions::ID:
+ func(static_cast<messages_clearRecentReactions &>(obj));
+ return true;
+ case messages_clearRecentStickers::ID:
+ func(static_cast<messages_clearRecentStickers &>(obj));
+ return true;
+ case messages_createChat::ID:
+ func(static_cast<messages_createChat &>(obj));
+ return true;
+ case messages_deleteChat::ID:
+ func(static_cast<messages_deleteChat &>(obj));
+ return true;
+ case messages_deleteChatUser::ID:
+ func(static_cast<messages_deleteChatUser &>(obj));
+ return true;
+ case messages_deleteExportedChatInvite::ID:
+ func(static_cast<messages_deleteExportedChatInvite &>(obj));
+ return true;
+ case messages_deleteHistory::ID:
+ func(static_cast<messages_deleteHistory &>(obj));
+ return true;
+ case messages_deleteMessages::ID:
+ func(static_cast<messages_deleteMessages &>(obj));
+ return true;
+ case messages_deletePhoneCallHistory::ID:
+ func(static_cast<messages_deletePhoneCallHistory &>(obj));
+ return true;
+ case messages_deleteRevokedExportedChatInvites::ID:
+ func(static_cast<messages_deleteRevokedExportedChatInvites &>(obj));
+ return true;
+ case messages_deleteScheduledMessages::ID:
+ func(static_cast<messages_deleteScheduledMessages &>(obj));
+ return true;
+ case messages_discardEncryption::ID:
+ func(static_cast<messages_discardEncryption &>(obj));
+ return true;
+ case messages_editChatAbout::ID:
+ func(static_cast<messages_editChatAbout &>(obj));
+ return true;
+ case messages_editChatAdmin::ID:
+ func(static_cast<messages_editChatAdmin &>(obj));
+ return true;
+ case messages_editChatDefaultBannedRights::ID:
+ func(static_cast<messages_editChatDefaultBannedRights &>(obj));
+ return true;
+ case messages_editChatPhoto::ID:
+ func(static_cast<messages_editChatPhoto &>(obj));
+ return true;
+ case messages_editChatTitle::ID:
+ func(static_cast<messages_editChatTitle &>(obj));
+ return true;
+ case messages_editExportedChatInvite::ID:
+ func(static_cast<messages_editExportedChatInvite &>(obj));
+ return true;
+ case messages_editInlineBotMessage::ID:
+ func(static_cast<messages_editInlineBotMessage &>(obj));
+ return true;
+ case messages_editMessage::ID:
+ func(static_cast<messages_editMessage &>(obj));
+ return true;
+ case messages_exportChatInvite::ID:
+ func(static_cast<messages_exportChatInvite &>(obj));
+ return true;
+ case messages_faveSticker::ID:
+ func(static_cast<messages_faveSticker &>(obj));
+ return true;
+ case messages_forwardMessages::ID:
+ func(static_cast<messages_forwardMessages &>(obj));
+ return true;
+ case messages_getAdminsWithInvites::ID:
+ func(static_cast<messages_getAdminsWithInvites &>(obj));
+ return true;
+ case messages_getAllChats::ID:
+ func(static_cast<messages_getAllChats &>(obj));
+ return true;
+ case messages_getAllDrafts::ID:
+ func(static_cast<messages_getAllDrafts &>(obj));
+ return true;
+ case messages_getAllStickers::ID:
+ func(static_cast<messages_getAllStickers &>(obj));
+ return true;
+ case messages_getArchivedStickers::ID:
+ func(static_cast<messages_getArchivedStickers &>(obj));
+ return true;
+ case messages_getAttachMenuBot::ID:
+ func(static_cast<messages_getAttachMenuBot &>(obj));
+ return true;
+ case messages_getAttachMenuBots::ID:
+ func(static_cast<messages_getAttachMenuBots &>(obj));
+ return true;
+ case messages_getAttachedStickers::ID:
+ func(static_cast<messages_getAttachedStickers &>(obj));
+ return true;
+ case messages_getAvailableReactions::ID:
+ func(static_cast<messages_getAvailableReactions &>(obj));
+ return true;
+ case messages_getBotCallbackAnswer::ID:
+ func(static_cast<messages_getBotCallbackAnswer &>(obj));
+ return true;
+ case messages_getChatInviteImporters::ID:
+ func(static_cast<messages_getChatInviteImporters &>(obj));
+ return true;
+ case messages_getChats::ID:
+ func(static_cast<messages_getChats &>(obj));
+ return true;
+ case messages_getCommonChats::ID:
+ func(static_cast<messages_getCommonChats &>(obj));
+ return true;
+ case messages_getCustomEmojiDocuments::ID:
+ func(static_cast<messages_getCustomEmojiDocuments &>(obj));
+ return true;
+ case messages_getDhConfig::ID:
+ func(static_cast<messages_getDhConfig &>(obj));
+ return true;
+ case messages_getDialogFilters::ID:
+ func(static_cast<messages_getDialogFilters &>(obj));
+ return true;
+ case messages_getDialogUnreadMarks::ID:
+ func(static_cast<messages_getDialogUnreadMarks &>(obj));
+ return true;
+ case messages_getDialogs::ID:
+ func(static_cast<messages_getDialogs &>(obj));
+ return true;
+ case messages_getDiscussionMessage::ID:
+ func(static_cast<messages_getDiscussionMessage &>(obj));
+ return true;
+ case messages_getDocumentByHash::ID:
+ func(static_cast<messages_getDocumentByHash &>(obj));
+ return true;
+ case messages_getEmojiKeywords::ID:
+ func(static_cast<messages_getEmojiKeywords &>(obj));
+ return true;
+ case messages_getEmojiKeywordsDifference::ID:
+ func(static_cast<messages_getEmojiKeywordsDifference &>(obj));
+ return true;
+ case messages_getEmojiKeywordsLanguages::ID:
+ func(static_cast<messages_getEmojiKeywordsLanguages &>(obj));
+ return true;
+ case messages_getEmojiStickers::ID:
+ func(static_cast<messages_getEmojiStickers &>(obj));
+ return true;
+ case messages_getEmojiURL::ID:
+ func(static_cast<messages_getEmojiURL &>(obj));
+ return true;
+ case messages_getExportedChatInvite::ID:
+ func(static_cast<messages_getExportedChatInvite &>(obj));
+ return true;
+ case messages_getExportedChatInvites::ID:
+ func(static_cast<messages_getExportedChatInvites &>(obj));
+ return true;
+ case messages_getExtendedMedia::ID:
+ func(static_cast<messages_getExtendedMedia &>(obj));
+ return true;
+ case messages_getFavedStickers::ID:
+ func(static_cast<messages_getFavedStickers &>(obj));
+ return true;
+ case messages_getFeaturedEmojiStickers::ID:
+ func(static_cast<messages_getFeaturedEmojiStickers &>(obj));
+ return true;
+ case messages_getFeaturedStickers::ID:
+ func(static_cast<messages_getFeaturedStickers &>(obj));
+ return true;
+ case messages_getFullChat::ID:
+ func(static_cast<messages_getFullChat &>(obj));
+ return true;
+ case messages_getGameHighScores::ID:
+ func(static_cast<messages_getGameHighScores &>(obj));
+ return true;
+ case messages_getHistory::ID:
+ func(static_cast<messages_getHistory &>(obj));
+ return true;
+ case messages_getInlineBotResults::ID:
+ func(static_cast<messages_getInlineBotResults &>(obj));
+ return true;
+ case messages_getInlineGameHighScores::ID:
+ func(static_cast<messages_getInlineGameHighScores &>(obj));
+ return true;
+ case messages_getMaskStickers::ID:
+ func(static_cast<messages_getMaskStickers &>(obj));
+ return true;
+ case messages_getMessageEditData::ID:
+ func(static_cast<messages_getMessageEditData &>(obj));
+ return true;
+ case messages_getMessageReactionsList::ID:
+ func(static_cast<messages_getMessageReactionsList &>(obj));
+ return true;
+ case messages_getMessageReadParticipants::ID:
+ func(static_cast<messages_getMessageReadParticipants &>(obj));
+ return true;
+ case messages_getMessages::ID:
+ func(static_cast<messages_getMessages &>(obj));
+ return true;
+ case messages_getMessagesReactions::ID:
+ func(static_cast<messages_getMessagesReactions &>(obj));
+ return true;
+ case messages_getMessagesViews::ID:
+ func(static_cast<messages_getMessagesViews &>(obj));
+ return true;
+ case messages_getOldFeaturedStickers::ID:
+ func(static_cast<messages_getOldFeaturedStickers &>(obj));
+ return true;
+ case messages_getOnlines::ID:
+ func(static_cast<messages_getOnlines &>(obj));
+ return true;
+ case messages_getPeerDialogs::ID:
+ func(static_cast<messages_getPeerDialogs &>(obj));
+ return true;
+ case messages_getPeerSettings::ID:
+ func(static_cast<messages_getPeerSettings &>(obj));
+ return true;
+ case messages_getPinnedDialogs::ID:
+ func(static_cast<messages_getPinnedDialogs &>(obj));
+ return true;
+ case messages_getPollResults::ID:
+ func(static_cast<messages_getPollResults &>(obj));
+ return true;
+ case messages_getPollVotes::ID:
+ func(static_cast<messages_getPollVotes &>(obj));
+ return true;
+ case messages_getRecentLocations::ID:
+ func(static_cast<messages_getRecentLocations &>(obj));
+ return true;
+ case messages_getRecentReactions::ID:
+ func(static_cast<messages_getRecentReactions &>(obj));
+ return true;
+ case messages_getRecentStickers::ID:
+ func(static_cast<messages_getRecentStickers &>(obj));
+ return true;
+ case messages_getReplies::ID:
+ func(static_cast<messages_getReplies &>(obj));
+ return true;
+ case messages_getSavedGifs::ID:
+ func(static_cast<messages_getSavedGifs &>(obj));
+ return true;
+ case messages_getScheduledHistory::ID:
+ func(static_cast<messages_getScheduledHistory &>(obj));
+ return true;
+ case messages_getScheduledMessages::ID:
+ func(static_cast<messages_getScheduledMessages &>(obj));
+ return true;
+ case messages_getSearchCounters::ID:
+ func(static_cast<messages_getSearchCounters &>(obj));
+ return true;
+ case messages_getSearchResultsCalendar::ID:
+ func(static_cast<messages_getSearchResultsCalendar &>(obj));
+ return true;
+ case messages_getSearchResultsPositions::ID:
+ func(static_cast<messages_getSearchResultsPositions &>(obj));
+ return true;
+ case messages_getSplitRanges::ID:
+ func(static_cast<messages_getSplitRanges &>(obj));
+ return true;
+ case messages_getStickerSet::ID:
+ func(static_cast<messages_getStickerSet &>(obj));
+ return true;
+ case messages_getStickers::ID:
+ func(static_cast<messages_getStickers &>(obj));
+ return true;
+ case messages_getSuggestedDialogFilters::ID:
+ func(static_cast<messages_getSuggestedDialogFilters &>(obj));
+ return true;
+ case messages_getTopReactions::ID:
+ func(static_cast<messages_getTopReactions &>(obj));
+ return true;
+ case messages_getUnreadMentions::ID:
+ func(static_cast<messages_getUnreadMentions &>(obj));
+ return true;
+ case messages_getUnreadReactions::ID:
+ func(static_cast<messages_getUnreadReactions &>(obj));
+ return true;
+ case messages_getWebPage::ID:
+ func(static_cast<messages_getWebPage &>(obj));
+ return true;
+ case messages_getWebPagePreview::ID:
+ func(static_cast<messages_getWebPagePreview &>(obj));
+ return true;
+ case messages_hideAllChatJoinRequests::ID:
+ func(static_cast<messages_hideAllChatJoinRequests &>(obj));
+ return true;
+ case messages_hideChatJoinRequest::ID:
+ func(static_cast<messages_hideChatJoinRequest &>(obj));
+ return true;
+ case messages_hidePeerSettingsBar::ID:
+ func(static_cast<messages_hidePeerSettingsBar &>(obj));
+ return true;
+ case messages_importChatInvite::ID:
+ func(static_cast<messages_importChatInvite &>(obj));
+ return true;
+ case messages_initHistoryImport::ID:
+ func(static_cast<messages_initHistoryImport &>(obj));
+ return true;
+ case messages_installStickerSet::ID:
+ func(static_cast<messages_installStickerSet &>(obj));
+ return true;
+ case messages_markDialogUnread::ID:
+ func(static_cast<messages_markDialogUnread &>(obj));
+ return true;
+ case messages_migrateChat::ID:
+ func(static_cast<messages_migrateChat &>(obj));
+ return true;
+ case messages_prolongWebView::ID:
+ func(static_cast<messages_prolongWebView &>(obj));
+ return true;
+ case messages_rateTranscribedAudio::ID:
+ func(static_cast<messages_rateTranscribedAudio &>(obj));
+ return true;
+ case messages_readDiscussion::ID:
+ func(static_cast<messages_readDiscussion &>(obj));
+ return true;
+ case messages_readEncryptedHistory::ID:
+ func(static_cast<messages_readEncryptedHistory &>(obj));
+ return true;
+ case messages_readFeaturedStickers::ID:
+ func(static_cast<messages_readFeaturedStickers &>(obj));
+ return true;
+ case messages_readHistory::ID:
+ func(static_cast<messages_readHistory &>(obj));
+ return true;
+ case messages_readMentions::ID:
+ func(static_cast<messages_readMentions &>(obj));
+ return true;
+ case messages_readMessageContents::ID:
+ func(static_cast<messages_readMessageContents &>(obj));
+ return true;
+ case messages_readReactions::ID:
+ func(static_cast<messages_readReactions &>(obj));
+ return true;
+ case messages_receivedMessages::ID:
+ func(static_cast<messages_receivedMessages &>(obj));
+ return true;
+ case messages_receivedQueue::ID:
+ func(static_cast<messages_receivedQueue &>(obj));
+ return true;
+ case messages_reorderPinnedDialogs::ID:
+ func(static_cast<messages_reorderPinnedDialogs &>(obj));
+ return true;
+ case messages_reorderStickerSets::ID:
+ func(static_cast<messages_reorderStickerSets &>(obj));
+ return true;
+ case messages_report::ID:
+ func(static_cast<messages_report &>(obj));
+ return true;
+ case messages_reportEncryptedSpam::ID:
+ func(static_cast<messages_reportEncryptedSpam &>(obj));
+ return true;
+ case messages_reportReaction::ID:
+ func(static_cast<messages_reportReaction &>(obj));
+ return true;
+ case messages_reportSpam::ID:
+ func(static_cast<messages_reportSpam &>(obj));
+ return true;
+ case messages_requestEncryption::ID:
+ func(static_cast<messages_requestEncryption &>(obj));
+ return true;
+ case messages_requestSimpleWebView::ID:
+ func(static_cast<messages_requestSimpleWebView &>(obj));
+ return true;
+ case messages_requestUrlAuth::ID:
+ func(static_cast<messages_requestUrlAuth &>(obj));
+ return true;
+ case messages_requestWebView::ID:
+ func(static_cast<messages_requestWebView &>(obj));
+ return true;
+ case messages_saveDefaultSendAs::ID:
+ func(static_cast<messages_saveDefaultSendAs &>(obj));
+ return true;
+ case messages_saveDraft::ID:
+ func(static_cast<messages_saveDraft &>(obj));
+ return true;
+ case messages_saveGif::ID:
+ func(static_cast<messages_saveGif &>(obj));
+ return true;
+ case messages_saveRecentSticker::ID:
+ func(static_cast<messages_saveRecentSticker &>(obj));
+ return true;
+ case messages_search::ID:
+ func(static_cast<messages_search &>(obj));
+ return true;
+ case messages_searchGlobal::ID:
+ func(static_cast<messages_searchGlobal &>(obj));
+ return true;
+ case messages_searchSentMedia::ID:
+ func(static_cast<messages_searchSentMedia &>(obj));
+ return true;
+ case messages_searchStickerSets::ID:
+ func(static_cast<messages_searchStickerSets &>(obj));
+ return true;
+ case messages_sendEncrypted::ID:
+ func(static_cast<messages_sendEncrypted &>(obj));
+ return true;
+ case messages_sendEncryptedFile::ID:
+ func(static_cast<messages_sendEncryptedFile &>(obj));
+ return true;
+ case messages_sendEncryptedService::ID:
+ func(static_cast<messages_sendEncryptedService &>(obj));
+ return true;
+ case messages_sendInlineBotResult::ID:
+ func(static_cast<messages_sendInlineBotResult &>(obj));
+ return true;
+ case messages_sendMedia::ID:
+ func(static_cast<messages_sendMedia &>(obj));
+ return true;
+ case messages_sendMessage::ID:
+ func(static_cast<messages_sendMessage &>(obj));
+ return true;
+ case messages_sendMultiMedia::ID:
+ func(static_cast<messages_sendMultiMedia &>(obj));
+ return true;
+ case messages_sendReaction::ID:
+ func(static_cast<messages_sendReaction &>(obj));
+ return true;
+ case messages_sendScheduledMessages::ID:
+ func(static_cast<messages_sendScheduledMessages &>(obj));
+ return true;
+ case messages_sendScreenshotNotification::ID:
+ func(static_cast<messages_sendScreenshotNotification &>(obj));
+ return true;
+ case messages_sendVote::ID:
+ func(static_cast<messages_sendVote &>(obj));
+ return true;
+ case messages_sendWebViewData::ID:
+ func(static_cast<messages_sendWebViewData &>(obj));
+ return true;
+ case messages_sendWebViewResultMessage::ID:
+ func(static_cast<messages_sendWebViewResultMessage &>(obj));
+ return true;
+ case messages_setBotCallbackAnswer::ID:
+ func(static_cast<messages_setBotCallbackAnswer &>(obj));
+ return true;
+ case messages_setBotPrecheckoutResults::ID:
+ func(static_cast<messages_setBotPrecheckoutResults &>(obj));
+ return true;
+ case messages_setBotShippingResults::ID:
+ func(static_cast<messages_setBotShippingResults &>(obj));
+ return true;
+ case messages_setChatAvailableReactions::ID:
+ func(static_cast<messages_setChatAvailableReactions &>(obj));
+ return true;
+ case messages_setChatTheme::ID:
+ func(static_cast<messages_setChatTheme &>(obj));
+ return true;
+ case messages_setDefaultReaction::ID:
+ func(static_cast<messages_setDefaultReaction &>(obj));
+ return true;
+ case messages_setEncryptedTyping::ID:
+ func(static_cast<messages_setEncryptedTyping &>(obj));
+ return true;
+ case messages_setGameScore::ID:
+ func(static_cast<messages_setGameScore &>(obj));
+ return true;
+ case messages_setHistoryTTL::ID:
+ func(static_cast<messages_setHistoryTTL &>(obj));
+ return true;
+ case messages_setInlineBotResults::ID:
+ func(static_cast<messages_setInlineBotResults &>(obj));
+ return true;
+ case messages_setInlineGameScore::ID:
+ func(static_cast<messages_setInlineGameScore &>(obj));
+ return true;
+ case messages_setTyping::ID:
+ func(static_cast<messages_setTyping &>(obj));
+ return true;
+ case messages_startBot::ID:
+ func(static_cast<messages_startBot &>(obj));
+ return true;
+ case messages_startHistoryImport::ID:
+ func(static_cast<messages_startHistoryImport &>(obj));
+ return true;
+ case messages_toggleBotInAttachMenu::ID:
+ func(static_cast<messages_toggleBotInAttachMenu &>(obj));
+ return true;
+ case messages_toggleDialogPin::ID:
+ func(static_cast<messages_toggleDialogPin &>(obj));
+ return true;
+ case messages_toggleNoForwards::ID:
+ func(static_cast<messages_toggleNoForwards &>(obj));
+ return true;
+ case messages_toggleStickerSets::ID:
+ func(static_cast<messages_toggleStickerSets &>(obj));
+ return true;
+ case messages_transcribeAudio::ID:
+ func(static_cast<messages_transcribeAudio &>(obj));
+ return true;
+ case messages_translateText::ID:
+ func(static_cast<messages_translateText &>(obj));
+ return true;
+ case messages_uninstallStickerSet::ID:
+ func(static_cast<messages_uninstallStickerSet &>(obj));
+ return true;
+ case messages_unpinAllMessages::ID:
+ func(static_cast<messages_unpinAllMessages &>(obj));
+ return true;
+ case messages_updateDialogFilter::ID:
+ func(static_cast<messages_updateDialogFilter &>(obj));
+ return true;
+ case messages_updateDialogFiltersOrder::ID:
+ func(static_cast<messages_updateDialogFiltersOrder &>(obj));
+ return true;
+ case messages_updatePinnedMessage::ID:
+ func(static_cast<messages_updatePinnedMessage &>(obj));
+ return true;
+ case messages_uploadEncryptedFile::ID:
+ func(static_cast<messages_uploadEncryptedFile &>(obj));
+ return true;
+ case messages_uploadImportedMedia::ID:
+ func(static_cast<messages_uploadImportedMedia &>(obj));
+ return true;
+ case messages_uploadMedia::ID:
+ func(static_cast<messages_uploadMedia &>(obj));
+ return true;
+ case payments_assignAppStoreTransaction::ID:
+ func(static_cast<payments_assignAppStoreTransaction &>(obj));
+ return true;
+ case payments_assignPlayMarketTransaction::ID:
+ func(static_cast<payments_assignPlayMarketTransaction &>(obj));
+ return true;
+ case payments_canPurchasePremium::ID:
+ func(static_cast<payments_canPurchasePremium &>(obj));
+ return true;
+ case payments_clearSavedInfo::ID:
+ func(static_cast<payments_clearSavedInfo &>(obj));
+ return true;
+ case payments_exportInvoice::ID:
+ func(static_cast<payments_exportInvoice &>(obj));
+ return true;
+ case payments_getBankCardData::ID:
+ func(static_cast<payments_getBankCardData &>(obj));
+ return true;
+ case payments_getPaymentForm::ID:
+ func(static_cast<payments_getPaymentForm &>(obj));
+ return true;
+ case payments_getPaymentReceipt::ID:
+ func(static_cast<payments_getPaymentReceipt &>(obj));
+ return true;
+ case payments_getSavedInfo::ID:
+ func(static_cast<payments_getSavedInfo &>(obj));
+ return true;
+ case payments_sendPaymentForm::ID:
+ func(static_cast<payments_sendPaymentForm &>(obj));
+ return true;
+ case payments_validateRequestedInfo::ID:
+ func(static_cast<payments_validateRequestedInfo &>(obj));
+ return true;
+ case phone_acceptCall::ID:
+ func(static_cast<phone_acceptCall &>(obj));
+ return true;
+ case phone_checkGroupCall::ID:
+ func(static_cast<phone_checkGroupCall &>(obj));
+ return true;
+ case phone_confirmCall::ID:
+ func(static_cast<phone_confirmCall &>(obj));
+ return true;
+ case phone_createGroupCall::ID:
+ func(static_cast<phone_createGroupCall &>(obj));
+ return true;
+ case phone_discardCall::ID:
+ func(static_cast<phone_discardCall &>(obj));
+ return true;
+ case phone_discardGroupCall::ID:
+ func(static_cast<phone_discardGroupCall &>(obj));
+ return true;
+ case phone_editGroupCallParticipant::ID:
+ func(static_cast<phone_editGroupCallParticipant &>(obj));
+ return true;
+ case phone_editGroupCallTitle::ID:
+ func(static_cast<phone_editGroupCallTitle &>(obj));
+ return true;
+ case phone_exportGroupCallInvite::ID:
+ func(static_cast<phone_exportGroupCallInvite &>(obj));
+ return true;
+ case phone_getCallConfig::ID:
+ func(static_cast<phone_getCallConfig &>(obj));
+ return true;
+ case phone_getGroupCall::ID:
+ func(static_cast<phone_getGroupCall &>(obj));
+ return true;
+ case phone_getGroupCallJoinAs::ID:
+ func(static_cast<phone_getGroupCallJoinAs &>(obj));
+ return true;
+ case phone_getGroupCallStreamChannels::ID:
+ func(static_cast<phone_getGroupCallStreamChannels &>(obj));
+ return true;
+ case phone_getGroupCallStreamRtmpUrl::ID:
+ func(static_cast<phone_getGroupCallStreamRtmpUrl &>(obj));
+ return true;
+ case phone_getGroupParticipants::ID:
+ func(static_cast<phone_getGroupParticipants &>(obj));
+ return true;
+ case phone_inviteToGroupCall::ID:
+ func(static_cast<phone_inviteToGroupCall &>(obj));
+ return true;
+ case phone_joinGroupCall::ID:
+ func(static_cast<phone_joinGroupCall &>(obj));
+ return true;
+ case phone_joinGroupCallPresentation::ID:
+ func(static_cast<phone_joinGroupCallPresentation &>(obj));
+ return true;
+ case phone_leaveGroupCall::ID:
+ func(static_cast<phone_leaveGroupCall &>(obj));
+ return true;
+ case phone_leaveGroupCallPresentation::ID:
+ func(static_cast<phone_leaveGroupCallPresentation &>(obj));
+ return true;
+ case phone_receivedCall::ID:
+ func(static_cast<phone_receivedCall &>(obj));
+ return true;
+ case phone_requestCall::ID:
+ func(static_cast<phone_requestCall &>(obj));
+ return true;
+ case phone_saveCallDebug::ID:
+ func(static_cast<phone_saveCallDebug &>(obj));
+ return true;
+ case phone_saveCallLog::ID:
+ func(static_cast<phone_saveCallLog &>(obj));
+ return true;
+ case phone_saveDefaultGroupCallJoinAs::ID:
+ func(static_cast<phone_saveDefaultGroupCallJoinAs &>(obj));
+ return true;
+ case phone_sendSignalingData::ID:
+ func(static_cast<phone_sendSignalingData &>(obj));
+ return true;
+ case phone_setCallRating::ID:
+ func(static_cast<phone_setCallRating &>(obj));
+ return true;
+ case phone_startScheduledGroupCall::ID:
+ func(static_cast<phone_startScheduledGroupCall &>(obj));
+ return true;
+ case phone_toggleGroupCallRecord::ID:
+ func(static_cast<phone_toggleGroupCallRecord &>(obj));
+ return true;
+ case phone_toggleGroupCallSettings::ID:
+ func(static_cast<phone_toggleGroupCallSettings &>(obj));
+ return true;
+ case phone_toggleGroupCallStartSubscription::ID:
+ func(static_cast<phone_toggleGroupCallStartSubscription &>(obj));
+ return true;
+ case photos_deletePhotos::ID:
+ func(static_cast<photos_deletePhotos &>(obj));
+ return true;
+ case photos_getUserPhotos::ID:
+ func(static_cast<photos_getUserPhotos &>(obj));
+ return true;
+ case photos_updateProfilePhoto::ID:
+ func(static_cast<photos_updateProfilePhoto &>(obj));
+ return true;
+ case photos_uploadProfilePhoto::ID:
+ func(static_cast<photos_uploadProfilePhoto &>(obj));
+ return true;
+ case stats_getBroadcastStats::ID:
+ func(static_cast<stats_getBroadcastStats &>(obj));
+ return true;
+ case stats_getMegagroupStats::ID:
+ func(static_cast<stats_getMegagroupStats &>(obj));
+ return true;
+ case stats_getMessagePublicForwards::ID:
+ func(static_cast<stats_getMessagePublicForwards &>(obj));
+ return true;
+ case stats_getMessageStats::ID:
+ func(static_cast<stats_getMessageStats &>(obj));
+ return true;
+ case stats_loadAsyncGraph::ID:
+ func(static_cast<stats_loadAsyncGraph &>(obj));
+ return true;
+ case stickers_addStickerToSet::ID:
+ func(static_cast<stickers_addStickerToSet &>(obj));
+ return true;
+ case stickers_changeStickerPosition::ID:
+ func(static_cast<stickers_changeStickerPosition &>(obj));
+ return true;
+ case stickers_checkShortName::ID:
+ func(static_cast<stickers_checkShortName &>(obj));
+ return true;
+ case stickers_createStickerSet::ID:
+ func(static_cast<stickers_createStickerSet &>(obj));
+ return true;
+ case stickers_removeStickerFromSet::ID:
+ func(static_cast<stickers_removeStickerFromSet &>(obj));
+ return true;
+ case stickers_setStickerSetThumb::ID:
+ func(static_cast<stickers_setStickerSetThumb &>(obj));
+ return true;
+ case stickers_suggestShortName::ID:
+ func(static_cast<stickers_suggestShortName &>(obj));
+ return true;
+ case test_parseInputAppEvent::ID:
+ func(static_cast<test_parseInputAppEvent &>(obj));
+ return true;
+ case test_useConfigSimple::ID:
+ func(static_cast<test_useConfigSimple &>(obj));
+ return true;
+ case test_useError::ID:
+ func(static_cast<test_useError &>(obj));
+ return true;
+ case updates_getChannelDifference::ID:
+ func(static_cast<updates_getChannelDifference &>(obj));
+ return true;
+ case updates_getDifference::ID:
+ func(static_cast<updates_getDifference &>(obj));
+ return true;
+ case updates_getState::ID:
+ func(static_cast<updates_getState &>(obj));
+ return true;
+ case upload_getCdnFile::ID:
+ func(static_cast<upload_getCdnFile &>(obj));
+ return true;
+ case upload_getCdnFileHashes::ID:
+ func(static_cast<upload_getCdnFileHashes &>(obj));
+ return true;
+ case upload_getFile::ID:
+ func(static_cast<upload_getFile &>(obj));
+ return true;
+ case upload_getFileHashes::ID:
+ func(static_cast<upload_getFileHashes &>(obj));
+ return true;
+ case upload_getWebFile::ID:
+ func(static_cast<upload_getWebFile &>(obj));
+ return true;
+ case upload_reuploadCdnFile::ID:
+ func(static_cast<upload_reuploadCdnFile &>(obj));
+ return true;
+ case upload_saveBigFilePart::ID:
+ func(static_cast<upload_saveBigFilePart &>(obj));
+ return true;
+ case upload_saveFilePart::ID:
+ func(static_cast<upload_saveFilePart &>(obj));
+ return true;
+ case users_getFullUser::ID:
+ func(static_cast<users_getFullUser &>(obj));
+ return true;
+ case users_getUsers::ID:
+ func(static_cast<users_getUsers &>(obj));
+ return true;
+ case users_setSecureValueErrors::ID:
+ func(static_cast<users_setSecureValueErrors &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(AttachMenuBots &obj, const T &func) {
+ switch (obj.get_id()) {
+ case attachMenuBotsNotModified::ID:
+ func(static_cast<attachMenuBotsNotModified &>(obj));
+ return true;
+ case attachMenuBots::ID:
+ func(static_cast<attachMenuBots &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(AttachMenuPeerType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case attachMenuPeerTypeSameBotPM::ID:
+ func(static_cast<attachMenuPeerTypeSameBotPM &>(obj));
+ return true;
+ case attachMenuPeerTypeBotPM::ID:
+ func(static_cast<attachMenuPeerTypeBotPM &>(obj));
+ return true;
+ case attachMenuPeerTypePM::ID:
+ func(static_cast<attachMenuPeerTypePM &>(obj));
+ return true;
+ case attachMenuPeerTypeChat::ID:
+ func(static_cast<attachMenuPeerTypeChat &>(obj));
+ return true;
+ case attachMenuPeerTypeBroadcast::ID:
+ func(static_cast<attachMenuPeerTypeBroadcast &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(BaseTheme &obj, const T &func) {
+ switch (obj.get_id()) {
+ case baseThemeClassic::ID:
+ func(static_cast<baseThemeClassic &>(obj));
+ return true;
+ case baseThemeDay::ID:
+ func(static_cast<baseThemeDay &>(obj));
+ return true;
+ case baseThemeNight::ID:
+ func(static_cast<baseThemeNight &>(obj));
+ return true;
+ case baseThemeTinted::ID:
+ func(static_cast<baseThemeTinted &>(obj));
+ return true;
+ case baseThemeArctic::ID:
+ func(static_cast<baseThemeArctic &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(BotCommandScope &obj, const T &func) {
+ switch (obj.get_id()) {
+ case botCommandScopeDefault::ID:
+ func(static_cast<botCommandScopeDefault &>(obj));
+ return true;
+ case botCommandScopeUsers::ID:
+ func(static_cast<botCommandScopeUsers &>(obj));
+ return true;
+ case botCommandScopeChats::ID:
+ func(static_cast<botCommandScopeChats &>(obj));
+ return true;
+ case botCommandScopeChatAdmins::ID:
+ func(static_cast<botCommandScopeChatAdmins &>(obj));
+ return true;
+ case botCommandScopePeer::ID:
+ func(static_cast<botCommandScopePeer &>(obj));
+ return true;
+ case botCommandScopePeerAdmins::ID:
+ func(static_cast<botCommandScopePeerAdmins &>(obj));
+ return true;
+ case botCommandScopePeerUser::ID:
+ func(static_cast<botCommandScopePeerUser &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(BotInlineMessage &obj, const T &func) {
+ switch (obj.get_id()) {
+ case botInlineMessageMediaAuto::ID:
+ func(static_cast<botInlineMessageMediaAuto &>(obj));
+ return true;
+ case botInlineMessageText::ID:
+ func(static_cast<botInlineMessageText &>(obj));
+ return true;
+ case botInlineMessageMediaGeo::ID:
+ func(static_cast<botInlineMessageMediaGeo &>(obj));
+ return true;
+ case botInlineMessageMediaVenue::ID:
+ func(static_cast<botInlineMessageMediaVenue &>(obj));
+ return true;
+ case botInlineMessageMediaContact::ID:
+ func(static_cast<botInlineMessageMediaContact &>(obj));
+ return true;
+ case botInlineMessageMediaInvoice::ID:
+ func(static_cast<botInlineMessageMediaInvoice &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(BotInlineResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case botInlineResult::ID:
+ func(static_cast<botInlineResult &>(obj));
+ return true;
+ case botInlineMediaResult::ID:
+ func(static_cast<botInlineMediaResult &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(BotMenuButton &obj, const T &func) {
+ switch (obj.get_id()) {
+ case botMenuButtonDefault::ID:
+ func(static_cast<botMenuButtonDefault &>(obj));
+ return true;
+ case botMenuButtonCommands::ID:
+ func(static_cast<botMenuButtonCommands &>(obj));
+ return true;
+ case botMenuButton::ID:
+ func(static_cast<botMenuButton &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChannelAdminLogEventAction &obj, const T &func) {
+ switch (obj.get_id()) {
+ case channelAdminLogEventActionChangeTitle::ID:
+ func(static_cast<channelAdminLogEventActionChangeTitle &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeAbout::ID:
+ func(static_cast<channelAdminLogEventActionChangeAbout &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeUsername::ID:
+ func(static_cast<channelAdminLogEventActionChangeUsername &>(obj));
+ return true;
+ case channelAdminLogEventActionChangePhoto::ID:
+ func(static_cast<channelAdminLogEventActionChangePhoto &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleInvites::ID:
+ func(static_cast<channelAdminLogEventActionToggleInvites &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleSignatures::ID:
+ func(static_cast<channelAdminLogEventActionToggleSignatures &>(obj));
+ return true;
+ case channelAdminLogEventActionUpdatePinned::ID:
+ func(static_cast<channelAdminLogEventActionUpdatePinned &>(obj));
+ return true;
+ case channelAdminLogEventActionEditMessage::ID:
+ func(static_cast<channelAdminLogEventActionEditMessage &>(obj));
+ return true;
+ case channelAdminLogEventActionDeleteMessage::ID:
+ func(static_cast<channelAdminLogEventActionDeleteMessage &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantJoin::ID:
+ func(static_cast<channelAdminLogEventActionParticipantJoin &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantLeave::ID:
+ func(static_cast<channelAdminLogEventActionParticipantLeave &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantInvite::ID:
+ func(static_cast<channelAdminLogEventActionParticipantInvite &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantToggleBan::ID:
+ func(static_cast<channelAdminLogEventActionParticipantToggleBan &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantToggleAdmin::ID:
+ func(static_cast<channelAdminLogEventActionParticipantToggleAdmin &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeStickerSet::ID:
+ func(static_cast<channelAdminLogEventActionChangeStickerSet &>(obj));
+ return true;
+ case channelAdminLogEventActionTogglePreHistoryHidden::ID:
+ func(static_cast<channelAdminLogEventActionTogglePreHistoryHidden &>(obj));
+ return true;
+ case channelAdminLogEventActionDefaultBannedRights::ID:
+ func(static_cast<channelAdminLogEventActionDefaultBannedRights &>(obj));
+ return true;
+ case channelAdminLogEventActionStopPoll::ID:
+ func(static_cast<channelAdminLogEventActionStopPoll &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeLinkedChat::ID:
+ func(static_cast<channelAdminLogEventActionChangeLinkedChat &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeLocation::ID:
+ func(static_cast<channelAdminLogEventActionChangeLocation &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleSlowMode::ID:
+ func(static_cast<channelAdminLogEventActionToggleSlowMode &>(obj));
+ return true;
+ case channelAdminLogEventActionStartGroupCall::ID:
+ func(static_cast<channelAdminLogEventActionStartGroupCall &>(obj));
+ return true;
+ case channelAdminLogEventActionDiscardGroupCall::ID:
+ func(static_cast<channelAdminLogEventActionDiscardGroupCall &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantMute::ID:
+ func(static_cast<channelAdminLogEventActionParticipantMute &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantUnmute::ID:
+ func(static_cast<channelAdminLogEventActionParticipantUnmute &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleGroupCallSetting::ID:
+ func(static_cast<channelAdminLogEventActionToggleGroupCallSetting &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantJoinByInvite::ID:
+ func(static_cast<channelAdminLogEventActionParticipantJoinByInvite &>(obj));
+ return true;
+ case channelAdminLogEventActionExportedInviteDelete::ID:
+ func(static_cast<channelAdminLogEventActionExportedInviteDelete &>(obj));
+ return true;
+ case channelAdminLogEventActionExportedInviteRevoke::ID:
+ func(static_cast<channelAdminLogEventActionExportedInviteRevoke &>(obj));
+ return true;
+ case channelAdminLogEventActionExportedInviteEdit::ID:
+ func(static_cast<channelAdminLogEventActionExportedInviteEdit &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantVolume::ID:
+ func(static_cast<channelAdminLogEventActionParticipantVolume &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeHistoryTTL::ID:
+ func(static_cast<channelAdminLogEventActionChangeHistoryTTL &>(obj));
+ return true;
+ case channelAdminLogEventActionParticipantJoinByRequest::ID:
+ func(static_cast<channelAdminLogEventActionParticipantJoinByRequest &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleNoForwards::ID:
+ func(static_cast<channelAdminLogEventActionToggleNoForwards &>(obj));
+ return true;
+ case channelAdminLogEventActionSendMessage::ID:
+ func(static_cast<channelAdminLogEventActionSendMessage &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeAvailableReactions::ID:
+ func(static_cast<channelAdminLogEventActionChangeAvailableReactions &>(obj));
+ return true;
+ case channelAdminLogEventActionChangeUsernames::ID:
+ func(static_cast<channelAdminLogEventActionChangeUsernames &>(obj));
+ return true;
+ case channelAdminLogEventActionToggleForum::ID:
+ func(static_cast<channelAdminLogEventActionToggleForum &>(obj));
+ return true;
+ case channelAdminLogEventActionCreateTopic::ID:
+ func(static_cast<channelAdminLogEventActionCreateTopic &>(obj));
+ return true;
+ case channelAdminLogEventActionEditTopic::ID:
+ func(static_cast<channelAdminLogEventActionEditTopic &>(obj));
+ return true;
+ case channelAdminLogEventActionDeleteTopic::ID:
+ func(static_cast<channelAdminLogEventActionDeleteTopic &>(obj));
+ return true;
+ case channelAdminLogEventActionPinTopic::ID:
+ func(static_cast<channelAdminLogEventActionPinTopic &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChannelLocation &obj, const T &func) {
+ switch (obj.get_id()) {
+ case channelLocationEmpty::ID:
+ func(static_cast<channelLocationEmpty &>(obj));
+ return true;
+ case channelLocation::ID:
+ func(static_cast<channelLocation &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChannelMessagesFilter &obj, const T &func) {
+ switch (obj.get_id()) {
+ case channelMessagesFilterEmpty::ID:
+ func(static_cast<channelMessagesFilterEmpty &>(obj));
+ return true;
+ case channelMessagesFilter::ID:
+ func(static_cast<channelMessagesFilter &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChannelParticipant &obj, const T &func) {
+ switch (obj.get_id()) {
+ case channelParticipant::ID:
+ func(static_cast<channelParticipant &>(obj));
+ return true;
+ case channelParticipantSelf::ID:
+ func(static_cast<channelParticipantSelf &>(obj));
+ return true;
+ case channelParticipantCreator::ID:
+ func(static_cast<channelParticipantCreator &>(obj));
+ return true;
+ case channelParticipantAdmin::ID:
+ func(static_cast<channelParticipantAdmin &>(obj));
+ return true;
+ case channelParticipantBanned::ID:
+ func(static_cast<channelParticipantBanned &>(obj));
+ return true;
+ case channelParticipantLeft::ID:
+ func(static_cast<channelParticipantLeft &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChannelParticipantsFilter &obj, const T &func) {
+ switch (obj.get_id()) {
+ case channelParticipantsRecent::ID:
+ func(static_cast<channelParticipantsRecent &>(obj));
+ return true;
+ case channelParticipantsAdmins::ID:
+ func(static_cast<channelParticipantsAdmins &>(obj));
+ return true;
+ case channelParticipantsKicked::ID:
+ func(static_cast<channelParticipantsKicked &>(obj));
+ return true;
+ case channelParticipantsBots::ID:
+ func(static_cast<channelParticipantsBots &>(obj));
+ return true;
+ case channelParticipantsBanned::ID:
+ func(static_cast<channelParticipantsBanned &>(obj));
+ return true;
+ case channelParticipantsSearch::ID:
+ func(static_cast<channelParticipantsSearch &>(obj));
+ return true;
+ case channelParticipantsContacts::ID:
+ func(static_cast<channelParticipantsContacts &>(obj));
+ return true;
+ case channelParticipantsMentions::ID:
+ func(static_cast<channelParticipantsMentions &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Chat &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatEmpty::ID:
+ func(static_cast<chatEmpty &>(obj));
+ return true;
+ case chat::ID:
+ func(static_cast<chat &>(obj));
+ return true;
+ case chatForbidden::ID:
+ func(static_cast<chatForbidden &>(obj));
+ return true;
+ case channel::ID:
+ func(static_cast<channel &>(obj));
+ return true;
+ case channelForbidden::ID:
+ func(static_cast<channelForbidden &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatFull &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatFull::ID:
+ func(static_cast<chatFull &>(obj));
+ return true;
+ case channelFull::ID:
+ func(static_cast<channelFull &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatInvite &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatInviteAlready::ID:
+ func(static_cast<chatInviteAlready &>(obj));
+ return true;
+ case chatInvite::ID:
+ func(static_cast<chatInvite &>(obj));
+ return true;
+ case chatInvitePeek::ID:
+ func(static_cast<chatInvitePeek &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatParticipant &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatParticipant::ID:
+ func(static_cast<chatParticipant &>(obj));
+ return true;
+ case chatParticipantCreator::ID:
+ func(static_cast<chatParticipantCreator &>(obj));
+ return true;
+ case chatParticipantAdmin::ID:
+ func(static_cast<chatParticipantAdmin &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatParticipants &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatParticipantsForbidden::ID:
+ func(static_cast<chatParticipantsForbidden &>(obj));
+ return true;
+ case chatParticipants::ID:
+ func(static_cast<chatParticipants &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatPhoto &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatPhotoEmpty::ID:
+ func(static_cast<chatPhotoEmpty &>(obj));
+ return true;
+ case chatPhoto::ID:
+ func(static_cast<chatPhoto &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ChatReactions &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatReactionsNone::ID:
+ func(static_cast<chatReactionsNone &>(obj));
+ return true;
+ case chatReactionsAll::ID:
+ func(static_cast<chatReactionsAll &>(obj));
+ return true;
+ case chatReactionsSome::ID:
+ func(static_cast<chatReactionsSome &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Dialog &obj, const T &func) {
+ switch (obj.get_id()) {
+ case dialog::ID:
+ func(static_cast<dialog &>(obj));
+ return true;
+ case dialogFolder::ID:
+ func(static_cast<dialogFolder &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DialogFilter &obj, const T &func) {
+ switch (obj.get_id()) {
+ case dialogFilter::ID:
+ func(static_cast<dialogFilter &>(obj));
+ return true;
+ case dialogFilterDefault::ID:
+ func(static_cast<dialogFilterDefault &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DialogPeer &obj, const T &func) {
+ switch (obj.get_id()) {
+ case dialogPeer::ID:
+ func(static_cast<dialogPeer &>(obj));
+ return true;
+ case dialogPeerFolder::ID:
+ func(static_cast<dialogPeerFolder &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Document &obj, const T &func) {
+ switch (obj.get_id()) {
+ case documentEmpty::ID:
+ func(static_cast<documentEmpty &>(obj));
+ return true;
+ case document::ID:
+ func(static_cast<document &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DocumentAttribute &obj, const T &func) {
+ switch (obj.get_id()) {
+ case documentAttributeImageSize::ID:
+ func(static_cast<documentAttributeImageSize &>(obj));
+ return true;
+ case documentAttributeAnimated::ID:
+ func(static_cast<documentAttributeAnimated &>(obj));
+ return true;
+ case documentAttributeSticker::ID:
+ func(static_cast<documentAttributeSticker &>(obj));
+ return true;
+ case documentAttributeVideo::ID:
+ func(static_cast<documentAttributeVideo &>(obj));
+ return true;
+ case documentAttributeAudio::ID:
+ func(static_cast<documentAttributeAudio &>(obj));
+ return true;
+ case documentAttributeFilename::ID:
+ func(static_cast<documentAttributeFilename &>(obj));
+ return true;
+ case documentAttributeHasStickers::ID:
+ func(static_cast<documentAttributeHasStickers &>(obj));
+ return true;
+ case documentAttributeCustomEmoji::ID:
+ func(static_cast<documentAttributeCustomEmoji &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(DraftMessage &obj, const T &func) {
+ switch (obj.get_id()) {
+ case draftMessageEmpty::ID:
+ func(static_cast<draftMessageEmpty &>(obj));
+ return true;
+ case draftMessage::ID:
+ func(static_cast<draftMessage &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(EmailVerification &obj, const T &func) {
+ switch (obj.get_id()) {
+ case emailVerificationCode::ID:
+ func(static_cast<emailVerificationCode &>(obj));
+ return true;
+ case emailVerificationGoogle::ID:
+ func(static_cast<emailVerificationGoogle &>(obj));
+ return true;
+ case emailVerificationApple::ID:
+ func(static_cast<emailVerificationApple &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(EmailVerifyPurpose &obj, const T &func) {
+ switch (obj.get_id()) {
+ case emailVerifyPurposeLoginSetup::ID:
+ func(static_cast<emailVerifyPurposeLoginSetup &>(obj));
+ return true;
+ case emailVerifyPurposeLoginChange::ID:
+ func(static_cast<emailVerifyPurposeLoginChange &>(obj));
+ return true;
+ case emailVerifyPurposePassport::ID:
+ func(static_cast<emailVerifyPurposePassport &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(EmojiKeyword &obj, const T &func) {
+ switch (obj.get_id()) {
+ case emojiKeyword::ID:
+ func(static_cast<emojiKeyword &>(obj));
+ return true;
+ case emojiKeywordDeleted::ID:
+ func(static_cast<emojiKeywordDeleted &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(EmojiStatus &obj, const T &func) {
+ switch (obj.get_id()) {
+ case emojiStatusEmpty::ID:
+ func(static_cast<emojiStatusEmpty &>(obj));
+ return true;
+ case emojiStatus::ID:
+ func(static_cast<emojiStatus &>(obj));
+ return true;
+ case emojiStatusUntil::ID:
+ func(static_cast<emojiStatusUntil &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(EncryptedChat &obj, const T &func) {
+ switch (obj.get_id()) {
+ case encryptedChatEmpty::ID:
+ func(static_cast<encryptedChatEmpty &>(obj));
+ return true;
+ case encryptedChatWaiting::ID:
+ func(static_cast<encryptedChatWaiting &>(obj));
+ return true;
+ case encryptedChatRequested::ID:
+ func(static_cast<encryptedChatRequested &>(obj));
+ return true;
+ case encryptedChat::ID:
+ func(static_cast<encryptedChat &>(obj));
+ return true;
+ case encryptedChatDiscarded::ID:
+ func(static_cast<encryptedChatDiscarded &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(EncryptedFile &obj, const T &func) {
+ switch (obj.get_id()) {
+ case encryptedFileEmpty::ID:
+ func(static_cast<encryptedFileEmpty &>(obj));
+ return true;
+ case encryptedFile::ID:
+ func(static_cast<encryptedFile &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(EncryptedMessage &obj, const T &func) {
+ switch (obj.get_id()) {
+ case encryptedMessage::ID:
+ func(static_cast<encryptedMessage &>(obj));
+ return true;
+ case encryptedMessageService::ID:
+ func(static_cast<encryptedMessageService &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ExportedChatInvite &obj, const T &func) {
+ switch (obj.get_id()) {
+ case chatInviteExported::ID:
+ func(static_cast<chatInviteExported &>(obj));
+ return true;
+ case chatInvitePublicJoinRequests::ID:
+ func(static_cast<chatInvitePublicJoinRequests &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ForumTopic &obj, const T &func) {
+ switch (obj.get_id()) {
+ case forumTopicDeleted::ID:
+ func(static_cast<forumTopicDeleted &>(obj));
+ return true;
+ case forumTopic::ID:
+ func(static_cast<forumTopic &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(GeoPoint &obj, const T &func) {
+ switch (obj.get_id()) {
+ case geoPointEmpty::ID:
+ func(static_cast<geoPointEmpty &>(obj));
+ return true;
+ case geoPoint::ID:
+ func(static_cast<geoPoint &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(GroupCall &obj, const T &func) {
+ switch (obj.get_id()) {
+ case groupCallDiscarded::ID:
+ func(static_cast<groupCallDiscarded &>(obj));
+ return true;
+ case groupCall::ID:
+ func(static_cast<groupCall &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InlineQueryPeerType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inlineQueryPeerTypeSameBotPM::ID:
+ func(static_cast<inlineQueryPeerTypeSameBotPM &>(obj));
+ return true;
+ case inlineQueryPeerTypePM::ID:
+ func(static_cast<inlineQueryPeerTypePM &>(obj));
+ return true;
+ case inlineQueryPeerTypeChat::ID:
+ func(static_cast<inlineQueryPeerTypeChat &>(obj));
+ return true;
+ case inlineQueryPeerTypeMegagroup::ID:
+ func(static_cast<inlineQueryPeerTypeMegagroup &>(obj));
+ return true;
+ case inlineQueryPeerTypeBroadcast::ID:
+ func(static_cast<inlineQueryPeerTypeBroadcast &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputBotInlineMessage &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputBotInlineMessageMediaAuto::ID:
+ func(static_cast<inputBotInlineMessageMediaAuto &>(obj));
+ return true;
+ case inputBotInlineMessageText::ID:
+ func(static_cast<inputBotInlineMessageText &>(obj));
+ return true;
+ case inputBotInlineMessageMediaGeo::ID:
+ func(static_cast<inputBotInlineMessageMediaGeo &>(obj));
+ return true;
+ case inputBotInlineMessageMediaVenue::ID:
+ func(static_cast<inputBotInlineMessageMediaVenue &>(obj));
+ return true;
+ case inputBotInlineMessageMediaContact::ID:
+ func(static_cast<inputBotInlineMessageMediaContact &>(obj));
+ return true;
+ case inputBotInlineMessageGame::ID:
+ func(static_cast<inputBotInlineMessageGame &>(obj));
+ return true;
+ case inputBotInlineMessageMediaInvoice::ID:
+ func(static_cast<inputBotInlineMessageMediaInvoice &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputBotInlineMessageID &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputBotInlineMessageID::ID:
+ func(static_cast<inputBotInlineMessageID &>(obj));
+ return true;
+ case inputBotInlineMessageID64::ID:
+ func(static_cast<inputBotInlineMessageID64 &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputBotInlineResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputBotInlineResult::ID:
+ func(static_cast<inputBotInlineResult &>(obj));
+ return true;
+ case inputBotInlineResultPhoto::ID:
+ func(static_cast<inputBotInlineResultPhoto &>(obj));
+ return true;
+ case inputBotInlineResultDocument::ID:
+ func(static_cast<inputBotInlineResultDocument &>(obj));
+ return true;
+ case inputBotInlineResultGame::ID:
+ func(static_cast<inputBotInlineResultGame &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputChannel &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputChannelEmpty::ID:
+ func(static_cast<inputChannelEmpty &>(obj));
+ return true;
+ case inputChannel::ID:
+ func(static_cast<inputChannel &>(obj));
+ return true;
+ case inputChannelFromMessage::ID:
+ func(static_cast<inputChannelFromMessage &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputChatPhoto &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputChatPhotoEmpty::ID:
+ func(static_cast<inputChatPhotoEmpty &>(obj));
+ return true;
+ case inputChatUploadedPhoto::ID:
+ func(static_cast<inputChatUploadedPhoto &>(obj));
+ return true;
+ case inputChatPhoto::ID:
+ func(static_cast<inputChatPhoto &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputCheckPasswordSRP &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputCheckPasswordEmpty::ID:
+ func(static_cast<inputCheckPasswordEmpty &>(obj));
+ return true;
+ case inputCheckPasswordSRP::ID:
+ func(static_cast<inputCheckPasswordSRP &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputDialogPeer &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputDialogPeer::ID:
+ func(static_cast<inputDialogPeer &>(obj));
+ return true;
+ case inputDialogPeerFolder::ID:
+ func(static_cast<inputDialogPeerFolder &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputDocument &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputDocumentEmpty::ID:
+ func(static_cast<inputDocumentEmpty &>(obj));
+ return true;
+ case inputDocument::ID:
+ func(static_cast<inputDocument &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputEncryptedFile &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputEncryptedFileEmpty::ID:
+ func(static_cast<inputEncryptedFileEmpty &>(obj));
+ return true;
+ case inputEncryptedFileUploaded::ID:
+ func(static_cast<inputEncryptedFileUploaded &>(obj));
+ return true;
+ case inputEncryptedFile::ID:
+ func(static_cast<inputEncryptedFile &>(obj));
+ return true;
+ case inputEncryptedFileBigUploaded::ID:
+ func(static_cast<inputEncryptedFileBigUploaded &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputFile &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputFile::ID:
+ func(static_cast<inputFile &>(obj));
+ return true;
+ case inputFileBig::ID:
+ func(static_cast<inputFileBig &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputFileLocation &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputPeerPhotoFileLocationLegacy::ID:
+ func(static_cast<inputPeerPhotoFileLocationLegacy &>(obj));
+ return true;
+ case inputStickerSetThumbLegacy::ID:
+ func(static_cast<inputStickerSetThumbLegacy &>(obj));
+ return true;
+ case inputFileLocation::ID:
+ func(static_cast<inputFileLocation &>(obj));
+ return true;
+ case inputEncryptedFileLocation::ID:
+ func(static_cast<inputEncryptedFileLocation &>(obj));
+ return true;
+ case inputDocumentFileLocation::ID:
+ func(static_cast<inputDocumentFileLocation &>(obj));
+ return true;
+ case inputSecureFileLocation::ID:
+ func(static_cast<inputSecureFileLocation &>(obj));
+ return true;
+ case inputTakeoutFileLocation::ID:
+ func(static_cast<inputTakeoutFileLocation &>(obj));
+ return true;
+ case inputPhotoFileLocation::ID:
+ func(static_cast<inputPhotoFileLocation &>(obj));
+ return true;
+ case inputPhotoLegacyFileLocation::ID:
+ func(static_cast<inputPhotoLegacyFileLocation &>(obj));
+ return true;
+ case inputPeerPhotoFileLocation::ID:
+ func(static_cast<inputPeerPhotoFileLocation &>(obj));
+ return true;
+ case inputStickerSetThumb::ID:
+ func(static_cast<inputStickerSetThumb &>(obj));
+ return true;
+ case inputGroupCallStream::ID:
+ func(static_cast<inputGroupCallStream &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputGame &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputGameID::ID:
+ func(static_cast<inputGameID &>(obj));
+ return true;
+ case inputGameShortName::ID:
+ func(static_cast<inputGameShortName &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputGeoPoint &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputGeoPointEmpty::ID:
+ func(static_cast<inputGeoPointEmpty &>(obj));
+ return true;
+ case inputGeoPoint::ID:
+ func(static_cast<inputGeoPoint &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputInvoice &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputInvoiceMessage::ID:
+ func(static_cast<inputInvoiceMessage &>(obj));
+ return true;
+ case inputInvoiceSlug::ID:
+ func(static_cast<inputInvoiceSlug &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputMedia &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputMediaEmpty::ID:
+ func(static_cast<inputMediaEmpty &>(obj));
+ return true;
+ case inputMediaUploadedPhoto::ID:
+ func(static_cast<inputMediaUploadedPhoto &>(obj));
+ return true;
+ case inputMediaPhoto::ID:
+ func(static_cast<inputMediaPhoto &>(obj));
+ return true;
+ case inputMediaGeoPoint::ID:
+ func(static_cast<inputMediaGeoPoint &>(obj));
+ return true;
+ case inputMediaContact::ID:
+ func(static_cast<inputMediaContact &>(obj));
+ return true;
+ case inputMediaUploadedDocument::ID:
+ func(static_cast<inputMediaUploadedDocument &>(obj));
+ return true;
+ case inputMediaDocument::ID:
+ func(static_cast<inputMediaDocument &>(obj));
+ return true;
+ case inputMediaVenue::ID:
+ func(static_cast<inputMediaVenue &>(obj));
+ return true;
+ case inputMediaPhotoExternal::ID:
+ func(static_cast<inputMediaPhotoExternal &>(obj));
+ return true;
+ case inputMediaDocumentExternal::ID:
+ func(static_cast<inputMediaDocumentExternal &>(obj));
+ return true;
+ case inputMediaGame::ID:
+ func(static_cast<inputMediaGame &>(obj));
+ return true;
+ case inputMediaInvoice::ID:
+ func(static_cast<inputMediaInvoice &>(obj));
+ return true;
+ case inputMediaGeoLive::ID:
+ func(static_cast<inputMediaGeoLive &>(obj));
+ return true;
+ case inputMediaPoll::ID:
+ func(static_cast<inputMediaPoll &>(obj));
+ return true;
+ case inputMediaDice::ID:
+ func(static_cast<inputMediaDice &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputMessage &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputMessageID::ID:
+ func(static_cast<inputMessageID &>(obj));
+ return true;
+ case inputMessageReplyTo::ID:
+ func(static_cast<inputMessageReplyTo &>(obj));
+ return true;
+ case inputMessagePinned::ID:
+ func(static_cast<inputMessagePinned &>(obj));
+ return true;
+ case inputMessageCallbackQuery::ID:
+ func(static_cast<inputMessageCallbackQuery &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputNotifyPeer &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputNotifyPeer::ID:
+ func(static_cast<inputNotifyPeer &>(obj));
+ return true;
+ case inputNotifyUsers::ID:
+ func(static_cast<inputNotifyUsers &>(obj));
+ return true;
+ case inputNotifyChats::ID:
+ func(static_cast<inputNotifyChats &>(obj));
+ return true;
+ case inputNotifyBroadcasts::ID:
+ func(static_cast<inputNotifyBroadcasts &>(obj));
+ return true;
+ case inputNotifyForumTopic::ID:
+ func(static_cast<inputNotifyForumTopic &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputPaymentCredentials &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputPaymentCredentialsSaved::ID:
+ func(static_cast<inputPaymentCredentialsSaved &>(obj));
+ return true;
+ case inputPaymentCredentials::ID:
+ func(static_cast<inputPaymentCredentials &>(obj));
+ return true;
+ case inputPaymentCredentialsApplePay::ID:
+ func(static_cast<inputPaymentCredentialsApplePay &>(obj));
+ return true;
+ case inputPaymentCredentialsGooglePay::ID:
+ func(static_cast<inputPaymentCredentialsGooglePay &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputPeer &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputPeerEmpty::ID:
+ func(static_cast<inputPeerEmpty &>(obj));
+ return true;
+ case inputPeerSelf::ID:
+ func(static_cast<inputPeerSelf &>(obj));
+ return true;
+ case inputPeerChat::ID:
+ func(static_cast<inputPeerChat &>(obj));
+ return true;
+ case inputPeerUser::ID:
+ func(static_cast<inputPeerUser &>(obj));
+ return true;
+ case inputPeerChannel::ID:
+ func(static_cast<inputPeerChannel &>(obj));
+ return true;
+ case inputPeerUserFromMessage::ID:
+ func(static_cast<inputPeerUserFromMessage &>(obj));
+ return true;
+ case inputPeerChannelFromMessage::ID:
+ func(static_cast<inputPeerChannelFromMessage &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputPhoto &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputPhotoEmpty::ID:
+ func(static_cast<inputPhotoEmpty &>(obj));
+ return true;
+ case inputPhoto::ID:
+ func(static_cast<inputPhoto &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputPrivacyKey &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputPrivacyKeyStatusTimestamp::ID:
+ func(static_cast<inputPrivacyKeyStatusTimestamp &>(obj));
+ return true;
+ case inputPrivacyKeyChatInvite::ID:
+ func(static_cast<inputPrivacyKeyChatInvite &>(obj));
+ return true;
+ case inputPrivacyKeyPhoneCall::ID:
+ func(static_cast<inputPrivacyKeyPhoneCall &>(obj));
+ return true;
+ case inputPrivacyKeyPhoneP2P::ID:
+ func(static_cast<inputPrivacyKeyPhoneP2P &>(obj));
+ return true;
+ case inputPrivacyKeyForwards::ID:
+ func(static_cast<inputPrivacyKeyForwards &>(obj));
+ return true;
+ case inputPrivacyKeyProfilePhoto::ID:
+ func(static_cast<inputPrivacyKeyProfilePhoto &>(obj));
+ return true;
+ case inputPrivacyKeyPhoneNumber::ID:
+ func(static_cast<inputPrivacyKeyPhoneNumber &>(obj));
+ return true;
+ case inputPrivacyKeyAddedByPhone::ID:
+ func(static_cast<inputPrivacyKeyAddedByPhone &>(obj));
+ return true;
+ case inputPrivacyKeyVoiceMessages::ID:
+ func(static_cast<inputPrivacyKeyVoiceMessages &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputPrivacyRule &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputPrivacyValueAllowContacts::ID:
+ func(static_cast<inputPrivacyValueAllowContacts &>(obj));
+ return true;
+ case inputPrivacyValueAllowAll::ID:
+ func(static_cast<inputPrivacyValueAllowAll &>(obj));
+ return true;
+ case inputPrivacyValueAllowUsers::ID:
+ func(static_cast<inputPrivacyValueAllowUsers &>(obj));
+ return true;
+ case inputPrivacyValueDisallowContacts::ID:
+ func(static_cast<inputPrivacyValueDisallowContacts &>(obj));
+ return true;
+ case inputPrivacyValueDisallowAll::ID:
+ func(static_cast<inputPrivacyValueDisallowAll &>(obj));
+ return true;
+ case inputPrivacyValueDisallowUsers::ID:
+ func(static_cast<inputPrivacyValueDisallowUsers &>(obj));
+ return true;
+ case inputPrivacyValueAllowChatParticipants::ID:
+ func(static_cast<inputPrivacyValueAllowChatParticipants &>(obj));
+ return true;
+ case inputPrivacyValueDisallowChatParticipants::ID:
+ func(static_cast<inputPrivacyValueDisallowChatParticipants &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputSecureFile &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputSecureFileUploaded::ID:
+ func(static_cast<inputSecureFileUploaded &>(obj));
+ return true;
+ case inputSecureFile::ID:
+ func(static_cast<inputSecureFile &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputStickerSet &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputStickerSetEmpty::ID:
+ func(static_cast<inputStickerSetEmpty &>(obj));
+ return true;
+ case inputStickerSetID::ID:
+ func(static_cast<inputStickerSetID &>(obj));
+ return true;
+ case inputStickerSetShortName::ID:
+ func(static_cast<inputStickerSetShortName &>(obj));
+ return true;
+ case inputStickerSetAnimatedEmoji::ID:
+ func(static_cast<inputStickerSetAnimatedEmoji &>(obj));
+ return true;
+ case inputStickerSetDice::ID:
+ func(static_cast<inputStickerSetDice &>(obj));
+ return true;
+ case inputStickerSetAnimatedEmojiAnimations::ID:
+ func(static_cast<inputStickerSetAnimatedEmojiAnimations &>(obj));
+ return true;
+ case inputStickerSetPremiumGifts::ID:
+ func(static_cast<inputStickerSetPremiumGifts &>(obj));
+ return true;
+ case inputStickerSetEmojiGenericAnimations::ID:
+ func(static_cast<inputStickerSetEmojiGenericAnimations &>(obj));
+ return true;
+ case inputStickerSetEmojiDefaultStatuses::ID:
+ func(static_cast<inputStickerSetEmojiDefaultStatuses &>(obj));
+ return true;
+ case inputStickerSetEmojiDefaultTopicIcons::ID:
+ func(static_cast<inputStickerSetEmojiDefaultTopicIcons &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputStickeredMedia &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputStickeredMediaPhoto::ID:
+ func(static_cast<inputStickeredMediaPhoto &>(obj));
+ return true;
+ case inputStickeredMediaDocument::ID:
+ func(static_cast<inputStickeredMediaDocument &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputStorePaymentPurpose &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputStorePaymentPremiumSubscription::ID:
+ func(static_cast<inputStorePaymentPremiumSubscription &>(obj));
+ return true;
+ case inputStorePaymentGiftPremium::ID:
+ func(static_cast<inputStorePaymentGiftPremium &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputTheme &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputTheme::ID:
+ func(static_cast<inputTheme &>(obj));
+ return true;
+ case inputThemeSlug::ID:
+ func(static_cast<inputThemeSlug &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputUser &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputUserEmpty::ID:
+ func(static_cast<inputUserEmpty &>(obj));
+ return true;
+ case inputUserSelf::ID:
+ func(static_cast<inputUserSelf &>(obj));
+ return true;
+ case inputUser::ID:
+ func(static_cast<inputUser &>(obj));
+ return true;
+ case inputUserFromMessage::ID:
+ func(static_cast<inputUserFromMessage &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputWallPaper &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputWallPaper::ID:
+ func(static_cast<inputWallPaper &>(obj));
+ return true;
+ case inputWallPaperSlug::ID:
+ func(static_cast<inputWallPaperSlug &>(obj));
+ return true;
+ case inputWallPaperNoFile::ID:
+ func(static_cast<inputWallPaperNoFile &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(InputWebFileLocation &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputWebFileLocation::ID:
+ func(static_cast<inputWebFileLocation &>(obj));
+ return true;
+ case inputWebFileGeoPointLocation::ID:
+ func(static_cast<inputWebFileGeoPointLocation &>(obj));
+ return true;
+ case inputWebFileAudioAlbumThumbLocation::ID:
+ func(static_cast<inputWebFileAudioAlbumThumbLocation &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(IpPort &obj, const T &func) {
+ switch (obj.get_id()) {
+ case ipPort::ID:
+ func(static_cast<ipPort &>(obj));
+ return true;
+ case ipPortSecret::ID:
+ func(static_cast<ipPortSecret &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(JSONValue &obj, const T &func) {
+ switch (obj.get_id()) {
+ case jsonNull::ID:
+ func(static_cast<jsonNull &>(obj));
+ return true;
+ case jsonBool::ID:
+ func(static_cast<jsonBool &>(obj));
+ return true;
+ case jsonNumber::ID:
+ func(static_cast<jsonNumber &>(obj));
+ return true;
+ case jsonString::ID:
+ func(static_cast<jsonString &>(obj));
+ return true;
+ case jsonArray::ID:
+ func(static_cast<jsonArray &>(obj));
+ return true;
+ case jsonObject::ID:
+ func(static_cast<jsonObject &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(KeyboardButton &obj, const T &func) {
+ switch (obj.get_id()) {
+ case keyboardButton::ID:
+ func(static_cast<keyboardButton &>(obj));
+ return true;
+ case keyboardButtonUrl::ID:
+ func(static_cast<keyboardButtonUrl &>(obj));
+ return true;
+ case keyboardButtonCallback::ID:
+ func(static_cast<keyboardButtonCallback &>(obj));
+ return true;
+ case keyboardButtonRequestPhone::ID:
+ func(static_cast<keyboardButtonRequestPhone &>(obj));
+ return true;
+ case keyboardButtonRequestGeoLocation::ID:
+ func(static_cast<keyboardButtonRequestGeoLocation &>(obj));
+ return true;
+ case keyboardButtonSwitchInline::ID:
+ func(static_cast<keyboardButtonSwitchInline &>(obj));
+ return true;
+ case keyboardButtonGame::ID:
+ func(static_cast<keyboardButtonGame &>(obj));
+ return true;
+ case keyboardButtonBuy::ID:
+ func(static_cast<keyboardButtonBuy &>(obj));
+ return true;
+ case keyboardButtonUrlAuth::ID:
+ func(static_cast<keyboardButtonUrlAuth &>(obj));
+ return true;
+ case inputKeyboardButtonUrlAuth::ID:
+ func(static_cast<inputKeyboardButtonUrlAuth &>(obj));
+ return true;
+ case keyboardButtonRequestPoll::ID:
+ func(static_cast<keyboardButtonRequestPoll &>(obj));
+ return true;
+ case inputKeyboardButtonUserProfile::ID:
+ func(static_cast<inputKeyboardButtonUserProfile &>(obj));
+ return true;
+ case keyboardButtonUserProfile::ID:
+ func(static_cast<keyboardButtonUserProfile &>(obj));
+ return true;
+ case keyboardButtonWebView::ID:
+ func(static_cast<keyboardButtonWebView &>(obj));
+ return true;
+ case keyboardButtonSimpleWebView::ID:
+ func(static_cast<keyboardButtonSimpleWebView &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(LangPackString &obj, const T &func) {
+ switch (obj.get_id()) {
+ case langPackString::ID:
+ func(static_cast<langPackString &>(obj));
+ return true;
+ case langPackStringPluralized::ID:
+ func(static_cast<langPackStringPluralized &>(obj));
+ return true;
+ case langPackStringDeleted::ID:
+ func(static_cast<langPackStringDeleted &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Message &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageEmpty::ID:
+ func(static_cast<messageEmpty &>(obj));
+ return true;
+ case message::ID:
+ func(static_cast<message &>(obj));
+ return true;
+ case messageService::ID:
+ func(static_cast<messageService &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageAction &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageActionEmpty::ID:
+ func(static_cast<messageActionEmpty &>(obj));
+ return true;
+ case messageActionChatCreate::ID:
+ func(static_cast<messageActionChatCreate &>(obj));
+ return true;
+ case messageActionChatEditTitle::ID:
+ func(static_cast<messageActionChatEditTitle &>(obj));
+ return true;
+ case messageActionChatEditPhoto::ID:
+ func(static_cast<messageActionChatEditPhoto &>(obj));
+ return true;
+ case messageActionChatDeletePhoto::ID:
+ func(static_cast<messageActionChatDeletePhoto &>(obj));
+ return true;
+ case messageActionChatAddUser::ID:
+ func(static_cast<messageActionChatAddUser &>(obj));
+ return true;
+ case messageActionChatDeleteUser::ID:
+ func(static_cast<messageActionChatDeleteUser &>(obj));
+ return true;
+ case messageActionChatJoinedByLink::ID:
+ func(static_cast<messageActionChatJoinedByLink &>(obj));
+ return true;
+ case messageActionChannelCreate::ID:
+ func(static_cast<messageActionChannelCreate &>(obj));
+ return true;
+ case messageActionChatMigrateTo::ID:
+ func(static_cast<messageActionChatMigrateTo &>(obj));
+ return true;
+ case messageActionChannelMigrateFrom::ID:
+ func(static_cast<messageActionChannelMigrateFrom &>(obj));
+ return true;
+ case messageActionPinMessage::ID:
+ func(static_cast<messageActionPinMessage &>(obj));
+ return true;
+ case messageActionHistoryClear::ID:
+ func(static_cast<messageActionHistoryClear &>(obj));
+ return true;
+ case messageActionGameScore::ID:
+ func(static_cast<messageActionGameScore &>(obj));
+ return true;
+ case messageActionPaymentSentMe::ID:
+ func(static_cast<messageActionPaymentSentMe &>(obj));
+ return true;
+ case messageActionPaymentSent::ID:
+ func(static_cast<messageActionPaymentSent &>(obj));
+ return true;
+ case messageActionPhoneCall::ID:
+ func(static_cast<messageActionPhoneCall &>(obj));
+ return true;
+ case messageActionScreenshotTaken::ID:
+ func(static_cast<messageActionScreenshotTaken &>(obj));
+ return true;
+ case messageActionCustomAction::ID:
+ func(static_cast<messageActionCustomAction &>(obj));
+ return true;
+ case messageActionBotAllowed::ID:
+ func(static_cast<messageActionBotAllowed &>(obj));
+ return true;
+ case messageActionSecureValuesSentMe::ID:
+ func(static_cast<messageActionSecureValuesSentMe &>(obj));
+ return true;
+ case messageActionSecureValuesSent::ID:
+ func(static_cast<messageActionSecureValuesSent &>(obj));
+ return true;
+ case messageActionContactSignUp::ID:
+ func(static_cast<messageActionContactSignUp &>(obj));
+ return true;
+ case messageActionGeoProximityReached::ID:
+ func(static_cast<messageActionGeoProximityReached &>(obj));
+ return true;
+ case messageActionGroupCall::ID:
+ func(static_cast<messageActionGroupCall &>(obj));
+ return true;
+ case messageActionInviteToGroupCall::ID:
+ func(static_cast<messageActionInviteToGroupCall &>(obj));
+ return true;
+ case messageActionSetMessagesTTL::ID:
+ func(static_cast<messageActionSetMessagesTTL &>(obj));
+ return true;
+ case messageActionGroupCallScheduled::ID:
+ func(static_cast<messageActionGroupCallScheduled &>(obj));
+ return true;
+ case messageActionSetChatTheme::ID:
+ func(static_cast<messageActionSetChatTheme &>(obj));
+ return true;
+ case messageActionChatJoinedByRequest::ID:
+ func(static_cast<messageActionChatJoinedByRequest &>(obj));
+ return true;
+ case messageActionWebViewDataSentMe::ID:
+ func(static_cast<messageActionWebViewDataSentMe &>(obj));
+ return true;
+ case messageActionWebViewDataSent::ID:
+ func(static_cast<messageActionWebViewDataSent &>(obj));
+ return true;
+ case messageActionGiftPremium::ID:
+ func(static_cast<messageActionGiftPremium &>(obj));
+ return true;
+ case messageActionTopicCreate::ID:
+ func(static_cast<messageActionTopicCreate &>(obj));
+ return true;
+ case messageActionTopicEdit::ID:
+ func(static_cast<messageActionTopicEdit &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageEntity &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageEntityUnknown::ID:
+ func(static_cast<messageEntityUnknown &>(obj));
+ return true;
+ case messageEntityMention::ID:
+ func(static_cast<messageEntityMention &>(obj));
+ return true;
+ case messageEntityHashtag::ID:
+ func(static_cast<messageEntityHashtag &>(obj));
+ return true;
+ case messageEntityBotCommand::ID:
+ func(static_cast<messageEntityBotCommand &>(obj));
+ return true;
+ case messageEntityUrl::ID:
+ func(static_cast<messageEntityUrl &>(obj));
+ return true;
+ case messageEntityEmail::ID:
+ func(static_cast<messageEntityEmail &>(obj));
+ return true;
+ case messageEntityBold::ID:
+ func(static_cast<messageEntityBold &>(obj));
+ return true;
+ case messageEntityItalic::ID:
+ func(static_cast<messageEntityItalic &>(obj));
+ return true;
+ case messageEntityCode::ID:
+ func(static_cast<messageEntityCode &>(obj));
+ return true;
+ case messageEntityPre::ID:
+ func(static_cast<messageEntityPre &>(obj));
+ return true;
+ case messageEntityTextUrl::ID:
+ func(static_cast<messageEntityTextUrl &>(obj));
+ return true;
+ case messageEntityMentionName::ID:
+ func(static_cast<messageEntityMentionName &>(obj));
+ return true;
+ case inputMessageEntityMentionName::ID:
+ func(static_cast<inputMessageEntityMentionName &>(obj));
+ return true;
+ case messageEntityPhone::ID:
+ func(static_cast<messageEntityPhone &>(obj));
+ return true;
+ case messageEntityCashtag::ID:
+ func(static_cast<messageEntityCashtag &>(obj));
+ return true;
+ case messageEntityUnderline::ID:
+ func(static_cast<messageEntityUnderline &>(obj));
+ return true;
+ case messageEntityStrike::ID:
+ func(static_cast<messageEntityStrike &>(obj));
+ return true;
+ case messageEntityBlockquote::ID:
+ func(static_cast<messageEntityBlockquote &>(obj));
+ return true;
+ case messageEntityBankCard::ID:
+ func(static_cast<messageEntityBankCard &>(obj));
+ return true;
+ case messageEntitySpoiler::ID:
+ func(static_cast<messageEntitySpoiler &>(obj));
+ return true;
+ case messageEntityCustomEmoji::ID:
+ func(static_cast<messageEntityCustomEmoji &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageExtendedMedia &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageExtendedMediaPreview::ID:
+ func(static_cast<messageExtendedMediaPreview &>(obj));
+ return true;
+ case messageExtendedMedia::ID:
+ func(static_cast<messageExtendedMedia &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageMedia &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageMediaEmpty::ID:
+ func(static_cast<messageMediaEmpty &>(obj));
+ return true;
+ case messageMediaPhoto::ID:
+ func(static_cast<messageMediaPhoto &>(obj));
+ return true;
+ case messageMediaGeo::ID:
+ func(static_cast<messageMediaGeo &>(obj));
+ return true;
+ case messageMediaContact::ID:
+ func(static_cast<messageMediaContact &>(obj));
+ return true;
+ case messageMediaUnsupported::ID:
+ func(static_cast<messageMediaUnsupported &>(obj));
+ return true;
+ case messageMediaDocument::ID:
+ func(static_cast<messageMediaDocument &>(obj));
+ return true;
+ case messageMediaWebPage::ID:
+ func(static_cast<messageMediaWebPage &>(obj));
+ return true;
+ case messageMediaVenue::ID:
+ func(static_cast<messageMediaVenue &>(obj));
+ return true;
+ case messageMediaGame::ID:
+ func(static_cast<messageMediaGame &>(obj));
+ return true;
+ case messageMediaInvoice::ID:
+ func(static_cast<messageMediaInvoice &>(obj));
+ return true;
+ case messageMediaGeoLive::ID:
+ func(static_cast<messageMediaGeoLive &>(obj));
+ return true;
+ case messageMediaPoll::ID:
+ func(static_cast<messageMediaPoll &>(obj));
+ return true;
+ case messageMediaDice::ID:
+ func(static_cast<messageMediaDice &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessageUserVote &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messageUserVote::ID:
+ func(static_cast<messageUserVote &>(obj));
+ return true;
+ case messageUserVoteInputOption::ID:
+ func(static_cast<messageUserVoteInputOption &>(obj));
+ return true;
+ case messageUserVoteMultiple::ID:
+ func(static_cast<messageUserVoteMultiple &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(MessagesFilter &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputMessagesFilterEmpty::ID:
+ func(static_cast<inputMessagesFilterEmpty &>(obj));
+ return true;
+ case inputMessagesFilterPhotos::ID:
+ func(static_cast<inputMessagesFilterPhotos &>(obj));
+ return true;
+ case inputMessagesFilterVideo::ID:
+ func(static_cast<inputMessagesFilterVideo &>(obj));
+ return true;
+ case inputMessagesFilterPhotoVideo::ID:
+ func(static_cast<inputMessagesFilterPhotoVideo &>(obj));
+ return true;
+ case inputMessagesFilterDocument::ID:
+ func(static_cast<inputMessagesFilterDocument &>(obj));
+ return true;
+ case inputMessagesFilterUrl::ID:
+ func(static_cast<inputMessagesFilterUrl &>(obj));
+ return true;
+ case inputMessagesFilterGif::ID:
+ func(static_cast<inputMessagesFilterGif &>(obj));
+ return true;
+ case inputMessagesFilterVoice::ID:
+ func(static_cast<inputMessagesFilterVoice &>(obj));
+ return true;
+ case inputMessagesFilterMusic::ID:
+ func(static_cast<inputMessagesFilterMusic &>(obj));
+ return true;
+ case inputMessagesFilterChatPhotos::ID:
+ func(static_cast<inputMessagesFilterChatPhotos &>(obj));
+ return true;
+ case inputMessagesFilterPhoneCalls::ID:
+ func(static_cast<inputMessagesFilterPhoneCalls &>(obj));
+ return true;
+ case inputMessagesFilterRoundVoice::ID:
+ func(static_cast<inputMessagesFilterRoundVoice &>(obj));
+ return true;
+ case inputMessagesFilterRoundVideo::ID:
+ func(static_cast<inputMessagesFilterRoundVideo &>(obj));
+ return true;
+ case inputMessagesFilterMyMentions::ID:
+ func(static_cast<inputMessagesFilterMyMentions &>(obj));
+ return true;
+ case inputMessagesFilterGeo::ID:
+ func(static_cast<inputMessagesFilterGeo &>(obj));
+ return true;
+ case inputMessagesFilterContacts::ID:
+ func(static_cast<inputMessagesFilterContacts &>(obj));
+ return true;
+ case inputMessagesFilterPinned::ID:
+ func(static_cast<inputMessagesFilterPinned &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(NotificationSound &obj, const T &func) {
+ switch (obj.get_id()) {
+ case notificationSoundDefault::ID:
+ func(static_cast<notificationSoundDefault &>(obj));
+ return true;
+ case notificationSoundNone::ID:
+ func(static_cast<notificationSoundNone &>(obj));
+ return true;
+ case notificationSoundLocal::ID:
+ func(static_cast<notificationSoundLocal &>(obj));
+ return true;
+ case notificationSoundRingtone::ID:
+ func(static_cast<notificationSoundRingtone &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(NotifyPeer &obj, const T &func) {
+ switch (obj.get_id()) {
+ case notifyPeer::ID:
+ func(static_cast<notifyPeer &>(obj));
+ return true;
+ case notifyUsers::ID:
+ func(static_cast<notifyUsers &>(obj));
+ return true;
+ case notifyChats::ID:
+ func(static_cast<notifyChats &>(obj));
+ return true;
+ case notifyBroadcasts::ID:
+ func(static_cast<notifyBroadcasts &>(obj));
+ return true;
+ case notifyForumTopic::ID:
+ func(static_cast<notifyForumTopic &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PageBlock &obj, const T &func) {
+ switch (obj.get_id()) {
+ case pageBlockUnsupported::ID:
+ func(static_cast<pageBlockUnsupported &>(obj));
+ return true;
+ case pageBlockTitle::ID:
+ func(static_cast<pageBlockTitle &>(obj));
+ return true;
+ case pageBlockSubtitle::ID:
+ func(static_cast<pageBlockSubtitle &>(obj));
+ return true;
+ case pageBlockAuthorDate::ID:
+ func(static_cast<pageBlockAuthorDate &>(obj));
+ return true;
+ case pageBlockHeader::ID:
+ func(static_cast<pageBlockHeader &>(obj));
+ return true;
+ case pageBlockSubheader::ID:
+ func(static_cast<pageBlockSubheader &>(obj));
+ return true;
+ case pageBlockParagraph::ID:
+ func(static_cast<pageBlockParagraph &>(obj));
+ return true;
+ case pageBlockPreformatted::ID:
+ func(static_cast<pageBlockPreformatted &>(obj));
+ return true;
+ case pageBlockFooter::ID:
+ func(static_cast<pageBlockFooter &>(obj));
+ return true;
+ case pageBlockDivider::ID:
+ func(static_cast<pageBlockDivider &>(obj));
+ return true;
+ case pageBlockAnchor::ID:
+ func(static_cast<pageBlockAnchor &>(obj));
+ return true;
+ case pageBlockList::ID:
+ func(static_cast<pageBlockList &>(obj));
+ return true;
+ case pageBlockBlockquote::ID:
+ func(static_cast<pageBlockBlockquote &>(obj));
+ return true;
+ case pageBlockPullquote::ID:
+ func(static_cast<pageBlockPullquote &>(obj));
+ return true;
+ case pageBlockPhoto::ID:
+ func(static_cast<pageBlockPhoto &>(obj));
+ return true;
+ case pageBlockVideo::ID:
+ func(static_cast<pageBlockVideo &>(obj));
+ return true;
+ case pageBlockCover::ID:
+ func(static_cast<pageBlockCover &>(obj));
+ return true;
+ case pageBlockEmbed::ID:
+ func(static_cast<pageBlockEmbed &>(obj));
+ return true;
+ case pageBlockEmbedPost::ID:
+ func(static_cast<pageBlockEmbedPost &>(obj));
+ return true;
+ case pageBlockCollage::ID:
+ func(static_cast<pageBlockCollage &>(obj));
+ return true;
+ case pageBlockSlideshow::ID:
+ func(static_cast<pageBlockSlideshow &>(obj));
+ return true;
+ case pageBlockChannel::ID:
+ func(static_cast<pageBlockChannel &>(obj));
+ return true;
+ case pageBlockAudio::ID:
+ func(static_cast<pageBlockAudio &>(obj));
+ return true;
+ case pageBlockKicker::ID:
+ func(static_cast<pageBlockKicker &>(obj));
+ return true;
+ case pageBlockTable::ID:
+ func(static_cast<pageBlockTable &>(obj));
+ return true;
+ case pageBlockOrderedList::ID:
+ func(static_cast<pageBlockOrderedList &>(obj));
+ return true;
+ case pageBlockDetails::ID:
+ func(static_cast<pageBlockDetails &>(obj));
+ return true;
+ case pageBlockRelatedArticles::ID:
+ func(static_cast<pageBlockRelatedArticles &>(obj));
+ return true;
+ case pageBlockMap::ID:
+ func(static_cast<pageBlockMap &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PageListItem &obj, const T &func) {
+ switch (obj.get_id()) {
+ case pageListItemText::ID:
+ func(static_cast<pageListItemText &>(obj));
+ return true;
+ case pageListItemBlocks::ID:
+ func(static_cast<pageListItemBlocks &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PageListOrderedItem &obj, const T &func) {
+ switch (obj.get_id()) {
+ case pageListOrderedItemText::ID:
+ func(static_cast<pageListOrderedItemText &>(obj));
+ return true;
+ case pageListOrderedItemBlocks::ID:
+ func(static_cast<pageListOrderedItemBlocks &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PasswordKdfAlgo &obj, const T &func) {
+ switch (obj.get_id()) {
+ case passwordKdfAlgoUnknown::ID:
+ func(static_cast<passwordKdfAlgoUnknown &>(obj));
+ return true;
+ case passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::ID:
+ func(static_cast<passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Peer &obj, const T &func) {
+ switch (obj.get_id()) {
+ case peerUser::ID:
+ func(static_cast<peerUser &>(obj));
+ return true;
+ case peerChat::ID:
+ func(static_cast<peerChat &>(obj));
+ return true;
+ case peerChannel::ID:
+ func(static_cast<peerChannel &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PeerLocated &obj, const T &func) {
+ switch (obj.get_id()) {
+ case peerLocated::ID:
+ func(static_cast<peerLocated &>(obj));
+ return true;
+ case peerSelfLocated::ID:
+ func(static_cast<peerSelfLocated &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PhoneCall &obj, const T &func) {
+ switch (obj.get_id()) {
+ case phoneCallEmpty::ID:
+ func(static_cast<phoneCallEmpty &>(obj));
+ return true;
+ case phoneCallWaiting::ID:
+ func(static_cast<phoneCallWaiting &>(obj));
+ return true;
+ case phoneCallRequested::ID:
+ func(static_cast<phoneCallRequested &>(obj));
+ return true;
+ case phoneCallAccepted::ID:
+ func(static_cast<phoneCallAccepted &>(obj));
+ return true;
+ case phoneCall::ID:
+ func(static_cast<phoneCall &>(obj));
+ return true;
+ case phoneCallDiscarded::ID:
+ func(static_cast<phoneCallDiscarded &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PhoneCallDiscardReason &obj, const T &func) {
+ switch (obj.get_id()) {
+ case phoneCallDiscardReasonMissed::ID:
+ func(static_cast<phoneCallDiscardReasonMissed &>(obj));
+ return true;
+ case phoneCallDiscardReasonDisconnect::ID:
+ func(static_cast<phoneCallDiscardReasonDisconnect &>(obj));
+ return true;
+ case phoneCallDiscardReasonHangup::ID:
+ func(static_cast<phoneCallDiscardReasonHangup &>(obj));
+ return true;
+ case phoneCallDiscardReasonBusy::ID:
+ func(static_cast<phoneCallDiscardReasonBusy &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PhoneConnection &obj, const T &func) {
+ switch (obj.get_id()) {
+ case phoneConnection::ID:
+ func(static_cast<phoneConnection &>(obj));
+ return true;
+ case phoneConnectionWebrtc::ID:
+ func(static_cast<phoneConnectionWebrtc &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Photo &obj, const T &func) {
+ switch (obj.get_id()) {
+ case photoEmpty::ID:
+ func(static_cast<photoEmpty &>(obj));
+ return true;
+ case photo::ID:
+ func(static_cast<photo &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PhotoSize &obj, const T &func) {
+ switch (obj.get_id()) {
+ case photoSizeEmpty::ID:
+ func(static_cast<photoSizeEmpty &>(obj));
+ return true;
+ case photoSize::ID:
+ func(static_cast<photoSize &>(obj));
+ return true;
+ case photoCachedSize::ID:
+ func(static_cast<photoCachedSize &>(obj));
+ return true;
+ case photoStrippedSize::ID:
+ func(static_cast<photoStrippedSize &>(obj));
+ return true;
+ case photoSizeProgressive::ID:
+ func(static_cast<photoSizeProgressive &>(obj));
+ return true;
+ case photoPathSize::ID:
+ func(static_cast<photoPathSize &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PrivacyKey &obj, const T &func) {
+ switch (obj.get_id()) {
+ case privacyKeyStatusTimestamp::ID:
+ func(static_cast<privacyKeyStatusTimestamp &>(obj));
+ return true;
+ case privacyKeyChatInvite::ID:
+ func(static_cast<privacyKeyChatInvite &>(obj));
+ return true;
+ case privacyKeyPhoneCall::ID:
+ func(static_cast<privacyKeyPhoneCall &>(obj));
+ return true;
+ case privacyKeyPhoneP2P::ID:
+ func(static_cast<privacyKeyPhoneP2P &>(obj));
+ return true;
+ case privacyKeyForwards::ID:
+ func(static_cast<privacyKeyForwards &>(obj));
+ return true;
+ case privacyKeyProfilePhoto::ID:
+ func(static_cast<privacyKeyProfilePhoto &>(obj));
+ return true;
+ case privacyKeyPhoneNumber::ID:
+ func(static_cast<privacyKeyPhoneNumber &>(obj));
+ return true;
+ case privacyKeyAddedByPhone::ID:
+ func(static_cast<privacyKeyAddedByPhone &>(obj));
+ return true;
+ case privacyKeyVoiceMessages::ID:
+ func(static_cast<privacyKeyVoiceMessages &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(PrivacyRule &obj, const T &func) {
+ switch (obj.get_id()) {
+ case privacyValueAllowContacts::ID:
+ func(static_cast<privacyValueAllowContacts &>(obj));
+ return true;
+ case privacyValueAllowAll::ID:
+ func(static_cast<privacyValueAllowAll &>(obj));
+ return true;
+ case privacyValueAllowUsers::ID:
+ func(static_cast<privacyValueAllowUsers &>(obj));
+ return true;
+ case privacyValueDisallowContacts::ID:
+ func(static_cast<privacyValueDisallowContacts &>(obj));
+ return true;
+ case privacyValueDisallowAll::ID:
+ func(static_cast<privacyValueDisallowAll &>(obj));
+ return true;
+ case privacyValueDisallowUsers::ID:
+ func(static_cast<privacyValueDisallowUsers &>(obj));
+ return true;
+ case privacyValueAllowChatParticipants::ID:
+ func(static_cast<privacyValueAllowChatParticipants &>(obj));
+ return true;
+ case privacyValueDisallowChatParticipants::ID:
+ func(static_cast<privacyValueDisallowChatParticipants &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Reaction &obj, const T &func) {
+ switch (obj.get_id()) {
+ case reactionEmpty::ID:
+ func(static_cast<reactionEmpty &>(obj));
+ return true;
+ case reactionEmoji::ID:
+ func(static_cast<reactionEmoji &>(obj));
+ return true;
+ case reactionCustomEmoji::ID:
+ func(static_cast<reactionCustomEmoji &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(RecentMeUrl &obj, const T &func) {
+ switch (obj.get_id()) {
+ case recentMeUrlUnknown::ID:
+ func(static_cast<recentMeUrlUnknown &>(obj));
+ return true;
+ case recentMeUrlUser::ID:
+ func(static_cast<recentMeUrlUser &>(obj));
+ return true;
+ case recentMeUrlChat::ID:
+ func(static_cast<recentMeUrlChat &>(obj));
+ return true;
+ case recentMeUrlChatInvite::ID:
+ func(static_cast<recentMeUrlChatInvite &>(obj));
+ return true;
+ case recentMeUrlStickerSet::ID:
+ func(static_cast<recentMeUrlStickerSet &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ReplyMarkup &obj, const T &func) {
+ switch (obj.get_id()) {
+ case replyKeyboardHide::ID:
+ func(static_cast<replyKeyboardHide &>(obj));
+ return true;
+ case replyKeyboardForceReply::ID:
+ func(static_cast<replyKeyboardForceReply &>(obj));
+ return true;
+ case replyKeyboardMarkup::ID:
+ func(static_cast<replyKeyboardMarkup &>(obj));
+ return true;
+ case replyInlineMarkup::ID:
+ func(static_cast<replyInlineMarkup &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(ReportReason &obj, const T &func) {
+ switch (obj.get_id()) {
+ case inputReportReasonSpam::ID:
+ func(static_cast<inputReportReasonSpam &>(obj));
+ return true;
+ case inputReportReasonViolence::ID:
+ func(static_cast<inputReportReasonViolence &>(obj));
+ return true;
+ case inputReportReasonPornography::ID:
+ func(static_cast<inputReportReasonPornography &>(obj));
+ return true;
+ case inputReportReasonChildAbuse::ID:
+ func(static_cast<inputReportReasonChildAbuse &>(obj));
+ return true;
+ case inputReportReasonOther::ID:
+ func(static_cast<inputReportReasonOther &>(obj));
+ return true;
+ case inputReportReasonCopyright::ID:
+ func(static_cast<inputReportReasonCopyright &>(obj));
+ return true;
+ case inputReportReasonGeoIrrelevant::ID:
+ func(static_cast<inputReportReasonGeoIrrelevant &>(obj));
+ return true;
+ case inputReportReasonFake::ID:
+ func(static_cast<inputReportReasonFake &>(obj));
+ return true;
+ case inputReportReasonIllegalDrugs::ID:
+ func(static_cast<inputReportReasonIllegalDrugs &>(obj));
+ return true;
+ case inputReportReasonPersonalDetails::ID:
+ func(static_cast<inputReportReasonPersonalDetails &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(RichText &obj, const T &func) {
+ switch (obj.get_id()) {
+ case textEmpty::ID:
+ func(static_cast<textEmpty &>(obj));
+ return true;
+ case textPlain::ID:
+ func(static_cast<textPlain &>(obj));
+ return true;
+ case textBold::ID:
+ func(static_cast<textBold &>(obj));
+ return true;
+ case textItalic::ID:
+ func(static_cast<textItalic &>(obj));
+ return true;
+ case textUnderline::ID:
+ func(static_cast<textUnderline &>(obj));
+ return true;
+ case textStrike::ID:
+ func(static_cast<textStrike &>(obj));
+ return true;
+ case textFixed::ID:
+ func(static_cast<textFixed &>(obj));
+ return true;
+ case textUrl::ID:
+ func(static_cast<textUrl &>(obj));
+ return true;
+ case textEmail::ID:
+ func(static_cast<textEmail &>(obj));
+ return true;
+ case textConcat::ID:
+ func(static_cast<textConcat &>(obj));
+ return true;
+ case textSubscript::ID:
+ func(static_cast<textSubscript &>(obj));
+ return true;
+ case textSuperscript::ID:
+ func(static_cast<textSuperscript &>(obj));
+ return true;
+ case textMarked::ID:
+ func(static_cast<textMarked &>(obj));
+ return true;
+ case textPhone::ID:
+ func(static_cast<textPhone &>(obj));
+ return true;
+ case textImage::ID:
+ func(static_cast<textImage &>(obj));
+ return true;
+ case textAnchor::ID:
+ func(static_cast<textAnchor &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SecureFile &obj, const T &func) {
+ switch (obj.get_id()) {
+ case secureFileEmpty::ID:
+ func(static_cast<secureFileEmpty &>(obj));
+ return true;
+ case secureFile::ID:
+ func(static_cast<secureFile &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SecurePasswordKdfAlgo &obj, const T &func) {
+ switch (obj.get_id()) {
+ case securePasswordKdfAlgoUnknown::ID:
+ func(static_cast<securePasswordKdfAlgoUnknown &>(obj));
+ return true;
+ case securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::ID:
+ func(static_cast<securePasswordKdfAlgoPBKDF2HMACSHA512iter100000 &>(obj));
+ return true;
+ case securePasswordKdfAlgoSHA512::ID:
+ func(static_cast<securePasswordKdfAlgoSHA512 &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SecurePlainData &obj, const T &func) {
+ switch (obj.get_id()) {
+ case securePlainPhone::ID:
+ func(static_cast<securePlainPhone &>(obj));
+ return true;
+ case securePlainEmail::ID:
+ func(static_cast<securePlainEmail &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SecureRequiredType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case secureRequiredType::ID:
+ func(static_cast<secureRequiredType &>(obj));
+ return true;
+ case secureRequiredTypeOneOf::ID:
+ func(static_cast<secureRequiredTypeOneOf &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SecureValueError &obj, const T &func) {
+ switch (obj.get_id()) {
+ case secureValueErrorData::ID:
+ func(static_cast<secureValueErrorData &>(obj));
+ return true;
+ case secureValueErrorFrontSide::ID:
+ func(static_cast<secureValueErrorFrontSide &>(obj));
+ return true;
+ case secureValueErrorReverseSide::ID:
+ func(static_cast<secureValueErrorReverseSide &>(obj));
+ return true;
+ case secureValueErrorSelfie::ID:
+ func(static_cast<secureValueErrorSelfie &>(obj));
+ return true;
+ case secureValueErrorFile::ID:
+ func(static_cast<secureValueErrorFile &>(obj));
+ return true;
+ case secureValueErrorFiles::ID:
+ func(static_cast<secureValueErrorFiles &>(obj));
+ return true;
+ case secureValueError::ID:
+ func(static_cast<secureValueError &>(obj));
+ return true;
+ case secureValueErrorTranslationFile::ID:
+ func(static_cast<secureValueErrorTranslationFile &>(obj));
+ return true;
+ case secureValueErrorTranslationFiles::ID:
+ func(static_cast<secureValueErrorTranslationFiles &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SecureValueType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case secureValueTypePersonalDetails::ID:
+ func(static_cast<secureValueTypePersonalDetails &>(obj));
+ return true;
+ case secureValueTypePassport::ID:
+ func(static_cast<secureValueTypePassport &>(obj));
+ return true;
+ case secureValueTypeDriverLicense::ID:
+ func(static_cast<secureValueTypeDriverLicense &>(obj));
+ return true;
+ case secureValueTypeIdentityCard::ID:
+ func(static_cast<secureValueTypeIdentityCard &>(obj));
+ return true;
+ case secureValueTypeInternalPassport::ID:
+ func(static_cast<secureValueTypeInternalPassport &>(obj));
+ return true;
+ case secureValueTypeAddress::ID:
+ func(static_cast<secureValueTypeAddress &>(obj));
+ return true;
+ case secureValueTypeUtilityBill::ID:
+ func(static_cast<secureValueTypeUtilityBill &>(obj));
+ return true;
+ case secureValueTypeBankStatement::ID:
+ func(static_cast<secureValueTypeBankStatement &>(obj));
+ return true;
+ case secureValueTypeRentalAgreement::ID:
+ func(static_cast<secureValueTypeRentalAgreement &>(obj));
+ return true;
+ case secureValueTypePassportRegistration::ID:
+ func(static_cast<secureValueTypePassportRegistration &>(obj));
+ return true;
+ case secureValueTypeTemporaryRegistration::ID:
+ func(static_cast<secureValueTypeTemporaryRegistration &>(obj));
+ return true;
+ case secureValueTypePhone::ID:
+ func(static_cast<secureValueTypePhone &>(obj));
+ return true;
+ case secureValueTypeEmail::ID:
+ func(static_cast<secureValueTypeEmail &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(SendMessageAction &obj, const T &func) {
+ switch (obj.get_id()) {
+ case sendMessageTypingAction::ID:
+ func(static_cast<sendMessageTypingAction &>(obj));
+ return true;
+ case sendMessageCancelAction::ID:
+ func(static_cast<sendMessageCancelAction &>(obj));
+ return true;
+ case sendMessageRecordVideoAction::ID:
+ func(static_cast<sendMessageRecordVideoAction &>(obj));
+ return true;
+ case sendMessageUploadVideoAction::ID:
+ func(static_cast<sendMessageUploadVideoAction &>(obj));
+ return true;
+ case sendMessageRecordAudioAction::ID:
+ func(static_cast<sendMessageRecordAudioAction &>(obj));
+ return true;
+ case sendMessageUploadAudioAction::ID:
+ func(static_cast<sendMessageUploadAudioAction &>(obj));
+ return true;
+ case sendMessageUploadPhotoAction::ID:
+ func(static_cast<sendMessageUploadPhotoAction &>(obj));
+ return true;
+ case sendMessageUploadDocumentAction::ID:
+ func(static_cast<sendMessageUploadDocumentAction &>(obj));
+ return true;
+ case sendMessageGeoLocationAction::ID:
+ func(static_cast<sendMessageGeoLocationAction &>(obj));
+ return true;
+ case sendMessageChooseContactAction::ID:
+ func(static_cast<sendMessageChooseContactAction &>(obj));
+ return true;
+ case sendMessageGamePlayAction::ID:
+ func(static_cast<sendMessageGamePlayAction &>(obj));
+ return true;
+ case sendMessageRecordRoundAction::ID:
+ func(static_cast<sendMessageRecordRoundAction &>(obj));
+ return true;
+ case sendMessageUploadRoundAction::ID:
+ func(static_cast<sendMessageUploadRoundAction &>(obj));
+ return true;
+ case speakingInGroupCallAction::ID:
+ func(static_cast<speakingInGroupCallAction &>(obj));
+ return true;
+ case sendMessageHistoryImportAction::ID:
+ func(static_cast<sendMessageHistoryImportAction &>(obj));
+ return true;
+ case sendMessageChooseStickerAction::ID:
+ func(static_cast<sendMessageChooseStickerAction &>(obj));
+ return true;
+ case sendMessageEmojiInteraction::ID:
+ func(static_cast<sendMessageEmojiInteraction &>(obj));
+ return true;
+ case sendMessageEmojiInteractionSeen::ID:
+ func(static_cast<sendMessageEmojiInteractionSeen &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(StatsGraph &obj, const T &func) {
+ switch (obj.get_id()) {
+ case statsGraphAsync::ID:
+ func(static_cast<statsGraphAsync &>(obj));
+ return true;
+ case statsGraphError::ID:
+ func(static_cast<statsGraphError &>(obj));
+ return true;
+ case statsGraph::ID:
+ func(static_cast<statsGraph &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(StickerSetCovered &obj, const T &func) {
+ switch (obj.get_id()) {
+ case stickerSetCovered::ID:
+ func(static_cast<stickerSetCovered &>(obj));
+ return true;
+ case stickerSetMultiCovered::ID:
+ func(static_cast<stickerSetMultiCovered &>(obj));
+ return true;
+ case stickerSetFullCovered::ID:
+ func(static_cast<stickerSetFullCovered &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(TopPeerCategory &obj, const T &func) {
+ switch (obj.get_id()) {
+ case topPeerCategoryBotsPM::ID:
+ func(static_cast<topPeerCategoryBotsPM &>(obj));
+ return true;
+ case topPeerCategoryBotsInline::ID:
+ func(static_cast<topPeerCategoryBotsInline &>(obj));
+ return true;
+ case topPeerCategoryCorrespondents::ID:
+ func(static_cast<topPeerCategoryCorrespondents &>(obj));
+ return true;
+ case topPeerCategoryGroups::ID:
+ func(static_cast<topPeerCategoryGroups &>(obj));
+ return true;
+ case topPeerCategoryChannels::ID:
+ func(static_cast<topPeerCategoryChannels &>(obj));
+ return true;
+ case topPeerCategoryPhoneCalls::ID:
+ func(static_cast<topPeerCategoryPhoneCalls &>(obj));
+ return true;
+ case topPeerCategoryForwardUsers::ID:
+ func(static_cast<topPeerCategoryForwardUsers &>(obj));
+ return true;
+ case topPeerCategoryForwardChats::ID:
+ func(static_cast<topPeerCategoryForwardChats &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Update &obj, const T &func) {
+ switch (obj.get_id()) {
+ case updateNewMessage::ID:
+ func(static_cast<updateNewMessage &>(obj));
+ return true;
+ case updateMessageID::ID:
+ func(static_cast<updateMessageID &>(obj));
+ return true;
+ case updateDeleteMessages::ID:
+ func(static_cast<updateDeleteMessages &>(obj));
+ return true;
+ case updateUserTyping::ID:
+ func(static_cast<updateUserTyping &>(obj));
+ return true;
+ case updateChatUserTyping::ID:
+ func(static_cast<updateChatUserTyping &>(obj));
+ return true;
+ case updateChatParticipants::ID:
+ func(static_cast<updateChatParticipants &>(obj));
+ return true;
+ case updateUserStatus::ID:
+ func(static_cast<updateUserStatus &>(obj));
+ return true;
+ case updateUserName::ID:
+ func(static_cast<updateUserName &>(obj));
+ return true;
+ case updateUserPhoto::ID:
+ func(static_cast<updateUserPhoto &>(obj));
+ return true;
+ case updateNewEncryptedMessage::ID:
+ func(static_cast<updateNewEncryptedMessage &>(obj));
+ return true;
+ case updateEncryptedChatTyping::ID:
+ func(static_cast<updateEncryptedChatTyping &>(obj));
+ return true;
+ case updateEncryption::ID:
+ func(static_cast<updateEncryption &>(obj));
+ return true;
+ case updateEncryptedMessagesRead::ID:
+ func(static_cast<updateEncryptedMessagesRead &>(obj));
+ return true;
+ case updateChatParticipantAdd::ID:
+ func(static_cast<updateChatParticipantAdd &>(obj));
+ return true;
+ case updateChatParticipantDelete::ID:
+ func(static_cast<updateChatParticipantDelete &>(obj));
+ return true;
+ case updateDcOptions::ID:
+ func(static_cast<updateDcOptions &>(obj));
+ return true;
+ case updateNotifySettings::ID:
+ func(static_cast<updateNotifySettings &>(obj));
+ return true;
+ case updateServiceNotification::ID:
+ func(static_cast<updateServiceNotification &>(obj));
+ return true;
+ case updatePrivacy::ID:
+ func(static_cast<updatePrivacy &>(obj));
+ return true;
+ case updateUserPhone::ID:
+ func(static_cast<updateUserPhone &>(obj));
+ return true;
+ case updateReadHistoryInbox::ID:
+ func(static_cast<updateReadHistoryInbox &>(obj));
+ return true;
+ case updateReadHistoryOutbox::ID:
+ func(static_cast<updateReadHistoryOutbox &>(obj));
+ return true;
+ case updateWebPage::ID:
+ func(static_cast<updateWebPage &>(obj));
+ return true;
+ case updateReadMessagesContents::ID:
+ func(static_cast<updateReadMessagesContents &>(obj));
+ return true;
+ case updateChannelTooLong::ID:
+ func(static_cast<updateChannelTooLong &>(obj));
+ return true;
+ case updateChannel::ID:
+ func(static_cast<updateChannel &>(obj));
+ return true;
+ case updateNewChannelMessage::ID:
+ func(static_cast<updateNewChannelMessage &>(obj));
+ return true;
+ case updateReadChannelInbox::ID:
+ func(static_cast<updateReadChannelInbox &>(obj));
+ return true;
+ case updateDeleteChannelMessages::ID:
+ func(static_cast<updateDeleteChannelMessages &>(obj));
+ return true;
+ case updateChannelMessageViews::ID:
+ func(static_cast<updateChannelMessageViews &>(obj));
+ return true;
+ case updateChatParticipantAdmin::ID:
+ func(static_cast<updateChatParticipantAdmin &>(obj));
+ return true;
+ case updateNewStickerSet::ID:
+ func(static_cast<updateNewStickerSet &>(obj));
+ return true;
+ case updateStickerSetsOrder::ID:
+ func(static_cast<updateStickerSetsOrder &>(obj));
+ return true;
+ case updateStickerSets::ID:
+ func(static_cast<updateStickerSets &>(obj));
+ return true;
+ case updateSavedGifs::ID:
+ func(static_cast<updateSavedGifs &>(obj));
+ return true;
+ case updateBotInlineQuery::ID:
+ func(static_cast<updateBotInlineQuery &>(obj));
+ return true;
+ case updateBotInlineSend::ID:
+ func(static_cast<updateBotInlineSend &>(obj));
+ return true;
+ case updateEditChannelMessage::ID:
+ func(static_cast<updateEditChannelMessage &>(obj));
+ return true;
+ case updateBotCallbackQuery::ID:
+ func(static_cast<updateBotCallbackQuery &>(obj));
+ return true;
+ case updateEditMessage::ID:
+ func(static_cast<updateEditMessage &>(obj));
+ return true;
+ case updateInlineBotCallbackQuery::ID:
+ func(static_cast<updateInlineBotCallbackQuery &>(obj));
+ return true;
+ case updateReadChannelOutbox::ID:
+ func(static_cast<updateReadChannelOutbox &>(obj));
+ return true;
+ case updateDraftMessage::ID:
+ func(static_cast<updateDraftMessage &>(obj));
+ return true;
+ case updateReadFeaturedStickers::ID:
+ func(static_cast<updateReadFeaturedStickers &>(obj));
+ return true;
+ case updateRecentStickers::ID:
+ func(static_cast<updateRecentStickers &>(obj));
+ return true;
+ case updateConfig::ID:
+ func(static_cast<updateConfig &>(obj));
+ return true;
+ case updatePtsChanged::ID:
+ func(static_cast<updatePtsChanged &>(obj));
+ return true;
+ case updateChannelWebPage::ID:
+ func(static_cast<updateChannelWebPage &>(obj));
+ return true;
+ case updateDialogPinned::ID:
+ func(static_cast<updateDialogPinned &>(obj));
+ return true;
+ case updatePinnedDialogs::ID:
+ func(static_cast<updatePinnedDialogs &>(obj));
+ return true;
+ case updateBotWebhookJSON::ID:
+ func(static_cast<updateBotWebhookJSON &>(obj));
+ return true;
+ case updateBotWebhookJSONQuery::ID:
+ func(static_cast<updateBotWebhookJSONQuery &>(obj));
+ return true;
+ case updateBotShippingQuery::ID:
+ func(static_cast<updateBotShippingQuery &>(obj));
+ return true;
+ case updateBotPrecheckoutQuery::ID:
+ func(static_cast<updateBotPrecheckoutQuery &>(obj));
+ return true;
+ case updatePhoneCall::ID:
+ func(static_cast<updatePhoneCall &>(obj));
+ return true;
+ case updateLangPackTooLong::ID:
+ func(static_cast<updateLangPackTooLong &>(obj));
+ return true;
+ case updateLangPack::ID:
+ func(static_cast<updateLangPack &>(obj));
+ return true;
+ case updateFavedStickers::ID:
+ func(static_cast<updateFavedStickers &>(obj));
+ return true;
+ case updateChannelReadMessagesContents::ID:
+ func(static_cast<updateChannelReadMessagesContents &>(obj));
+ return true;
+ case updateContactsReset::ID:
+ func(static_cast<updateContactsReset &>(obj));
+ return true;
+ case updateChannelAvailableMessages::ID:
+ func(static_cast<updateChannelAvailableMessages &>(obj));
+ return true;
+ case updateDialogUnreadMark::ID:
+ func(static_cast<updateDialogUnreadMark &>(obj));
+ return true;
+ case updateMessagePoll::ID:
+ func(static_cast<updateMessagePoll &>(obj));
+ return true;
+ case updateChatDefaultBannedRights::ID:
+ func(static_cast<updateChatDefaultBannedRights &>(obj));
+ return true;
+ case updateFolderPeers::ID:
+ func(static_cast<updateFolderPeers &>(obj));
+ return true;
+ case updatePeerSettings::ID:
+ func(static_cast<updatePeerSettings &>(obj));
+ return true;
+ case updatePeerLocated::ID:
+ func(static_cast<updatePeerLocated &>(obj));
+ return true;
+ case updateNewScheduledMessage::ID:
+ func(static_cast<updateNewScheduledMessage &>(obj));
+ return true;
+ case updateDeleteScheduledMessages::ID:
+ func(static_cast<updateDeleteScheduledMessages &>(obj));
+ return true;
+ case updateTheme::ID:
+ func(static_cast<updateTheme &>(obj));
+ return true;
+ case updateGeoLiveViewed::ID:
+ func(static_cast<updateGeoLiveViewed &>(obj));
+ return true;
+ case updateLoginToken::ID:
+ func(static_cast<updateLoginToken &>(obj));
+ return true;
+ case updateMessagePollVote::ID:
+ func(static_cast<updateMessagePollVote &>(obj));
+ return true;
+ case updateDialogFilter::ID:
+ func(static_cast<updateDialogFilter &>(obj));
+ return true;
+ case updateDialogFilterOrder::ID:
+ func(static_cast<updateDialogFilterOrder &>(obj));
+ return true;
+ case updateDialogFilters::ID:
+ func(static_cast<updateDialogFilters &>(obj));
+ return true;
+ case updatePhoneCallSignalingData::ID:
+ func(static_cast<updatePhoneCallSignalingData &>(obj));
+ return true;
+ case updateChannelMessageForwards::ID:
+ func(static_cast<updateChannelMessageForwards &>(obj));
+ return true;
+ case updateReadChannelDiscussionInbox::ID:
+ func(static_cast<updateReadChannelDiscussionInbox &>(obj));
+ return true;
+ case updateReadChannelDiscussionOutbox::ID:
+ func(static_cast<updateReadChannelDiscussionOutbox &>(obj));
+ return true;
+ case updatePeerBlocked::ID:
+ func(static_cast<updatePeerBlocked &>(obj));
+ return true;
+ case updateChannelUserTyping::ID:
+ func(static_cast<updateChannelUserTyping &>(obj));
+ return true;
+ case updatePinnedMessages::ID:
+ func(static_cast<updatePinnedMessages &>(obj));
+ return true;
+ case updatePinnedChannelMessages::ID:
+ func(static_cast<updatePinnedChannelMessages &>(obj));
+ return true;
+ case updateChat::ID:
+ func(static_cast<updateChat &>(obj));
+ return true;
+ case updateGroupCallParticipants::ID:
+ func(static_cast<updateGroupCallParticipants &>(obj));
+ return true;
+ case updateGroupCall::ID:
+ func(static_cast<updateGroupCall &>(obj));
+ return true;
+ case updatePeerHistoryTTL::ID:
+ func(static_cast<updatePeerHistoryTTL &>(obj));
+ return true;
+ case updateChatParticipant::ID:
+ func(static_cast<updateChatParticipant &>(obj));
+ return true;
+ case updateChannelParticipant::ID:
+ func(static_cast<updateChannelParticipant &>(obj));
+ return true;
+ case updateBotStopped::ID:
+ func(static_cast<updateBotStopped &>(obj));
+ return true;
+ case updateGroupCallConnection::ID:
+ func(static_cast<updateGroupCallConnection &>(obj));
+ return true;
+ case updateBotCommands::ID:
+ func(static_cast<updateBotCommands &>(obj));
+ return true;
+ case updatePendingJoinRequests::ID:
+ func(static_cast<updatePendingJoinRequests &>(obj));
+ return true;
+ case updateBotChatInviteRequester::ID:
+ func(static_cast<updateBotChatInviteRequester &>(obj));
+ return true;
+ case updateMessageReactions::ID:
+ func(static_cast<updateMessageReactions &>(obj));
+ return true;
+ case updateAttachMenuBots::ID:
+ func(static_cast<updateAttachMenuBots &>(obj));
+ return true;
+ case updateWebViewResultSent::ID:
+ func(static_cast<updateWebViewResultSent &>(obj));
+ return true;
+ case updateBotMenuButton::ID:
+ func(static_cast<updateBotMenuButton &>(obj));
+ return true;
+ case updateSavedRingtones::ID:
+ func(static_cast<updateSavedRingtones &>(obj));
+ return true;
+ case updateTranscribedAudio::ID:
+ func(static_cast<updateTranscribedAudio &>(obj));
+ return true;
+ case updateReadFeaturedEmojiStickers::ID:
+ func(static_cast<updateReadFeaturedEmojiStickers &>(obj));
+ return true;
+ case updateUserEmojiStatus::ID:
+ func(static_cast<updateUserEmojiStatus &>(obj));
+ return true;
+ case updateRecentEmojiStatuses::ID:
+ func(static_cast<updateRecentEmojiStatuses &>(obj));
+ return true;
+ case updateRecentReactions::ID:
+ func(static_cast<updateRecentReactions &>(obj));
+ return true;
+ case updateMoveStickerSetToTop::ID:
+ func(static_cast<updateMoveStickerSetToTop &>(obj));
+ return true;
+ case updateMessageExtendedMedia::ID:
+ func(static_cast<updateMessageExtendedMedia &>(obj));
+ return true;
+ case updateChannelPinnedTopic::ID:
+ func(static_cast<updateChannelPinnedTopic &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(Updates &obj, const T &func) {
+ switch (obj.get_id()) {
+ case updatesTooLong::ID:
+ func(static_cast<updatesTooLong &>(obj));
+ return true;
+ case updateShortMessage::ID:
+ func(static_cast<updateShortMessage &>(obj));
+ return true;
+ case updateShortChatMessage::ID:
+ func(static_cast<updateShortChatMessage &>(obj));
+ return true;
+ case updateShort::ID:
+ func(static_cast<updateShort &>(obj));
+ return true;
+ case updatesCombined::ID:
+ func(static_cast<updatesCombined &>(obj));
+ return true;
+ case updates::ID:
+ func(static_cast<updates &>(obj));
+ return true;
+ case updateShortSentMessage::ID:
+ func(static_cast<updateShortSentMessage &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(UrlAuthResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case urlAuthResultRequest::ID:
+ func(static_cast<urlAuthResultRequest &>(obj));
+ return true;
+ case urlAuthResultAccepted::ID:
+ func(static_cast<urlAuthResultAccepted &>(obj));
+ return true;
+ case urlAuthResultDefault::ID:
+ func(static_cast<urlAuthResultDefault &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(User &obj, const T &func) {
+ switch (obj.get_id()) {
+ case userEmpty::ID:
+ func(static_cast<userEmpty &>(obj));
+ return true;
+ case user::ID:
+ func(static_cast<user &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(UserProfilePhoto &obj, const T &func) {
+ switch (obj.get_id()) {
+ case userProfilePhotoEmpty::ID:
+ func(static_cast<userProfilePhotoEmpty &>(obj));
+ return true;
+ case userProfilePhoto::ID:
+ func(static_cast<userProfilePhoto &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(UserStatus &obj, const T &func) {
+ switch (obj.get_id()) {
+ case userStatusEmpty::ID:
+ func(static_cast<userStatusEmpty &>(obj));
+ return true;
+ case userStatusOnline::ID:
+ func(static_cast<userStatusOnline &>(obj));
+ return true;
+ case userStatusOffline::ID:
+ func(static_cast<userStatusOffline &>(obj));
+ return true;
+ case userStatusRecently::ID:
+ func(static_cast<userStatusRecently &>(obj));
+ return true;
+ case userStatusLastWeek::ID:
+ func(static_cast<userStatusLastWeek &>(obj));
+ return true;
+ case userStatusLastMonth::ID:
+ func(static_cast<userStatusLastMonth &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(WallPaper &obj, const T &func) {
+ switch (obj.get_id()) {
+ case wallPaper::ID:
+ func(static_cast<wallPaper &>(obj));
+ return true;
+ case wallPaperNoFile::ID:
+ func(static_cast<wallPaperNoFile &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(WebDocument &obj, const T &func) {
+ switch (obj.get_id()) {
+ case webDocument::ID:
+ func(static_cast<webDocument &>(obj));
+ return true;
+ case webDocumentNoProxy::ID:
+ func(static_cast<webDocumentNoProxy &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(WebPage &obj, const T &func) {
+ switch (obj.get_id()) {
+ case webPageEmpty::ID:
+ func(static_cast<webPageEmpty &>(obj));
+ return true;
+ case webPagePending::ID:
+ func(static_cast<webPagePending &>(obj));
+ return true;
+ case webPage::ID:
+ func(static_cast<webPage &>(obj));
+ return true;
+ case webPageNotModified::ID:
+ func(static_cast<webPageNotModified &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(account_EmailVerified &obj, const T &func) {
+ switch (obj.get_id()) {
+ case account_emailVerified::ID:
+ func(static_cast<account_emailVerified &>(obj));
+ return true;
+ case account_emailVerifiedLogin::ID:
+ func(static_cast<account_emailVerifiedLogin &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(account_EmojiStatuses &obj, const T &func) {
+ switch (obj.get_id()) {
+ case account_emojiStatusesNotModified::ID:
+ func(static_cast<account_emojiStatusesNotModified &>(obj));
+ return true;
+ case account_emojiStatuses::ID:
+ func(static_cast<account_emojiStatuses &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(account_ResetPasswordResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case account_resetPasswordFailedWait::ID:
+ func(static_cast<account_resetPasswordFailedWait &>(obj));
+ return true;
+ case account_resetPasswordRequestedWait::ID:
+ func(static_cast<account_resetPasswordRequestedWait &>(obj));
+ return true;
+ case account_resetPasswordOk::ID:
+ func(static_cast<account_resetPasswordOk &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(account_SavedRingtone &obj, const T &func) {
+ switch (obj.get_id()) {
+ case account_savedRingtone::ID:
+ func(static_cast<account_savedRingtone &>(obj));
+ return true;
+ case account_savedRingtoneConverted::ID:
+ func(static_cast<account_savedRingtoneConverted &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(account_SavedRingtones &obj, const T &func) {
+ switch (obj.get_id()) {
+ case account_savedRingtonesNotModified::ID:
+ func(static_cast<account_savedRingtonesNotModified &>(obj));
+ return true;
+ case account_savedRingtones::ID:
+ func(static_cast<account_savedRingtones &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(account_Themes &obj, const T &func) {
+ switch (obj.get_id()) {
+ case account_themesNotModified::ID:
+ func(static_cast<account_themesNotModified &>(obj));
+ return true;
+ case account_themes::ID:
+ func(static_cast<account_themes &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(account_WallPapers &obj, const T &func) {
+ switch (obj.get_id()) {
+ case account_wallPapersNotModified::ID:
+ func(static_cast<account_wallPapersNotModified &>(obj));
+ return true;
+ case account_wallPapers::ID:
+ func(static_cast<account_wallPapers &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(auth_Authorization &obj, const T &func) {
+ switch (obj.get_id()) {
+ case auth_authorization::ID:
+ func(static_cast<auth_authorization &>(obj));
+ return true;
+ case auth_authorizationSignUpRequired::ID:
+ func(static_cast<auth_authorizationSignUpRequired &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(auth_CodeType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case auth_codeTypeSms::ID:
+ func(static_cast<auth_codeTypeSms &>(obj));
+ return true;
+ case auth_codeTypeCall::ID:
+ func(static_cast<auth_codeTypeCall &>(obj));
+ return true;
+ case auth_codeTypeFlashCall::ID:
+ func(static_cast<auth_codeTypeFlashCall &>(obj));
+ return true;
+ case auth_codeTypeMissedCall::ID:
+ func(static_cast<auth_codeTypeMissedCall &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(auth_LoginToken &obj, const T &func) {
+ switch (obj.get_id()) {
+ case auth_loginToken::ID:
+ func(static_cast<auth_loginToken &>(obj));
+ return true;
+ case auth_loginTokenMigrateTo::ID:
+ func(static_cast<auth_loginTokenMigrateTo &>(obj));
+ return true;
+ case auth_loginTokenSuccess::ID:
+ func(static_cast<auth_loginTokenSuccess &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(auth_SentCodeType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case auth_sentCodeTypeApp::ID:
+ func(static_cast<auth_sentCodeTypeApp &>(obj));
+ return true;
+ case auth_sentCodeTypeSms::ID:
+ func(static_cast<auth_sentCodeTypeSms &>(obj));
+ return true;
+ case auth_sentCodeTypeCall::ID:
+ func(static_cast<auth_sentCodeTypeCall &>(obj));
+ return true;
+ case auth_sentCodeTypeFlashCall::ID:
+ func(static_cast<auth_sentCodeTypeFlashCall &>(obj));
+ return true;
+ case auth_sentCodeTypeMissedCall::ID:
+ func(static_cast<auth_sentCodeTypeMissedCall &>(obj));
+ return true;
+ case auth_sentCodeTypeEmailCode::ID:
+ func(static_cast<auth_sentCodeTypeEmailCode &>(obj));
+ return true;
+ case auth_sentCodeTypeSetUpEmailRequired::ID:
+ func(static_cast<auth_sentCodeTypeSetUpEmailRequired &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(channels_ChannelParticipants &obj, const T &func) {
+ switch (obj.get_id()) {
+ case channels_channelParticipants::ID:
+ func(static_cast<channels_channelParticipants &>(obj));
+ return true;
+ case channels_channelParticipantsNotModified::ID:
+ func(static_cast<channels_channelParticipantsNotModified &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(contacts_Blocked &obj, const T &func) {
+ switch (obj.get_id()) {
+ case contacts_blocked::ID:
+ func(static_cast<contacts_blocked &>(obj));
+ return true;
+ case contacts_blockedSlice::ID:
+ func(static_cast<contacts_blockedSlice &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(contacts_Contacts &obj, const T &func) {
+ switch (obj.get_id()) {
+ case contacts_contactsNotModified::ID:
+ func(static_cast<contacts_contactsNotModified &>(obj));
+ return true;
+ case contacts_contacts::ID:
+ func(static_cast<contacts_contacts &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(contacts_TopPeers &obj, const T &func) {
+ switch (obj.get_id()) {
+ case contacts_topPeersNotModified::ID:
+ func(static_cast<contacts_topPeersNotModified &>(obj));
+ return true;
+ case contacts_topPeers::ID:
+ func(static_cast<contacts_topPeers &>(obj));
+ return true;
+ case contacts_topPeersDisabled::ID:
+ func(static_cast<contacts_topPeersDisabled &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(help_AppUpdate &obj, const T &func) {
+ switch (obj.get_id()) {
+ case help_appUpdate::ID:
+ func(static_cast<help_appUpdate &>(obj));
+ return true;
+ case help_noAppUpdate::ID:
+ func(static_cast<help_noAppUpdate &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(help_CountriesList &obj, const T &func) {
+ switch (obj.get_id()) {
+ case help_countriesListNotModified::ID:
+ func(static_cast<help_countriesListNotModified &>(obj));
+ return true;
+ case help_countriesList::ID:
+ func(static_cast<help_countriesList &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(help_DeepLinkInfo &obj, const T &func) {
+ switch (obj.get_id()) {
+ case help_deepLinkInfoEmpty::ID:
+ func(static_cast<help_deepLinkInfoEmpty &>(obj));
+ return true;
+ case help_deepLinkInfo::ID:
+ func(static_cast<help_deepLinkInfo &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(help_PassportConfig &obj, const T &func) {
+ switch (obj.get_id()) {
+ case help_passportConfigNotModified::ID:
+ func(static_cast<help_passportConfigNotModified &>(obj));
+ return true;
+ case help_passportConfig::ID:
+ func(static_cast<help_passportConfig &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(help_PromoData &obj, const T &func) {
+ switch (obj.get_id()) {
+ case help_promoDataEmpty::ID:
+ func(static_cast<help_promoDataEmpty &>(obj));
+ return true;
+ case help_promoData::ID:
+ func(static_cast<help_promoData &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(help_TermsOfServiceUpdate &obj, const T &func) {
+ switch (obj.get_id()) {
+ case help_termsOfServiceUpdateEmpty::ID:
+ func(static_cast<help_termsOfServiceUpdateEmpty &>(obj));
+ return true;
+ case help_termsOfServiceUpdate::ID:
+ func(static_cast<help_termsOfServiceUpdate &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(help_UserInfo &obj, const T &func) {
+ switch (obj.get_id()) {
+ case help_userInfoEmpty::ID:
+ func(static_cast<help_userInfoEmpty &>(obj));
+ return true;
+ case help_userInfo::ID:
+ func(static_cast<help_userInfo &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_AllStickers &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_allStickersNotModified::ID:
+ func(static_cast<messages_allStickersNotModified &>(obj));
+ return true;
+ case messages_allStickers::ID:
+ func(static_cast<messages_allStickers &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_AvailableReactions &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_availableReactionsNotModified::ID:
+ func(static_cast<messages_availableReactionsNotModified &>(obj));
+ return true;
+ case messages_availableReactions::ID:
+ func(static_cast<messages_availableReactions &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_Chats &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_chats::ID:
+ func(static_cast<messages_chats &>(obj));
+ return true;
+ case messages_chatsSlice::ID:
+ func(static_cast<messages_chatsSlice &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_DhConfig &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_dhConfigNotModified::ID:
+ func(static_cast<messages_dhConfigNotModified &>(obj));
+ return true;
+ case messages_dhConfig::ID:
+ func(static_cast<messages_dhConfig &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_Dialogs &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_dialogs::ID:
+ func(static_cast<messages_dialogs &>(obj));
+ return true;
+ case messages_dialogsSlice::ID:
+ func(static_cast<messages_dialogsSlice &>(obj));
+ return true;
+ case messages_dialogsNotModified::ID:
+ func(static_cast<messages_dialogsNotModified &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_ExportedChatInvite &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_exportedChatInvite::ID:
+ func(static_cast<messages_exportedChatInvite &>(obj));
+ return true;
+ case messages_exportedChatInviteReplaced::ID:
+ func(static_cast<messages_exportedChatInviteReplaced &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_FavedStickers &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_favedStickersNotModified::ID:
+ func(static_cast<messages_favedStickersNotModified &>(obj));
+ return true;
+ case messages_favedStickers::ID:
+ func(static_cast<messages_favedStickers &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_FeaturedStickers &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_featuredStickersNotModified::ID:
+ func(static_cast<messages_featuredStickersNotModified &>(obj));
+ return true;
+ case messages_featuredStickers::ID:
+ func(static_cast<messages_featuredStickers &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_FoundStickerSets &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_foundStickerSetsNotModified::ID:
+ func(static_cast<messages_foundStickerSetsNotModified &>(obj));
+ return true;
+ case messages_foundStickerSets::ID:
+ func(static_cast<messages_foundStickerSets &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_Messages &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_messages::ID:
+ func(static_cast<messages_messages &>(obj));
+ return true;
+ case messages_messagesSlice::ID:
+ func(static_cast<messages_messagesSlice &>(obj));
+ return true;
+ case messages_channelMessages::ID:
+ func(static_cast<messages_channelMessages &>(obj));
+ return true;
+ case messages_messagesNotModified::ID:
+ func(static_cast<messages_messagesNotModified &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_Reactions &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_reactionsNotModified::ID:
+ func(static_cast<messages_reactionsNotModified &>(obj));
+ return true;
+ case messages_reactions::ID:
+ func(static_cast<messages_reactions &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_RecentStickers &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_recentStickersNotModified::ID:
+ func(static_cast<messages_recentStickersNotModified &>(obj));
+ return true;
+ case messages_recentStickers::ID:
+ func(static_cast<messages_recentStickers &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_SavedGifs &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_savedGifsNotModified::ID:
+ func(static_cast<messages_savedGifsNotModified &>(obj));
+ return true;
+ case messages_savedGifs::ID:
+ func(static_cast<messages_savedGifs &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_SentEncryptedMessage &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_sentEncryptedMessage::ID:
+ func(static_cast<messages_sentEncryptedMessage &>(obj));
+ return true;
+ case messages_sentEncryptedFile::ID:
+ func(static_cast<messages_sentEncryptedFile &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_SponsoredMessages &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_sponsoredMessages::ID:
+ func(static_cast<messages_sponsoredMessages &>(obj));
+ return true;
+ case messages_sponsoredMessagesEmpty::ID:
+ func(static_cast<messages_sponsoredMessagesEmpty &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_StickerSet &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_stickerSet::ID:
+ func(static_cast<messages_stickerSet &>(obj));
+ return true;
+ case messages_stickerSetNotModified::ID:
+ func(static_cast<messages_stickerSetNotModified &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_StickerSetInstallResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_stickerSetInstallResultSuccess::ID:
+ func(static_cast<messages_stickerSetInstallResultSuccess &>(obj));
+ return true;
+ case messages_stickerSetInstallResultArchive::ID:
+ func(static_cast<messages_stickerSetInstallResultArchive &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_Stickers &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_stickersNotModified::ID:
+ func(static_cast<messages_stickersNotModified &>(obj));
+ return true;
+ case messages_stickers::ID:
+ func(static_cast<messages_stickers &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(messages_TranslatedText &obj, const T &func) {
+ switch (obj.get_id()) {
+ case messages_translateNoResult::ID:
+ func(static_cast<messages_translateNoResult &>(obj));
+ return true;
+ case messages_translateResultText::ID:
+ func(static_cast<messages_translateResultText &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(payments_PaymentResult &obj, const T &func) {
+ switch (obj.get_id()) {
+ case payments_paymentResult::ID:
+ func(static_cast<payments_paymentResult &>(obj));
+ return true;
+ case payments_paymentVerificationNeeded::ID:
+ func(static_cast<payments_paymentVerificationNeeded &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(photos_Photos &obj, const T &func) {
+ switch (obj.get_id()) {
+ case photos_photos::ID:
+ func(static_cast<photos_photos &>(obj));
+ return true;
+ case photos_photosSlice::ID:
+ func(static_cast<photos_photosSlice &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(storage_FileType &obj, const T &func) {
+ switch (obj.get_id()) {
+ case storage_fileUnknown::ID:
+ func(static_cast<storage_fileUnknown &>(obj));
+ return true;
+ case storage_filePartial::ID:
+ func(static_cast<storage_filePartial &>(obj));
+ return true;
+ case storage_fileJpeg::ID:
+ func(static_cast<storage_fileJpeg &>(obj));
+ return true;
+ case storage_fileGif::ID:
+ func(static_cast<storage_fileGif &>(obj));
+ return true;
+ case storage_filePng::ID:
+ func(static_cast<storage_filePng &>(obj));
+ return true;
+ case storage_filePdf::ID:
+ func(static_cast<storage_filePdf &>(obj));
+ return true;
+ case storage_fileMp3::ID:
+ func(static_cast<storage_fileMp3 &>(obj));
+ return true;
+ case storage_fileMov::ID:
+ func(static_cast<storage_fileMov &>(obj));
+ return true;
+ case storage_fileMp4::ID:
+ func(static_cast<storage_fileMp4 &>(obj));
+ return true;
+ case storage_fileWebp::ID:
+ func(static_cast<storage_fileWebp &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(updates_ChannelDifference &obj, const T &func) {
+ switch (obj.get_id()) {
+ case updates_channelDifferenceEmpty::ID:
+ func(static_cast<updates_channelDifferenceEmpty &>(obj));
+ return true;
+ case updates_channelDifferenceTooLong::ID:
+ func(static_cast<updates_channelDifferenceTooLong &>(obj));
+ return true;
+ case updates_channelDifference::ID:
+ func(static_cast<updates_channelDifference &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(updates_Difference &obj, const T &func) {
+ switch (obj.get_id()) {
+ case updates_differenceEmpty::ID:
+ func(static_cast<updates_differenceEmpty &>(obj));
+ return true;
+ case updates_difference::ID:
+ func(static_cast<updates_difference &>(obj));
+ return true;
+ case updates_differenceSlice::ID:
+ func(static_cast<updates_differenceSlice &>(obj));
+ return true;
+ case updates_differenceTooLong::ID:
+ func(static_cast<updates_differenceTooLong &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(upload_CdnFile &obj, const T &func) {
+ switch (obj.get_id()) {
+ case upload_cdnFileReuploadNeeded::ID:
+ func(static_cast<upload_cdnFileReuploadNeeded &>(obj));
+ return true;
+ case upload_cdnFile::ID:
+ func(static_cast<upload_cdnFile &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+/**
+ * Calls the specified function object with the given object downcasted to its most derived type.
+ * \param[in] obj Object to pass as an argument to the function object.
+ * \param[in] func Function object to which the object will be passed.
+ * \returns Whether function object call has happened. Should always return true for correct parameters.
+ */
+template <class T>
+bool downcast_call(upload_File &obj, const T &func) {
+ switch (obj.get_id()) {
+ case upload_file::ID:
+ func(static_cast<upload_file &>(obj));
+ return true;
+ case upload_fileCdnRedirect::ID:
+ func(static_cast<upload_fileCdnRedirect &>(obj));
+ return true;
+ default:
+ return false;
+ }
+}
+
+} // namespace telegram_api
+} // namespace td
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/tlo/mtproto_api.tlo b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/mtproto_api.tlo
new file mode 100644
index 0000000000..d68d7de32f
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/mtproto_api.tlo
Binary files differ
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/tlo/secret_api.tlo b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/secret_api.tlo
new file mode 100644
index 0000000000..9d35dd3ccd
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/secret_api.tlo
Binary files differ
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/tlo/td_api.tlo b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/td_api.tlo
new file mode 100644
index 0000000000..57862f5202
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/td_api.tlo
Binary files differ
diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/tlo/telegram_api.tlo b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/telegram_api.tlo
new file mode 100644
index 0000000000..6800869ca4
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/telegram_api.tlo
Binary files differ
diff --git a/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.cpp b/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.cpp
new file mode 100644
index 0000000000..5b924aa371
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.cpp
@@ -0,0 +1,3057 @@
+/* ANSI-C code produced by gperf version 3.1 */
+/* Command-line: 'W:\\Test\\td\\vcpkg\\installed\\x64-windows\\tools\\gperf.exe' -m100 --output-file=auto/extension_to_mime_type.cpp auto/extension_to_mime_type.gperf */
+/* Computed positions: -k'1-4,6,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
+#endif
+
+#line 12 "auto/extension_to_mime_type.gperf"
+struct extension_and_mime_type {
+ const char *extension;
+ const char *mime_type;
+};
+#include <string.h>
+/* maximum key range = 3365, duplicates = 0 */
+
+#ifndef GPERF_DOWNCASE
+#define GPERF_DOWNCASE 1
+static unsigned char gperf_downcase[256] =
+ {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255
+ };
+#endif
+
+#ifndef GPERF_CASE_STRCMP
+#define GPERF_CASE_STRCMP 1
+static int
+gperf_case_strcmp (register const char *s1, register const char *s2)
+{
+ for (;;)
+ {
+ unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
+ unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
+ if (c1 != 0 && c1 == c2)
+ continue;
+ return (int)c1 - (int)c2;
+ }
+}
+#endif
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+extension_hash (register const char *str, register size_t len)
+{
+ static const unsigned short asso_values[] =
+ {
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 5, 3376, 3376, 9, 21,
+ 226, 309, 314, 31, 31, 6, 6, 9, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 257, 522, 20, 36, 584,
+ 21, 570, 866, 174, 1292, 522, 94, 6, 381, 407,
+ 9, 574, 153, 5, 72, 213, 331, 32, 10, 499,
+ 75, 3376, 3376, 3376, 3376, 5, 3376, 257, 522, 20,
+ 36, 584, 21, 570, 866, 174, 1292, 522, 94, 6,
+ 381, 407, 9, 574, 153, 5, 72, 213, 331, 32,
+ 10, 499, 75, 999, 1528, 1515, 1457, 291, 11, 994,
+ 952, 35, 1229, 1226, 140, 37, 983, 198, 701, 775,
+ 149, 641, 1579, 6, 631, 3376, 3376, 3376, 3376, 3376,
+ 3376, 32, 10, 499, 75, 999, 1528, 1515, 1457, 291,
+ 11, 994, 952, 35, 1229, 1226, 140, 37, 983, 198,
+ 701, 775, 149, 641, 1579, 6, 631, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
+ 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376
+ };
+ register unsigned int hval = len;
+
+ switch (hval)
+ {
+ default:
+ hval += asso_values[(unsigned char)str[5]];
+ /*FALLTHROUGH*/
+ case 5:
+ case 4:
+ hval += asso_values[(unsigned char)str[3]];
+ /*FALLTHROUGH*/
+ case 3:
+ hval += asso_values[(unsigned char)str[2]];
+ /*FALLTHROUGH*/
+ case 2:
+ hval += asso_values[(unsigned char)str[1]+54];
+ /*FALLTHROUGH*/
+ case 1:
+ hval += asso_values[(unsigned char)str[0]];
+ break;
+ }
+ return hval + asso_values[(unsigned char)str[len - 1]];
+}
+
+const struct extension_and_mime_type *
+search_extension (register const char *str, register size_t len)
+{
+ enum
+ {
+ TOTAL_KEYWORDS = 993,
+ MIN_WORD_LENGTH = 1,
+ MAX_WORD_LENGTH = 11,
+ MIN_HASH_VALUE = 11,
+ MAX_HASH_VALUE = 3375
+ };
+
+ static const struct extension_and_mime_type wordlist[] =
+ {
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 694 "auto/extension_to_mime_type.gperf"
+ {"s", "text/x-asm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 580 "auto/extension_to_mime_type.gperf"
+ {"p", "text/x-pascal"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 587 "auto/extension_to_mime_type.gperf"
+ {"p7s", "application/pkcs7-signature"},
+ {"",nullptr},
+#line 585 "auto/extension_to_mime_type.gperf"
+ {"p7m", "application/pkcs7-mime"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 592 "auto/extension_to_mime_type.gperf"
+ {"pbm", "image/x-portable-bitmap"},
+#line 947 "auto/extension_to_mime_type.gperf"
+ {"xbm", "image/x-xbitmap"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 84 "auto/extension_to_mime_type.gperf"
+ {"c", "text/x-c"},
+#line 242 "auto/extension_to_mime_type.gperf"
+ {"f77", "text/x-fortran"},
+#line 240 "auto/extension_to_mime_type.gperf"
+ {"f", "text/x-fortran"},
+#line 245 "auto/extension_to_mime_type.gperf"
+ {"fbs", "image/vnd.fastbidsheet"},
+#line 97 "auto/extension_to_mime_type.gperf"
+ {"cb7", "application/x-cbr"},
+ {"",nullptr}, {"",nullptr},
+#line 744 "auto/extension_to_mime_type.gperf"
+ {"sm", "application/vnd.stepmania.stepchart"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 974 "auto/extension_to_mime_type.gperf"
+ {"xm", "audio/xm"},
+#line 589 "auto/extension_to_mime_type.gperf"
+ {"pas", "text/x-pascal"},
+#line 901 "auto/extension_to_mime_type.gperf"
+ {"wbs", "application/vnd.criticaltools.wbs+xml"},
+ {"",nullptr}, {"",nullptr},
+#line 584 "auto/extension_to_mime_type.gperf"
+ {"p7c", "application/pkcs7-mime"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 943 "auto/extension_to_mime_type.gperf"
+ {"xap", "application/x-silverlight-app"},
+#line 265 "auto/extension_to_mime_type.gperf"
+ {"fm", "application/vnd.framemaker"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 900 "auto/extension_to_mime_type.gperf"
+ {"wbmp", "image/vnd.wap.wbmp"},
+ {"",nullptr}, {"",nullptr},
+#line 94 "auto/extension_to_mime_type.gperf"
+ {"cap", "application/vnd.tcpdump.pcap"},
+ {"",nullptr},
+#line 912 "auto/extension_to_mime_type.gperf"
+ {"wm", "video/x-ms-wm"},
+#line 136 "auto/extension_to_mime_type.gperf"
+ {"cmp", "application/vnd.yellowriver-custom-menu"},
+ {"",nullptr},
+#line 137 "auto/extension_to_mime_type.gperf"
+ {"cmx", "image/x-cmx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 696 "auto/extension_to_mime_type.gperf"
+ {"saf", "application/vnd.yamaha.smaf-audio"},
+ {"",nullptr},
+#line 185 "auto/extension_to_mime_type.gperf"
+ {"dms", "application/octet-stream"},
+#line 745 "auto/extension_to_mime_type.gperf"
+ {"smf", "application/vnd.stardivision.math"},
+#line 469 "auto/extension_to_mime_type.gperf"
+ {"mmf", "application/vnd.smaf"},
+#line 899 "auto/extension_to_mime_type.gperf"
+ {"wax", "audio/x-ms-wax"},
+#line 433 "auto/extension_to_mime_type.gperf"
+ {"mads", "application/mads+xml"},
+#line 1003 "auto/extension_to_mime_type.gperf"
+ {"z7", "application/x-zmachine"},
+#line 921 "auto/extension_to_mime_type.gperf"
+ {"wmx", "video/x-ms-wmx"},
+ {"",nullptr},
+#line 184 "auto/extension_to_mime_type.gperf"
+ {"dmp", "application/vnd.tcpdump.pcap"},
+ {"",nullptr},
+#line 591 "auto/extension_to_mime_type.gperf"
+ {"pbd", "application/vnd.powerbuilder6"},
+#line 946 "auto/extension_to_mime_type.gperf"
+ {"xbd", "application/vnd.fujixerox.docuworks.binder"},
+ {"",nullptr},
+#line 93 "auto/extension_to_mime_type.gperf"
+ {"caf", "audio/x-caf"},
+#line 133 "auto/extension_to_mime_type.gperf"
+ {"cmc", "application/vnd.cosmocaller"},
+ {"",nullptr},
+#line 949 "auto/extension_to_mime_type.gperf"
+ {"xdm", "application/vnd.syncml.dm+xml"},
+#line 709 "auto/extension_to_mime_type.gperf"
+ {"sdp", "application/sdp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 950 "auto/extension_to_mime_type.gperf"
+ {"xdp", "application/vnd.adobe.xdp+xml"},
+ {"",nullptr},
+#line 590 "auto/extension_to_mime_type.gperf"
+ {"paw", "application/vnd.pawaafile"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 915 "auto/extension_to_mime_type.gperf"
+ {"wmf", "application/x-msmetafile"},
+#line 160 "auto/extension_to_mime_type.gperf"
+ {"daf", "application/vnd.mobius.daf"},
+ {"",nullptr}, {"",nullptr},
+#line 468 "auto/extension_to_mime_type.gperf"
+ {"mmd", "application/vnd.chipnuts.karaoke-mmd"},
+ {"",nullptr},
+#line 113 "auto/extension_to_mime_type.gperf"
+ {"cdx", "chemical/x-cdx"},
+ {"",nullptr},
+#line 951 "auto/extension_to_mime_type.gperf"
+ {"xdssc", "application/dssc+xml"},
+ {"",nullptr}, {"",nullptr},
+#line 705 "auto/extension_to_mime_type.gperf"
+ {"sdc", "application/vnd.stardivision.calc"},
+ {"",nullptr},
+#line 1009 "auto/extension_to_mime_type.gperf"
+ {"zmm", "application/vnd.handheld-entertainment+xml"},
+ {"",nullptr}, {"",nullptr},
+#line 905 "auto/extension_to_mime_type.gperf"
+ {"wdp", "image/vnd.ms-photo"},
+#line 601 "auto/extension_to_mime_type.gperf"
+ {"pdf", "application/pdf"},
+#line 948 "auto/extension_to_mime_type.gperf"
+ {"xdf", "application/xcap-diff+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 134 "auto/extension_to_mime_type.gperf"
+ {"cmdf", "chemical/x-cmdf"},
+ {"",nullptr},
+#line 897 "auto/extension_to_mime_type.gperf"
+ {"wad", "application/x-doom"},
+#line 106 "auto/extension_to_mime_type.gperf"
+ {"cdf", "application/x-netcdf"},
+#line 248 "auto/extension_to_mime_type.gperf"
+ {"fdf", "application/vnd.fdf"},
+#line 914 "auto/extension_to_mime_type.gperf"
+ {"wmd", "application/x-ms-wmd"},
+ {"",nullptr},
+#line 928 "auto/extension_to_mime_type.gperf"
+ {"wqd", "application/vnd.wqd"},
+#line 796 "auto/extension_to_mime_type.gperf"
+ {"t", "text/troff"},
+ {"",nullptr},
+#line 710 "auto/extension_to_mime_type.gperf"
+ {"sdw", "application/vnd.stardivision.writer"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 952 "auto/extension_to_mime_type.gperf"
+ {"xdw", "application/vnd.fujixerox.docuworks"},
+ {"",nullptr}, {"",nullptr},
+#line 706 "auto/extension_to_mime_type.gperf"
+ {"sdd", "application/vnd.stardivision.impress"},
+ {"",nullptr},
+#line 902 "auto/extension_to_mime_type.gperf"
+ {"wbxml", "application/vnd.wap.wbxml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 492 "auto/extension_to_mime_type.gperf"
+ {"mpm", "application/vnd.blueice.multipass"},
+#line 629 "auto/extension_to_mime_type.gperf"
+ {"pps", "application/vnd.ms-powerpoint"},
+#line 982 "auto/extension_to_mime_type.gperf"
+ {"xps", "application/vnd.ms-xpsdocument"},
+#line 628 "auto/extension_to_mime_type.gperf"
+ {"ppm", "image/x-portable-pixmap"},
+#line 980 "auto/extension_to_mime_type.gperf"
+ {"xpm", "image/x-xpixmap"},
+#line 757 "auto/extension_to_mime_type.gperf"
+ {"spp", "application/scvp-vp-response"},
+#line 494 "auto/extension_to_mime_type.gperf"
+ {"mpp", "application/vnd.ms-project"},
+#line 759 "auto/extension_to_mime_type.gperf"
+ {"spx", "audio/ogg"},
+#line 993 "auto/extension_to_mime_type.gperf"
+ {"xyz", "chemical/x-xyz"},
+#line 630 "auto/extension_to_mime_type.gperf"
+ {"ppsm", "application/vnd.ms-powerpoint.slideshow.macroenabled.12"},
+ {"",nullptr}, {"",nullptr},
+#line 984 "auto/extension_to_mime_type.gperf"
+ {"xpx", "application/vnd.intercon.formnet"},
+#line 990 "auto/extension_to_mime_type.gperf"
+ {"xvm", "application/xv+xml"},
+#line 918 "auto/extension_to_mime_type.gperf"
+ {"wmls", "text/vnd.wap.wmlscript"},
+ {"",nullptr},
+#line 100 "auto/extension_to_mime_type.gperf"
+ {"cbt", "application/x-cbr"},
+#line 631 "auto/extension_to_mime_type.gperf"
+ {"ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"},
+#line 403 "auto/extension_to_mime_type.gperf"
+ {"lbd", "application/vnd.llamagraphics.life-balance.desktop"},
+ {"",nullptr},
+#line 142 "auto/extension_to_mime_type.gperf"
+ {"cpp", "text/x-c"},
+ {"",nullptr},
+#line 101 "auto/extension_to_mime_type.gperf"
+ {"cbz", "application/x-cbr"},
+#line 268 "auto/extension_to_mime_type.gperf"
+ {"fpx", "image/vnd.fpx"},
+#line 927 "auto/extension_to_mime_type.gperf"
+ {"wps", "application/vnd.ms-works"},
+#line 168 "auto/extension_to_mime_type.gperf"
+ {"ddd", "application/vnd.fujixerox.ddd"},
+#line 193 "auto/extension_to_mime_type.gperf"
+ {"dp", "application/vnd.osgi.dp"},
+#line 753 "auto/extension_to_mime_type.gperf"
+ {"spc", "application/x-pkcs7-certificates"},
+#line 485 "auto/extension_to_mime_type.gperf"
+ {"mpc", "application/vnd.mophun.certificate"},
+#line 754 "auto/extension_to_mime_type.gperf"
+ {"spf", "application/vnd.yamaha.smaf-phrase"},
+#line 919 "auto/extension_to_mime_type.gperf"
+ {"wmlsc", "application/vnd.wap.wmlscriptc"},
+ {"",nullptr}, {"",nullptr},
+#line 695 "auto/extension_to_mime_type.gperf"
+ {"s3m", "audio/s3m"},
+ {"",nullptr},
+#line 677 "auto/extension_to_mime_type.gperf"
+ {"rm", "application/vnd.rn-realmedia"},
+#line 783 "auto/extension_to_mime_type.gperf"
+ {"svc", "application/vnd.dvb.service"},
+#line 664 "auto/extension_to_mime_type.gperf"
+ {"ras", "image/x-cmu-raster"},
+#line 96 "auto/extension_to_mime_type.gperf"
+ {"cat", "application/vnd.ms-pki.seccat"},
+#line 662 "auto/extension_to_mime_type.gperf"
+ {"ram", "audio/x-pn-realaudio"},
+#line 680 "auto/extension_to_mime_type.gperf"
+ {"rms", "application/vnd.jcp.javame.midlet-rms"},
+#line 1002 "auto/extension_to_mime_type.gperf"
+ {"z6", "application/x-zmachine"},
+ {"",nullptr},
+#line 934 "auto/extension_to_mime_type.gperf"
+ {"wvx", "video/x-ms-wvx"},
+#line 917 "auto/extension_to_mime_type.gperf"
+ {"wmlc", "application/vnd.wap.wmlc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 679 "auto/extension_to_mime_type.gperf"
+ {"rmp", "audio/x-pn-realaudio-plugin"},
+#line 114 "auto/extension_to_mime_type.gperf"
+ {"cdxml", "application/vnd.chemdraw+xml"},
+#line 500 "auto/extension_to_mime_type.gperf"
+ {"ms", "text/troff"},
+ {"",nullptr},
+#line 697 "auto/extension_to_mime_type.gperf"
+ {"sbml", "application/sbml+xml"},
+#line 639 "auto/extension_to_mime_type.gperf"
+ {"ps", "application/postscript"},
+ {"",nullptr}, {"",nullptr},
+#line 983 "auto/extension_to_mime_type.gperf"
+ {"xpw", "application/vnd.intercon.formnet"},
+ {"",nullptr}, {"",nullptr},
+#line 922 "auto/extension_to_mime_type.gperf"
+ {"wmz", "application/x-ms-wmz"},
+ {"",nullptr},
+#line 352 "auto/extension_to_mime_type.gperf"
+ {"ims", "application/vnd.ms-ims"},
+#line 987 "auto/extension_to_mime_type.gperf"
+ {"xsm", "application/vnd.syncml+xml"},
+#line 627 "auto/extension_to_mime_type.gperf"
+ {"ppd", "application/vnd.cups-ppd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 784 "auto/extension_to_mime_type.gperf"
+ {"svd", "application/vnd.svd"},
+#line 351 "auto/extension_to_mime_type.gperf"
+ {"imp", "application/vnd.accpac.simply.imp"},
+#line 151 "auto/extension_to_mime_type.gperf"
+ {"css", "text/css"},
+ {"",nullptr},
+#line 760 "auto/extension_to_mime_type.gperf"
+ {"sql", "application/x-sql"},
+ {"",nullptr},
+#line 619 "auto/extension_to_mime_type.gperf"
+ {"pml", "application/vnd.ctc-posml"},
+#line 975 "auto/extension_to_mime_type.gperf"
+ {"xml", "application/xml"},
+#line 633 "auto/extension_to_mime_type.gperf"
+ {"pptm", "application/vnd.ms-powerpoint.presentation.macroenabled.12"},
+ {"",nullptr},
+#line 150 "auto/extension_to_mime_type.gperf"
+ {"csp", "application/vnd.commonspace"},
+#line 942 "auto/extension_to_mime_type.gperf"
+ {"xaml", "application/xaml+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 634 "auto/extension_to_mime_type.gperf"
+ {"pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"},
+#line 135 "auto/extension_to_mime_type.gperf"
+ {"cml", "chemical/x-cml"},
+#line 925 "auto/extension_to_mime_type.gperf"
+ {"wpd", "application/vnd.wordperfect"},
+#line 767 "auto/extension_to_mime_type.gperf"
+ {"ssf", "application/vnd.epson.ssf"},
+#line 504 "auto/extension_to_mime_type.gperf"
+ {"msf", "application/vnd.epson.msf"},
+ {"",nullptr}, {"",nullptr},
+#line 642 "auto/extension_to_mime_type.gperf"
+ {"psf", "application/x-font-linux-psf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 916 "auto/extension_to_mime_type.gperf"
+ {"wml", "text/vnd.wap.wml"},
+#line 936 "auto/extension_to_mime_type.gperf"
+ {"x3d", "model/x3d+xml"},
+#line 1005 "auto/extension_to_mime_type.gperf"
+ {"zaz", "application/vnd.zzazz.deck+xml"},
+ {"",nullptr},
+#line 270 "auto/extension_to_mime_type.gperf"
+ {"fsc", "application/vnd.fsc.weblaunch"},
+#line 988 "auto/extension_to_mime_type.gperf"
+ {"xspf", "application/xspf+xml"},
+#line 417 "auto/extension_to_mime_type.gperf"
+ {"lvp", "audio/vnd.lucent.voice"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 666 "auto/extension_to_mime_type.gperf"
+ {"rdf", "application/rdf+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 196 "auto/extension_to_mime_type.gperf"
+ {"dsc", "text/prs.lines.tag"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 896 "auto/extension_to_mime_type.gperf"
+ {"w3d", "application/x-director"},
+#line 641 "auto/extension_to_mime_type.gperf"
+ {"psd", "image/vnd.adobe.photoshop"},
+#line 197 "auto/extension_to_mime_type.gperf"
+ {"dssc", "application/dssc+der"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 495 "auto/extension_to_mime_type.gperf"
+ {"mpt", "application/vnd.ms-project"},
+ {"",nullptr}, {"",nullptr},
+#line 632 "auto/extension_to_mime_type.gperf"
+ {"ppt", "application/vnd.ms-powerpoint"},
+#line 432 "auto/extension_to_mime_type.gperf"
+ {"ma", "application/mathematica"},
+ {"",nullptr},
+#line 945 "auto/extension_to_mime_type.gperf"
+ {"xbap", "application/x-ms-xbap"},
+#line 109 "auto/extension_to_mime_type.gperf"
+ {"cdmic", "application/cdmi-container"},
+ {"",nullptr},
+#line 26 "auto/extension_to_mime_type.gperf"
+ {"aas", "application/x-authorware-seg"},
+#line 749 "auto/extension_to_mime_type.gperf"
+ {"smzip", "application/vnd.stepmania.package"},
+#line 25 "auto/extension_to_mime_type.gperf"
+ {"aam", "application/x-authorware-map"},
+ {"",nullptr}, {"",nullptr},
+#line 143 "auto/extension_to_mime_type.gperf"
+ {"cpt", "application/mac-compactpro"},
+ {"",nullptr},
+#line 733 "auto/extension_to_mime_type.gperf"
+ {"sis", "application/vnd.symbian.install"},
+ {"",nullptr}, {"",nullptr},
+#line 686 "auto/extension_to_mime_type.gperf"
+ {"rpss", "application/vnd.nokia.radio-presets"},
+ {"",nullptr},
+#line 685 "auto/extension_to_mime_type.gperf"
+ {"rp9", "application/vnd.cloanto.rp9"},
+ {"",nullptr},
+#line 110 "auto/extension_to_mime_type.gperf"
+ {"cdmid", "application/cdmi-domain"},
+#line 274 "auto/extension_to_mime_type.gperf"
+ {"fvt", "video/vnd.fvt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 586 "auto/extension_to_mime_type.gperf"
+ {"p7r", "application/x-pkcs7-certreqresp"},
+#line 734 "auto/extension_to_mime_type.gperf"
+ {"sisx", "application/vnd.symbian.install"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 501 "auto/extension_to_mime_type.gperf"
+ {"mscml", "application/mediaservercontrol+xml"},
+ {"",nullptr}, {"",nullptr},
+#line 24 "auto/extension_to_mime_type.gperf"
+ {"aac", "audio/x-aac"},
+ {"",nullptr},
+#line 27 "auto/extension_to_mime_type.gperf"
+ {"abw", "application/x-abiword"},
+#line 401 "auto/extension_to_mime_type.gperf"
+ {"lasxml", "application/vnd.las.las+xml"},
+#line 755 "auto/extension_to_mime_type.gperf"
+ {"spl", "application/x-futuresplash"},
+ {"",nullptr}, {"",nullptr},
+#line 99 "auto/extension_to_mime_type.gperf"
+ {"cbr", "application/x-cbr"},
+#line 177 "auto/extension_to_mime_type.gperf"
+ {"dis", "application/vnd.mobius.dis"},
+#line 979 "auto/extension_to_mime_type.gperf"
+ {"xpl", "application/xproc+xml"},
+#line 459 "auto/extension_to_mime_type.gperf"
+ {"mif", "application/vnd.mif"},
+#line 611 "auto/extension_to_mime_type.gperf"
+ {"pic", "image/x-pict"},
+#line 364 "auto/extension_to_mime_type.gperf"
+ {"ivp", "application/vnd.immervision-ivp"},
+#line 825 "auto/extension_to_mime_type.gperf"
+ {"tsd", "application/timestamped-data"},
+#line 960 "auto/extension_to_mime_type.gperf"
+ {"xif", "image/vnd.xiff"},
+#line 437 "auto/extension_to_mime_type.gperf"
+ {"mar", "application/octet-stream"},
+ {"",nullptr}, {"",nullptr},
+#line 470 "auto/extension_to_mime_type.gperf"
+ {"mmr", "image/vnd.fujixerox.edmics-mmr"},
+#line 944 "auto/extension_to_mime_type.gperf"
+ {"xar", "application/vnd.xara"},
+ {"",nullptr},
+#line 33 "auto/extension_to_mime_type.gperf"
+ {"adp", "audio/adpcm"},
+ {"",nullptr}, {"",nullptr},
+#line 122 "auto/extension_to_mime_type.gperf"
+ {"cif", "chemical/x-cif"},
+#line 991 "auto/extension_to_mime_type.gperf"
+ {"xvml", "application/xv+xml"},
+#line 689 "auto/extension_to_mime_type.gperf"
+ {"rs", "application/rls-services+xml"},
+#line 821 "auto/extension_to_mime_type.gperf"
+ {"tpt", "application/vnd.trid.tpt"},
+ {"",nullptr},
+#line 95 "auto/extension_to_mime_type.gperf"
+ {"car", "application/vnd.curl.car"},
+ {"",nullptr},
+#line 926 "auto/extension_to_mime_type.gperf"
+ {"wpl", "application/vnd.ms-wpl"},
+#line 691 "auto/extension_to_mime_type.gperf"
+ {"rss", "application/rss+xml"},
+#line 152 "auto/extension_to_mime_type.gperf"
+ {"cst", "application/x-director"},
+#line 271 "auto/extension_to_mime_type.gperf"
+ {"fst", "image/vnd.fst"},
+ {"",nullptr}, {"",nullptr},
+#line 161 "auto/extension_to_mime_type.gperf"
+ {"dart", "application/vnd.dart"},
+#line 175 "auto/extension_to_mime_type.gperf"
+ {"dic", "text/x-c"},
+#line 729 "auto/extension_to_mime_type.gperf"
+ {"sid", "image/x-mrsid-image"},
+#line 456 "auto/extension_to_mime_type.gperf"
+ {"mid", "audio/midi"},
+ {"",nullptr},
+#line 941 "auto/extension_to_mime_type.gperf"
+ {"x3dz", "model/x3d+xml"},
+#line 857 "auto/extension_to_mime_type.gperf"
+ {"uvs", "video/vnd.dece.sd"},
+ {"",nullptr},
+#line 855 "auto/extension_to_mime_type.gperf"
+ {"uvm", "video/vnd.dece.mobile"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 667 "auto/extension_to_mime_type.gperf"
+ {"rdz", "application/vnd.data-vision.rdz"},
+ {"",nullptr},
+#line 856 "auto/extension_to_mime_type.gperf"
+ {"uvp", "video/vnd.dece.pd"},
+ {"",nullptr},
+#line 875 "auto/extension_to_mime_type.gperf"
+ {"uvx", "application/vnd.dece.unspecified"},
+ {"",nullptr},
+#line 1006 "auto/extension_to_mime_type.gperf"
+ {"zip", "application/zip"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 746 "auto/extension_to_mime_type.gperf"
+ {"smi", "application/smil+xml"},
+#line 736 "auto/extension_to_mime_type.gperf"
+ {"sitx", "application/x-stuffitx"},
+ {"",nullptr}, {"",nullptr},
+#line 507 "auto/extension_to_mime_type.gperf"
+ {"msl", "application/vnd.mobius.msl"},
+ {"",nullptr},
+#line 19 "auto/extension_to_mime_type.gperf"
+ {"3ds", "image/x-3ds"},
+#line 588 "auto/extension_to_mime_type.gperf"
+ {"p8", "application/pkcs8"},
+#line 985 "auto/extension_to_mime_type.gperf"
+ {"xsl", "application/xml"},
+ {"",nullptr},
+#line 768 "auto/extension_to_mime_type.gperf"
+ {"ssml", "application/ssml+xml"},
+ {"",nullptr},
+#line 820 "auto/extension_to_mime_type.gperf"
+ {"tpl", "application/vnd.groove-tool-template"},
+ {"",nullptr}, {"",nullptr},
+#line 747 "auto/extension_to_mime_type.gperf"
+ {"smil", "application/smil+xml"},
+#line 851 "auto/extension_to_mime_type.gperf"
+ {"uvf", "application/vnd.dece.data"},
+#line 816 "auto/extension_to_mime_type.gperf"
+ {"tif", "image/tiff"},
+#line 428 "auto/extension_to_mime_type.gperf"
+ {"m3u8", "application/vnd.apple.mpegurl"},
+ {"",nullptr}, {"",nullptr},
+#line 522 "auto/extension_to_mime_type.gperf"
+ {"nbp", "application/vnd.wolfram.player"},
+#line 800 "auto/extension_to_mime_type.gperf"
+ {"tar", "application/x-tar"},
+ {"",nullptr}, {"",nullptr},
+#line 149 "auto/extension_to_mime_type.gperf"
+ {"csml", "chemical/x-csml"},
+ {"",nullptr},
+#line 478 "auto/extension_to_mime_type.gperf"
+ {"mp21", "application/mp21"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 626 "auto/extension_to_mime_type.gperf"
+ {"ppam", "application/vnd.ms-powerpoint.addin.macroenabled.12"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 690 "auto/extension_to_mime_type.gperf"
+ {"rsd", "application/rsd+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 817 "auto/extension_to_mime_type.gperf"
+ {"tiff", "image/tiff"},
+#line 765 "auto/extension_to_mime_type.gperf"
+ {"ssdl", "application/ssdl+xml"},
+#line 446 "auto/extension_to_mime_type.gperf"
+ {"mdi", "image/vnd.ms-modi"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 850 "auto/extension_to_mime_type.gperf"
+ {"uvd", "application/vnd.dece.data"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 735 "auto/extension_to_mime_type.gperf"
+ {"sit", "application/x-stuffit"},
+#line 661 "auto/extension_to_mime_type.gperf"
+ {"ra", "audio/x-pn-realaudio"},
+ {"",nullptr},
+#line 687 "auto/extension_to_mime_type.gperf"
+ {"rpst", "application/vnd.nokia.radio-preset"},
+#line 441 "auto/extension_to_mime_type.gperf"
+ {"mbox", "application/mbox"},
+ {"",nullptr},
+#line 243 "auto/extension_to_mime_type.gperf"
+ {"f90", "text/x-fortran"},
+#line 986 "auto/extension_to_mime_type.gperf"
+ {"xslt", "application/xslt+xml"},
+ {"",nullptr},
+#line 540 "auto/extension_to_mime_type.gperf"
+ {"oas", "application/vnd.fujitsu.oasys"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 673 "auto/extension_to_mime_type.gperf"
+ {"ris", "application/x-research-info-systems"},
+#line 931 "auto/extension_to_mime_type.gperf"
+ {"wsdl", "application/wsdl+xml"},
+#line 981 "auto/extension_to_mime_type.gperf"
+ {"xpr", "application/vnd.is-xpr"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 1004 "auto/extension_to_mime_type.gperf"
+ {"z8", "application/x-zmachine"},
+#line 672 "auto/extension_to_mime_type.gperf"
+ {"rip", "audio/vnd.rip"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 52 "auto/extension_to_mime_type.gperf"
+ {"asm", "text/x-asm"},
+ {"",nullptr},
+#line 461 "auto/extension_to_mime_type.gperf"
+ {"mj2", "video/mj2"},
+ {"",nullptr},
+#line 483 "auto/extension_to_mime_type.gperf"
+ {"mp4s", "application/mp4"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 54 "auto/extension_to_mime_type.gperf"
+ {"asx", "video/x-ms-asf"},
+ {"",nullptr},
+#line 178 "auto/extension_to_mime_type.gperf"
+ {"dist", "application/octet-stream"},
+ {"",nullptr},
+#line 462 "auto/extension_to_mime_type.gperf"
+ {"mjp2", "video/mj2"},
+ {"",nullptr},
+#line 179 "auto/extension_to_mime_type.gperf"
+ {"distz", "application/octet-stream"},
+#line 409 "auto/extension_to_mime_type.gperf"
+ {"list3820", "application/vnd.ibm.modcap"},
+#line 244 "auto/extension_to_mime_type.gperf"
+ {"fb2", "application/x-fictionbook+xml"},
+#line 731 "auto/extension_to_mime_type.gperf"
+ {"sil", "audio/silk"},
+ {"",nullptr},
+#line 671 "auto/extension_to_mime_type.gperf"
+ {"rif", "application/reginfo+xml"},
+ {"",nullptr}, {"",nullptr},
+#line 541 "auto/extension_to_mime_type.gperf"
+ {"obd", "application/x-msbinder"},
+ {"",nullptr},
+#line 663 "auto/extension_to_mime_type.gperf"
+ {"rar", "application/x-rar-compressed"},
+#line 552 "auto/extension_to_mime_type.gperf"
+ {"ods", "application/vnd.oasis.opendocument.spreadsheet"},
+ {"",nullptr},
+#line 550 "auto/extension_to_mime_type.gperf"
+ {"odm", "application/vnd.oasis.opendocument.text-master"},
+#line 50 "auto/extension_to_mime_type.gperf"
+ {"asc", "application/pgp-signature"},
+#line 410 "auto/extension_to_mime_type.gperf"
+ {"listafp", "application/vnd.ibm.modcap"},
+#line 51 "auto/extension_to_mime_type.gperf"
+ {"asf", "video/x-ms-asf"},
+#line 978 "auto/extension_to_mime_type.gperf"
+ {"xpi", "application/x-xpinstall"},
+#line 124 "auto/extension_to_mime_type.gperf"
+ {"cil", "application/vnd.ms-artgalry"},
+#line 551 "auto/extension_to_mime_type.gperf"
+ {"odp", "application/vnd.oasis.opendocument.presentation"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 858 "auto/extension_to_mime_type.gperf"
+ {"uvt", "application/vnd.dece.ttml+xml"},
+#line 350 "auto/extension_to_mime_type.gperf"
+ {"iif", "application/vnd.shana.informed.interchange"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 876 "auto/extension_to_mime_type.gperf"
+ {"uvz", "application/vnd.dece.zip"},
+ {"",nullptr},
+#line 702 "auto/extension_to_mime_type.gperf"
+ {"scs", "application/scvp-cv-response"},
+ {"",nullptr},
+#line 700 "auto/extension_to_mime_type.gperf"
+ {"scm", "application/vnd.lotus-screencam"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 358 "auto/extension_to_mime_type.gperf"
+ {"ipfix", "application/ipfix"},
+#line 545 "auto/extension_to_mime_type.gperf"
+ {"odc", "application/vnd.oasis.opendocument.chart"},
+#line 698 "auto/extension_to_mime_type.gperf"
+ {"sc", "application/vnd.ibm.secure-container"},
+#line 546 "auto/extension_to_mime_type.gperf"
+ {"odf", "application/vnd.oasis.opendocument.formula"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 599 "auto/extension_to_mime_type.gperf"
+ {"pcx", "image/x-pcx"},
+#line 648 "auto/extension_to_mime_type.gperf"
+ {"pya", "audio/vnd.ms-playready.media.pya"},
+#line 247 "auto/extension_to_mime_type.gperf"
+ {"fcs", "application/vnd.isac.fcs"},
+#line 782 "auto/extension_to_mime_type.gperf"
+ {"sv4crc", "application/x-sv4crc"},
+ {"",nullptr},
+#line 204 "auto/extension_to_mime_type.gperf"
+ {"dvi", "application/x-dvi"},
+#line 108 "auto/extension_to_mime_type.gperf"
+ {"cdmia", "application/cdmi-capability"},
+#line 408 "auto/extension_to_mime_type.gperf"
+ {"list", "text/plain"},
+#line 678 "auto/extension_to_mime_type.gperf"
+ {"rmi", "audio/midi"},
+#line 439 "auto/extension_to_mime_type.gperf"
+ {"mb", "application/mathematica"},
+#line 102 "auto/extension_to_mime_type.gperf"
+ {"cc", "text/x-c"},
+#line 891 "auto/extension_to_mime_type.gperf"
+ {"vss", "application/vnd.visio"},
+ {"",nullptr},
+#line 533 "auto/extension_to_mime_type.gperf"
+ {"npx", "image/vnd.net-fpx"},
+ {"",nullptr},
+#line 903 "auto/extension_to_mime_type.gperf"
+ {"wcm", "application/vnd.ms-works"},
+#line 98 "auto/extension_to_mime_type.gperf"
+ {"cba", "application/x-cbr"},
+ {"",nullptr}, {"",nullptr},
+#line 442 "auto/extension_to_mime_type.gperf"
+ {"mc1", "application/vnd.medcalcdata"},
+ {"",nullptr}, {"",nullptr},
+#line 594 "auto/extension_to_mime_type.gperf"
+ {"pcf", "application/x-font-pcf"},
+ {"",nullptr},
+#line 506 "auto/extension_to_mime_type.gperf"
+ {"msi", "application/x-msdownload"},
+ {"",nullptr},
+#line 797 "auto/extension_to_mime_type.gperf"
+ {"t3", "application/x-t3vm-image"},
+ {"",nullptr}, {"",nullptr},
+#line 999 "auto/extension_to_mime_type.gperf"
+ {"z3", "application/x-zmachine"},
+ {"",nullptr}, {"",nullptr},
+#line 635 "auto/extension_to_mime_type.gperf"
+ {"pqa", "application/vnd.palm"},
+ {"",nullptr}, {"",nullptr},
+#line 167 "auto/extension_to_mime_type.gperf"
+ {"dd2", "application/vnd.oma.dd2+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 890 "auto/extension_to_mime_type.gperf"
+ {"vsf", "application/vnd.vsf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 76 "auto/extension_to_mime_type.gperf"
+ {"bmp", "image/bmp"},
+#line 699 "auto/extension_to_mime_type.gperf"
+ {"scd", "application/x-msschedule"},
+#line 443 "auto/extension_to_mime_type.gperf"
+ {"mcd", "application/vnd.mcd"},
+ {"",nullptr},
+#line 18 "auto/extension_to_mime_type.gperf"
+ {"3dml", "text/vnd.in3d.3dml"},
+ {"",nullptr},
+#line 913 "auto/extension_to_mime_type.gperf"
+ {"wma", "audio/x-ms-wma"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 563 "auto/extension_to_mime_type.gperf"
+ {"opf", "application/oebps-package+xml"},
+#line 39 "auto/extension_to_mime_type.gperf"
+ {"aif", "audio/x-aiff"},
+ {"",nullptr}, {"",nullptr},
+#line 893 "auto/extension_to_mime_type.gperf"
+ {"vsw", "application/vnd.visio"},
+#line 704 "auto/extension_to_mime_type.gperf"
+ {"sda", "application/vnd.stardivision.draw"},
+ {"",nullptr}, {"",nullptr},
+#line 581 "auto/extension_to_mime_type.gperf"
+ {"p10", "application/pkcs10"},
+#line 477 "auto/extension_to_mime_type.gperf"
+ {"mp2", "audio/mpeg"},
+ {"",nullptr}, {"",nullptr},
+#line 889 "auto/extension_to_mime_type.gperf"
+ {"vsd", "application/vnd.visio"},
+ {"",nullptr}, {"",nullptr},
+#line 529 "auto/extension_to_mime_type.gperf"
+ {"nml", "application/vnd.enliven"},
+ {"",nullptr},
+#line 427 "auto/extension_to_mime_type.gperf"
+ {"m3u", "audio/x-mpegurl"},
+ {"",nullptr}, {"",nullptr},
+#line 69 "auto/extension_to_mime_type.gperf"
+ {"bdm", "application/vnd.syncml.dm+wbxml"},
+#line 40 "auto/extension_to_mime_type.gperf"
+ {"aifc", "audio/x-aiff"},
+ {"",nullptr},
+#line 41 "auto/extension_to_mime_type.gperf"
+ {"aiff", "audio/x-aiff"},
+ {"",nullptr},
+#line 282 "auto/extension_to_mime_type.gperf"
+ {"gam", "application/x-tads"},
+#line 708 "auto/extension_to_mime_type.gperf"
+ {"sdkm", "application/vnd.solent.sdkm+xml"},
+ {"",nullptr},
+#line 299 "auto/extension_to_mime_type.gperf"
+ {"gqs", "application/vnd.grafeq"},
+#line 650 "auto/extension_to_mime_type.gperf"
+ {"qam", "application/vnd.epson.quickanime"},
+#line 534 "auto/extension_to_mime_type.gperf"
+ {"nsc", "application/x-conference"},
+ {"",nullptr},
+#line 535 "auto/extension_to_mime_type.gperf"
+ {"nsf", "application/vnd.lotus-notes"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 294 "auto/extension_to_mime_type.gperf"
+ {"gmx", "application/vnd.gmx"},
+#line 553 "auto/extension_to_mime_type.gperf"
+ {"odt", "application/vnd.oasis.opendocument.text"},
+#line 1001 "auto/extension_to_mime_type.gperf"
+ {"z5", "application/x-zmachine"},
+#line 940 "auto/extension_to_mime_type.gperf"
+ {"x3dvz", "model/x3d+vrml"},
+ {"",nullptr}, {"",nullptr},
+#line 104 "auto/extension_to_mime_type.gperf"
+ {"ccxml", "application/ccxml+xml"},
+#line 883 "auto/extension_to_mime_type.gperf"
+ {"vis", "application/vnd.visionary"},
+#line 176 "auto/extension_to_mime_type.gperf"
+ {"dir", "application/x-director"},
+ {"",nullptr}, {"",nullptr},
+#line 935 "auto/extension_to_mime_type.gperf"
+ {"x32", "application/x-authorware-bin"},
+ {"",nullptr}, {"",nullptr},
+#line 68 "auto/extension_to_mime_type.gperf"
+ {"bdf", "application/x-font-bdf"},
+#line 44 "auto/extension_to_mime_type.gperf"
+ {"ami", "application/vnd.amiga.ami"},
+ {"",nullptr},
+#line 281 "auto/extension_to_mime_type.gperf"
+ {"gac", "application/vnd.groove-account"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 568 "auto/extension_to_mime_type.gperf"
+ {"osf", "application/vnd.yamaha.openscoreformat"},
+#line 547 "auto/extension_to_mime_type.gperf"
+ {"odft", "application/vnd.oasis.opendocument.formula-template"},
+#line 298 "auto/extension_to_mime_type.gperf"
+ {"gqf", "application/vnd.grafeq"},
+ {"",nullptr}, {"",nullptr},
+#line 597 "auto/extension_to_mime_type.gperf"
+ {"pct", "image/x-pict"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 123 "auto/extension_to_mime_type.gperf"
+ {"cii", "application/vnd.anser-web-certificate-issue-initiation"},
+ {"",nullptr},
+#line 218 "auto/extension_to_mime_type.gperf"
+ {"emf", "application/x-msmetafile"},
+#line 277 "auto/extension_to_mime_type.gperf"
+ {"fzs", "application/vnd.fuzzysheet"},
+#line 103 "auto/extension_to_mime_type.gperf"
+ {"cct", "application/x-director"},
+ {"",nullptr},
+#line 997 "auto/extension_to_mime_type.gperf"
+ {"z1", "application/x-zmachine"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 1008 "auto/extension_to_mime_type.gperf"
+ {"zirz", "application/vnd.zul"},
+#line 213 "auto/extension_to_mime_type.gperf"
+ {"edm", "application/vnd.novadigm.edm"},
+#line 1007 "auto/extension_to_mime_type.gperf"
+ {"zir", "application/vnd.zul"},
+#line 892 "auto/extension_to_mime_type.gperf"
+ {"vst", "application/vnd.visio"},
+ {"",nullptr},
+#line 707 "auto/extension_to_mime_type.gperf"
+ {"sdkd", "application/vnd.solent.sdkm+xml"},
+ {"",nullptr},
+#line 649 "auto/extension_to_mime_type.gperf"
+ {"pyv", "video/vnd.ms-playready.media.pyv"},
+ {"",nullptr},
+#line 214 "auto/extension_to_mime_type.gperf"
+ {"edx", "application/vnd.novadigm.edx"},
+ {"",nullptr}, {"",nullptr},
+#line 457 "auto/extension_to_mime_type.gperf"
+ {"midi", "audio/midi"},
+#line 341 "auto/extension_to_mime_type.gperf"
+ {"ics", "text/calendar"},
+#line 111 "auto/extension_to_mime_type.gperf"
+ {"cdmio", "application/cdmi-object"},
+#line 339 "auto/extension_to_mime_type.gperf"
+ {"icm", "application/vnd.iccprofile"},
+ {"",nullptr}, {"",nullptr},
+#line 788 "auto/extension_to_mime_type.gperf"
+ {"swf", "application/x-shockwave-flash"},
+#line 513 "auto/extension_to_mime_type.gperf"
+ {"mwf", "application/vnd.mfer"},
+ {"",nullptr}, {"",nullptr},
+#line 43 "auto/extension_to_mime_type.gperf"
+ {"ait", "application/vnd.dvb.ait"},
+#line 394 "auto/extension_to_mime_type.gperf"
+ {"kpxx", "application/vnd.ds-keypoint"},
+#line 426 "auto/extension_to_mime_type.gperf"
+ {"m3a", "audio/mpeg"},
+#line 163 "auto/extension_to_mime_type.gperf"
+ {"davmount", "application/davmount+xml"},
+#line 595 "auto/extension_to_mime_type.gperf"
+ {"pcl", "application/vnd.hp-pcl"},
+#line 756 "auto/extension_to_mime_type.gperf"
+ {"spot", "text/vnd.in3d.spot"},
+#line 66 "auto/extension_to_mime_type.gperf"
+ {"bat", "application/x-msdownload"},
+ {"",nullptr}, {"",nullptr},
+#line 246 "auto/extension_to_mime_type.gperf"
+ {"fcdt", "application/vnd.adobe.formscentral.fcdt"},
+#line 748 "auto/extension_to_mime_type.gperf"
+ {"smv", "video/x-smv"},
+#line 48 "auto/extension_to_mime_type.gperf"
+ {"apr", "application/vnd.lotus-approach"},
+#line 869 "auto/extension_to_mime_type.gperf"
+ {"uvvs", "video/vnd.dece.sd"},
+ {"",nullptr},
+#line 867 "auto/extension_to_mime_type.gperf"
+ {"uvvm", "video/vnd.dece.mobile"},
+#line 388 "auto/extension_to_mime_type.gperf"
+ {"kmz", "application/vnd.google-earth.kmz"},
+#line 596 "auto/extension_to_mime_type.gperf"
+ {"pclxl", "application/vnd.hp-pclxl"},
+#line 180 "auto/extension_to_mime_type.gperf"
+ {"djv", "image/vnd.djvu"},
+#line 854 "auto/extension_to_mime_type.gperf"
+ {"uvi", "image/vnd.dece.graphic"},
+#line 22 "auto/extension_to_mime_type.gperf"
+ {"7z", "application/x-7z-compressed"},
+#line 868 "auto/extension_to_mime_type.gperf"
+ {"uvvp", "video/vnd.dece.pd"},
+#line 337 "auto/extension_to_mime_type.gperf"
+ {"icc", "application/vnd.iccprofile"},
+#line 873 "auto/extension_to_mime_type.gperf"
+ {"uvvx", "application/vnd.dece.unspecified"},
+#line 994 "auto/extension_to_mime_type.gperf"
+ {"xz", "application/x-xz"},
+ {"",nullptr},
+#line 509 "auto/extension_to_mime_type.gperf"
+ {"mts", "model/vnd.mts"},
+ {"",nullptr},
+#line 205 "auto/extension_to_mime_type.gperf"
+ {"dwf", "model/vnd.dwf"},
+ {"",nullptr},
+#line 38 "auto/extension_to_mime_type.gperf"
+ {"ai", "application/postscript"},
+ {"",nullptr},
+#line 992 "auto/extension_to_mime_type.gperf"
+ {"xwd", "image/x-xwindowdump"},
+#line 653 "auto/extension_to_mime_type.gperf"
+ {"qps", "application/vnd.publishare-delta-tree"},
+#line 156 "auto/extension_to_mime_type.gperf"
+ {"cww", "application/prs.cww"},
+#line 898 "auto/extension_to_mime_type.gperf"
+ {"wav", "audio/x-wav"},
+ {"",nullptr}, {"",nullptr},
+#line 920 "auto/extension_to_mime_type.gperf"
+ {"wmv", "video/x-ms-wmv"},
+#line 297 "auto/extension_to_mime_type.gperf"
+ {"gpx", "application/gpx+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 224 "auto/extension_to_mime_type.gperf"
+ {"eps", "application/postscript"},
+ {"",nullptr},
+#line 863 "auto/extension_to_mime_type.gperf"
+ {"uvvf", "application/vnd.dece.data"},
+ {"",nullptr},
+#line 395 "auto/extension_to_mime_type.gperf"
+ {"ksp", "application/vnd.kde.kspread"},
+ {"",nullptr}, {"",nullptr},
+#line 565 "auto/extension_to_mime_type.gperf"
+ {"oprc", "application/vnd.palm"},
+#line 564 "auto/extension_to_mime_type.gperf"
+ {"opml", "text/x-opml"},
+ {"",nullptr}, {"",nullptr},
+#line 387 "auto/extension_to_mime_type.gperf"
+ {"kml", "application/vnd.google-earth.kml+xml"},
+#line 770 "auto/extension_to_mime_type.gperf"
+ {"stc", "application/vnd.sun.xml.calc.template"},
+#line 200 "auto/extension_to_mime_type.gperf"
+ {"dts", "audio/vnd.dts"},
+#line 772 "auto/extension_to_mime_type.gperf"
+ {"stf", "application/vnd.wt.stf"},
+#line 365 "auto/extension_to_mime_type.gperf"
+ {"ivu", "application/vnd.immervision-ivu"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 418 "auto/extension_to_mime_type.gperf"
+ {"lwp", "application/vnd.lotus-wordpro"},
+#line 61 "auto/extension_to_mime_type.gperf"
+ {"avi", "video/x-msvideo"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 802 "auto/extension_to_mime_type.gperf"
+ {"tcl", "application/x-tcl"},
+#line 831 "auto/extension_to_mime_type.gperf"
+ {"twds", "application/vnd.simtech-mindmapper"},
+ {"",nullptr},
+#line 272 "auto/extension_to_mime_type.gperf"
+ {"ftc", "application/vnd.fluxtime.clip"},
+#line 688 "auto/extension_to_mime_type.gperf"
+ {"rq", "application/sparql-query"},
+#line 480 "auto/extension_to_mime_type.gperf"
+ {"mp3", "audio/mpeg"},
+ {"",nullptr},
+#line 862 "auto/extension_to_mime_type.gperf"
+ {"uvvd", "application/vnd.dece.data"},
+ {"",nullptr}, {"",nullptr},
+#line 221 "auto/extension_to_mime_type.gperf"
+ {"emz", "application/x-msmetafile"},
+#line 777 "auto/extension_to_mime_type.gperf"
+ {"stw", "application/vnd.sun.xml.writer.template"},
+#line 566 "auto/extension_to_mime_type.gperf"
+ {"opus", "audio/ogg"},
+ {"",nullptr}, {"",nullptr},
+#line 481 "auto/extension_to_mime_type.gperf"
+ {"mp4", "video/mp4"},
+#line 28 "auto/extension_to_mime_type.gperf"
+ {"ac", "application/pkix-attr-cert"},
+ {"",nullptr},
+#line 769 "auto/extension_to_mime_type.gperf"
+ {"st", "application/vnd.sailingtracker.track"},
+#line 771 "auto/extension_to_mime_type.gperf"
+ {"std", "application/vnd.sun.xml.draw.template"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 593 "auto/extension_to_mime_type.gperf"
+ {"pcap", "application/vnd.tcpdump.pcap"},
+#line 830 "auto/extension_to_mime_type.gperf"
+ {"twd", "application/vnd.simtech-mindmapper"},
+#line 226 "auto/extension_to_mime_type.gperf"
+ {"es", "application/ecmascript"},
+#line 527 "auto/extension_to_mime_type.gperf"
+ {"nitf", "application/vnd.nitf"},
+#line 859 "auto/extension_to_mime_type.gperf"
+ {"uvu", "video/vnd.uvvu.mp4"},
+ {"",nullptr},
+#line 779 "auto/extension_to_mime_type.gperf"
+ {"sus", "application/vnd.sus-calendar"},
+#line 510 "auto/extension_to_mime_type.gperf"
+ {"mus", "application/vnd.musician"},
+ {"",nullptr},
+#line 293 "auto/extension_to_mime_type.gperf"
+ {"gml", "application/gml+xml"},
+#line 402 "auto/extension_to_mime_type.gperf"
+ {"latex", "application/x-latex"},
+ {"",nullptr},
+#line 29 "auto/extension_to_mime_type.gperf"
+ {"acc", "application/vnd.americandynamics.acc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 436 "auto/extension_to_mime_type.gperf"
+ {"man", "text/troff"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 780 "auto/extension_to_mime_type.gperf"
+ {"susp", "application/vnd.sus-calendar"},
+#line 181 "auto/extension_to_mime_type.gperf"
+ {"djvu", "image/vnd.djvu"},
+#line 393 "auto/extension_to_mime_type.gperf"
+ {"kpt", "application/vnd.kde.kpresenter"},
+#line 219 "auto/extension_to_mime_type.gperf"
+ {"eml", "message/rfc822"},
+#line 280 "auto/extension_to_mime_type.gperf"
+ {"g3w", "application/vnd.geospace"},
+#line 199 "auto/extension_to_mime_type.gperf"
+ {"dtd", "application/xml-dtd"},
+#line 305 "auto/extension_to_mime_type.gperf"
+ {"gsf", "application/x-font-ghostscript"},
+ {"",nullptr}, {"",nullptr},
+#line 827 "auto/extension_to_mime_type.gperf"
+ {"ttc", "font/collection"},
+ {"",nullptr},
+#line 828 "auto/extension_to_mime_type.gperf"
+ {"ttf", "font/ttf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 938 "auto/extension_to_mime_type.gperf"
+ {"x3dbz", "model/x3d+binary"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 229 "auto/extension_to_mime_type.gperf"
+ {"esf", "application/vnd.epson.esf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 549 "auto/extension_to_mime_type.gperf"
+ {"odi", "application/vnd.oasis.opendocument.image"},
+ {"",nullptr}, {"",nullptr},
+#line 285 "auto/extension_to_mime_type.gperf"
+ {"gdl", "model/vnd.gdl"},
+ {"",nullptr}, {"",nullptr},
+#line 202 "auto/extension_to_mime_type.gperf"
+ {"dump", "application/octet-stream"},
+#line 416 "auto/extension_to_mime_type.gperf"
+ {"ltf", "application/vnd.frogans.ltf"},
+#line 870 "auto/extension_to_mime_type.gperf"
+ {"uvvt", "application/vnd.dece.ttml+xml"},
+#line 835 "auto/extension_to_mime_type.gperf"
+ {"u32", "application/x-authorware-bin"},
+#line 881 "auto/extension_to_mime_type.gperf"
+ {"vcs", "text/x-vcalendar"},
+#line 165 "auto/extension_to_mime_type.gperf"
+ {"dcr", "application/x-director"},
+ {"",nullptr}, {"",nullptr},
+#line 874 "auto/extension_to_mime_type.gperf"
+ {"uvvz", "application/vnd.dece.zip"},
+ {"",nullptr}, {"",nullptr},
+#line 801 "auto/extension_to_mime_type.gperf"
+ {"tcap", "application/vnd.3gpp2.tcap"},
+ {"",nullptr}, {"",nullptr},
+#line 882 "auto/extension_to_mime_type.gperf"
+ {"vcx", "application/vnd.vcx"},
+#line 112 "auto/extension_to_mime_type.gperf"
+ {"cdmiq", "application/cdmi-queue"},
+ {"",nullptr},
+#line 643 "auto/extension_to_mime_type.gperf"
+ {"pskcxml", "application/pskc+xml"},
+#line 42 "auto/extension_to_mime_type.gperf"
+ {"air", "application/vnd.adobe.air-application-installer-package+zip"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 383 "auto/extension_to_mime_type.gperf"
+ {"kar", "audio/midi"},
+ {"",nullptr}, {"",nullptr},
+#line 520 "auto/extension_to_mime_type.gperf"
+ {"n3", "text/n3"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 879 "auto/extension_to_mime_type.gperf"
+ {"vcf", "text/x-vcard"},
+#line 292 "auto/extension_to_mime_type.gperf"
+ {"gim", "application/vnd.groove-identity-message"},
+#line 693 "auto/extension_to_mime_type.gperf"
+ {"rtx", "text/richtext"},
+#line 786 "auto/extension_to_mime_type.gperf"
+ {"svgz", "image/svg+xml"},
+#line 849 "auto/extension_to_mime_type.gperf"
+ {"uva", "audio/vnd.dece.audio"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 153 "auto/extension_to_mime_type.gperf"
+ {"csv", "text/csv"},
+ {"",nullptr}, {"",nullptr},
+#line 939 "auto/extension_to_mime_type.gperf"
+ {"x3dv", "model/x3d+vrml"},
+ {"",nullptr}, {"",nullptr},
+#line 283 "auto/extension_to_mime_type.gperf"
+ {"gbr", "application/rpki-ghostbusters"},
+#line 479 "auto/extension_to_mime_type.gperf"
+ {"mp2a", "audio/mpeg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 538 "auto/extension_to_mime_type.gperf"
+ {"oa2", "application/vnd.fujitsu.oasys2"},
+ {"",nullptr},
+#line 363 "auto/extension_to_mime_type.gperf"
+ {"itp", "application/vnd.shana.informed.formtemplate"},
+#line 775 "auto/extension_to_mime_type.gperf"
+ {"stl", "application/vnd.ms-pki.stl"},
+#line 846 "auto/extension_to_mime_type.gperf"
+ {"ustar", "application/x-ustar"},
+#line 692 "auto/extension_to_mime_type.gperf"
+ {"rtf", "application/rtf"},
+ {"",nullptr},
+#line 64 "auto/extension_to_mime_type.gperf"
+ {"azs", "application/vnd.airzip.filesecure.azs"},
+#line 523 "auto/extension_to_mime_type.gperf"
+ {"nc", "application/x-netcdf"},
+#line 524 "auto/extension_to_mime_type.gperf"
+ {"ncx", "application/x-dtbncx+xml"},
+ {"",nullptr},
+#line 878 "auto/extension_to_mime_type.gperf"
+ {"vcd", "application/x-cdlink"},
+#line 291 "auto/extension_to_mime_type.gperf"
+ {"gif", "image/gif"},
+ {"",nullptr},
+#line 75 "auto/extension_to_mime_type.gperf"
+ {"bmi", "application/vnd.bmi"},
+ {"",nullptr},
+#line 558 "auto/extension_to_mime_type.gperf"
+ {"omdoc", "application/omdoc+xml"},
+#line 493 "auto/extension_to_mime_type.gperf"
+ {"mpn", "application/vnd.mophun.application"},
+#line 47 "auto/extension_to_mime_type.gperf"
+ {"application", "application/x-ms-application"},
+ {"",nullptr},
+#line 85 "auto/extension_to_mime_type.gperf"
+ {"c11amc", "application/vnd.cluetrust.cartomobile-config"},
+#line 521 "auto/extension_to_mime_type.gperf"
+ {"nb", "application/mathematica"},
+ {"",nullptr},
+#line 423 "auto/extension_to_mime_type.gperf"
+ {"m21", "application/mp21"},
+#line 798 "auto/extension_to_mime_type.gperf"
+ {"taglet", "application/vnd.mynfc"},
+ {"",nullptr}, {"",nullptr},
+#line 799 "auto/extension_to_mime_type.gperf"
+ {"tao", "application/vnd.tao.intent-module-archive"},
+ {"",nullptr}, {"",nullptr},
+#line 818 "auto/extension_to_mime_type.gperf"
+ {"tmo", "application/vnd.tmobile-livetv"},
+ {"",nullptr},
+#line 329 "auto/extension_to_mime_type.gperf"
+ {"hqx", "application/mac-binhex40"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 62 "auto/extension_to_mime_type.gperf"
+ {"aw", "application/applixware"},
+#line 63 "auto/extension_to_mime_type.gperf"
+ {"azf", "application/vnd.airzip.filesecure.azf"},
+ {"",nullptr},
+#line 826 "auto/extension_to_mime_type.gperf"
+ {"tsv", "text/tab-separated-values"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 216 "auto/extension_to_mime_type.gperf"
+ {"ei6", "application/vnd.pg.osasli"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 65 "auto/extension_to_mime_type.gperf"
+ {"azw", "application/vnd.amazon.ebook"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 644 "auto/extension_to_mime_type.gperf"
+ {"ptid", "application/vnd.pvi.ptid1"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 829 "auto/extension_to_mime_type.gperf"
+ {"ttl", "text/turtle"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 703 "auto/extension_to_mime_type.gperf"
+ {"scurl", "text/vnd.curl.scurl"},
+#line 444 "auto/extension_to_mime_type.gperf"
+ {"mcurl", "text/vnd.curl.mcurl"},
+#line 392 "auto/extension_to_mime_type.gperf"
+ {"kpr", "application/vnd.kde.kpresenter"},
+ {"",nullptr},
+#line 598 "auto/extension_to_mime_type.gperf"
+ {"pcurl", "application/vnd.curl.pcurl"},
+#line 618 "auto/extension_to_mime_type.gperf"
+ {"pls", "application/pls+xml"},
+#line 966 "auto/extension_to_mime_type.gperf"
+ {"xls", "application/vnd.ms-excel"},
+#line 989 "auto/extension_to_mime_type.gperf"
+ {"xul", "application/vnd.mozilla.xul+xml"},
+#line 965 "auto/extension_to_mime_type.gperf"
+ {"xlm", "application/vnd.ms-excel"},
+#line 482 "auto/extension_to_mime_type.gperf"
+ {"mp4a", "audio/mp4"},
+#line 467 "auto/extension_to_mime_type.gperf"
+ {"mlp", "application/vnd.dolby.mlp"},
+ {"",nullptr},
+#line 59 "auto/extension_to_mime_type.gperf"
+ {"atx", "application/vnd.antix.game-component"},
+ {"",nullptr},
+#line 968 "auto/extension_to_mime_type.gperf"
+ {"xlsm", "application/vnd.ms-excel.sheet.macroenabled.12"},
+ {"",nullptr}, {"",nullptr},
+#line 319 "auto/extension_to_mime_type.gperf"
+ {"hdf", "application/x-hdf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 969 "auto/extension_to_mime_type.gperf"
+ {"xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},
+ {"",nullptr},
+#line 132 "auto/extension_to_mime_type.gperf"
+ {"clp", "application/x-msclip"},
+#line 162 "auto/extension_to_mime_type.gperf"
+ {"dataless", "application/vnd.fdsn.seed"},
+ {"",nullptr},
+#line 263 "auto/extension_to_mime_type.gperf"
+ {"flx", "text/vnd.fmi.flexstor"},
+#line 789 "auto/extension_to_mime_type.gperf"
+ {"swi", "application/vnd.aristanetworks.swi"},
+ {"",nullptr},
+#line 543 "auto/extension_to_mime_type.gperf"
+ {"oda", "application/oda"},
+#line 166 "auto/extension_to_mime_type.gperf"
+ {"dcurl", "text/vnd.curl.dcurl"},
+#line 55 "auto/extension_to_mime_type.gperf"
+ {"atc", "application/vnd.acucorp"},
+ {"",nullptr}, {"",nullptr},
+#line 616 "auto/extension_to_mime_type.gperf"
+ {"plc", "application/vnd.mobius.plc"},
+#line 963 "auto/extension_to_mime_type.gperf"
+ {"xlc", "application/vnd.ms-excel"},
+#line 617 "auto/extension_to_mime_type.gperf"
+ {"plf", "application/vnd.pocketlearn"},
+#line 964 "auto/extension_to_mime_type.gperf"
+ {"xlf", "application/x-xliff+xml"},
+ {"",nullptr},
+#line 741 "auto/extension_to_mime_type.gperf"
+ {"sldm", "application/vnd.ms-powerpoint.slide.macroenabled.12"},
+#line 154 "auto/extension_to_mime_type.gperf"
+ {"cu", "application/cu-seeme"},
+#line 764 "auto/extension_to_mime_type.gperf"
+ {"srx", "application/sparql-results+xml"},
+ {"",nullptr},
+#line 465 "auto/extension_to_mime_type.gperf"
+ {"mks", "video/x-matroska"},
+#line 738 "auto/extension_to_mime_type.gperf"
+ {"skm", "application/vnd.koan"},
+#line 776 "auto/extension_to_mime_type.gperf"
+ {"str", "application/vnd.pg.format"},
+ {"",nullptr},
+#line 742 "auto/extension_to_mime_type.gperf"
+ {"sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"},
+ {"",nullptr},
+#line 328 "auto/extension_to_mime_type.gperf"
+ {"hps", "application/vnd.hp-hps"},
+#line 739 "auto/extension_to_mime_type.gperf"
+ {"skp", "application/vnd.koan"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 86 "auto/extension_to_mime_type.gperf"
+ {"c11amz", "application/vnd.cluetrust.cartomobile-config-pkg"},
+ {"",nullptr}, {"",nullptr},
+#line 860 "auto/extension_to_mime_type.gperf"
+ {"uvv", "video/vnd.dece.video"},
+#line 335 "auto/extension_to_mime_type.gperf"
+ {"hvs", "application/vnd.yamaha.hv-script"},
+#line 973 "auto/extension_to_mime_type.gperf"
+ {"xlw", "application/vnd.ms-excel"},
+ {"",nullptr},
+#line 761 "auto/extension_to_mime_type.gperf"
+ {"src", "application/x-wais-source"},
+#line 498 "auto/extension_to_mime_type.gperf"
+ {"mrc", "application/marc"},
+#line 499 "auto/extension_to_mime_type.gperf"
+ {"mrcx", "application/marcxml+xml"},
+#line 582 "auto/extension_to_mime_type.gperf"
+ {"p12", "application/x-pkcs12"},
+#line 636 "auto/extension_to_mime_type.gperf"
+ {"prc", "application/x-mobipocket-ebook"},
+#line 334 "auto/extension_to_mime_type.gperf"
+ {"hvp", "application/vnd.yamaha.hv-voice"},
+#line 638 "auto/extension_to_mime_type.gperf"
+ {"prf", "application/pics-rules"},
+#line 46 "auto/extension_to_mime_type.gperf"
+ {"appcache", "text/cache-manifest"},
+#line 911 "auto/extension_to_mime_type.gperf"
+ {"wks", "application/vnd.ms-works"},
+#line 262 "auto/extension_to_mime_type.gperf"
+ {"flw", "application/vnd.kde.kivio"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 497 "auto/extension_to_mime_type.gperf"
+ {"mqy", "application/vnd.mobius.mqy"},
+#line 866 "auto/extension_to_mime_type.gperf"
+ {"uvvi", "image/vnd.dece.graphic"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 971 "auto/extension_to_mime_type.gperf"
+ {"xltm", "application/vnd.ms-excel.template.macroenabled.12"},
+ {"",nullptr},
+#line 309 "auto/extension_to_mime_type.gperf"
+ {"gv", "text/vnd.graphviz"},
+ {"",nullptr}, {"",nullptr},
+#line 279 "auto/extension_to_mime_type.gperf"
+ {"g3", "image/g3fax"},
+#line 715 "auto/extension_to_mime_type.gperf"
+ {"semf", "application/vnd.semf"},
+#line 773 "auto/extension_to_mime_type.gperf"
+ {"sti", "application/vnd.sun.xml.impress.template"},
+#line 972 "auto/extension_to_mime_type.gperf"
+ {"xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"},
+ {"",nullptr},
+#line 539 "auto/extension_to_mime_type.gperf"
+ {"oa3", "application/vnd.fujitsu.oasys3"},
+ {"",nullptr},
+#line 583 "auto/extension_to_mime_type.gperf"
+ {"p7b", "application/x-pkcs7-certificates"},
+#line 440 "auto/extension_to_mime_type.gperf"
+ {"mbk", "application/vnd.mobius.mbk"},
+ {"",nullptr}, {"",nullptr},
+#line 32 "auto/extension_to_mime_type.gperf"
+ {"acutc", "application/vnd.acucorp"},
+#line 847 "auto/extension_to_mime_type.gperf"
+ {"utz", "application/vnd.uiq.theme"},
+ {"",nullptr}, {"",nullptr},
+#line 824 "auto/extension_to_mime_type.gperf"
+ {"trm", "application/x-msterminal"},
+ {"",nullptr},
+#line 511 "auto/extension_to_mime_type.gperf"
+ {"musicxml", "application/vnd.recordare.musicxml+xml"},
+#line 273 "auto/extension_to_mime_type.gperf"
+ {"fti", "application/vnd.anser-web-funds-transfer-initiation"},
+#line 737 "auto/extension_to_mime_type.gperf"
+ {"skd", "application/vnd.koan"},
+ {"",nullptr},
+#line 781 "auto/extension_to_mime_type.gperf"
+ {"sv4cpio", "application/x-sv4cpio"},
+ {"",nullptr},
+#line 144 "auto/extension_to_mime_type.gperf"
+ {"crd", "application/x-mscardfile"},
+ {"",nullptr},
+#line 170 "auto/extension_to_mime_type.gperf"
+ {"def", "text/plain"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 714 "auto/extension_to_mime_type.gperf"
+ {"semd", "application/vnd.semd"},
+ {"",nullptr}, {"",nullptr},
+#line 317 "auto/extension_to_mime_type.gperf"
+ {"hal", "application/vnd.hal+xml"},
+#line 333 "auto/extension_to_mime_type.gperf"
+ {"hvd", "application/vnd.yamaha.hv-dic"},
+#line 451 "auto/extension_to_mime_type.gperf"
+ {"mets", "application/mets+xml"},
+#line 415 "auto/extension_to_mime_type.gperf"
+ {"lrm", "application/vnd.ms-lrm"},
+#line 164 "auto/extension_to_mime_type.gperf"
+ {"dbk", "application/docbook+xml"},
+#line 806 "auto/extension_to_mime_type.gperf"
+ {"tex", "application/x-tex"},
+ {"",nullptr},
+#line 115 "auto/extension_to_mime_type.gperf"
+ {"cdy", "application/vnd.cinderella"},
+ {"",nullptr}, {"",nullptr},
+#line 92 "auto/extension_to_mime_type.gperf"
+ {"cab", "application/vnd.ms-cab-compressed"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 743 "auto/extension_to_mime_type.gperf"
+ {"slt", "application/vnd.epson.salt"},
+ {"",nullptr},
+#line 405 "auto/extension_to_mime_type.gperf"
+ {"les", "application/vnd.hhe.lesson-player"},
+ {"",nullptr}, {"",nullptr},
+#line 970 "auto/extension_to_mime_type.gperf"
+ {"xlt", "application/vnd.ms-excel"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 576 "auto/extension_to_mime_type.gperf"
+ {"ots", "application/vnd.oasis.opendocument.spreadsheet-template"},
+#line 414 "auto/extension_to_mime_type.gperf"
+ {"lrf", "application/octet-stream"},
+#line 871 "auto/extension_to_mime_type.gperf"
+ {"uvvu", "video/vnd.uvvu.mp4"},
+ {"",nullptr}, {"",nullptr},
+#line 484 "auto/extension_to_mime_type.gperf"
+ {"mp4v", "video/mp4"},
+#line 536 "auto/extension_to_mime_type.gperf"
+ {"ntf", "application/vnd.nitf"},
+#line 445 "auto/extension_to_mime_type.gperf"
+ {"mdb", "application/x-msaccess"},
+#line 575 "auto/extension_to_mime_type.gperf"
+ {"otp", "application/vnd.oasis.opendocument.presentation-template"},
+ {"",nullptr},
+#line 600 "auto/extension_to_mime_type.gperf"
+ {"pdb", "application/vnd.palm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 762 "auto/extension_to_mime_type.gperf"
+ {"srt", "application/x-subrip"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 155 "auto/extension_to_mime_type.gperf"
+ {"curl", "text/vnd.curl"},
+ {"",nullptr}, {"",nullptr},
+#line 220 "auto/extension_to_mime_type.gperf"
+ {"emma", "application/emma+xml"},
+ {"",nullptr}, {"",nullptr},
+#line 740 "auto/extension_to_mime_type.gperf"
+ {"skt", "application/vnd.koan"},
+#line 496 "auto/extension_to_mime_type.gperf"
+ {"mpy", "application/vnd.ibm.minipay"},
+#line 675 "auto/extension_to_mime_type.gperf"
+ {"rlc", "image/vnd.fujixerox.edmics-rlc"},
+ {"",nullptr},
+#line 146 "auto/extension_to_mime_type.gperf"
+ {"crt", "application/x-x509-ca-cert"},
+#line 570 "auto/extension_to_mime_type.gperf"
+ {"otc", "application/vnd.oasis.opendocument.chart-template"},
+#line 141 "auto/extension_to_mime_type.gperf"
+ {"cpio", "application/x-cpio"},
+#line 571 "auto/extension_to_mime_type.gperf"
+ {"otf", "font/otf"},
+#line 904 "auto/extension_to_mime_type.gperf"
+ {"wdb", "application/vnd.ms-works"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 787 "auto/extension_to_mime_type.gperf"
+ {"swa", "application/x-director"},
+ {"",nullptr},
+#line 669 "auto/extension_to_mime_type.gperf"
+ {"res", "application/x-dtbresource+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 998 "auto/extension_to_mime_type.gperf"
+ {"z2", "application/x-zmachine"},
+#line 438 "auto/extension_to_mime_type.gperf"
+ {"mathml", "application/mathml+xml"},
+ {"",nullptr},
+#line 360 "auto/extension_to_mime_type.gperf"
+ {"irm", "application/vnd.ibm.rights-management"},
+#line 668 "auto/extension_to_mime_type.gperf"
+ {"rep", "application/vnd.businessobjects"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 361 "auto/extension_to_mime_type.gperf"
+ {"irp", "application/vnd.irepository.package+xml"},
+#line 182 "auto/extension_to_mime_type.gperf"
+ {"dll", "application/x-msdownload"},
+#line 676 "auto/extension_to_mime_type.gperf"
+ {"rld", "application/resource-lists-diff+xml"},
+#line 434 "auto/extension_to_mime_type.gperf"
+ {"mag", "application/vnd.ecowin.chart"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 31 "auto/extension_to_mime_type.gperf"
+ {"acu", "application/vnd.acucobol"},
+ {"",nullptr}, {"",nullptr},
+#line 839 "auto/extension_to_mime_type.gperf"
+ {"ulx", "application/x-glulx"},
+#line 362 "auto/extension_to_mime_type.gperf"
+ {"iso", "application/x-iso9660-image"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 145 "auto/extension_to_mime_type.gperf"
+ {"crl", "application/pkix-crl"},
+ {"",nullptr}, {"",nullptr},
+#line 420 "auto/extension_to_mime_type.gperf"
+ {"m13", "application/x-msmediaview"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 674 "auto/extension_to_mime_type.gperf"
+ {"rl", "application/resource-lists+xml"},
+#line 512 "auto/extension_to_mime_type.gperf"
+ {"mvb", "application/x-msmediaview"},
+#line 848 "auto/extension_to_mime_type.gperf"
+ {"uu", "text/x-uuencode"},
+ {"",nullptr},
+#line 646 "auto/extension_to_mime_type.gperf"
+ {"pvb", "application/vnd.3gpp.pic-bw-var"},
+#line 930 "auto/extension_to_mime_type.gperf"
+ {"wrl", "model/vrml"},
+#line 421 "auto/extension_to_mime_type.gperf"
+ {"m14", "application/x-msmediaview"},
+#line 732 "auto/extension_to_mime_type.gperf"
+ {"silo", "model/mesh"},
+ {"",nullptr},
+#line 822 "auto/extension_to_mime_type.gperf"
+ {"tr", "text/troff"},
+#line 861 "auto/extension_to_mime_type.gperf"
+ {"uvva", "audio/vnd.dece.audio"},
+ {"",nullptr}, {"",nullptr},
+#line 183 "auto/extension_to_mime_type.gperf"
+ {"dmg", "application/x-apple-diskimage"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 342 "auto/extension_to_mime_type.gperf"
+ {"ief", "image/ief"},
+#line 105 "auto/extension_to_mime_type.gperf"
+ {"cdbcmsg", "application/vnd.contact.cmsg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 809 "auto/extension_to_mime_type.gperf"
+ {"text", "text/plain"},
+#line 82 "auto/extension_to_mime_type.gperf"
+ {"bz", "application/x-bzip"},
+ {"",nullptr},
+#line 203 "auto/extension_to_mime_type.gperf"
+ {"dvb", "video/vnd.dvb.file"},
+ {"",nullptr},
+#line 490 "auto/extension_to_mime_type.gperf"
+ {"mpga", "audio/mpeg"},
+#line 962 "auto/extension_to_mime_type.gperf"
+ {"xlam", "application/vnd.ms-excel.addin.macroenabled.12"},
+ {"",nullptr}, {"",nullptr},
+#line 399 "auto/extension_to_mime_type.gperf"
+ {"kwd", "application/vnd.kde.kword"},
+#line 159 "auto/extension_to_mime_type.gperf"
+ {"dae", "model/vnd.collada+xml"},
+ {"",nullptr},
+#line 422 "auto/extension_to_mime_type.gperf"
+ {"m1v", "video/mpeg"},
+ {"",nullptr}, {"",nullptr},
+#line 126 "auto/extension_to_mime_type.gperf"
+ {"class", "application/java-vm"},
+ {"",nullptr},
+#line 397 "auto/extension_to_mime_type.gperf"
+ {"ktx", "image/ktx"},
+#line 60 "auto/extension_to_mime_type.gperf"
+ {"au", "audio/basic"},
+#line 318 "auto/extension_to_mime_type.gperf"
+ {"hbci", "application/vnd.hbci"},
+ {"",nullptr},
+#line 232 "auto/extension_to_mime_type.gperf"
+ {"eva", "application/x-eva"},
+ {"",nullptr}, {"",nullptr},
+#line 621 "auto/extension_to_mime_type.gperf"
+ {"pnm", "image/x-portable-anymap"},
+#line 640 "auto/extension_to_mime_type.gperf"
+ {"psb", "application/vnd.3gpp.pic-bw-small"},
+#line 577 "auto/extension_to_mime_type.gperf"
+ {"ott", "application/vnd.oasis.opendocument.text-template"},
+#line 327 "auto/extension_to_mime_type.gperf"
+ {"hpid", "application/vnd.hp-hpid"},
+#line 977 "auto/extension_to_mime_type.gperf"
+ {"xop", "application/xop+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 139 "auto/extension_to_mime_type.gperf"
+ {"com", "application/x-msdownload"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 937 "auto/extension_to_mime_type.gperf"
+ {"x3db", "model/x3d+binary"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 53 "auto/extension_to_mime_type.gperf"
+ {"aso", "application/vnd.accpac.simply.aso"},
+ {"",nullptr},
+#line 258 "auto/extension_to_mime_type.gperf"
+ {"flac", "audio/x-flac"},
+#line 404 "auto/extension_to_mime_type.gperf"
+ {"lbe", "application/vnd.llamagraphics.life-balance.exchange+xml"},
+ {"",nullptr},
+#line 34 "auto/extension_to_mime_type.gperf"
+ {"aep", "application/vnd.audiograph"},
+#line 508 "auto/extension_to_mime_type.gperf"
+ {"msty", "application/vnd.muvee.style"},
+#line 751 "auto/extension_to_mime_type.gperf"
+ {"snf", "application/x-font-snf"},
+ {"",nullptr},
+#line 877 "auto/extension_to_mime_type.gperf"
+ {"vcard", "text/vcard"},
+#line 474 "auto/extension_to_mime_type.gperf"
+ {"mods", "application/mods+xml"},
+#line 49 "auto/extension_to_mime_type.gperf"
+ {"arc", "application/x-freearc"},
+ {"",nullptr}, {"",nullptr},
+#line 307 "auto/extension_to_mime_type.gperf"
+ {"gtm", "application/vnd.groove-tool-message"},
+#line 884 "auto/extension_to_mime_type.gperf"
+ {"viv", "video/vnd.vivo"},
+ {"",nullptr},
+#line 488 "auto/extension_to_mime_type.gperf"
+ {"mpg", "video/mpeg"},
+#line 655 "auto/extension_to_mime_type.gperf"
+ {"qwd", "application/vnd.quark.quarkxpress"},
+ {"",nullptr},
+#line 237 "auto/extension_to_mime_type.gperf"
+ {"ez", "application/andrew-inset"},
+#line 266 "auto/extension_to_mime_type.gperf"
+ {"fnc", "application/vnd.frogans.fnc"},
+ {"",nullptr}, {"",nullptr},
+#line 758 "auto/extension_to_mime_type.gperf"
+ {"spq", "application/scvp-vp-request"},
+#line 785 "auto/extension_to_mime_type.gperf"
+ {"svg", "image/svg+xml"},
+#line 188 "auto/extension_to_mime_type.gperf"
+ {"docm", "application/vnd.ms-word.document.macroenabled.12"},
+#line 228 "auto/extension_to_mime_type.gperf"
+ {"esa", "application/vnd.osgi.subsystem"},
+ {"",nullptr}, {"",nullptr},
+#line 435 "auto/extension_to_mime_type.gperf"
+ {"maker", "application/vnd.framemaker"},
+ {"",nullptr},
+#line 845 "auto/extension_to_mime_type.gperf"
+ {"urls", "text/uri-list"},
+#line 187 "auto/extension_to_mime_type.gperf"
+ {"doc", "application/msword"},
+#line 189 "auto/extension_to_mime_type.gperf"
+ {"docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"},
+ {"",nullptr},
+#line 231 "auto/extension_to_mime_type.gperf"
+ {"etx", "text/x-setext"},
+#line 750 "auto/extension_to_mime_type.gperf"
+ {"snd", "audio/basic"},
+#line 400 "auto/extension_to_mime_type.gperf"
+ {"kwt", "application/vnd.kde.kword"},
+ {"",nullptr}, {"",nullptr},
+#line 716 "auto/extension_to_mime_type.gperf"
+ {"ser", "application/java-serialized-object"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 486 "auto/extension_to_mime_type.gperf"
+ {"mpe", "video/mpeg"},
+#line 954 "auto/extension_to_mime_type.gperf"
+ {"xer", "application/patch-ops-error+xml"},
+#line 194 "auto/extension_to_mime_type.gperf"
+ {"dpg", "application/vnd.dpgraph"},
+ {"",nullptr},
+#line 138 "auto/extension_to_mime_type.gperf"
+ {"cod", "application/vnd.rim.cod"},
+ {"",nullptr},
+#line 624 "auto/extension_to_mime_type.gperf"
+ {"potm", "application/vnd.ms-powerpoint.template.macroenabled.12"},
+#line 259 "auto/extension_to_mime_type.gperf"
+ {"fli", "video/x-fli"},
+#line 923 "auto/extension_to_mime_type.gperf"
+ {"woff", "font/woff"},
+ {"",nullptr},
+#line 932 "auto/extension_to_mime_type.gperf"
+ {"wspolicy", "application/wspolicy+xml"},
+#line 116 "auto/extension_to_mime_type.gperf"
+ {"cer", "application/pkix-cert"},
+ {"",nullptr},
+#line 386 "auto/extension_to_mime_type.gperf"
+ {"kia", "application/vnd.kidspiration"},
+#line 625 "auto/extension_to_mime_type.gperf"
+ {"potx", "application/vnd.openxmlformats-officedocument.presentationml.template"},
+ {"",nullptr},
+#line 90 "auto/extension_to_mime_type.gperf"
+ {"c4p", "application/vnd.clonk.c4group"},
+ {"",nullptr}, {"",nullptr},
+#line 23 "auto/extension_to_mime_type.gperf"
+ {"aab", "application/x-authorware-bin"},
+ {"",nullptr},
+#line 308 "auto/extension_to_mime_type.gperf"
+ {"gtw", "model/vnd.gtw"},
+#line 367 "auto/extension_to_mime_type.gperf"
+ {"jam", "application/vnd.jam"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 172 "auto/extension_to_mime_type.gperf"
+ {"der", "application/x-x509-ca-cert"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 489 "auto/extension_to_mime_type.gperf"
+ {"mpg4", "video/mp4"},
+#line 654 "auto/extension_to_mime_type.gperf"
+ {"qt", "video/quicktime"},
+#line 191 "auto/extension_to_mime_type.gperf"
+ {"dotm", "application/vnd.ms-word.template.macroenabled.12"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 613 "auto/extension_to_mime_type.gperf"
+ {"pki", "application/pkixcmp"},
+ {"",nullptr},
+#line 407 "auto/extension_to_mime_type.gperf"
+ {"link66", "application/vnd.route66.link66+xml"},
+#line 88 "auto/extension_to_mime_type.gperf"
+ {"c4f", "application/vnd.clonk.c4group"},
+#line 192 "auto/extension_to_mime_type.gperf"
+ {"dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"},
+#line 872 "auto/extension_to_mime_type.gperf"
+ {"uvvv", "video/vnd.dece.video"},
+ {"",nullptr},
+#line 359 "auto/extension_to_mime_type.gperf"
+ {"ipk", "application/vnd.shana.informed.package"},
+#line 656 "auto/extension_to_mime_type.gperf"
+ {"qwt", "application/vnd.quark.quarkxpress"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 929 "auto/extension_to_mime_type.gperf"
+ {"wri", "application/x-mswrite"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 766 "auto/extension_to_mime_type.gperf"
+ {"sse", "application/vnd.kodak-descriptor"},
+ {"",nullptr},
+#line 398 "auto/extension_to_mime_type.gperf"
+ {"ktz", "application/vnd.kahootz"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 56 "auto/extension_to_mime_type.gperf"
+ {"atom", "application/atom+xml"},
+#line 623 "auto/extension_to_mime_type.gperf"
+ {"pot", "application/vnd.ms-powerpoint"},
+ {"",nullptr},
+#line 844 "auto/extension_to_mime_type.gperf"
+ {"uris", "text/uri-list"},
+#line 463 "auto/extension_to_mime_type.gperf"
+ {"mk3d", "video/x-matroska"},
+ {"",nullptr},
+#line 87 "auto/extension_to_mime_type.gperf"
+ {"c4d", "application/vnd.clonk.c4group"},
+ {"",nullptr},
+#line 424 "auto/extension_to_mime_type.gperf"
+ {"m2a", "audio/mpeg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 366 "auto/extension_to_mime_type.gperf"
+ {"jad", "text/vnd.sun.j2me.app-descriptor"},
+ {"",nullptr},
+#line 651 "auto/extension_to_mime_type.gperf"
+ {"qbo", "application/vnd.intu.qbo"},
+ {"",nullptr},
+#line 227 "auto/extension_to_mime_type.gperf"
+ {"es3", "application/vnd.eszigno3+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 190 "auto/extension_to_mime_type.gperf"
+ {"dot", "application/msword"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 502 "auto/extension_to_mime_type.gperf"
+ {"mseed", "application/vnd.fdsn.mseed"},
+ {"",nullptr},
+#line 647 "auto/extension_to_mime_type.gperf"
+ {"pwn", "application/vnd.3m.post-it-notes"},
+ {"",nullptr},
+#line 763 "auto/extension_to_mime_type.gperf"
+ {"sru", "application/sru+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 804 "auto/extension_to_mime_type.gperf"
+ {"tei", "application/tei+xml"},
+ {"",nullptr}, {"",nullptr},
+#line 682 "auto/extension_to_mime_type.gperf"
+ {"rnc", "application/relax-ng-compact-syntax"},
+ {"",nullptr}, {"",nullptr},
+#line 665 "auto/extension_to_mime_type.gperf"
+ {"rcprofile", "application/vnd.ipunplugged.rcprofile"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 805 "auto/extension_to_mime_type.gperf"
+ {"teicorpus", "application/tei+xml"},
+#line 807 "auto/extension_to_mime_type.gperf"
+ {"texi", "application/x-texinfo"},
+#line 953 "auto/extension_to_mime_type.gperf"
+ {"xenc", "application/xenc+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 730 "auto/extension_to_mime_type.gperf"
+ {"sig", "application/pgp-signature"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 81 "auto/extension_to_mime_type.gperf"
+ {"btif", "image/prs.btif"},
+#line 45 "auto/extension_to_mime_type.gperf"
+ {"apk", "application/vnd.android.package-archive"},
+ {"",nullptr},
+#line 684 "auto/extension_to_mime_type.gperf"
+ {"roff", "text/troff"},
+#line 379 "auto/extension_to_mime_type.gperf"
+ {"jpm", "video/jpm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 257 "auto/extension_to_mime_type.gperf"
+ {"fig", "application/x-xfig"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 574 "auto/extension_to_mime_type.gperf"
+ {"oti", "application/vnd.oasis.opendocument.image-template"},
+ {"",nullptr},
+#line 894 "auto/extension_to_mime_type.gperf"
+ {"vtu", "model/vnd.vtu"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 458 "auto/extension_to_mime_type.gperf"
+ {"mie", "application/x-mie"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 460 "auto/extension_to_mime_type.gperf"
+ {"mime", "message/rfc822"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 961 "auto/extension_to_mime_type.gperf"
+ {"xla", "application/vnd.ms-excel"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 610 "auto/extension_to_mime_type.gperf"
+ {"php", "text/x-php"},
+ {"",nullptr},
+#line 125 "auto/extension_to_mime_type.gperf"
+ {"cla", "application/vnd.claymore"},
+#line 340 "auto/extension_to_mime_type.gperf"
+ {"ico", "image/x-icon"},
+ {"",nullptr},
+#line 120 "auto/extension_to_mime_type.gperf"
+ {"chm", "application/vnd.ms-htmlhelp"},
+#line 255 "auto/extension_to_mime_type.gperf"
+ {"fh7", "image/x-freehand"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 380 "auto/extension_to_mime_type.gperf"
+ {"js", "application/javascript"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 278 "auto/extension_to_mime_type.gperf"
+ {"g2w", "application/vnd.geoplan"},
+#line 413 "auto/extension_to_mime_type.gperf"
+ {"lostxml", "application/lost+xml"},
+#line 852 "auto/extension_to_mime_type.gperf"
+ {"uvg", "image/vnd.dece.graphic"},
+ {"",nullptr},
+#line 728 "auto/extension_to_mime_type.gperf"
+ {"shf", "application/shf+xml"},
+#line 17 "auto/extension_to_mime_type.gperf"
+ {"123", "application/vnd.lotus-1-2-3"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 888 "auto/extension_to_mime_type.gperf"
+ {"vrml", "model/vrml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 128 "auto/extension_to_mime_type.gperf"
+ {"clkp", "application/vnd.crick.clicker.palette"},
+#line 464 "auto/extension_to_mime_type.gperf"
+ {"mka", "audio/x-matroska"},
+#line 131 "auto/extension_to_mime_type.gperf"
+ {"clkx", "application/vnd.crick.clicker"},
+ {"",nullptr}, {"",nullptr},
+#line 256 "auto/extension_to_mime_type.gperf"
+ {"fhc", "image/x-freehand"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 713 "auto/extension_to_mime_type.gperf"
+ {"sema", "application/vnd.sema"},
+#line 544 "auto/extension_to_mime_type.gperf"
+ {"odb", "application/vnd.oasis.opendocument.database"},
+ {"",nullptr},
+#line 924 "auto/extension_to_mime_type.gperf"
+ {"woff2", "font/woff2"},
+#line 396 "auto/extension_to_mime_type.gperf"
+ {"ktr", "application/vnd.kahootz"},
+ {"",nullptr}, {"",nullptr},
+#line 724 "auto/extension_to_mime_type.gperf"
+ {"sgm", "text/sgml"},
+#line 195 "auto/extension_to_mime_type.gperf"
+ {"dra", "audio/vnd.dra"},
+#line 425 "auto/extension_to_mime_type.gperf"
+ {"m2v", "video/mpeg"},
+ {"",nullptr},
+#line 607 "auto/extension_to_mime_type.gperf"
+ {"pgm", "image/x-portable-graymap"},
+ {"",nullptr}, {"",nullptr},
+#line 454 "auto/extension_to_mime_type.gperf"
+ {"mgp", "application/vnd.osgeo.mapguide.package"},
+#line 254 "auto/extension_to_mime_type.gperf"
+ {"fh5", "image/x-freehand"},
+ {"",nullptr},
+#line 609 "auto/extension_to_mime_type.gperf"
+ {"pgp", "application/pgp-encrypted"},
+#line 720 "auto/extension_to_mime_type.gperf"
+ {"sfs", "application/vnd.spotfire.sfs"},
+#line 843 "auto/extension_to_mime_type.gperf"
+ {"uri", "text/uri-list"},
+ {"",nullptr},
+#line 452 "auto/extension_to_mime_type.gperf"
+ {"mfm", "application/vnd.mfmp"},
+#line 118 "auto/extension_to_mime_type.gperf"
+ {"cgm", "image/cgm"},
+ {"",nullptr},
+#line 604 "auto/extension_to_mime_type.gperf"
+ {"pfm", "application/x-font-type1"},
+ {"",nullptr}, {"",nullptr},
+#line 996 "auto/extension_to_mime_type.gperf"
+ {"yin", "application/yin+xml"},
+#line 267 "auto/extension_to_mime_type.gperf"
+ {"for", "text/x-fortran"},
+ {"",nullptr}, {"",nullptr},
+#line 815 "auto/extension_to_mime_type.gperf"
+ {"thmx", "application/vnd.ms-officetheme"},
+#line 606 "auto/extension_to_mime_type.gperf"
+ {"pfx", "application/x-pkcs12"},
+#line 117 "auto/extension_to_mime_type.gperf"
+ {"cfs", "application/x-cfs-compressed"},
+#line 130 "auto/extension_to_mime_type.gperf"
+ {"clkw", "application/vnd.crick.clicker.wordbank"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 681 "auto/extension_to_mime_type.gperf"
+ {"rmvb", "application/vnd.rn-realmedia-vbr"},
+ {"",nullptr},
+#line 907 "auto/extension_to_mime_type.gperf"
+ {"webm", "video/webm"},
+ {"",nullptr}, {"",nullptr},
+#line 823 "auto/extension_to_mime_type.gperf"
+ {"tra", "application/vnd.trueapp"},
+ {"",nullptr}, {"",nullptr},
+#line 908 "auto/extension_to_mime_type.gperf"
+ {"webp", "image/webp"},
+ {"",nullptr}, {"",nullptr},
+#line 72 "auto/extension_to_mime_type.gperf"
+ {"bin", "application/octet-stream"},
+#line 217 "auto/extension_to_mime_type.gperf"
+ {"elc", "application/octet-stream"},
+#line 887 "auto/extension_to_mime_type.gperf"
+ {"vox", "application/x-authorware-bin"},
+ {"",nullptr},
+#line 331 "auto/extension_to_mime_type.gperf"
+ {"htm", "text/html"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 284 "auto/extension_to_mime_type.gperf"
+ {"gca", "application/x-gca-compressed"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 447 "auto/extension_to_mime_type.gperf"
+ {"me", "text/troff"},
+#line 287 "auto/extension_to_mime_type.gperf"
+ {"gex", "application/vnd.geometry-explorer"},
+ {"",nullptr},
+#line 174 "auto/extension_to_mime_type.gperf"
+ {"dgc", "application/x-dgc-compressed"},
+ {"",nullptr},
+#line 70 "auto/extension_to_mime_type.gperf"
+ {"bed", "application/vnd.realvnc.bed"},
+ {"",nullptr},
+#line 517 "auto/extension_to_mime_type.gperf"
+ {"mxs", "application/vnd.triscape.mxs"},
+#line 794 "auto/extension_to_mime_type.gperf"
+ {"sxm", "application/vnd.sun.xml.math"},
+#line 813 "auto/extension_to_mime_type.gperf"
+ {"tgs", "application/x-tgsticker"},
+#line 250 "auto/extension_to_mime_type.gperf"
+ {"fg5", "application/vnd.fujitsu.oasysgp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 83 "auto/extension_to_mime_type.gperf"
+ {"bz2", "application/x-bzip2"},
+ {"",nullptr},
+#line 370 "auto/extension_to_mime_type.gperf"
+ {"jisp", "application/vnd.jisp"},
+#line 251 "auto/extension_to_mime_type.gperf"
+ {"fgd", "application/x-director"},
+ {"",nullptr}, {"",nullptr},
+#line 957 "auto/extension_to_mime_type.gperf"
+ {"xht", "application/xhtml+xml"},
+#line 811 "auto/extension_to_mime_type.gperf"
+ {"tfm", "application/x-tex-tfm"},
+#line 67 "auto/extension_to_mime_type.gperf"
+ {"bcpio", "application/x-bcpio"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 955 "auto/extension_to_mime_type.gperf"
+ {"xfdf", "application/vnd.adobe.xfdf"},
+#line 275 "auto/extension_to_mime_type.gperf"
+ {"fxp", "application/vnd.adobe.fxp"},
+#line 158 "auto/extension_to_mime_type.gperf"
+ {"cxx", "text/x-c"},
+#line 531 "auto/extension_to_mime_type.gperf"
+ {"nns", "application/vnd.noblenet-sealer"},
+ {"",nullptr},
+#line 548 "auto/extension_to_mime_type.gperf"
+ {"odg", "application/vnd.oasis.opendocument.graphics"},
+ {"",nullptr},
+#line 790 "auto/extension_to_mime_type.gperf"
+ {"sxc", "application/vnd.sun.xml.calc"},
+ {"",nullptr},
+#line 719 "auto/extension_to_mime_type.gperf"
+ {"sfd-hdstx", "application/vnd.hydrostatix.sof-data"},
+#line 514 "auto/extension_to_mime_type.gperf"
+ {"mxf", "application/mxf"},
+ {"",nullptr}, {"",nullptr},
+#line 368 "auto/extension_to_mime_type.gperf"
+ {"jar", "application/java-archive"},
+ {"",nullptr}, {"",nullptr},
+#line 208 "auto/extension_to_mime_type.gperf"
+ {"dxp", "application/vnd.spotfire.dxp"},
+#line 842 "auto/extension_to_mime_type.gperf"
+ {"uoml", "application/vnd.uoml+xml"},
+#line 261 "auto/extension_to_mime_type.gperf"
+ {"flv", "video/x-flv"},
+ {"",nullptr},
+#line 752 "auto/extension_to_mime_type.gperf"
+ {"so", "application/octet-stream"},
+ {"",nullptr},
+#line 129 "auto/extension_to_mime_type.gperf"
+ {"clkt", "application/vnd.crick.clicker.template"},
+ {"",nullptr},
+#line 958 "auto/extension_to_mime_type.gperf"
+ {"xhtml", "application/xhtml+xml"},
+#line 976 "auto/extension_to_mime_type.gperf"
+ {"xo", "application/vnd.olpc-sugar"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 201 "auto/extension_to_mime_type.gperf"
+ {"dtshd", "audio/vnd.dts.hd"},
+ {"",nullptr},
+#line 795 "auto/extension_to_mime_type.gperf"
+ {"sxw", "application/vnd.sun.xml.writer"},
+ {"",nullptr},
+#line 449 "auto/extension_to_mime_type.gperf"
+ {"meta4", "application/metalink4+xml"},
+ {"",nullptr},
+#line 701 "auto/extension_to_mime_type.gperf"
+ {"scq", "application/scvp-cv-request"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 791 "auto/extension_to_mime_type.gperf"
+ {"sxd", "application/vnd.sun.xml.draw"},
+#line 207 "auto/extension_to_mime_type.gperf"
+ {"dxf", "image/vnd.dxf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 712 "auto/extension_to_mime_type.gperf"
+ {"seed", "application/vnd.fdsn.seed"},
+#line 466 "auto/extension_to_mime_type.gperf"
+ {"mkv", "video/x-matroska"},
+ {"",nullptr}, {"",nullptr},
+#line 304 "auto/extension_to_mime_type.gperf"
+ {"grxml", "application/srgs+xml"},
+ {"",nullptr},
+#line 238 "auto/extension_to_mime_type.gperf"
+ {"ez2", "application/vnd.ezpix-album"},
+ {"",nullptr}, {"",nullptr},
+#line 140 "auto/extension_to_mime_type.gperf"
+ {"conf", "text/plain"},
+#line 455 "auto/extension_to_mime_type.gperf"
+ {"mgz", "application/vnd.proteus.magazine"},
+#line 356 "auto/extension_to_mime_type.gperf"
+ {"install", "application/x-install-instructions"},
+ {"",nullptr},
+#line 532 "auto/extension_to_mime_type.gperf"
+ {"nnw", "application/vnd.noblenet-web"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 453 "auto/extension_to_mime_type.gperf"
+ {"mft", "application/rpki-manifest"},
+ {"",nullptr},
+#line 1000 "auto/extension_to_mime_type.gperf"
+ {"z4", "application/x-zmachine"},
+ {"",nullptr},
+#line 530 "auto/extension_to_mime_type.gperf"
+ {"nnd", "application/vnd.noblenet-directory"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 808 "auto/extension_to_mime_type.gperf"
+ {"texinfo", "application/x-texinfo"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 910 "auto/extension_to_mime_type.gperf"
+ {"wgt", "application/widget"},
+ {"",nullptr},
+#line 833 "auto/extension_to_mime_type.gperf"
+ {"txf", "application/vnd.mobius.txf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 348 "auto/extension_to_mime_type.gperf"
+ {"igs", "model/iges"},
+ {"",nullptr},
+#line 347 "auto/extension_to_mime_type.gperf"
+ {"igm", "application/vnd.insors.igm"},
+#line 107 "auto/extension_to_mime_type.gperf"
+ {"cdkey", "application/vnd.mediastation.cdkey"},
+ {"",nullptr},
+#line 57 "auto/extension_to_mime_type.gperf"
+ {"atomcat", "application/atomcat+xml"},
+ {"",nullptr},
+#line 80 "auto/extension_to_mime_type.gperf"
+ {"bpk", "application/octet-stream"},
+ {"",nullptr},
+#line 723 "auto/extension_to_mime_type.gperf"
+ {"sgl", "application/vnd.stardivision.writer-global"},
+#line 349 "auto/extension_to_mime_type.gperf"
+ {"igx", "application/vnd.micrografx.igx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 344 "auto/extension_to_mime_type.gperf"
+ {"ifm", "application/vnd.shana.informed.formdata"},
+#line 725 "auto/extension_to_mime_type.gperf"
+ {"sgml", "text/sgml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 832 "auto/extension_to_mime_type.gperf"
+ {"txd", "application/vnd.genomatix.tuxedo"},
+#line 430 "auto/extension_to_mime_type.gperf"
+ {"m4u", "video/vnd.mpegurl"},
+ {"",nullptr},
+#line 58 "auto/extension_to_mime_type.gperf"
+ {"atomsvc", "application/atomsvc+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 312 "auto/extension_to_mime_type.gperf"
+ {"h", "text/x-c"},
+#line 233 "auto/extension_to_mime_type.gperf"
+ {"evy", "application/x-envoy"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 91 "auto/extension_to_mime_type.gperf"
+ {"c4u", "application/vnd.clonk.c4group"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 157 "auto/extension_to_mime_type.gperf"
+ {"cxt", "application/x-director"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 774 "auto/extension_to_mime_type.gperf"
+ {"stk", "application/hyperstudio"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 528 "auto/extension_to_mime_type.gperf"
+ {"nlu", "application/vnd.neurolanguage.nlu"},
+ {"",nullptr}, {"",nullptr},
+#line 332 "auto/extension_to_mime_type.gperf"
+ {"html", "text/html"},
+#line 956 "auto/extension_to_mime_type.gperf"
+ {"xfdl", "application/vnd.xfdl"},
+ {"",nullptr},
+#line 326 "auto/extension_to_mime_type.gperf"
+ {"hpgl", "application/vnd.hp-hpgl"},
+ {"",nullptr}, {"",nullptr},
+#line 78 "auto/extension_to_mime_type.gperf"
+ {"box", "application/vnd.previewsystems.box"},
+#line 390 "auto/extension_to_mime_type.gperf"
+ {"knp", "application/vnd.kinar"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 515 "auto/extension_to_mime_type.gperf"
+ {"mxl", "application/vnd.recordare.musicxml"},
+ {"",nullptr},
+#line 121 "auto/extension_to_mime_type.gperf"
+ {"chrt", "application/vnd.kde.kchart"},
+ {"",nullptr},
+#line 933 "auto/extension_to_mime_type.gperf"
+ {"wtb", "application/vnd.webturbo"},
+#line 569 "auto/extension_to_mime_type.gperf"
+ {"osfpvg", "application/vnd.yamaha.openscoreformat.osfpvg+xml"},
+#line 186 "auto/extension_to_mime_type.gperf"
+ {"dna", "application/vnd.dna"},
+#line 516 "auto/extension_to_mime_type.gperf"
+ {"mxml", "application/xv+xml"},
+#line 198 "auto/extension_to_mime_type.gperf"
+ {"dtb", "application/x-dtbook+xml"},
+#line 211 "auto/extension_to_mime_type.gperf"
+ {"ecelp7470", "audio/vnd.nuera.ecelp7470"},
+#line 353 "auto/extension_to_mime_type.gperf"
+ {"in", "text/plain"},
+ {"",nullptr},
+#line 212 "auto/extension_to_mime_type.gperf"
+ {"ecelp9600", "audio/vnd.nuera.ecelp9600"},
+ {"",nullptr},
+#line 260 "auto/extension_to_mime_type.gperf"
+ {"flo", "application/vnd.micrografx.flo"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 834 "auto/extension_to_mime_type.gperf"
+ {"txt", "text/plain"},
+ {"",nullptr},
+#line 35 "auto/extension_to_mime_type.gperf"
+ {"afm", "application/x-font-type1"},
+#line 276 "auto/extension_to_mime_type.gperf"
+ {"fxpl", "application/vnd.adobe.fxp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 36 "auto/extension_to_mime_type.gperf"
+ {"afp", "application/vnd.ibm.modcap"},
+ {"",nullptr}, {"",nullptr},
+#line 313 "auto/extension_to_mime_type.gperf"
+ {"h261", "video/h261"},
+ {"",nullptr}, {"",nullptr},
+#line 491 "auto/extension_to_mime_type.gperf"
+ {"mpkg", "application/vnd.apple.installer+xml"},
+ {"",nullptr}, {"",nullptr},
+#line 429 "auto/extension_to_mime_type.gperf"
+ {"m4a", "audio/mp4"},
+#line 837 "auto/extension_to_mime_type.gperf"
+ {"ufd", "application/vnd.ufdl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 206 "auto/extension_to_mime_type.gperf"
+ {"dwg", "image/vnd.dwg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 300 "auto/extension_to_mime_type.gperf"
+ {"gram", "application/srgs"},
+#line 778 "auto/extension_to_mime_type.gperf"
+ {"sub", "image/vnd.dvb.subtitle"},
+ {"",nullptr},
+#line 316 "auto/extension_to_mime_type.gperf"
+ {"h265", "video/h265"},
+ {"",nullptr},
+#line 645 "auto/extension_to_mime_type.gperf"
+ {"pub", "application/x-mspublisher"},
+#line 301 "auto/extension_to_mime_type.gperf"
+ {"gramps", "application/x-gramps-xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 239 "auto/extension_to_mime_type.gperf"
+ {"ez3", "application/vnd.ezpix-package"},
+#line 864 "auto/extension_to_mime_type.gperf"
+ {"uvvg", "image/vnd.dece.graphic"},
+#line 306 "auto/extension_to_mime_type.gperf"
+ {"gtar", "application/x-gtar"},
+#line 325 "auto/extension_to_mime_type.gperf"
+ {"hlp", "application/winhlp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 338 "auto/extension_to_mime_type.gperf"
+ {"ice", "x-conference/x-cooltalk"},
+#line 21 "auto/extension_to_mime_type.gperf"
+ {"3gp", "video/3gpp"},
+#line 605 "auto/extension_to_mime_type.gperf"
+ {"pfr", "application/font-tdpfr"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 269 "auto/extension_to_mime_type.gperf"
+ {"frame", "application/vnd.framemaker"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 173 "auto/extension_to_mime_type.gperf"
+ {"dfac", "application/vnd.dreamfactory"},
+#line 886 "auto/extension_to_mime_type.gperf"
+ {"vor", "application/vnd.stardivision.writer"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 722 "auto/extension_to_mime_type.gperf"
+ {"sgi", "image/sgi"},
+ {"",nullptr}, {"",nullptr},
+#line 487 "auto/extension_to_mime_type.gperf"
+ {"mpeg", "video/mpeg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 346 "auto/extension_to_mime_type.gperf"
+ {"igl", "application/vnd.igloader"},
+ {"",nullptr},
+#line 119 "auto/extension_to_mime_type.gperf"
+ {"chat", "application/x-chat"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 683 "auto/extension_to_mime_type.gperf"
+ {"roa", "application/rpki-roa"},
+#line 475 "auto/extension_to_mime_type.gperf"
+ {"mov", "video/quicktime"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 79 "auto/extension_to_mime_type.gperf"
+ {"boz", "application/x-bzip2"},
+ {"",nullptr},
+#line 959 "auto/extension_to_mime_type.gperf"
+ {"xhvml", "application/xv+xml"},
+ {"",nullptr}, {"",nullptr},
+#line 230 "auto/extension_to_mime_type.gperf"
+ {"et3", "application/vnd.eszigno3+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 836 "auto/extension_to_mime_type.gperf"
+ {"udeb", "application/x-debian-package"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 209 "auto/extension_to_mime_type.gperf"
+ {"dxr", "application/x-director"},
+ {"",nullptr}, {"",nullptr},
+#line 30 "auto/extension_to_mime_type.gperf"
+ {"ace", "application/x-ace-compressed"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 793 "auto/extension_to_mime_type.gperf"
+ {"sxi", "application/vnd.sun.xml.impress"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 505 "auto/extension_to_mime_type.gperf"
+ {"msh", "model/mesh"},
+#line 503 "auto/extension_to_mime_type.gperf"
+ {"mseq", "application/vnd.mseq"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 557 "auto/extension_to_mime_type.gperf"
+ {"ogx", "application/ogg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 810 "auto/extension_to_mime_type.gperf"
+ {"tfi", "application/thraud+xml"},
+ {"",nullptr},
+#line 148 "auto/extension_to_mime_type.gperf"
+ {"csh", "application/x-csh"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 223 "auto/extension_to_mime_type.gperf"
+ {"eot", "application/vnd.ms-fontobject"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 431 "auto/extension_to_mime_type.gperf"
+ {"m4v", "video/x-m4v"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 838 "auto/extension_to_mime_type.gperf"
+ {"ufdl", "application/vnd.ufdl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 880 "auto/extension_to_mime_type.gperf"
+ {"vcg", "application/vnd.groove-vcard"},
+#line 264 "auto/extension_to_mime_type.gperf"
+ {"fly", "text/vnd.fly"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 241 "auto/extension_to_mime_type.gperf"
+ {"f4v", "video/x-f4v"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 225 "auto/extension_to_mime_type.gperf"
+ {"epub", "application/epub+zip"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 357 "auto/extension_to_mime_type.gperf"
+ {"iota", "application/vnd.astraea-software.iota"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 384 "auto/extension_to_mime_type.gperf"
+ {"karbon", "application/vnd.kde.karbon"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 222 "auto/extension_to_mime_type.gperf"
+ {"eol", "audio/vnd.digital-winds"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 615 "auto/extension_to_mime_type.gperf"
+ {"plb", "application/vnd.3gpp.pic-bw-large"},
+#line 578 "auto/extension_to_mime_type.gperf"
+ {"oxps", "application/oxps"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 518 "auto/extension_to_mime_type.gperf"
+ {"mxu", "video/vnd.mpegurl"},
+#line 967 "auto/extension_to_mime_type.gperf"
+ {"xlsb", "application/vnd.ms-excel.sheet.binary.macroenabled.12"},
+ {"",nullptr}, {"",nullptr},
+#line 377 "auto/extension_to_mime_type.gperf"
+ {"jpgm", "video/jpm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 727 "auto/extension_to_mime_type.gperf"
+ {"shar", "application/x-shar"},
+#line 355 "auto/extension_to_mime_type.gperf"
+ {"inkml", "application/inkml+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 450 "auto/extension_to_mime_type.gperf"
+ {"metalink", "application/metalink+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 602 "auto/extension_to_mime_type.gperf"
+ {"pfa", "application/x-font-type1"},
+ {"",nullptr},
+#line 995 "auto/extension_to_mime_type.gperf"
+ {"yang", "application/yang"},
+ {"",nullptr}, {"",nullptr},
+#line 537 "auto/extension_to_mime_type.gperf"
+ {"nzb", "application/x-nzb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 819 "auto/extension_to_mime_type.gperf"
+ {"torrent", "application/x-bittorrent"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 406 "auto/extension_to_mime_type.gperf"
+ {"lha", "application/x-lzh-compressed"},
+#line 321 "auto/extension_to_mime_type.gperf"
+ {"heics", "image/heic-sequence"},
+#line 323 "auto/extension_to_mime_type.gperf"
+ {"heifs", "image/heif-sequence"},
+#line 906 "auto/extension_to_mime_type.gperf"
+ {"weba", "audio/webm"},
+#line 290 "auto/extension_to_mime_type.gperf"
+ {"ghf", "application/vnd.groove-help"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 169 "auto/extension_to_mime_type.gperf"
+ {"deb", "application/x-debian-package"},
+#line 320 "auto/extension_to_mime_type.gperf"
+ {"heic", "image/heic"},
+ {"",nullptr},
+#line 322 "auto/extension_to_mime_type.gperf"
+ {"heif", "image/heif"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 717 "auto/extension_to_mime_type.gperf"
+ {"setpay", "application/set-payment-initiation"},
+ {"",nullptr}, {"",nullptr},
+#line 803 "auto/extension_to_mime_type.gperf"
+ {"teacher", "application/vnd.smart.teacher"},
+#line 210 "auto/extension_to_mime_type.gperf"
+ {"ecelp4800", "audio/vnd.nuera.ecelp4800"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 853 "auto/extension_to_mime_type.gperf"
+ {"uvh", "video/vnd.dece.hd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 812 "auto/extension_to_mime_type.gperf"
+ {"tga", "image/x-tga"},
+ {"",nullptr},
+#line 473 "auto/extension_to_mime_type.gperf"
+ {"mobi", "application/x-mobipocket-ebook"},
+ {"",nullptr},
+#line 895 "auto/extension_to_mime_type.gperf"
+ {"vxml", "application/voicexml+xml"},
+#line 253 "auto/extension_to_mime_type.gperf"
+ {"fh4", "image/x-freehand"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 909 "auto/extension_to_mime_type.gperf"
+ {"wg", "application/vnd.pmi.widget"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 652 "auto/extension_to_mime_type.gperf"
+ {"qfx", "application/vnd.intu.qfx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 614 "auto/extension_to_mime_type.gperf"
+ {"pkipath", "application/pkix-pkipath"},
+ {"",nullptr},
+#line 579 "auto/extension_to_mime_type.gperf"
+ {"oxt", "application/vnd.openofficeorg.extension"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 171 "auto/extension_to_mime_type.gperf"
+ {"deploy", "application/octet-stream"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 612 "auto/extension_to_mime_type.gperf"
+ {"pkg", "application/octet-stream"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 637 "auto/extension_to_mime_type.gperf"
+ {"pre", "application/vnd.lotus-freelance"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 369 "auto/extension_to_mime_type.gperf"
+ {"java", "text/x-java-source"},
+ {"",nullptr},
+#line 711 "auto/extension_to_mime_type.gperf"
+ {"see", "application/vnd.seemail"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 336 "auto/extension_to_mime_type.gperf"
+ {"i2g", "application/vnd.intergeo"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 310 "auto/extension_to_mime_type.gperf"
+ {"gxf", "application/gxf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 721 "auto/extension_to_mime_type.gperf"
+ {"sfv", "text/x-sfv"},
+#line 295 "auto/extension_to_mime_type.gperf"
+ {"gnumeric", "application/x-gnumeric"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 249 "auto/extension_to_mime_type.gperf"
+ {"fe_launch", "application/vnd.denovo.fcselayout-link"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 303 "auto/extension_to_mime_type.gperf"
+ {"grv", "application/vnd.groove-injector"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 658 "auto/extension_to_mime_type.gperf"
+ {"qxd", "application/vnd.quark.quarkxpress"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 289 "auto/extension_to_mime_type.gperf"
+ {"ggt", "application/vnd.geogebra.tool"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 472 "auto/extension_to_mime_type.gperf"
+ {"mny", "application/x-msmoney"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 841 "auto/extension_to_mime_type.gperf"
+ {"unityweb", "application/vnd.unity"},
+#line 572 "auto/extension_to_mime_type.gperf"
+ {"otg", "application/vnd.oasis.opendocument.graphics-template"},
+#line 814 "auto/extension_to_mime_type.gperf"
+ {"tgv", "application/x-tgwallpattern"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 526 "auto/extension_to_mime_type.gperf"
+ {"ngdat", "application/vnd.nokia.n-gage.data"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 20 "auto/extension_to_mime_type.gperf"
+ {"3g2", "video/3gpp2"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 345 "auto/extension_to_mime_type.gperf"
+ {"iges", "model/iges"},
+ {"",nullptr},
+#line 608 "auto/extension_to_mime_type.gperf"
+ {"pgn", "application/x-chess-pgn"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 311 "auto/extension_to_mime_type.gperf"
+ {"gxt", "application/vnd.geonext"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 660 "auto/extension_to_mime_type.gperf"
+ {"qxt", "application/vnd.quark.quarkxpress"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 236 "auto/extension_to_mime_type.gperf"
+ {"ext", "application/vnd.novadigm.ext"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 560 "auto/extension_to_mime_type.gperf"
+ {"onetmp", "application/onenote"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 476 "auto/extension_to_mime_type.gperf"
+ {"movie", "video/x-sgi-movie"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 726 "auto/extension_to_mime_type.gperf"
+ {"sh", "application/x-sh"},
+ {"",nullptr},
+#line 215 "auto/extension_to_mime_type.gperf"
+ {"efif", "application/vnd.picsel"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 561 "auto/extension_to_mime_type.gperf"
+ {"onetoc", "application/onenote"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 659 "auto/extension_to_mime_type.gperf"
+ {"qxl", "application/vnd.quark.quarkxpress"},
+ {"",nullptr},
+#line 252 "auto/extension_to_mime_type.gperf"
+ {"fh", "image/x-freehand"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 411 "auto/extension_to_mime_type.gperf"
+ {"lnk", "application/x-ms-shortcut"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 718 "auto/extension_to_mime_type.gperf"
+ {"setreg", "application/set-registration-initiation"},
+ {"",nullptr}, {"",nullptr},
+#line 471 "auto/extension_to_mime_type.gperf"
+ {"mng", "video/x-mng"},
+ {"",nullptr}, {"",nullptr},
+#line 620 "auto/extension_to_mime_type.gperf"
+ {"png", "image/png"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 314 "auto/extension_to_mime_type.gperf"
+ {"h263", "video/h263"},
+#line 286 "auto/extension_to_mime_type.gperf"
+ {"geo", "application/vnd.dynageo"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 371 "auto/extension_to_mime_type.gperf"
+ {"jlt", "application/vnd.hp-jlyt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 315 "auto/extension_to_mime_type.gperf"
+ {"h264", "video/h264"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 519 "auto/extension_to_mime_type.gperf"
+ {"n-gage", "application/vnd.nokia.n-gage.symbian.install"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 865 "auto/extension_to_mime_type.gperf"
+ {"uvvh", "video/vnd.dece.hd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 71 "auto/extension_to_mime_type.gperf"
+ {"bh2", "application/vnd.fujitsu.oasysprs"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 554 "auto/extension_to_mime_type.gperf"
+ {"oga", "audio/ogg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 296 "auto/extension_to_mime_type.gperf"
+ {"gph", "application/vnd.flographit"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 354 "auto/extension_to_mime_type.gperf"
+ {"ink", "application/inkml+xml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 89 "auto/extension_to_mime_type.gperf"
+ {"c4g", "application/vnd.clonk.c4group"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 419 "auto/extension_to_mime_type.gperf"
+ {"lzh", "application/x-lzh-compressed"},
+ {"",nullptr}, {"",nullptr},
+#line 412 "auto/extension_to_mime_type.gperf"
+ {"log", "text/plain"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 382 "auto/extension_to_mime_type.gperf"
+ {"jsonml", "application/jsonml+json"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 147 "auto/extension_to_mime_type.gperf"
+ {"cryptonote", "application/vnd.rig.cryptonote"},
+#line 391 "auto/extension_to_mime_type.gperf"
+ {"kon", "application/vnd.kde.kontour"},
+#line 235 "auto/extension_to_mime_type.gperf"
+ {"exi", "application/exi"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 73 "auto/extension_to_mime_type.gperf"
+ {"blb", "application/x-blorb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 567 "auto/extension_to_mime_type.gperf"
+ {"org", "application/vnd.lotus-organizer"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 127 "auto/extension_to_mime_type.gperf"
+ {"clkk", "application/vnd.crick.clicker.keyboard"},
+ {"",nullptr}, {"",nullptr},
+#line 562 "auto/extension_to_mime_type.gperf"
+ {"onetoc2", "application/onenote"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 622 "auto/extension_to_mime_type.gperf"
+ {"portpkg", "application/vnd.macports.portpkg"},
+ {"",nullptr},
+#line 74 "auto/extension_to_mime_type.gperf"
+ {"blorb", "application/x-blorb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 376 "auto/extension_to_mime_type.gperf"
+ {"jpg", "image/jpeg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 603 "auto/extension_to_mime_type.gperf"
+ {"pfb", "application/x-font-type1"},
+ {"",nullptr}, {"",nullptr},
+#line 556 "auto/extension_to_mime_type.gperf"
+ {"ogv", "video/ogg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 37 "auto/extension_to_mime_type.gperf"
+ {"ahead", "application/vnd.ahead.space"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 374 "auto/extension_to_mime_type.gperf"
+ {"jpe", "image/jpeg"},
+#line 885 "auto/extension_to_mime_type.gperf"
+ {"vob", "video/x-ms-vob"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 372 "auto/extension_to_mime_type.gperf"
+ {"jnlp", "application/x-java-jnlp-file"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 381 "auto/extension_to_mime_type.gperf"
+ {"json", "application/json"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 378 "auto/extension_to_mime_type.gperf"
+ {"jpgv", "video/jpeg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 670 "auto/extension_to_mime_type.gperf"
+ {"rgb", "image/x-rgb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 302 "auto/extension_to_mime_type.gperf"
+ {"gre", "application/vnd.geometry-explorer"},
+ {"",nullptr},
+#line 525 "auto/extension_to_mime_type.gperf"
+ {"nfo", "text/x-nfo"},
+#line 792 "auto/extension_to_mime_type.gperf"
+ {"sxg", "application/vnd.sun.xml.writer.global"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 448 "auto/extension_to_mime_type.gperf"
+ {"mesh", "model/mesh"},
+ {"",nullptr}, {"",nullptr},
+#line 343 "auto/extension_to_mime_type.gperf"
+ {"ifb", "text/calendar"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 840 "auto/extension_to_mime_type.gperf"
+ {"umj", "application/vnd.umajin"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 573 "auto/extension_to_mime_type.gperf"
+ {"oth", "application/vnd.oasis.opendocument.text-web"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 385 "auto/extension_to_mime_type.gperf"
+ {"kfo", "application/vnd.kde.kformula"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 389 "auto/extension_to_mime_type.gperf"
+ {"kne", "application/vnd.kinar"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 542 "auto/extension_to_mime_type.gperf"
+ {"obj", "application/x-tgif"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 555 "auto/extension_to_mime_type.gperf"
+ {"ogg", "audio/ogg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 373 "auto/extension_to_mime_type.gperf"
+ {"joda", "application/vnd.joost.joda-archive"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 288 "auto/extension_to_mime_type.gperf"
+ {"ggb", "application/vnd.geogebra.file"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 375 "auto/extension_to_mime_type.gperf"
+ {"jpeg", "image/jpeg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 324 "auto/extension_to_mime_type.gperf"
+ {"hh", "text/x-c"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 657 "auto/extension_to_mime_type.gperf"
+ {"qxb", "application/vnd.quark.quarkxpress"},
+ {"",nullptr}, {"",nullptr},
+#line 77 "auto/extension_to_mime_type.gperf"
+ {"book", "application/vnd.framemaker"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 330 "auto/extension_to_mime_type.gperf"
+ {"htke", "application/vnd.kenameaapp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 234 "auto/extension_to_mime_type.gperf"
+ {"exe", "application/x-msdownload"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 559 "auto/extension_to_mime_type.gperf"
+ {"onepkg", "application/onenote"}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register unsigned int key = extension_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE)
+ {
+ register const char *s = wordlist[key].extension;
+
+ if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
+ return &wordlist[key];
+ }
+ }
+ return 0;
+}
+#line 1010 "auto/extension_to_mime_type.gperf"
+
+const char *extension_to_mime_type(const char *extension, size_t extension_len) {
+ const auto &result = search_extension(extension, extension_len);
+ if (result == nullptr) {
+ return nullptr;
+ }
+
+ return result->mime_type;
+}
diff --git a/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.gperf b/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.gperf
new file mode 100644
index 0000000000..004502af1b
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.gperf
@@ -0,0 +1,1018 @@
+%struct-type
+%ignore-case
+%language=ANSI-C
+%readonly-tables
+%includes
+%enum
+%define slot-name extension
+%define initializer-suffix ,nullptr
+%define slot-name extension
+%define hash-function-name extension_hash
+%define lookup-function-name search_extension
+struct extension_and_mime_type {
+ const char *extension;
+ const char *mime_type;
+}
+%%
+"123", "application/vnd.lotus-1-2-3"
+"3dml", "text/vnd.in3d.3dml"
+"3ds", "image/x-3ds"
+"3g2", "video/3gpp2"
+"3gp", "video/3gpp"
+"7z", "application/x-7z-compressed"
+"aab", "application/x-authorware-bin"
+"aac", "audio/x-aac"
+"aam", "application/x-authorware-map"
+"aas", "application/x-authorware-seg"
+"abw", "application/x-abiword"
+"ac", "application/pkix-attr-cert"
+"acc", "application/vnd.americandynamics.acc"
+"ace", "application/x-ace-compressed"
+"acu", "application/vnd.acucobol"
+"acutc", "application/vnd.acucorp"
+"adp", "audio/adpcm"
+"aep", "application/vnd.audiograph"
+"afm", "application/x-font-type1"
+"afp", "application/vnd.ibm.modcap"
+"ahead", "application/vnd.ahead.space"
+"ai", "application/postscript"
+"aif", "audio/x-aiff"
+"aifc", "audio/x-aiff"
+"aiff", "audio/x-aiff"
+"air", "application/vnd.adobe.air-application-installer-package+zip"
+"ait", "application/vnd.dvb.ait"
+"ami", "application/vnd.amiga.ami"
+"apk", "application/vnd.android.package-archive"
+"appcache", "text/cache-manifest"
+"application", "application/x-ms-application"
+"apr", "application/vnd.lotus-approach"
+"arc", "application/x-freearc"
+"asc", "application/pgp-signature"
+"asf", "video/x-ms-asf"
+"asm", "text/x-asm"
+"aso", "application/vnd.accpac.simply.aso"
+"asx", "video/x-ms-asf"
+"atc", "application/vnd.acucorp"
+"atom", "application/atom+xml"
+"atomcat", "application/atomcat+xml"
+"atomsvc", "application/atomsvc+xml"
+"atx", "application/vnd.antix.game-component"
+"au", "audio/basic"
+"avi", "video/x-msvideo"
+"aw", "application/applixware"
+"azf", "application/vnd.airzip.filesecure.azf"
+"azs", "application/vnd.airzip.filesecure.azs"
+"azw", "application/vnd.amazon.ebook"
+"bat", "application/x-msdownload"
+"bcpio", "application/x-bcpio"
+"bdf", "application/x-font-bdf"
+"bdm", "application/vnd.syncml.dm+wbxml"
+"bed", "application/vnd.realvnc.bed"
+"bh2", "application/vnd.fujitsu.oasysprs"
+"bin", "application/octet-stream"
+"blb", "application/x-blorb"
+"blorb", "application/x-blorb"
+"bmi", "application/vnd.bmi"
+"bmp", "image/bmp"
+"book", "application/vnd.framemaker"
+"box", "application/vnd.previewsystems.box"
+"boz", "application/x-bzip2"
+"bpk", "application/octet-stream"
+"btif", "image/prs.btif"
+"bz", "application/x-bzip"
+"bz2", "application/x-bzip2"
+"c", "text/x-c"
+"c11amc", "application/vnd.cluetrust.cartomobile-config"
+"c11amz", "application/vnd.cluetrust.cartomobile-config-pkg"
+"c4d", "application/vnd.clonk.c4group"
+"c4f", "application/vnd.clonk.c4group"
+"c4g", "application/vnd.clonk.c4group"
+"c4p", "application/vnd.clonk.c4group"
+"c4u", "application/vnd.clonk.c4group"
+"cab", "application/vnd.ms-cab-compressed"
+"caf", "audio/x-caf"
+"cap", "application/vnd.tcpdump.pcap"
+"car", "application/vnd.curl.car"
+"cat", "application/vnd.ms-pki.seccat"
+"cb7", "application/x-cbr"
+"cba", "application/x-cbr"
+"cbr", "application/x-cbr"
+"cbt", "application/x-cbr"
+"cbz", "application/x-cbr"
+"cc", "text/x-c"
+"cct", "application/x-director"
+"ccxml", "application/ccxml+xml"
+"cdbcmsg", "application/vnd.contact.cmsg"
+"cdf", "application/x-netcdf"
+"cdkey", "application/vnd.mediastation.cdkey"
+"cdmia", "application/cdmi-capability"
+"cdmic", "application/cdmi-container"
+"cdmid", "application/cdmi-domain"
+"cdmio", "application/cdmi-object"
+"cdmiq", "application/cdmi-queue"
+"cdx", "chemical/x-cdx"
+"cdxml", "application/vnd.chemdraw+xml"
+"cdy", "application/vnd.cinderella"
+"cer", "application/pkix-cert"
+"cfs", "application/x-cfs-compressed"
+"cgm", "image/cgm"
+"chat", "application/x-chat"
+"chm", "application/vnd.ms-htmlhelp"
+"chrt", "application/vnd.kde.kchart"
+"cif", "chemical/x-cif"
+"cii", "application/vnd.anser-web-certificate-issue-initiation"
+"cil", "application/vnd.ms-artgalry"
+"cla", "application/vnd.claymore"
+"class", "application/java-vm"
+"clkk", "application/vnd.crick.clicker.keyboard"
+"clkp", "application/vnd.crick.clicker.palette"
+"clkt", "application/vnd.crick.clicker.template"
+"clkw", "application/vnd.crick.clicker.wordbank"
+"clkx", "application/vnd.crick.clicker"
+"clp", "application/x-msclip"
+"cmc", "application/vnd.cosmocaller"
+"cmdf", "chemical/x-cmdf"
+"cml", "chemical/x-cml"
+"cmp", "application/vnd.yellowriver-custom-menu"
+"cmx", "image/x-cmx"
+"cod", "application/vnd.rim.cod"
+"com", "application/x-msdownload"
+"conf", "text/plain"
+"cpio", "application/x-cpio"
+"cpp", "text/x-c"
+"cpt", "application/mac-compactpro"
+"crd", "application/x-mscardfile"
+"crl", "application/pkix-crl"
+"crt", "application/x-x509-ca-cert"
+"cryptonote", "application/vnd.rig.cryptonote"
+"csh", "application/x-csh"
+"csml", "chemical/x-csml"
+"csp", "application/vnd.commonspace"
+"css", "text/css"
+"cst", "application/x-director"
+"csv", "text/csv"
+"cu", "application/cu-seeme"
+"curl", "text/vnd.curl"
+"cww", "application/prs.cww"
+"cxt", "application/x-director"
+"cxx", "text/x-c"
+"dae", "model/vnd.collada+xml"
+"daf", "application/vnd.mobius.daf"
+"dart", "application/vnd.dart"
+"dataless", "application/vnd.fdsn.seed"
+"davmount", "application/davmount+xml"
+"dbk", "application/docbook+xml"
+"dcr", "application/x-director"
+"dcurl", "text/vnd.curl.dcurl"
+"dd2", "application/vnd.oma.dd2+xml"
+"ddd", "application/vnd.fujixerox.ddd"
+"deb", "application/x-debian-package"
+"def", "text/plain"
+"deploy", "application/octet-stream"
+"der", "application/x-x509-ca-cert"
+"dfac", "application/vnd.dreamfactory"
+"dgc", "application/x-dgc-compressed"
+"dic", "text/x-c"
+"dir", "application/x-director"
+"dis", "application/vnd.mobius.dis"
+"dist", "application/octet-stream"
+"distz", "application/octet-stream"
+"djv", "image/vnd.djvu"
+"djvu", "image/vnd.djvu"
+"dll", "application/x-msdownload"
+"dmg", "application/x-apple-diskimage"
+"dmp", "application/vnd.tcpdump.pcap"
+"dms", "application/octet-stream"
+"dna", "application/vnd.dna"
+"doc", "application/msword"
+"docm", "application/vnd.ms-word.document.macroenabled.12"
+"docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
+"dot", "application/msword"
+"dotm", "application/vnd.ms-word.template.macroenabled.12"
+"dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"
+"dp", "application/vnd.osgi.dp"
+"dpg", "application/vnd.dpgraph"
+"dra", "audio/vnd.dra"
+"dsc", "text/prs.lines.tag"
+"dssc", "application/dssc+der"
+"dtb", "application/x-dtbook+xml"
+"dtd", "application/xml-dtd"
+"dts", "audio/vnd.dts"
+"dtshd", "audio/vnd.dts.hd"
+"dump", "application/octet-stream"
+"dvb", "video/vnd.dvb.file"
+"dvi", "application/x-dvi"
+"dwf", "model/vnd.dwf"
+"dwg", "image/vnd.dwg"
+"dxf", "image/vnd.dxf"
+"dxp", "application/vnd.spotfire.dxp"
+"dxr", "application/x-director"
+"ecelp4800", "audio/vnd.nuera.ecelp4800"
+"ecelp7470", "audio/vnd.nuera.ecelp7470"
+"ecelp9600", "audio/vnd.nuera.ecelp9600"
+"edm", "application/vnd.novadigm.edm"
+"edx", "application/vnd.novadigm.edx"
+"efif", "application/vnd.picsel"
+"ei6", "application/vnd.pg.osasli"
+"elc", "application/octet-stream"
+"emf", "application/x-msmetafile"
+"eml", "message/rfc822"
+"emma", "application/emma+xml"
+"emz", "application/x-msmetafile"
+"eol", "audio/vnd.digital-winds"
+"eot", "application/vnd.ms-fontobject"
+"eps", "application/postscript"
+"epub", "application/epub+zip"
+"es", "application/ecmascript"
+"es3", "application/vnd.eszigno3+xml"
+"esa", "application/vnd.osgi.subsystem"
+"esf", "application/vnd.epson.esf"
+"et3", "application/vnd.eszigno3+xml"
+"etx", "text/x-setext"
+"eva", "application/x-eva"
+"evy", "application/x-envoy"
+"exe", "application/x-msdownload"
+"exi", "application/exi"
+"ext", "application/vnd.novadigm.ext"
+"ez", "application/andrew-inset"
+"ez2", "application/vnd.ezpix-album"
+"ez3", "application/vnd.ezpix-package"
+"f", "text/x-fortran"
+"f4v", "video/x-f4v"
+"f77", "text/x-fortran"
+"f90", "text/x-fortran"
+"fb2", "application/x-fictionbook+xml"
+"fbs", "image/vnd.fastbidsheet"
+"fcdt", "application/vnd.adobe.formscentral.fcdt"
+"fcs", "application/vnd.isac.fcs"
+"fdf", "application/vnd.fdf"
+"fe_launch", "application/vnd.denovo.fcselayout-link"
+"fg5", "application/vnd.fujitsu.oasysgp"
+"fgd", "application/x-director"
+"fh", "image/x-freehand"
+"fh4", "image/x-freehand"
+"fh5", "image/x-freehand"
+"fh7", "image/x-freehand"
+"fhc", "image/x-freehand"
+"fig", "application/x-xfig"
+"flac", "audio/x-flac"
+"fli", "video/x-fli"
+"flo", "application/vnd.micrografx.flo"
+"flv", "video/x-flv"
+"flw", "application/vnd.kde.kivio"
+"flx", "text/vnd.fmi.flexstor"
+"fly", "text/vnd.fly"
+"fm", "application/vnd.framemaker"
+"fnc", "application/vnd.frogans.fnc"
+"for", "text/x-fortran"
+"fpx", "image/vnd.fpx"
+"frame", "application/vnd.framemaker"
+"fsc", "application/vnd.fsc.weblaunch"
+"fst", "image/vnd.fst"
+"ftc", "application/vnd.fluxtime.clip"
+"fti", "application/vnd.anser-web-funds-transfer-initiation"
+"fvt", "video/vnd.fvt"
+"fxp", "application/vnd.adobe.fxp"
+"fxpl", "application/vnd.adobe.fxp"
+"fzs", "application/vnd.fuzzysheet"
+"g2w", "application/vnd.geoplan"
+"g3", "image/g3fax"
+"g3w", "application/vnd.geospace"
+"gac", "application/vnd.groove-account"
+"gam", "application/x-tads"
+"gbr", "application/rpki-ghostbusters"
+"gca", "application/x-gca-compressed"
+"gdl", "model/vnd.gdl"
+"geo", "application/vnd.dynageo"
+"gex", "application/vnd.geometry-explorer"
+"ggb", "application/vnd.geogebra.file"
+"ggt", "application/vnd.geogebra.tool"
+"ghf", "application/vnd.groove-help"
+"gif", "image/gif"
+"gim", "application/vnd.groove-identity-message"
+"gml", "application/gml+xml"
+"gmx", "application/vnd.gmx"
+"gnumeric", "application/x-gnumeric"
+"gph", "application/vnd.flographit"
+"gpx", "application/gpx+xml"
+"gqf", "application/vnd.grafeq"
+"gqs", "application/vnd.grafeq"
+"gram", "application/srgs"
+"gramps", "application/x-gramps-xml"
+"gre", "application/vnd.geometry-explorer"
+"grv", "application/vnd.groove-injector"
+"grxml", "application/srgs+xml"
+"gsf", "application/x-font-ghostscript"
+"gtar", "application/x-gtar"
+"gtm", "application/vnd.groove-tool-message"
+"gtw", "model/vnd.gtw"
+"gv", "text/vnd.graphviz"
+"gxf", "application/gxf"
+"gxt", "application/vnd.geonext"
+"h", "text/x-c"
+"h261", "video/h261"
+"h263", "video/h263"
+"h264", "video/h264"
+"h265", "video/h265"
+"hal", "application/vnd.hal+xml"
+"hbci", "application/vnd.hbci"
+"hdf", "application/x-hdf"
+"heic", "image/heic"
+"heics", "image/heic-sequence"
+"heif", "image/heif"
+"heifs", "image/heif-sequence"
+"hh", "text/x-c"
+"hlp", "application/winhlp"
+"hpgl", "application/vnd.hp-hpgl"
+"hpid", "application/vnd.hp-hpid"
+"hps", "application/vnd.hp-hps"
+"hqx", "application/mac-binhex40"
+"htke", "application/vnd.kenameaapp"
+"htm", "text/html"
+"html", "text/html"
+"hvd", "application/vnd.yamaha.hv-dic"
+"hvp", "application/vnd.yamaha.hv-voice"
+"hvs", "application/vnd.yamaha.hv-script"
+"i2g", "application/vnd.intergeo"
+"icc", "application/vnd.iccprofile"
+"ice", "x-conference/x-cooltalk"
+"icm", "application/vnd.iccprofile"
+"ico", "image/x-icon"
+"ics", "text/calendar"
+"ief", "image/ief"
+"ifb", "text/calendar"
+"ifm", "application/vnd.shana.informed.formdata"
+"iges", "model/iges"
+"igl", "application/vnd.igloader"
+"igm", "application/vnd.insors.igm"
+"igs", "model/iges"
+"igx", "application/vnd.micrografx.igx"
+"iif", "application/vnd.shana.informed.interchange"
+"imp", "application/vnd.accpac.simply.imp"
+"ims", "application/vnd.ms-ims"
+"in", "text/plain"
+"ink", "application/inkml+xml"
+"inkml", "application/inkml+xml"
+"install", "application/x-install-instructions"
+"iota", "application/vnd.astraea-software.iota"
+"ipfix", "application/ipfix"
+"ipk", "application/vnd.shana.informed.package"
+"irm", "application/vnd.ibm.rights-management"
+"irp", "application/vnd.irepository.package+xml"
+"iso", "application/x-iso9660-image"
+"itp", "application/vnd.shana.informed.formtemplate"
+"ivp", "application/vnd.immervision-ivp"
+"ivu", "application/vnd.immervision-ivu"
+"jad", "text/vnd.sun.j2me.app-descriptor"
+"jam", "application/vnd.jam"
+"jar", "application/java-archive"
+"java", "text/x-java-source"
+"jisp", "application/vnd.jisp"
+"jlt", "application/vnd.hp-jlyt"
+"jnlp", "application/x-java-jnlp-file"
+"joda", "application/vnd.joost.joda-archive"
+"jpe", "image/jpeg"
+"jpeg", "image/jpeg"
+"jpg", "image/jpeg"
+"jpgm", "video/jpm"
+"jpgv", "video/jpeg"
+"jpm", "video/jpm"
+"js", "application/javascript"
+"json", "application/json"
+"jsonml", "application/jsonml+json"
+"kar", "audio/midi"
+"karbon", "application/vnd.kde.karbon"
+"kfo", "application/vnd.kde.kformula"
+"kia", "application/vnd.kidspiration"
+"kml", "application/vnd.google-earth.kml+xml"
+"kmz", "application/vnd.google-earth.kmz"
+"kne", "application/vnd.kinar"
+"knp", "application/vnd.kinar"
+"kon", "application/vnd.kde.kontour"
+"kpr", "application/vnd.kde.kpresenter"
+"kpt", "application/vnd.kde.kpresenter"
+"kpxx", "application/vnd.ds-keypoint"
+"ksp", "application/vnd.kde.kspread"
+"ktr", "application/vnd.kahootz"
+"ktx", "image/ktx"
+"ktz", "application/vnd.kahootz"
+"kwd", "application/vnd.kde.kword"
+"kwt", "application/vnd.kde.kword"
+"lasxml", "application/vnd.las.las+xml"
+"latex", "application/x-latex"
+"lbd", "application/vnd.llamagraphics.life-balance.desktop"
+"lbe", "application/vnd.llamagraphics.life-balance.exchange+xml"
+"les", "application/vnd.hhe.lesson-player"
+"lha", "application/x-lzh-compressed"
+"link66", "application/vnd.route66.link66+xml"
+"list", "text/plain"
+"list3820", "application/vnd.ibm.modcap"
+"listafp", "application/vnd.ibm.modcap"
+"lnk", "application/x-ms-shortcut"
+"log", "text/plain"
+"lostxml", "application/lost+xml"
+"lrf", "application/octet-stream"
+"lrm", "application/vnd.ms-lrm"
+"ltf", "application/vnd.frogans.ltf"
+"lvp", "audio/vnd.lucent.voice"
+"lwp", "application/vnd.lotus-wordpro"
+"lzh", "application/x-lzh-compressed"
+"m13", "application/x-msmediaview"
+"m14", "application/x-msmediaview"
+"m1v", "video/mpeg"
+"m21", "application/mp21"
+"m2a", "audio/mpeg"
+"m2v", "video/mpeg"
+"m3a", "audio/mpeg"
+"m3u", "audio/x-mpegurl"
+"m3u8", "application/vnd.apple.mpegurl"
+"m4a", "audio/mp4"
+"m4u", "video/vnd.mpegurl"
+"m4v", "video/x-m4v"
+"ma", "application/mathematica"
+"mads", "application/mads+xml"
+"mag", "application/vnd.ecowin.chart"
+"maker", "application/vnd.framemaker"
+"man", "text/troff"
+"mar", "application/octet-stream"
+"mathml", "application/mathml+xml"
+"mb", "application/mathematica"
+"mbk", "application/vnd.mobius.mbk"
+"mbox", "application/mbox"
+"mc1", "application/vnd.medcalcdata"
+"mcd", "application/vnd.mcd"
+"mcurl", "text/vnd.curl.mcurl"
+"mdb", "application/x-msaccess"
+"mdi", "image/vnd.ms-modi"
+"me", "text/troff"
+"mesh", "model/mesh"
+"meta4", "application/metalink4+xml"
+"metalink", "application/metalink+xml"
+"mets", "application/mets+xml"
+"mfm", "application/vnd.mfmp"
+"mft", "application/rpki-manifest"
+"mgp", "application/vnd.osgeo.mapguide.package"
+"mgz", "application/vnd.proteus.magazine"
+"mid", "audio/midi"
+"midi", "audio/midi"
+"mie", "application/x-mie"
+"mif", "application/vnd.mif"
+"mime", "message/rfc822"
+"mj2", "video/mj2"
+"mjp2", "video/mj2"
+"mk3d", "video/x-matroska"
+"mka", "audio/x-matroska"
+"mks", "video/x-matroska"
+"mkv", "video/x-matroska"
+"mlp", "application/vnd.dolby.mlp"
+"mmd", "application/vnd.chipnuts.karaoke-mmd"
+"mmf", "application/vnd.smaf"
+"mmr", "image/vnd.fujixerox.edmics-mmr"
+"mng", "video/x-mng"
+"mny", "application/x-msmoney"
+"mobi", "application/x-mobipocket-ebook"
+"mods", "application/mods+xml"
+"mov", "video/quicktime"
+"movie", "video/x-sgi-movie"
+"mp2", "audio/mpeg"
+"mp21", "application/mp21"
+"mp2a", "audio/mpeg"
+"mp3", "audio/mpeg"
+"mp4", "video/mp4"
+"mp4a", "audio/mp4"
+"mp4s", "application/mp4"
+"mp4v", "video/mp4"
+"mpc", "application/vnd.mophun.certificate"
+"mpe", "video/mpeg"
+"mpeg", "video/mpeg"
+"mpg", "video/mpeg"
+"mpg4", "video/mp4"
+"mpga", "audio/mpeg"
+"mpkg", "application/vnd.apple.installer+xml"
+"mpm", "application/vnd.blueice.multipass"
+"mpn", "application/vnd.mophun.application"
+"mpp", "application/vnd.ms-project"
+"mpt", "application/vnd.ms-project"
+"mpy", "application/vnd.ibm.minipay"
+"mqy", "application/vnd.mobius.mqy"
+"mrc", "application/marc"
+"mrcx", "application/marcxml+xml"
+"ms", "text/troff"
+"mscml", "application/mediaservercontrol+xml"
+"mseed", "application/vnd.fdsn.mseed"
+"mseq", "application/vnd.mseq"
+"msf", "application/vnd.epson.msf"
+"msh", "model/mesh"
+"msi", "application/x-msdownload"
+"msl", "application/vnd.mobius.msl"
+"msty", "application/vnd.muvee.style"
+"mts", "model/vnd.mts"
+"mus", "application/vnd.musician"
+"musicxml", "application/vnd.recordare.musicxml+xml"
+"mvb", "application/x-msmediaview"
+"mwf", "application/vnd.mfer"
+"mxf", "application/mxf"
+"mxl", "application/vnd.recordare.musicxml"
+"mxml", "application/xv+xml"
+"mxs", "application/vnd.triscape.mxs"
+"mxu", "video/vnd.mpegurl"
+"n-gage", "application/vnd.nokia.n-gage.symbian.install"
+"n3", "text/n3"
+"nb", "application/mathematica"
+"nbp", "application/vnd.wolfram.player"
+"nc", "application/x-netcdf"
+"ncx", "application/x-dtbncx+xml"
+"nfo", "text/x-nfo"
+"ngdat", "application/vnd.nokia.n-gage.data"
+"nitf", "application/vnd.nitf"
+"nlu", "application/vnd.neurolanguage.nlu"
+"nml", "application/vnd.enliven"
+"nnd", "application/vnd.noblenet-directory"
+"nns", "application/vnd.noblenet-sealer"
+"nnw", "application/vnd.noblenet-web"
+"npx", "image/vnd.net-fpx"
+"nsc", "application/x-conference"
+"nsf", "application/vnd.lotus-notes"
+"ntf", "application/vnd.nitf"
+"nzb", "application/x-nzb"
+"oa2", "application/vnd.fujitsu.oasys2"
+"oa3", "application/vnd.fujitsu.oasys3"
+"oas", "application/vnd.fujitsu.oasys"
+"obd", "application/x-msbinder"
+"obj", "application/x-tgif"
+"oda", "application/oda"
+"odb", "application/vnd.oasis.opendocument.database"
+"odc", "application/vnd.oasis.opendocument.chart"
+"odf", "application/vnd.oasis.opendocument.formula"
+"odft", "application/vnd.oasis.opendocument.formula-template"
+"odg", "application/vnd.oasis.opendocument.graphics"
+"odi", "application/vnd.oasis.opendocument.image"
+"odm", "application/vnd.oasis.opendocument.text-master"
+"odp", "application/vnd.oasis.opendocument.presentation"
+"ods", "application/vnd.oasis.opendocument.spreadsheet"
+"odt", "application/vnd.oasis.opendocument.text"
+"oga", "audio/ogg"
+"ogg", "audio/ogg"
+"ogv", "video/ogg"
+"ogx", "application/ogg"
+"omdoc", "application/omdoc+xml"
+"onepkg", "application/onenote"
+"onetmp", "application/onenote"
+"onetoc", "application/onenote"
+"onetoc2", "application/onenote"
+"opf", "application/oebps-package+xml"
+"opml", "text/x-opml"
+"oprc", "application/vnd.palm"
+"opus", "audio/ogg"
+"org", "application/vnd.lotus-organizer"
+"osf", "application/vnd.yamaha.openscoreformat"
+"osfpvg", "application/vnd.yamaha.openscoreformat.osfpvg+xml"
+"otc", "application/vnd.oasis.opendocument.chart-template"
+"otf", "font/otf"
+"otg", "application/vnd.oasis.opendocument.graphics-template"
+"oth", "application/vnd.oasis.opendocument.text-web"
+"oti", "application/vnd.oasis.opendocument.image-template"
+"otp", "application/vnd.oasis.opendocument.presentation-template"
+"ots", "application/vnd.oasis.opendocument.spreadsheet-template"
+"ott", "application/vnd.oasis.opendocument.text-template"
+"oxps", "application/oxps"
+"oxt", "application/vnd.openofficeorg.extension"
+"p", "text/x-pascal"
+"p10", "application/pkcs10"
+"p12", "application/x-pkcs12"
+"p7b", "application/x-pkcs7-certificates"
+"p7c", "application/pkcs7-mime"
+"p7m", "application/pkcs7-mime"
+"p7r", "application/x-pkcs7-certreqresp"
+"p7s", "application/pkcs7-signature"
+"p8", "application/pkcs8"
+"pas", "text/x-pascal"
+"paw", "application/vnd.pawaafile"
+"pbd", "application/vnd.powerbuilder6"
+"pbm", "image/x-portable-bitmap"
+"pcap", "application/vnd.tcpdump.pcap"
+"pcf", "application/x-font-pcf"
+"pcl", "application/vnd.hp-pcl"
+"pclxl", "application/vnd.hp-pclxl"
+"pct", "image/x-pict"
+"pcurl", "application/vnd.curl.pcurl"
+"pcx", "image/x-pcx"
+"pdb", "application/vnd.palm"
+"pdf", "application/pdf"
+"pfa", "application/x-font-type1"
+"pfb", "application/x-font-type1"
+"pfm", "application/x-font-type1"
+"pfr", "application/font-tdpfr"
+"pfx", "application/x-pkcs12"
+"pgm", "image/x-portable-graymap"
+"pgn", "application/x-chess-pgn"
+"pgp", "application/pgp-encrypted"
+"php", "text/x-php"
+"pic", "image/x-pict"
+"pkg", "application/octet-stream"
+"pki", "application/pkixcmp"
+"pkipath", "application/pkix-pkipath"
+"plb", "application/vnd.3gpp.pic-bw-large"
+"plc", "application/vnd.mobius.plc"
+"plf", "application/vnd.pocketlearn"
+"pls", "application/pls+xml"
+"pml", "application/vnd.ctc-posml"
+"png", "image/png"
+"pnm", "image/x-portable-anymap"
+"portpkg", "application/vnd.macports.portpkg"
+"pot", "application/vnd.ms-powerpoint"
+"potm", "application/vnd.ms-powerpoint.template.macroenabled.12"
+"potx", "application/vnd.openxmlformats-officedocument.presentationml.template"
+"ppam", "application/vnd.ms-powerpoint.addin.macroenabled.12"
+"ppd", "application/vnd.cups-ppd"
+"ppm", "image/x-portable-pixmap"
+"pps", "application/vnd.ms-powerpoint"
+"ppsm", "application/vnd.ms-powerpoint.slideshow.macroenabled.12"
+"ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"
+"ppt", "application/vnd.ms-powerpoint"
+"pptm", "application/vnd.ms-powerpoint.presentation.macroenabled.12"
+"pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"
+"pqa", "application/vnd.palm"
+"prc", "application/x-mobipocket-ebook"
+"pre", "application/vnd.lotus-freelance"
+"prf", "application/pics-rules"
+"ps", "application/postscript"
+"psb", "application/vnd.3gpp.pic-bw-small"
+"psd", "image/vnd.adobe.photoshop"
+"psf", "application/x-font-linux-psf"
+"pskcxml", "application/pskc+xml"
+"ptid", "application/vnd.pvi.ptid1"
+"pub", "application/x-mspublisher"
+"pvb", "application/vnd.3gpp.pic-bw-var"
+"pwn", "application/vnd.3m.post-it-notes"
+"pya", "audio/vnd.ms-playready.media.pya"
+"pyv", "video/vnd.ms-playready.media.pyv"
+"qam", "application/vnd.epson.quickanime"
+"qbo", "application/vnd.intu.qbo"
+"qfx", "application/vnd.intu.qfx"
+"qps", "application/vnd.publishare-delta-tree"
+"qt", "video/quicktime"
+"qwd", "application/vnd.quark.quarkxpress"
+"qwt", "application/vnd.quark.quarkxpress"
+"qxb", "application/vnd.quark.quarkxpress"
+"qxd", "application/vnd.quark.quarkxpress"
+"qxl", "application/vnd.quark.quarkxpress"
+"qxt", "application/vnd.quark.quarkxpress"
+"ra", "audio/x-pn-realaudio"
+"ram", "audio/x-pn-realaudio"
+"rar", "application/x-rar-compressed"
+"ras", "image/x-cmu-raster"
+"rcprofile", "application/vnd.ipunplugged.rcprofile"
+"rdf", "application/rdf+xml"
+"rdz", "application/vnd.data-vision.rdz"
+"rep", "application/vnd.businessobjects"
+"res", "application/x-dtbresource+xml"
+"rgb", "image/x-rgb"
+"rif", "application/reginfo+xml"
+"rip", "audio/vnd.rip"
+"ris", "application/x-research-info-systems"
+"rl", "application/resource-lists+xml"
+"rlc", "image/vnd.fujixerox.edmics-rlc"
+"rld", "application/resource-lists-diff+xml"
+"rm", "application/vnd.rn-realmedia"
+"rmi", "audio/midi"
+"rmp", "audio/x-pn-realaudio-plugin"
+"rms", "application/vnd.jcp.javame.midlet-rms"
+"rmvb", "application/vnd.rn-realmedia-vbr"
+"rnc", "application/relax-ng-compact-syntax"
+"roa", "application/rpki-roa"
+"roff", "text/troff"
+"rp9", "application/vnd.cloanto.rp9"
+"rpss", "application/vnd.nokia.radio-presets"
+"rpst", "application/vnd.nokia.radio-preset"
+"rq", "application/sparql-query"
+"rs", "application/rls-services+xml"
+"rsd", "application/rsd+xml"
+"rss", "application/rss+xml"
+"rtf", "application/rtf"
+"rtx", "text/richtext"
+"s", "text/x-asm"
+"s3m", "audio/s3m"
+"saf", "application/vnd.yamaha.smaf-audio"
+"sbml", "application/sbml+xml"
+"sc", "application/vnd.ibm.secure-container"
+"scd", "application/x-msschedule"
+"scm", "application/vnd.lotus-screencam"
+"scq", "application/scvp-cv-request"
+"scs", "application/scvp-cv-response"
+"scurl", "text/vnd.curl.scurl"
+"sda", "application/vnd.stardivision.draw"
+"sdc", "application/vnd.stardivision.calc"
+"sdd", "application/vnd.stardivision.impress"
+"sdkd", "application/vnd.solent.sdkm+xml"
+"sdkm", "application/vnd.solent.sdkm+xml"
+"sdp", "application/sdp"
+"sdw", "application/vnd.stardivision.writer"
+"see", "application/vnd.seemail"
+"seed", "application/vnd.fdsn.seed"
+"sema", "application/vnd.sema"
+"semd", "application/vnd.semd"
+"semf", "application/vnd.semf"
+"ser", "application/java-serialized-object"
+"setpay", "application/set-payment-initiation"
+"setreg", "application/set-registration-initiation"
+"sfd-hdstx", "application/vnd.hydrostatix.sof-data"
+"sfs", "application/vnd.spotfire.sfs"
+"sfv", "text/x-sfv"
+"sgi", "image/sgi"
+"sgl", "application/vnd.stardivision.writer-global"
+"sgm", "text/sgml"
+"sgml", "text/sgml"
+"sh", "application/x-sh"
+"shar", "application/x-shar"
+"shf", "application/shf+xml"
+"sid", "image/x-mrsid-image"
+"sig", "application/pgp-signature"
+"sil", "audio/silk"
+"silo", "model/mesh"
+"sis", "application/vnd.symbian.install"
+"sisx", "application/vnd.symbian.install"
+"sit", "application/x-stuffit"
+"sitx", "application/x-stuffitx"
+"skd", "application/vnd.koan"
+"skm", "application/vnd.koan"
+"skp", "application/vnd.koan"
+"skt", "application/vnd.koan"
+"sldm", "application/vnd.ms-powerpoint.slide.macroenabled.12"
+"sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"
+"slt", "application/vnd.epson.salt"
+"sm", "application/vnd.stepmania.stepchart"
+"smf", "application/vnd.stardivision.math"
+"smi", "application/smil+xml"
+"smil", "application/smil+xml"
+"smv", "video/x-smv"
+"smzip", "application/vnd.stepmania.package"
+"snd", "audio/basic"
+"snf", "application/x-font-snf"
+"so", "application/octet-stream"
+"spc", "application/x-pkcs7-certificates"
+"spf", "application/vnd.yamaha.smaf-phrase"
+"spl", "application/x-futuresplash"
+"spot", "text/vnd.in3d.spot"
+"spp", "application/scvp-vp-response"
+"spq", "application/scvp-vp-request"
+"spx", "audio/ogg"
+"sql", "application/x-sql"
+"src", "application/x-wais-source"
+"srt", "application/x-subrip"
+"sru", "application/sru+xml"
+"srx", "application/sparql-results+xml"
+"ssdl", "application/ssdl+xml"
+"sse", "application/vnd.kodak-descriptor"
+"ssf", "application/vnd.epson.ssf"
+"ssml", "application/ssml+xml"
+"st", "application/vnd.sailingtracker.track"
+"stc", "application/vnd.sun.xml.calc.template"
+"std", "application/vnd.sun.xml.draw.template"
+"stf", "application/vnd.wt.stf"
+"sti", "application/vnd.sun.xml.impress.template"
+"stk", "application/hyperstudio"
+"stl", "application/vnd.ms-pki.stl"
+"str", "application/vnd.pg.format"
+"stw", "application/vnd.sun.xml.writer.template"
+"sub", "image/vnd.dvb.subtitle"
+"sus", "application/vnd.sus-calendar"
+"susp", "application/vnd.sus-calendar"
+"sv4cpio", "application/x-sv4cpio"
+"sv4crc", "application/x-sv4crc"
+"svc", "application/vnd.dvb.service"
+"svd", "application/vnd.svd"
+"svg", "image/svg+xml"
+"svgz", "image/svg+xml"
+"swa", "application/x-director"
+"swf", "application/x-shockwave-flash"
+"swi", "application/vnd.aristanetworks.swi"
+"sxc", "application/vnd.sun.xml.calc"
+"sxd", "application/vnd.sun.xml.draw"
+"sxg", "application/vnd.sun.xml.writer.global"
+"sxi", "application/vnd.sun.xml.impress"
+"sxm", "application/vnd.sun.xml.math"
+"sxw", "application/vnd.sun.xml.writer"
+"t", "text/troff"
+"t3", "application/x-t3vm-image"
+"taglet", "application/vnd.mynfc"
+"tao", "application/vnd.tao.intent-module-archive"
+"tar", "application/x-tar"
+"tcap", "application/vnd.3gpp2.tcap"
+"tcl", "application/x-tcl"
+"teacher", "application/vnd.smart.teacher"
+"tei", "application/tei+xml"
+"teicorpus", "application/tei+xml"
+"tex", "application/x-tex"
+"texi", "application/x-texinfo"
+"texinfo", "application/x-texinfo"
+"text", "text/plain"
+"tfi", "application/thraud+xml"
+"tfm", "application/x-tex-tfm"
+"tga", "image/x-tga"
+"tgs", "application/x-tgsticker"
+"tgv", "application/x-tgwallpattern"
+"thmx", "application/vnd.ms-officetheme"
+"tif", "image/tiff"
+"tiff", "image/tiff"
+"tmo", "application/vnd.tmobile-livetv"
+"torrent", "application/x-bittorrent"
+"tpl", "application/vnd.groove-tool-template"
+"tpt", "application/vnd.trid.tpt"
+"tr", "text/troff"
+"tra", "application/vnd.trueapp"
+"trm", "application/x-msterminal"
+"tsd", "application/timestamped-data"
+"tsv", "text/tab-separated-values"
+"ttc", "font/collection"
+"ttf", "font/ttf"
+"ttl", "text/turtle"
+"twd", "application/vnd.simtech-mindmapper"
+"twds", "application/vnd.simtech-mindmapper"
+"txd", "application/vnd.genomatix.tuxedo"
+"txf", "application/vnd.mobius.txf"
+"txt", "text/plain"
+"u32", "application/x-authorware-bin"
+"udeb", "application/x-debian-package"
+"ufd", "application/vnd.ufdl"
+"ufdl", "application/vnd.ufdl"
+"ulx", "application/x-glulx"
+"umj", "application/vnd.umajin"
+"unityweb", "application/vnd.unity"
+"uoml", "application/vnd.uoml+xml"
+"uri", "text/uri-list"
+"uris", "text/uri-list"
+"urls", "text/uri-list"
+"ustar", "application/x-ustar"
+"utz", "application/vnd.uiq.theme"
+"uu", "text/x-uuencode"
+"uva", "audio/vnd.dece.audio"
+"uvd", "application/vnd.dece.data"
+"uvf", "application/vnd.dece.data"
+"uvg", "image/vnd.dece.graphic"
+"uvh", "video/vnd.dece.hd"
+"uvi", "image/vnd.dece.graphic"
+"uvm", "video/vnd.dece.mobile"
+"uvp", "video/vnd.dece.pd"
+"uvs", "video/vnd.dece.sd"
+"uvt", "application/vnd.dece.ttml+xml"
+"uvu", "video/vnd.uvvu.mp4"
+"uvv", "video/vnd.dece.video"
+"uvva", "audio/vnd.dece.audio"
+"uvvd", "application/vnd.dece.data"
+"uvvf", "application/vnd.dece.data"
+"uvvg", "image/vnd.dece.graphic"
+"uvvh", "video/vnd.dece.hd"
+"uvvi", "image/vnd.dece.graphic"
+"uvvm", "video/vnd.dece.mobile"
+"uvvp", "video/vnd.dece.pd"
+"uvvs", "video/vnd.dece.sd"
+"uvvt", "application/vnd.dece.ttml+xml"
+"uvvu", "video/vnd.uvvu.mp4"
+"uvvv", "video/vnd.dece.video"
+"uvvx", "application/vnd.dece.unspecified"
+"uvvz", "application/vnd.dece.zip"
+"uvx", "application/vnd.dece.unspecified"
+"uvz", "application/vnd.dece.zip"
+"vcard", "text/vcard"
+"vcd", "application/x-cdlink"
+"vcf", "text/x-vcard"
+"vcg", "application/vnd.groove-vcard"
+"vcs", "text/x-vcalendar"
+"vcx", "application/vnd.vcx"
+"vis", "application/vnd.visionary"
+"viv", "video/vnd.vivo"
+"vob", "video/x-ms-vob"
+"vor", "application/vnd.stardivision.writer"
+"vox", "application/x-authorware-bin"
+"vrml", "model/vrml"
+"vsd", "application/vnd.visio"
+"vsf", "application/vnd.vsf"
+"vss", "application/vnd.visio"
+"vst", "application/vnd.visio"
+"vsw", "application/vnd.visio"
+"vtu", "model/vnd.vtu"
+"vxml", "application/voicexml+xml"
+"w3d", "application/x-director"
+"wad", "application/x-doom"
+"wav", "audio/x-wav"
+"wax", "audio/x-ms-wax"
+"wbmp", "image/vnd.wap.wbmp"
+"wbs", "application/vnd.criticaltools.wbs+xml"
+"wbxml", "application/vnd.wap.wbxml"
+"wcm", "application/vnd.ms-works"
+"wdb", "application/vnd.ms-works"
+"wdp", "image/vnd.ms-photo"
+"weba", "audio/webm"
+"webm", "video/webm"
+"webp", "image/webp"
+"wg", "application/vnd.pmi.widget"
+"wgt", "application/widget"
+"wks", "application/vnd.ms-works"
+"wm", "video/x-ms-wm"
+"wma", "audio/x-ms-wma"
+"wmd", "application/x-ms-wmd"
+"wmf", "application/x-msmetafile"
+"wml", "text/vnd.wap.wml"
+"wmlc", "application/vnd.wap.wmlc"
+"wmls", "text/vnd.wap.wmlscript"
+"wmlsc", "application/vnd.wap.wmlscriptc"
+"wmv", "video/x-ms-wmv"
+"wmx", "video/x-ms-wmx"
+"wmz", "application/x-ms-wmz"
+"woff", "font/woff"
+"woff2", "font/woff2"
+"wpd", "application/vnd.wordperfect"
+"wpl", "application/vnd.ms-wpl"
+"wps", "application/vnd.ms-works"
+"wqd", "application/vnd.wqd"
+"wri", "application/x-mswrite"
+"wrl", "model/vrml"
+"wsdl", "application/wsdl+xml"
+"wspolicy", "application/wspolicy+xml"
+"wtb", "application/vnd.webturbo"
+"wvx", "video/x-ms-wvx"
+"x32", "application/x-authorware-bin"
+"x3d", "model/x3d+xml"
+"x3db", "model/x3d+binary"
+"x3dbz", "model/x3d+binary"
+"x3dv", "model/x3d+vrml"
+"x3dvz", "model/x3d+vrml"
+"x3dz", "model/x3d+xml"
+"xaml", "application/xaml+xml"
+"xap", "application/x-silverlight-app"
+"xar", "application/vnd.xara"
+"xbap", "application/x-ms-xbap"
+"xbd", "application/vnd.fujixerox.docuworks.binder"
+"xbm", "image/x-xbitmap"
+"xdf", "application/xcap-diff+xml"
+"xdm", "application/vnd.syncml.dm+xml"
+"xdp", "application/vnd.adobe.xdp+xml"
+"xdssc", "application/dssc+xml"
+"xdw", "application/vnd.fujixerox.docuworks"
+"xenc", "application/xenc+xml"
+"xer", "application/patch-ops-error+xml"
+"xfdf", "application/vnd.adobe.xfdf"
+"xfdl", "application/vnd.xfdl"
+"xht", "application/xhtml+xml"
+"xhtml", "application/xhtml+xml"
+"xhvml", "application/xv+xml"
+"xif", "image/vnd.xiff"
+"xla", "application/vnd.ms-excel"
+"xlam", "application/vnd.ms-excel.addin.macroenabled.12"
+"xlc", "application/vnd.ms-excel"
+"xlf", "application/x-xliff+xml"
+"xlm", "application/vnd.ms-excel"
+"xls", "application/vnd.ms-excel"
+"xlsb", "application/vnd.ms-excel.sheet.binary.macroenabled.12"
+"xlsm", "application/vnd.ms-excel.sheet.macroenabled.12"
+"xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+"xlt", "application/vnd.ms-excel"
+"xltm", "application/vnd.ms-excel.template.macroenabled.12"
+"xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"
+"xlw", "application/vnd.ms-excel"
+"xm", "audio/xm"
+"xml", "application/xml"
+"xo", "application/vnd.olpc-sugar"
+"xop", "application/xop+xml"
+"xpi", "application/x-xpinstall"
+"xpl", "application/xproc+xml"
+"xpm", "image/x-xpixmap"
+"xpr", "application/vnd.is-xpr"
+"xps", "application/vnd.ms-xpsdocument"
+"xpw", "application/vnd.intercon.formnet"
+"xpx", "application/vnd.intercon.formnet"
+"xsl", "application/xml"
+"xslt", "application/xslt+xml"
+"xsm", "application/vnd.syncml+xml"
+"xspf", "application/xspf+xml"
+"xul", "application/vnd.mozilla.xul+xml"
+"xvm", "application/xv+xml"
+"xvml", "application/xv+xml"
+"xwd", "image/x-xwindowdump"
+"xyz", "chemical/x-xyz"
+"xz", "application/x-xz"
+"yang", "application/yang"
+"yin", "application/yin+xml"
+"z1", "application/x-zmachine"
+"z2", "application/x-zmachine"
+"z3", "application/x-zmachine"
+"z4", "application/x-zmachine"
+"z5", "application/x-zmachine"
+"z6", "application/x-zmachine"
+"z7", "application/x-zmachine"
+"z8", "application/x-zmachine"
+"zaz", "application/vnd.zzazz.deck+xml"
+"zip", "application/zip"
+"zir", "application/vnd.zul"
+"zirz", "application/vnd.zul"
+"zmm", "application/vnd.handheld-entertainment+xml"
+%%
+const char *extension_to_mime_type(const char *extension, size_t extension_len) {
+ const auto &result = search_extension(extension, extension_len);
+ if (result == nullptr) {
+ return nullptr;
+ }
+
+ return result->mime_type;
+}
diff --git a/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.cpp b/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.cpp
new file mode 100644
index 0000000000..77af524d83
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.cpp
@@ -0,0 +1,3031 @@
+/* ANSI-C code produced by gperf version 3.1 */
+/* Command-line: 'W:\\Test\\td\\vcpkg\\installed\\x64-windows\\tools\\gperf.exe' -m100 --output-file=auto/mime_type_to_extension.cpp auto/mime_type_to_extension.gperf */
+/* Computed positions: -k'1,6-7,9-10,13-18,20,23,25-26,31,36,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
+#endif
+
+#line 12 "auto/mime_type_to_extension.gperf"
+struct mime_type_and_extension {
+ const char *mime_type;
+ const char *extension;
+};
+#include <string.h>
+/* maximum key range = 4605, duplicates = 0 */
+
+#ifndef GPERF_DOWNCASE
+#define GPERF_DOWNCASE 1
+static unsigned char gperf_downcase[256] =
+ {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255
+ };
+#endif
+
+#ifndef GPERF_CASE_STRCMP
+#define GPERF_CASE_STRCMP 1
+static int
+gperf_case_strcmp (register const char *s1, register const char *s2)
+{
+ for (;;)
+ {
+ unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
+ unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
+ if (c1 != 0 && c1 == c2)
+ continue;
+ return (int)c1 - (int)c2;
+ }
+}
+#endif
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+mime_type_hash (register const char *str, register size_t len)
+{
+ static const unsigned short asso_values[] =
+ {
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 885, 4686, 246, 74, 610, 13, 13,
+ 208, 32, 14, 17, 23, 15, 12, 12, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 15, 927, 27, 48, 15,
+ 336, 654, 914, 13, 766, 1405, 205, 14, 12, 14,
+ 13, 30, 37, 12, 22, 755, 34, 1200, 156, 1446,
+ 392, 4686, 4686, 4686, 4686, 4686, 4686, 15, 927, 27,
+ 48, 15, 336, 654, 914, 13, 766, 1405, 205, 14,
+ 12, 14, 13, 30, 37, 12, 22, 755, 34, 1200,
+ 156, 1446, 392, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
+ 4686, 4686, 4686, 4686, 4686, 4686
+ };
+ register unsigned int hval = len;
+
+ switch (hval)
+ {
+ default:
+ hval += asso_values[(unsigned char)str[35]];
+ /*FALLTHROUGH*/
+ case 35:
+ case 34:
+ case 33:
+ case 32:
+ case 31:
+ hval += asso_values[(unsigned char)str[30]];
+ /*FALLTHROUGH*/
+ case 30:
+ case 29:
+ case 28:
+ case 27:
+ case 26:
+ hval += asso_values[(unsigned char)str[25]];
+ /*FALLTHROUGH*/
+ case 25:
+ hval += asso_values[(unsigned char)str[24]];
+ /*FALLTHROUGH*/
+ case 24:
+ case 23:
+ hval += asso_values[(unsigned char)str[22]];
+ /*FALLTHROUGH*/
+ case 22:
+ case 21:
+ case 20:
+ hval += asso_values[(unsigned char)str[19]];
+ /*FALLTHROUGH*/
+ case 19:
+ case 18:
+ hval += asso_values[(unsigned char)str[17]];
+ /*FALLTHROUGH*/
+ case 17:
+ hval += asso_values[(unsigned char)str[16]];
+ /*FALLTHROUGH*/
+ case 16:
+ hval += asso_values[(unsigned char)str[15]];
+ /*FALLTHROUGH*/
+ case 15:
+ hval += asso_values[(unsigned char)str[14]];
+ /*FALLTHROUGH*/
+ case 14:
+ hval += asso_values[(unsigned char)str[13]];
+ /*FALLTHROUGH*/
+ case 13:
+ hval += asso_values[(unsigned char)str[12]];
+ /*FALLTHROUGH*/
+ case 12:
+ case 11:
+ case 10:
+ hval += asso_values[(unsigned char)str[9]];
+ /*FALLTHROUGH*/
+ case 9:
+ hval += asso_values[(unsigned char)str[8]];
+ /*FALLTHROUGH*/
+ case 8:
+ case 7:
+ hval += asso_values[(unsigned char)str[6]];
+ /*FALLTHROUGH*/
+ case 6:
+ hval += asso_values[(unsigned char)str[5]];
+ /*FALLTHROUGH*/
+ case 5:
+ case 4:
+ case 3:
+ case 2:
+ case 1:
+ hval += asso_values[(unsigned char)str[0]];
+ break;
+ }
+ return hval + asso_values[(unsigned char)str[len - 1]];
+}
+
+const struct mime_type_and_extension *
+search_mime_type (register const char *str, register size_t len)
+{
+ enum
+ {
+ TOTAL_KEYWORDS = 779,
+ MIN_WORD_LENGTH = 7,
+ MAX_WORD_LENGTH = 73,
+ MIN_HASH_VALUE = 81,
+ MAX_HASH_VALUE = 4685
+ };
+
+ static const struct mime_type_and_extension wordlist[] =
+ {
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 716 "auto/mime_type_to_extension.gperf"
+ {"text/css", "css"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 717 "auto/mime_type_to_extension.gperf"
+ {"text/csv", "csv"},
+ {"",nullptr},
+#line 719 "auto/mime_type_to_extension.gperf"
+ {"text/n3", "n3"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 65 "auto/mime_type_to_extension.gperf"
+ {"application/mp4", "mp4s"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 715 "auto/mime_type_to_extension.gperf"
+ {"text/calendar", "ics"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 110 "auto/mime_type_to_extension.gperf"
+ {"application/sdp", "sdp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 69 "auto/mime_type_to_extension.gperf"
+ {"application/oda", "oda"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 73 "auto/mime_type_to_extension.gperf"
+ {"application/onenote", "onetoc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 54 "auto/mime_type_to_extension.gperf"
+ {"application/marc", "mrc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 728 "auto/mime_type_to_extension.gperf"
+ {"text/vcard", "vcard"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 90 "auto/mime_type_to_extension.gperf"
+ {"application/postscript", "ai"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 33 "auto/mime_type_to_extension.gperf"
+ {"application/ecmascript", "es"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 720 "auto/mime_type_to_extension.gperf"
+ {"text/plain", "txt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 36 "auto/mime_type_to_extension.gperf"
+ {"application/exi", "exi"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 74 "auto/mime_type_to_extension.gperf"
+ {"application/oxps", "oxps"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 323 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-ims", "ims"},
+ {"",nullptr}, {"",nullptr},
+#line 387 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.palm", "pdb"},
+#line 410 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sema", "sema"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 194 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.enliven", "nml"},
+#line 385 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.osgi.dp", "dp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 260 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.intergeo", "i2g"},
+#line 185 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dna", "dna"},
+#line 459 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.visio", "vsd"},
+ {"",nullptr}, {"",nullptr},
+#line 124 "auto/mime_type_to_extension.gperf"
+ {"application/timestamped-data", "tsd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 340 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mseq", "mseq"},
+ {"",nullptr},
+#line 296 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mcd", "mcd"},
+#line 64 "auto/mime_type_to_extension.gperf"
+ {"application/mp21", "m21"},
+ {"",nullptr},
+#line 388 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.pawaafile", "paw"},
+ {"",nullptr},
+#line 442 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.svd", "svd"},
+ {"",nullptr},
+#line 266 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.isac.fcs", "fcs"},
+ {"",nullptr}, {"",nullptr},
+#line 133 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.acucorp", "atc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 452 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.trueapp", "tra"},
+ {"",nullptr}, {"",nullptr},
+#line 738 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.in3d.spot", "spot"},
+#line 178 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dart", "dart"},
+#line 183 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dece.zip", "uvz"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 328 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-powerpoint", "ppt"},
+ {"",nullptr}, {"",nullptr},
+#line 325 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-officetheme", "thmx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 256 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.immervision-ivp", "ivp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 411 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.semd", "semd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 180 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dece.data", "uvf"},
+ {"",nullptr}, {"",nullptr},
+#line 165 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.commonspace", "csp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 297 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.medcalcdata", "mc1"},
+ {"",nullptr}, {"",nullptr},
+#line 363 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.image", "odi"},
+#line 450 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.trid.tpt", "tpt"},
+ {"",nullptr}, {"",nullptr},
+#line 365 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.presentation", "odp"},
+ {"",nullptr}, {"",nullptr},
+#line 396 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.proteus.magazine", "mgz"},
+#line 197 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.epson.quickanime", "qam"},
+#line 364 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.image-template", "oti"},
+#line 129 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.3m.post-it-notes", "pwn"},
+ {"",nullptr},
+#line 367 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.spreadsheet", "ods"},
+#line 305 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mobius.dis", "dis"},
+#line 368 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.spreadsheet-template", "ots"},
+#line 369 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.text", "odt"},
+#line 366 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.presentation-template", "otp"},
+#line 371 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.text-template", "ott"},
+ {"",nullptr}, {"",nullptr},
+#line 398 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.pvi.ptid1", "ptid"},
+#line 356 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.chart", "odc"},
+ {"",nullptr},
+#line 357 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.chart-template", "otc"},
+ {"",nullptr}, {"",nullptr},
+#line 448 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.tcpdump.pcap", "pcap"},
+ {"",nullptr},
+#line 419 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.smart.teacher", "teacher"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 352 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.nokia.radio-presets", "rpss"},
+ {"",nullptr}, {"",nullptr},
+#line 370 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.text-master", "odm"},
+#line 358 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.database", "odb"},
+#line 425 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.stardivision.impress", "sdd"},
+#line 423 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.stardivision.calc", "sdc"},
+#line 326 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-pki.seccat", "cat"},
+#line 743 "auto/mime_type_to_extension.gperf"
+ {"text/x-c", "c"},
+#line 351 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.nokia.radio-preset", "rpst"},
+ {"",nullptr},
+#line 422 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.spotfire.sfs", "sfs"},
+#line 429 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.stepmania.package", "smzip"},
+#line 451 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.triscape.mxs", "mxs"},
+#line 182 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dece.unspecified", "uvx"},
+ {"",nullptr},
+#line 131 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.accpac.simply.imp", "imp"},
+#line 152 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.astraea-software.iota", "iota"},
+ {"",nullptr},
+#line 130 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.accpac.simply.aso", "aso"},
+ {"",nullptr}, {"",nullptr},
+#line 470 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.xara", "xar"},
+#line 742 "auto/mime_type_to_extension.gperf"
+ {"text/x-asm", "asm"},
+#line 190 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dvb.ait", "ait"},
+#line 168 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.crick.clicker", "clkx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 430 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.stepmania.stepchart", "sm"},
+ {"",nullptr},
+#line 392 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.pmi.widget", "wg"},
+ {"",nullptr},
+#line 458 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.vcx", "vcx"},
+ {"",nullptr}, {"",nullptr},
+#line 427 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.stardivision.writer", "sdw"},
+#line 265 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.is-xpr", "xpr"},
+ {"",nullptr}, {"",nullptr},
+#line 404 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.rim.cod", "cod"},
+ {"",nullptr},
+#line 170 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.crick.clicker.palette", "clkp"},
+ {"",nullptr},
+#line 421 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.spotfire.dxp", "dxp"},
+#line 171 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.crick.clicker.template", "clkt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 68 "auto/mime_type_to_extension.gperf"
+ {"application/octet-stream", "bin"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 27 "auto/mime_type_to_extension.gperf"
+ {"application/cdmi-queue", "cdmiq"},
+ {"",nullptr}, {"",nullptr},
+#line 391 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.picsel", "efif"},
+#line 750 "auto/mime_type_to_extension.gperf"
+ {"text/x-setext", "etx"},
+#line 324 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-lrm", "lrm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 754 "auto/mime_type_to_extension.gperf"
+ {"text/x-vcard", "vcf"},
+#line 191 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dvb.service", "svc"},
+#line 744 "auto/mime_type_to_extension.gperf"
+ {"text/x-fortran", "f"},
+ {"",nullptr},
+#line 607 "auto/mime_type_to_extension.gperf"
+ {"application/zip", "zip"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 111 "auto/mime_type_to_extension.gperf"
+ {"application/set-payment-initiation", "setpay"},
+#line 316 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-excel", "xls"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 25 "auto/mime_type_to_extension.gperf"
+ {"application/cdmi-domain", "cdmid"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 18 "auto/mime_type_to_extension.gperf"
+ {"application/applixware", "aw"},
+ {"",nullptr},
+#line 52 "auto/mime_type_to_extension.gperf"
+ {"application/mac-compactpro", "cpt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 540 "auto/mime_type_to_extension.gperf"
+ {"application/x-mie", "mie"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 132 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.acucobol", "acu"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 198 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.epson.salt", "slt"},
+#line 516 "auto/mime_type_to_extension.gperf"
+ {"application/x-eva", "eva"},
+ {"",nullptr}, {"",nullptr},
+#line 505 "auto/mime_type_to_extension.gperf"
+ {"application/x-cpio", "cpio"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 729 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.curl", "curl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 24 "auto/mime_type_to_extension.gperf"
+ {"application/cdmi-container", "cdmic"},
+ {"",nullptr},
+#line 112 "auto/mime_type_to_extension.gperf"
+ {"application/set-registration-initiation", "setreg"},
+#line 161 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.cloanto.rp9", "rp9"},
+#line 547 "auto/mime_type_to_extension.gperf"
+ {"application/x-msaccess", "mdb"},
+ {"",nullptr}, {"",nullptr},
+#line 167 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.cosmocaller", "cmc"},
+ {"",nullptr},
+#line 510 "auto/mime_type_to_extension.gperf"
+ {"application/x-doom", "wad"},
+ {"",nullptr}, {"",nullptr},
+#line 514 "auto/mime_type_to_extension.gperf"
+ {"application/x-dvi", "dvi"},
+ {"",nullptr},
+#line 577 "auto/mime_type_to_extension.gperf"
+ {"application/x-tads", "gam"},
+#line 578 "auto/mime_type_to_extension.gperf"
+ {"application/x-tar", "tar"},
+ {"",nullptr},
+#line 159 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.cinderella", "cdy"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 332 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-powerpoint.slideshow.macroenabled.12", "ppsm"},
+#line 574 "auto/mime_type_to_extension.gperf"
+ {"application/x-sv4cpio", "sv4cpio"},
+ {"",nullptr}, {"",nullptr},
+#line 330 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-powerpoint.presentation.macroenabled.12", "pptm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 753 "auto/mime_type_to_extension.gperf"
+ {"text/x-vcalendar", "vcs"},
+#line 333 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-powerpoint.template.macroenabled.12", "potm"},
+ {"",nullptr},
+#line 303 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mif", "mif"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 575 "auto/mime_type_to_extension.gperf"
+ {"application/x-sv4crc", "sv4crc"},
+#line 300 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mfmp", "mfm"},
+#line 405 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.rn-realmedia", "rm"},
+ {"",nullptr}, {"",nullptr},
+#line 309 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mobius.plc", "plc"},
+#line 461 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.vsf", "vsf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 646 "auto/mime_type_to_extension.gperf"
+ {"font/collection", "ttc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 747 "auto/mime_type_to_extension.gperf"
+ {"text/x-opml", "opml"},
+ {"",nullptr}, {"",nullptr},
+#line 664 "auto/mime_type_to_extension.gperf"
+ {"image/sgi", "sgi"},
+#line 79 "auto/mime_type_to_extension.gperf"
+ {"application/pics-rules", "prf"},
+#line 315 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-cab-compressed", "cab"},
+#line 551 "auto/mime_type_to_extension.gperf"
+ {"application/x-msdownload", "exe"},
+#line 614 "auto/mime_type_to_extension.gperf"
+ {"audio/s3m", "s3m"},
+ {"",nullptr},
+#line 611 "auto/mime_type_to_extension.gperf"
+ {"audio/mp4", "m4a"},
+ {"",nullptr},
+#line 331 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-powerpoint.slide.macroenabled.12", "sldm"},
+#line 598 "auto/mime_type_to_extension.gperf"
+ {"application/xml", "xml"},
+#line 509 "auto/mime_type_to_extension.gperf"
+ {"application/x-director", "dir"},
+#line 329 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-powerpoint.addin.macroenabled.12", "ppam"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 702 "auto/mime_type_to_extension.gperf"
+ {"model/iges", "igs"},
+#line 652 "auto/mime_type_to_extension.gperf"
+ {"image/cgm", "cgm"},
+#line 401 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.recordare.musicxml", "mxl"},
+ {"",nullptr}, {"",nullptr},
+#line 320 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-excel.template.macroenabled.12", "xltm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 764 "auto/mime_type_to_extension.gperf"
+ {"video/mp4", "mp4"},
+#line 299 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mfer", "mwf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 608 "auto/mime_type_to_extension.gperf"
+ {"audio/adpcm", "adp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 647 "auto/mime_type_to_extension.gperf"
+ {"font/otf", "otf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 610 "auto/mime_type_to_extension.gperf"
+ {"audio/midi", "midi"},
+#line 648 "auto/mime_type_to_extension.gperf"
+ {"font/ttf", "ttf"},
+#line 755 "auto/mime_type_to_extension.gperf"
+ {"video/3gpp", "3gp"},
+#line 409 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.seemail", "see"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 319 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-excel.sheet.macroenabled.12", "xlsm"},
+ {"",nullptr}, {"",nullptr},
+#line 317 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-excel.addin.macroenabled.12", "xlam"},
+ {"",nullptr}, {"",nullptr},
+#line 359 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.formula", "odf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 375 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.openofficeorg.extension", "oxt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 360 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.formula-template", "odft"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 318 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-excel.sheet.binary.macroenabled.12", "xlsb"},
+ {"",nullptr}, {"",nullptr},
+#line 208 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.framemaker", "fm"},
+#line 107 "auto/mime_type_to_extension.gperf"
+ {"application/scvp-cv-response", "scs"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 109 "auto/mime_type_to_extension.gperf"
+ {"application/scvp-vp-response", "spp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 205 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fdsn.seed", "seed"},
+#line 259 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.intercon.formnet", "xpw"},
+#line 767 "auto/mime_type_to_extension.gperf"
+ {"video/quicktime", "mov"},
+ {"",nullptr},
+#line 43 "auto/mime_type_to_extension.gperf"
+ {"application/ipfix", "ipfix"},
+ {"",nullptr},
+#line 550 "auto/mime_type_to_extension.gperf"
+ {"application/x-msclip", "clp"},
+#line 482 "auto/mime_type_to_extension.gperf"
+ {"application/voicexml+xml", "vxml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 106 "auto/mime_type_to_extension.gperf"
+ {"application/scvp-cv-request", "scq"},
+ {"",nullptr},
+#line 204 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fdsn.mseed", "mseed"},
+#line 746 "auto/mime_type_to_extension.gperf"
+ {"text/x-nfo", "nfo"},
+#line 737 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.in3d.3dml", "3dml"},
+#line 553 "auto/mime_type_to_extension.gperf"
+ {"application/x-msmetafile", "wmf"},
+ {"",nullptr},
+#line 108 "auto/mime_type_to_extension.gperf"
+ {"application/scvp-vp-request", "spq"},
+#line 639 "auto/mime_type_to_extension.gperf"
+ {"audio/xm", "xm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 557 "auto/mime_type_to_extension.gperf"
+ {"application/x-msterminal", "trm"},
+#line 37 "auto/mime_type_to_extension.gperf"
+ {"application/font-tdpfr", "pfr"},
+#line 149 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.apple.installer+xml", "mpkg"},
+#line 556 "auto/mime_type_to_extension.gperf"
+ {"application/x-msschedule", "scd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 308 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mobius.msl", "msl"},
+ {"",nullptr},
+#line 708 "auto/mime_type_to_extension.gperf"
+ {"model/vnd.mts", "mts"},
+#line 619 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.dts", "dts"},
+ {"",nullptr},
+#line 626 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.rip", "rip"},
+ {"",nullptr}, {"",nullptr},
+#line 327 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-pki.stl", "stl"},
+#line 618 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.dra", "dra"},
+ {"",nullptr}, {"",nullptr},
+#line 117 "auto/mime_type_to_extension.gperf"
+ {"application/srgs", "gram"},
+ {"",nullptr}, {"",nullptr},
+#line 104 "auto/mime_type_to_extension.gperf"
+ {"application/rtf", "rtf"},
+ {"",nullptr},
+#line 76 "auto/mime_type_to_extension.gperf"
+ {"application/pdf", "pdf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 675 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.fst", "fst"},
+ {"",nullptr},
+#line 751 "auto/mime_type_to_extension.gperf"
+ {"text/x-sfv", "sfv"},
+#line 691 "auto/mime_type_to_extension.gperf"
+ {"image/x-pict", "pic"},
+ {"",nullptr}, {"",nullptr},
+#line 599 "auto/mime_type_to_extension.gperf"
+ {"application/xml-dtd", "dtd"},
+#line 688 "auto/mime_type_to_extension.gperf"
+ {"image/x-icon", "ico"},
+ {"",nullptr},
+#line 588 "auto/mime_type_to_extension.gperf"
+ {"application/x-x509-ca-cert", "der"},
+#line 549 "auto/mime_type_to_extension.gperf"
+ {"application/x-mscardfile", "crd"},
+ {"",nullptr},
+#line 402 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.recordare.musicxml+xml", "musicxml"},
+#line 628 "auto/mime_type_to_extension.gperf"
+ {"audio/x-aac", "aac"},
+ {"",nullptr}, {"",nullptr},
+#line 580 "auto/mime_type_to_extension.gperf"
+ {"application/x-tex", "tex"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 535 "auto/mime_type_to_extension.gperf"
+ {"application/x-install-instructions", "install"},
+#line 774 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.fvt", "fvt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 347 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.noblenet-sealer", "nns"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 635 "auto/mime_type_to_extension.gperf"
+ {"audio/x-ms-wma", "wma"},
+ {"",nullptr},
+#line 788 "auto/mime_type_to_extension.gperf"
+ {"video/x-ms-wm", "wm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 794 "auto/mime_type_to_extension.gperf"
+ {"video/x-smv", "smv"},
+ {"",nullptr},
+#line 783 "auto/mime_type_to_extension.gperf"
+ {"video/x-m4v", "m4v"},
+#line 748 "auto/mime_type_to_extension.gperf"
+ {"text/x-pascal", "pas"},
+ {"",nullptr},
+#line 778 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.vivo", "viv"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 543 "auto/mime_type_to_extension.gperf"
+ {"application/x-ms-shortcut", "lnk"},
+ {"",nullptr},
+#line 684 "auto/mime_type_to_extension.gperf"
+ {"image/x-3ds", "3ds"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 542 "auto/mime_type_to_extension.gperf"
+ {"application/x-ms-application", "application"},
+#line 301 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.micrografx.flo", "flo"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 377 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.openxmlformats-officedocument.presentationml.slide", "sldx"},
+#line 254 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.iccprofile", "icc"},
+#line 381 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.openxmlformats-officedocument.spreadsheetml.template", "xltx"},
+#line 379 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.openxmlformats-officedocument.presentationml.template", "potx"},
+#line 376 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.openxmlformats-officedocument.presentationml.presentation", "pptx"},
+#line 383 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.openxmlformats-officedocument.wordprocessingml.template", "dotx"},
+#line 380 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlsx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 428 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.stardivision.writer-global", "sgl"},
+#line 382 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "docx"},
+ {"",nullptr}, {"",nullptr},
+#line 48 "auto/mime_type_to_extension.gperf"
+ {"application/json", "json"},
+ {"",nullptr},
+#line 538 "auto/mime_type_to_extension.gperf"
+ {"application/x-latex", "latex"},
+ {"",nullptr}, {"",nullptr},
+#line 756 "auto/mime_type_to_extension.gperf"
+ {"video/3gpp2", "3g2"},
+#line 789 "auto/mime_type_to_extension.gperf"
+ {"video/x-ms-wmv", "wmv"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 792 "auto/mime_type_to_extension.gperf"
+ {"video/x-msvideo", "avi"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 489 "auto/mime_type_to_extension.gperf"
+ {"application/x-ace-compressed", "ace"},
+#line 67 "auto/mime_type_to_extension.gperf"
+ {"application/mxf", "mxf"},
+ {"",nullptr}, {"",nullptr},
+#line 525 "auto/mime_type_to_extension.gperf"
+ {"application/x-font-type1", "pfa"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 570 "auto/mime_type_to_extension.gperf"
+ {"application/x-sql", "sql"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 285 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.las.las+xml", "lasxml"},
+ {"",nullptr},
+#line 579 "auto/mime_type_to_extension.gperf"
+ {"application/x-tcl", "tcl"},
+#line 546 "auto/mime_type_to_extension.gperf"
+ {"application/x-ms-xbap", "xbap"},
+#line 374 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oma.dd2+xml", "dd2"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 345 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.nitf", "ntf"},
+#line 418 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.smaf", "mmf"},
+#line 412 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.semf", "semf"},
+#line 564 "auto/mime_type_to_extension.gperf"
+ {"application/x-rar-compressed", "rar"},
+ {"",nullptr},
+#line 527 "auto/mime_type_to_extension.gperf"
+ {"application/x-freearc", "arc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 504 "auto/mime_type_to_extension.gperf"
+ {"application/x-conference", "nsc"},
+ {"",nullptr}, {"",nullptr},
+#line 226 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.geoplan", "g2w"},
+ {"",nullptr}, {"",nullptr},
+#line 593 "auto/mime_type_to_extension.gperf"
+ {"application/x-zmachine", "z1"},
+ {"",nullptr},
+#line 690 "auto/mime_type_to_extension.gperf"
+ {"image/x-pcx", "pcx"},
+#line 686 "auto/mime_type_to_extension.gperf"
+ {"image/x-cmx", "cmx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 203 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fdf", "fdf"},
+ {"",nullptr}, {"",nullptr},
+#line 174 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ctc-posml", "pml"},
+ {"",nullptr},
+#line 390 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.pg.osasli", "ei6"},
+ {"",nullptr}, {"",nullptr},
+#line 227 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.geospace", "g3w"},
+#line 225 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.geonext", "gxt"},
+#line 144 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.amiga.ami", "ami"},
+ {"",nullptr},
+#line 199 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.epson.ssf", "ssf"},
+ {"",nullptr},
+#line 196 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.epson.msf", "msf"},
+#line 195 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.epson.esf", "esf"},
+ {"",nullptr}, {"",nullptr},
+#line 255 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.igloader", "igl"},
+#line 47 "auto/mime_type_to_extension.gperf"
+ {"application/javascript", "js"},
+ {"",nullptr}, {"",nullptr},
+#line 685 "auto/mime_type_to_extension.gperf"
+ {"image/x-cmu-raster", "ras"},
+ {"",nullptr},
+#line 621 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.lucent.voice", "lvp"},
+ {"",nullptr}, {"",nullptr},
+#line 699 "auto/mime_type_to_extension.gperf"
+ {"image/x-xpixmap", "xpm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 302 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.micrografx.igx", "igx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 349 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.nokia.n-gage.data", "ngdat"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 128 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.3gpp2.tcap", "tcap"},
+#line 771 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.dece.sd", "uvs"},
+#line 770 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.dece.pd", "uvp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 726 "auto/mime_type_to_extension.gperf"
+ {"text/turtle", "ttl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 361 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.graphics", "odg"},
+#line 772 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.dece.video", "uvv"},
+#line 166 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.contact.cmsg", "cdbcmsg"},
+#line 490 "auto/mime_type_to_extension.gperf"
+ {"application/x-apple-diskimage", "dmg"},
+ {"",nullptr},
+#line 582 "auto/mime_type_to_extension.gperf"
+ {"application/x-texinfo", "texinfo"},
+ {"",nullptr},
+#line 722 "auto/mime_type_to_extension.gperf"
+ {"text/richtext", "rtx"},
+#line 267 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.jam", "jam"},
+ {"",nullptr},
+#line 148 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.antix.game-component", "atx"},
+ {"",nullptr},
+#line 362 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.graphics-template", "otg"},
+ {"",nullptr}, {"",nullptr},
+#line 258 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.insors.igm", "igm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 269 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.jisp", "jisp"},
+#line 353 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.novadigm.edm", "edm"},
+ {"",nullptr},
+#line 304 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mobius.daf", "daf"},
+ {"",nullptr}, {"",nullptr},
+#line 763 "auto/mime_type_to_extension.gperf"
+ {"video/mj2", "mj2"},
+ {"",nullptr},
+#line 341 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.musician", "mus"},
+#line 355 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.novadigm.ext", "ext"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 710 "auto/mime_type_to_extension.gperf"
+ {"model/vrml", "wrl"},
+ {"",nullptr}, {"",nullptr},
+#line 228 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.gmx", "gmx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 725 "auto/mime_type_to_extension.gperf"
+ {"text/troff", "t"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 674 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.fpx", "fpx"},
+ {"",nullptr},
+#line 207 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fluxtime.clip", "ftc"},
+#line 723 "auto/mime_type_to_extension.gperf"
+ {"text/sgml", "sgml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 384 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.osgeo.mapguide.package", "mgp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 175 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.cups-ppd", "ppd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 591 "auto/mime_type_to_extension.gperf"
+ {"application/x-xpinstall", "xpi"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 678 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.ms-modi", "mdi"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 634 "auto/mime_type_to_extension.gperf"
+ {"audio/x-ms-wax", "wax"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 56 "auto/mime_type_to_extension.gperf"
+ {"application/mathematica", "ma"},
+#line 334 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-project", "mpp"},
+ {"",nullptr}, {"",nullptr},
+#line 629 "auto/mime_type_to_extension.gperf"
+ {"audio/x-aiff", "aif"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 454 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.uiq.theme", "utz"},
+ {"",nullptr},
+#line 790 "auto/mime_type_to_extension.gperf"
+ {"video/x-ms-wmx", "wmx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 630 "auto/mime_type_to_extension.gperf"
+ {"audio/x-caf", "caf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 471 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.xfdl", "xfdl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 179 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.data-vision.rdz", "rdz"},
+#line 791 "auto/mime_type_to_extension.gperf"
+ {"video/x-ms-wvx", "wvx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 780 "auto/mime_type_to_extension.gperf"
+ {"video/x-f4v", "f4v"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 706 "auto/mime_type_to_extension.gperf"
+ {"model/vnd.gdl", "gdl"},
+#line 28 "auto/mime_type_to_extension.gperf"
+ {"application/cu-seeme", "cu"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 640 "auto/mime_type_to_extension.gperf"
+ {"chemical/x-cdx", "cdx"},
+#line 31 "auto/mime_type_to_extension.gperf"
+ {"application/dssc+der", "dssc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 399 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.quark.quarkxpress", "qxd"},
+#line 77 "auto/mime_type_to_extension.gperf"
+ {"application/pgp-encrypted", "pgp"},
+ {"",nullptr}, {"",nullptr},
+#line 354 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.novadigm.edx", "edx"},
+#line 310 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mobius.txf", "txf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 155 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.bmi", "bmi"},
+ {"",nullptr},
+#line 46 "auto/mime_type_to_extension.gperf"
+ {"application/java-vm", "class"},
+ {"",nullptr},
+#line 29 "auto/mime_type_to_extension.gperf"
+ {"application/davmount+xml", "davmount"},
+ {"",nullptr}, {"",nullptr},
+#line 623 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.nuera.ecelp4800", "ecelp4800"},
+ {"",nullptr},
+#line 624 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.nuera.ecelp7470", "ecelp7470"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 523 "auto/mime_type_to_extension.gperf"
+ {"application/x-font-snf", "snf"},
+#line 522 "auto/mime_type_to_extension.gperf"
+ {"application/x-font-pcf", "pcf"},
+#line 521 "auto/mime_type_to_extension.gperf"
+ {"application/x-font-otf", "otf"},
+#line 625 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.nuera.ecelp9600", "ecelp9600"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 524 "auto/mime_type_to_extension.gperf"
+ {"application/x-font-ttf", "ttf"},
+#line 96 "auto/mime_type_to_extension.gperf"
+ {"application/resource-lists+xml", "rl"},
+ {"",nullptr}, {"",nullptr},
+#line 559 "auto/mime_type_to_extension.gperf"
+ {"application/x-netcdf", "nc"},
+#line 565 "auto/mime_type_to_extension.gperf"
+ {"application/x-research-info-systems", "ris"},
+#line 162 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.clonk.c4group", "c4g"},
+ {"",nullptr},
+#line 501 "auto/mime_type_to_extension.gperf"
+ {"application/x-cfs-compressed", "cfs"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 447 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.tao.intent-module-archive", "tao"},
+ {"",nullptr},
+#line 533 "auto/mime_type_to_extension.gperf"
+ {"application/x-gtar", "gtar"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 643 "auto/mime_type_to_extension.gperf"
+ {"chemical/x-cml", "cml"},
+ {"",nullptr},
+#line 44 "auto/mime_type_to_extension.gperf"
+ {"application/java-archive", "jar"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 26 "auto/mime_type_to_extension.gperf"
+ {"application/cdmi-object", "cdmio"},
+ {"",nullptr},
+#line 221 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.genomatix.tuxedo", "txd"},
+ {"",nullptr}, {"",nullptr},
+#line 536 "auto/mime_type_to_extension.gperf"
+ {"application/x-iso9660-image", "iso"},
+ {"",nullptr},
+#line 644 "auto/mime_type_to_extension.gperf"
+ {"chemical/x-csml", "csml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 139 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ahead.space", "ahead"},
+#line 236 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.groove-tool-message", "gtm"},
+#line 576 "auto/mime_type_to_extension.gperf"
+ {"application/x-t3vm-image", "t3"},
+ {"",nullptr},
+#line 581 "auto/mime_type_to_extension.gperf"
+ {"application/x-tex-tfm", "tfm"},
+#line 487 "auto/mime_type_to_extension.gperf"
+ {"application/x-7z-compressed", "7z"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 752 "auto/mime_type_to_extension.gperf"
+ {"text/x-uuencode", "uu"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 186 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dolby.mlp", "mlp"},
+#line 724 "auto/mime_type_to_extension.gperf"
+ {"text/tab-separated-values", "tsv"},
+ {"",nullptr},
+#line 232 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.groove-account", "gac"},
+ {"",nullptr},
+#line 237 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.groove-tool-template", "tpl"},
+ {"",nullptr}, {"",nullptr},
+#line 291 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.lotus-notes", "nsf"},
+#line 176 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.curl.car", "car"},
+#line 339 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-xpsdocument", "xps"},
+#line 659 "auto/mime_type_to_extension.gperf"
+ {"image/ief", "ief"},
+ {"",nullptr}, {"",nullptr},
+#line 584 "auto/mime_type_to_extension.gperf"
+ {"application/x-tgsticker", "tgs"},
+#line 238 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.groove-vcard", "vcg"},
+#line 727 "auto/mime_type_to_extension.gperf"
+ {"text/uri-list", "uri"},
+ {"",nullptr},
+#line 417 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.simtech-mindmapper", "twd"},
+ {"",nullptr},
+#line 72 "auto/mime_type_to_extension.gperf"
+ {"application/omdoc+xml", "omdoc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 231 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.grafeq", "gqf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 389 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.pg.format", "str"},
+ {"",nullptr},
+#line 224 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.geometry-explorer", "gex"},
+#line 372 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.oasis.opendocument.text-web", "oth"},
+ {"",nullptr}, {"",nullptr},
+#line 426 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.stardivision.math", "smf"},
+ {"",nullptr},
+#line 586 "auto/mime_type_to_extension.gperf"
+ {"application/x-ustar", "ustar"},
+ {"",nullptr},
+#line 735 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.fmi.flexstor", "flx"},
+#line 293 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.lotus-screencam", "scm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 394 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.powerbuilder6", "pbd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 631 "auto/mime_type_to_extension.gperf"
+ {"audio/x-flac", "flac"},
+#line 311 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mophun.application", "mpn"},
+ {"",nullptr}, {"",nullptr},
+#line 781 "auto/mime_type_to_extension.gperf"
+ {"video/x-fli", "fli"},
+#line 745 "auto/mime_type_to_extension.gperf"
+ {"text/x-java-source", "java"},
+#line 58 "auto/mime_type_to_extension.gperf"
+ {"application/mbox", "mbox"},
+#line 373 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.olpc-sugar", "xo"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 749 "auto/mime_type_to_extension.gperf"
+ {"text/x-php", "php"},
+#line 145 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.android.package-archive", "apk"},
+ {"",nullptr},
+#line 718 "auto/mime_type_to_extension.gperf"
+ {"text/html", "html"},
+ {"",nullptr}, {"",nullptr},
+#line 435 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sun.xml.impress", "sxi"},
+#line 251 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ibm.modcap", "afp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 782 "auto/mime_type_to_extension.gperf"
+ {"video/x-flv", "flv"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 431 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sun.xml.calc", "sxc"},
+#line 312 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mophun.certificate", "mpc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 150 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.apple.mpegurl", "m3u8"},
+ {"",nullptr}, {"",nullptr},
+#line 436 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sun.xml.impress.template", "sti"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 122 "auto/mime_type_to_extension.gperf"
+ {"application/tei+xml", "tei"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 247 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.hp-pcl", "pcl"},
+ {"",nullptr},
+#line 663 "auto/mime_type_to_extension.gperf"
+ {"image/prs.btif", "btif"},
+ {"",nullptr}, {"",nullptr},
+#line 103 "auto/mime_type_to_extension.gperf"
+ {"application/rss+xml", "rss"},
+#line 59 "auto/mime_type_to_extension.gperf"
+ {"application/mediaservercontrol+xml", "mscml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 432 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sun.xml.calc.template", "stc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 714 "auto/mime_type_to_extension.gperf"
+ {"text/cache-manifest", "appcache"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 592 "auto/mime_type_to_extension.gperf"
+ {"application/x-xz", "xz"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 762 "auto/mime_type_to_extension.gperf"
+ {"video/jpm", "jpm"},
+ {"",nullptr}, {"",nullptr},
+#line 268 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.jcp.javame.midlet-rms", "rms"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 601 "auto/mime_type_to_extension.gperf"
+ {"application/xproc+xml", "xpl"},
+#line 116 "auto/mime_type_to_extension.gperf"
+ {"application/sparql-results+xml", "srx"},
+ {"",nullptr}, {"",nullptr},
+#line 102 "auto/mime_type_to_extension.gperf"
+ {"application/rsd+xml", "rsd"},
+#line 532 "auto/mime_type_to_extension.gperf"
+ {"application/x-gramps-xml", "gramps"},
+ {"",nullptr},
+#line 233 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.groove-help", "ghf"},
+#line 672 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.dxf", "dxf"},
+#line 705 "auto/mime_type_to_extension.gperf"
+ {"model/vnd.dwf", "dwf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 457 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.uoml+xml", "uoml"},
+ {"",nullptr}, {"",nullptr},
+#line 434 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sun.xml.draw.template", "std"},
+ {"",nullptr}, {"",nullptr},
+#line 66 "auto/mime_type_to_extension.gperf"
+ {"application/msword", "doc"},
+ {"",nullptr},
+#line 253 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ibm.secure-container", "sc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 697 "auto/mime_type_to_extension.gperf"
+ {"image/x-tga", "tga"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 17 "auto/mime_type_to_extension.gperf"
+ {"application/andrew-inset", "ez"},
+ {"",nullptr}, {"",nullptr},
+#line 739 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.sun.j2me.app-descriptor", "jad"},
+ {"",nullptr}, {"",nullptr},
+#line 785 "auto/mime_type_to_extension.gperf"
+ {"video/x-mng", "mng"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 494 "auto/mime_type_to_extension.gperf"
+ {"application/x-bcpio", "bcpio"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 732 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.curl.scurl", "scurl"},
+#line 502 "auto/mime_type_to_extension.gperf"
+ {"application/x-chat", "chat"},
+#line 731 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.curl.mcurl", "mcurl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 20 "auto/mime_type_to_extension.gperf"
+ {"application/atomcat+xml", "atomcat"},
+ {"",nullptr}, {"",nullptr},
+#line 449 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.tmobile-livetv", "tmo"},
+#line 21 "auto/mime_type_to_extension.gperf"
+ {"application/atomsvc+xml", "atomsvc"},
+ {"",nullptr}, {"",nullptr},
+#line 595 "auto/mime_type_to_extension.gperf"
+ {"application/xcap-diff+xml", "xdf"},
+ {"",nullptr}, {"",nullptr},
+#line 567 "auto/mime_type_to_extension.gperf"
+ {"application/x-shar", "shar"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 786 "auto/mime_type_to_extension.gperf"
+ {"video/x-ms-asf", "asf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 499 "auto/mime_type_to_extension.gperf"
+ {"application/x-cbr", "cbr"},
+ {"",nullptr}, {"",nullptr},
+#line 641 "auto/mime_type_to_extension.gperf"
+ {"chemical/x-cif", "cif"},
+#line 264 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.irepository.package+xml", "irp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 730 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.curl.dcurl", "dcurl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 206 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.flographit", "gph"},
+ {"",nullptr}, {"",nullptr},
+#line 600 "auto/mime_type_to_extension.gperf"
+ {"application/xop+xml", "xop"},
+ {"",nullptr},
+#line 262 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.intu.qfx", "qfx"},
+#line 468 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.wqd", "wqd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 400 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.realvnc.bed", "bed"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 548 "auto/mime_type_to_extension.gperf"
+ {"application/x-msbinder", "obd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 495 "auto/mime_type_to_extension.gperf"
+ {"application/x-bittorrent", "torrent"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 248 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.hp-pclxl", "pclxl"},
+ {"",nullptr},
+#line 529 "auto/mime_type_to_extension.gperf"
+ {"application/x-gca-compressed", "gca"},
+#line 200 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.eszigno3+xml", "es3"},
+#line 40 "auto/mime_type_to_extension.gperf"
+ {"application/gxf", "gxf"},
+#line 83 "auto/mime_type_to_extension.gperf"
+ {"application/pkcs8", "p8"},
+ {"",nullptr},
+#line 642 "auto/mime_type_to_extension.gperf"
+ {"chemical/x-cmdf", "cmdf"},
+#line 651 "auto/mime_type_to_extension.gperf"
+ {"image/bmp", "bmp"},
+ {"",nullptr}, {"",nullptr},
+#line 793 "auto/mime_type_to_extension.gperf"
+ {"video/x-sgi-movie", "movie"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 97 "auto/mime_type_to_extension.gperf"
+ {"application/resource-lists-diff+xml", "rld"},
+#line 89 "auto/mime_type_to_extension.gperf"
+ {"application/pls+xml", "pls"},
+ {"",nullptr},
+#line 441 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sus-calendar", "sus"},
+ {"",nullptr}, {"",nullptr},
+#line 80 "auto/mime_type_to_extension.gperf"
+ {"application/pkcs10", "p10"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 406 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.rn-realmedia-vbr", "rmvb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 508 "auto/mime_type_to_extension.gperf"
+ {"application/x-dgc-compressed", "dgc"},
+#line 34 "auto/mime_type_to_extension.gperf"
+ {"application/emma+xml", "emma"},
+#line 655 "auto/mime_type_to_extension.gperf"
+ {"image/heic", "heic"},
+#line 609 "auto/mime_type_to_extension.gperf"
+ {"audio/basic", "au"},
+ {"",nullptr},
+#line 757 "auto/mime_type_to_extension.gperf"
+ {"video/h261", "h261"},
+#line 62 "auto/mime_type_to_extension.gperf"
+ {"application/mets+xml", "mets"},
+#line 759 "auto/mime_type_to_extension.gperf"
+ {"video/h264", "h264"},
+#line 19 "auto/mime_type_to_extension.gperf"
+ {"application/atom+xml", "atom"},
+ {"",nullptr}, {"",nullptr},
+#line 480 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.zul", "zir"},
+ {"",nullptr},
+#line 760 "auto/mime_type_to_extension.gperf"
+ {"video/h265", "h265"},
+ {"",nullptr},
+#line 519 "auto/mime_type_to_extension.gperf"
+ {"application/x-font-ghostscript", "gsf"},
+ {"",nullptr},
+#line 136 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.adobe.fxp", "fxp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 22 "auto/mime_type_to_extension.gperf"
+ {"application/ccxml+xml", "ccxml"},
+#line 134 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.adobe.air-application-installer-package+zip", "air"},
+ {"",nullptr}, {"",nullptr},
+#line 467 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.wordperfect", "wpd"},
+#line 63 "auto/mime_type_to_extension.gperf"
+ {"application/mods+xml", "mods"},
+#line 53 "auto/mime_type_to_extension.gperf"
+ {"application/mads+xml", "mads"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 57 "auto/mime_type_to_extension.gperf"
+ {"application/mathml+xml", "mathml"},
+#line 424 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.stardivision.draw", "sda"},
+#line 290 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.lotus-freelance", "pre"},
+#line 32 "auto/mime_type_to_extension.gperf"
+ {"application/dssc+xml", "xdssc"},
+#line 758 "auto/mime_type_to_extension.gperf"
+ {"video/h263", "h263"},
+ {"",nullptr},
+#line 322 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-htmlhelp", "chm"},
+ {"",nullptr}, {"",nullptr},
+#line 313 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mozilla.xul+xml", "xul"},
+ {"",nullptr}, {"",nullptr},
+#line 666 "auto/mime_type_to_extension.gperf"
+ {"image/tiff", "tiff"},
+ {"",nullptr},
+#line 55 "auto/mime_type_to_extension.gperf"
+ {"application/marcxml+xml", "mrcx"},
+ {"",nullptr},
+#line 571 "auto/mime_type_to_extension.gperf"
+ {"application/x-stuffit", "sit"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 151 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.aristanetworks.swi", "swi"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 181 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dece.ttml+xml", "uvt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 407 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.route66.link66+xml", "link66"},
+ {"",nullptr}, {"",nullptr},
+#line 209 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.frogans.fnc", "fnc"},
+#line 701 "auto/mime_type_to_extension.gperf"
+ {"message/rfc822", "eml"},
+#line 416 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.shana.informed.package", "ipk"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 217 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fujixerox.ddd", "ddd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 338 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-wpl", "wpl"},
+ {"",nullptr},
+#line 414 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.shana.informed.formtemplate", "itp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 283 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.koan", "skp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 415 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.shana.informed.interchange", "iif"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 680 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.net-fpx", "npx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 413 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.shana.informed.formdata", "ifm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 777 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.uvvu.mp4", "uvu"},
+ {"",nullptr}, {"",nullptr},
+#line 177 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.curl.pcurl", "pcurl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 282 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kinar", "kne"},
+#line 88 "auto/mime_type_to_extension.gperf"
+ {"application/pkixcmp", "pki"},
+ {"",nullptr}, {"",nullptr},
+#line 503 "auto/mime_type_to_extension.gperf"
+ {"application/x-chess-pgn", "pgn"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 569 "auto/mime_type_to_extension.gperf"
+ {"application/x-silverlight-app", "xap"},
+#line 288 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.lotus-1-2-3", "123"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 604 "auto/mime_type_to_extension.gperf"
+ {"application/xv+xml", "mxml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 616 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.dece.audio", "uva"},
+ {"",nullptr},
+#line 596 "auto/mime_type_to_extension.gperf"
+ {"application/xenc+xml", "xenc"},
+ {"",nullptr},
+#line 280 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kenameaapp", "htke"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 453 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ufdl", "ufd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 93 "auto/mime_type_to_extension.gperf"
+ {"application/rdf+xml", "rdf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 281 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kidspiration", "kia"},
+#line 653 "auto/mime_type_to_extension.gperf"
+ {"image/g3fax", "g3"},
+ {"",nullptr},
+#line 463 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.wap.wmlc", "wmlc"},
+#line 121 "auto/mime_type_to_extension.gperf"
+ {"application/ssml+xml", "ssml"},
+#line 114 "auto/mime_type_to_extension.gperf"
+ {"application/smil+xml", "smi"},
+ {"",nullptr},
+#line 682 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.xiff", "xif"},
+#line 572 "auto/mime_type_to_extension.gperf"
+ {"application/x-stuffitx", "sitx"},
+ {"",nullptr},
+#line 189 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ds-keypoint", "kpxx"},
+ {"",nullptr}, {"",nullptr},
+#line 558 "auto/mime_type_to_extension.gperf"
+ {"application/x-mswrite", "wri"},
+#line 50 "auto/mime_type_to_extension.gperf"
+ {"application/lost+xml", "lostxml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 192 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dynageo", "geo"},
+ {"",nullptr}, {"",nullptr},
+#line 721 "auto/mime_type_to_extension.gperf"
+ {"text/prs.lines.tag", "dsc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 455 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.umajin", "umj"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 587 "auto/mime_type_to_extension.gperf"
+ {"application/x-wais-source", "src"},
+ {"",nullptr},
+#line 120 "auto/mime_type_to_extension.gperf"
+ {"application/ssdl+xml", "ssdl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 75 "auto/mime_type_to_extension.gperf"
+ {"application/patch-ops-error+xml", "xer"},
+ {"",nullptr}, {"",nullptr},
+#line 469 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.wt.stf", "stf"},
+#line 173 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.criticaltools.wbs+xml", "wbs"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 81 "auto/mime_type_to_extension.gperf"
+ {"application/pkcs7-mime", "p7m"},
+ {"",nullptr},
+#line 689 "auto/mime_type_to_extension.gperf"
+ {"image/x-mrsid-image", "sid"},
+ {"",nullptr},
+#line 284 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kodak-descriptor", "sse"},
+#line 78 "auto/mime_type_to_extension.gperf"
+ {"application/pgp-signature", "asc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 497 "auto/mime_type_to_extension.gperf"
+ {"application/x-bzip", "bz"},
+ {"",nullptr}, {"",nullptr},
+#line 583 "auto/mime_type_to_extension.gperf"
+ {"application/x-tgif", "obj"},
+#line 275 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kde.kivio", "flw"},
+#line 464 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.wap.wmlscriptc", "wmlsc"},
+#line 336 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-word.template.macroenabled.12", "dotm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 673 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.fastbidsheet", "fbs"},
+ {"",nullptr}, {"",nullptr},
+#line 257 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.immervision-ivu", "ivu"},
+ {"",nullptr},
+#line 188 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dreamfactory", "dfac"},
+ {"",nullptr},
+#line 298 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mediastation.cdkey", "cdkey"},
+#line 272 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kde.karbon", "karbon"},
+#line 210 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.frogans.ltf", "ltf"},
+ {"",nullptr},
+#line 335 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-word.document.macroenabled.12", "docm"},
+ {"",nullptr},
+#line 101 "auto/mime_type_to_extension.gperf"
+ {"application/rpki-roa", "roa"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 620 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.dts.hd", "dtshd"},
+#line 511 "auto/mime_type_to_extension.gperf"
+ {"application/x-dtbncx+xml", "ncx"},
+ {"",nullptr}, {"",nullptr},
+#line 278 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kde.kspread", "ksp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 403 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.rig.cryptonote", "cryptonote"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 636 "auto/mime_type_to_extension.gperf"
+ {"audio/x-pn-realaudio", "ram"},
+#line 100 "auto/mime_type_to_extension.gperf"
+ {"application/rpki-manifest", "mft"},
+ {"",nullptr},
+#line 277 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kde.kpresenter", "kpr"},
+ {"",nullptr},
+#line 184 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.denovo.fcselayout-link", "fe_launch"},
+ {"",nullptr},
+#line 279 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kde.kword", "kwd"},
+ {"",nullptr},
+#line 169 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.crick.clicker.keyboard", "clkk"},
+#line 478 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.yamaha.smaf-phrase", "spf"},
+ {"",nullptr}, {"",nullptr},
+#line 49 "auto/mime_type_to_extension.gperf"
+ {"application/jsonml+json", "jsonml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 477 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.yamaha.smaf-audio", "saf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 698 "auto/mime_type_to_extension.gperf"
+ {"image/x-xbitmap", "xbm"},
+#line 115 "auto/mime_type_to_extension.gperf"
+ {"application/sparql-query", "rq"},
+#line 98 "auto/mime_type_to_extension.gperf"
+ {"application/rls-services+xml", "rs"},
+ {"",nullptr},
+#line 734 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.fly", "fly"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 475 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.yamaha.openscoreformat", "osf"},
+#line 223 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.geogebra.tool", "ggt"},
+#line 768 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.dece.hd", "uvh"},
+#line 143 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.americandynamics.acc", "acc"},
+#line 594 "auto/mime_type_to_extension.gperf"
+ {"application/xaml+xml", "xaml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 602 "auto/mime_type_to_extension.gperf"
+ {"application/xslt+xml", "xslt"},
+ {"",nullptr}, {"",nullptr},
+#line 662 "auto/mime_type_to_extension.gperf"
+ {"image/png", "png"},
+ {"",nullptr}, {"",nullptr},
+#line 613 "auto/mime_type_to_extension.gperf"
+ {"audio/ogg", "oga"},
+ {"",nullptr},
+#line 654 "auto/mime_type_to_extension.gperf"
+ {"image/gif", "gif"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 677 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.fujixerox.edmics-rlc", "rlc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 612 "auto/mime_type_to_extension.gperf"
+ {"audio/mpeg", "mp3"},
+ {"",nullptr},
+#line 676 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.fujixerox.edmics-mmr", "mmr"},
+#line 766 "auto/mime_type_to_extension.gperf"
+ {"video/ogg", "ogv"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 240 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.handheld-entertainment+xml", "zmm"},
+#line 393 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.pocketlearn", "plf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 263 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ipunplugged.rcprofile", "rcprofile"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 765 "auto/mime_type_to_extension.gperf"
+ {"video/mpeg", "mpeg"},
+ {"",nullptr},
+#line 23 "auto/mime_type_to_extension.gperf"
+ {"application/cdmi-capability", "cdmia"},
+ {"",nullptr}, {"",nullptr},
+#line 617 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.digital-winds", "eol"},
+#line 261 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.intu.qbo", "qbo"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 160 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.claymore", "cla"},
+#line 531 "auto/mime_type_to_extension.gperf"
+ {"application/x-gnumeric", "gnumeric"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 246 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.hp-jlyt", "jlt"},
+ {"",nullptr},
+#line 292 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.lotus-organizer", "org"},
+ {"",nullptr},
+#line 60 "auto/mime_type_to_extension.gperf"
+ {"application/metalink+xml", "metalink"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 554 "auto/mime_type_to_extension.gperf"
+ {"application/x-msmoney", "mny"},
+ {"",nullptr},
+#line 85 "auto/mime_type_to_extension.gperf"
+ {"application/pkix-cert", "cer"},
+#line 633 "auto/mime_type_to_extension.gperf"
+ {"audio/x-mpegurl", "m3u"},
+#line 515 "auto/mime_type_to_extension.gperf"
+ {"application/x-envoy", "evy"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 679 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.ms-photo", "wdp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 252 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ibm.rights-management", "irm"},
+#line 638 "auto/mime_type_to_extension.gperf"
+ {"audio/x-wav", "wav"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 135 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.adobe.formscentral.fcdt", "fcdt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 498 "auto/mime_type_to_extension.gperf"
+ {"application/x-bzip2", "bz2"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 222 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.geogebra.file", "ggb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 603 "auto/mime_type_to_extension.gperf"
+ {"application/xspf+xml", "xspf"},
+ {"",nullptr},
+#line 544 "auto/mime_type_to_extension.gperf"
+ {"application/x-ms-wmd", "wmd"},
+#line 71 "auto/mime_type_to_extension.gperf"
+ {"application/ogg", "ogx"},
+#line 483 "auto/mime_type_to_extension.gperf"
+ {"application/widget", "wgt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 235 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.groove-injector", "grv"},
+ {"",nullptr},
+#line 84 "auto/mime_type_to_extension.gperf"
+ {"application/pkix-attr-cert", "ac"},
+ {"",nullptr},
+#line 378 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.openxmlformats-officedocument.presentationml.slideshow", "ppsx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 343 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mynfc", "taglet"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 671 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.dwg", "dwg"},
+#line 466 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.wolfram.player", "nbp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 769 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.dece.mobile", "uvm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 245 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.hp-hps", "hps"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 462 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.wap.wbxml", "wbxml"},
+ {"",nullptr}, {"",nullptr},
+#line 476 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.yamaha.openscoreformat.osfpvg+xml", "osfpvg"},
+#line 713 "auto/mime_type_to_extension.gperf"
+ {"model/x3d+xml", "x3d"},
+#line 534 "auto/mime_type_to_extension.gperf"
+ {"application/x-hdf", "hdf"},
+#line 472 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.yamaha.hv-dic", "hvd"},
+#line 241 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.hbci", "hbci"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 474 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.yamaha.hv-voice", "hvp"},
+#line 138 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.adobe.xfdf", "xfdf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 473 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.yamaha.hv-script", "hvs"},
+ {"",nullptr},
+#line 712 "auto/mime_type_to_extension.gperf"
+ {"model/x3d+vrml", "x3dv"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 518 "auto/mime_type_to_extension.gperf"
+ {"application/x-font-bdf", "bdf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 141 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.airzip.filesecure.azs", "azs"},
+#line 202 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ezpix-package", "ez3"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 119 "auto/mime_type_to_extension.gperf"
+ {"application/sru+xml", "sru"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 212 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fujitsu.oasys", "oas"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 39 "auto/mime_type_to_extension.gperf"
+ {"application/gpx+xml", "gpx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 215 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fujitsu.oasysgp", "fg5"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 187 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.dpgraph", "dpg"},
+#line 214 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fujitsu.oasys3", "oa3"},
+ {"",nullptr}, {"",nullptr},
+#line 687 "auto/mime_type_to_extension.gperf"
+ {"image/x-freehand", "fh"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 244 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.hp-hpid", "hpid"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 216 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fujitsu.oasysprs", "bh2"},
+#line 125 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.3gpp.pic-bw-large", "plb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 649 "auto/mime_type_to_extension.gperf"
+ {"font/woff", "woff"},
+#line 657 "auto/mime_type_to_extension.gperf"
+ {"image/heif", "heif"},
+ {"",nullptr},
+#line 733 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.dvb.subtitle", "sub"},
+#line 289 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.lotus-approach", "apr"},
+#line 38 "auto/mime_type_to_extension.gperf"
+ {"application/gml+xml", "gml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 127 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.3gpp.pic-bw-var", "pvb"},
+#line 154 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.blueice.multipass", "mpm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 123 "auto/mime_type_to_extension.gperf"
+ {"application/thraud+xml", "tfi"},
+ {"",nullptr}, {"",nullptr},
+#line 420 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.solent.sdkm+xml", "sdkm"},
+ {"",nullptr},
+#line 573 "auto/mime_type_to_extension.gperf"
+ {"application/x-subrip", "srt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 163 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.cluetrust.cartomobile-config", "c11amc"},
+ {"",nullptr},
+#line 437 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sun.xml.math", "sxm"},
+#line 118 "auto/mime_type_to_extension.gperf"
+ {"application/srgs+xml", "grxml"},
+#line 164 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.cluetrust.cartomobile-config-pkg", "c11amz"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 397 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.publishare-delta-tree", "qps"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 632 "auto/mime_type_to_extension.gperf"
+ {"audio/x-matroska", "mka"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 51 "auto/mime_type_to_extension.gperf"
+ {"application/mac-binhex40", "hqx"},
+ {"",nullptr}, {"",nullptr},
+#line 346 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.noblenet-directory", "nnd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 709 "auto/mime_type_to_extension.gperf"
+ {"model/vnd.vtu", "vtu"},
+ {"",nullptr}, {"",nullptr},
+#line 784 "auto/mime_type_to_extension.gperf"
+ {"video/x-matroska", "mkv"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 230 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.google-earth.kmz", "kmz"},
+ {"",nullptr},
+#line 650 "auto/mime_type_to_extension.gperf"
+ {"font/woff2", "woff2"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 589 "auto/mime_type_to_extension.gperf"
+ {"application/x-xfig", "fig"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 229 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.google-earth.kml+xml", "kml"},
+ {"",nullptr}, {"",nullptr},
+#line 563 "auto/mime_type_to_extension.gperf"
+ {"application/x-pkcs7-certreqresp", "p7r"},
+ {"",nullptr},
+#line 669 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.djvu", "djvu"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 566 "auto/mime_type_to_extension.gperf"
+ {"application/x-sh", "sh"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 661 "auto/mime_type_to_extension.gperf"
+ {"image/ktx", "ktx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 61 "auto/mime_type_to_extension.gperf"
+ {"application/metalink4+xml", "meta4"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 506 "auto/mime_type_to_extension.gperf"
+ {"application/x-csh", "csh"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 86 "auto/mime_type_to_extension.gperf"
+ {"application/pkix-crl", "crl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 213 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fujitsu.oasys2", "oa2"},
+#line 561 "auto/mime_type_to_extension.gperf"
+ {"application/x-pkcs12", "p12"},
+#line 321 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-fontobject", "eot"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 126 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.3gpp.pic-bw-small", "psb"},
+ {"",nullptr}, {"",nullptr},
+#line 704 "auto/mime_type_to_extension.gperf"
+ {"model/vnd.collada+xml", "dae"},
+#line 539 "auto/mime_type_to_extension.gperf"
+ {"application/x-lzh-compressed", "lzh"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 773 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.dvb.file", "dvb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 696 "auto/mime_type_to_extension.gperf"
+ {"image/x-rgb", "rgb"},
+ {"",nullptr},
+#line 201 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ezpix-album", "ez2"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 695 "auto/mime_type_to_extension.gperf"
+ {"image/x-portable-pixmap", "ppm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 30 "auto/mime_type_to_extension.gperf"
+ {"application/docbook+xml", "dbk"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 520 "auto/mime_type_to_extension.gperf"
+ {"application/x-font-linux-psf", "psf"},
+#line 465 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.webturbo", "wtb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 656 "auto/mime_type_to_extension.gperf"
+ {"image/heic-sequence", "heics"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 94 "auto/mime_type_to_extension.gperf"
+ {"application/reginfo+xml", "rif"},
+ {"",nullptr}, {"",nullptr},
+#line 484 "auto/mime_type_to_extension.gperf"
+ {"application/winhlp", "hlp"},
+ {"",nullptr}, {"",nullptr},
+#line 70 "auto/mime_type_to_extension.gperf"
+ {"application/oebps-package+xml", "opf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 530 "auto/mime_type_to_extension.gperf"
+ {"application/x-glulx", "ulx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 140 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.airzip.filesecure.azf", "azf"},
+ {"",nullptr}, {"",nullptr},
+#line 537 "auto/mime_type_to_extension.gperf"
+ {"application/x-java-jnlp-file", "jnlp"},
+#line 703 "auto/mime_type_to_extension.gperf"
+ {"model/mesh", "msh"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 271 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kahootz", "ktz"},
+#line 295 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.macports.portpkg", "portpkg"},
+ {"",nullptr},
+#line 157 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.chemdraw+xml", "cdxml"},
+ {"",nullptr},
+#line 555 "auto/mime_type_to_extension.gperf"
+ {"application/x-mspublisher", "pub"},
+#line 239 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.hal+xml", "hal"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 456 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.unity", "unityweb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 590 "auto/mime_type_to_extension.gperf"
+ {"application/x-xliff+xml", "xlf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 597 "auto/mime_type_to_extension.gperf"
+ {"application/xhtml+xml", "xhtml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 243 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.hp-hpgl", "hpgl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 137 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.adobe.xdp+xml", "xdp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 344 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.neurolanguage.nlu", "nlu"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 193 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ecowin.chart", "mag"},
+#line 386 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.osgi.subsystem", "esa"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 294 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.lotus-wordpro", "lwp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 668 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.dece.graphic", "uvi"},
+ {"",nullptr}, {"",nullptr},
+#line 492 "auto/mime_type_to_extension.gperf"
+ {"application/x-authorware-map", "aam"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 736 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.graphviz", "gv"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 665 "auto/mime_type_to_extension.gperf"
+ {"image/svg+xml", "svg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 438 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sun.xml.writer", "sxw"},
+ {"",nullptr}, {"",nullptr},
+#line 274 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kde.kformula", "kfo"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 433 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sun.xml.draw", "sxd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 496 "auto/mime_type_to_extension.gperf"
+ {"application/x-blorb", "blb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 276 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kde.kontour", "kon"},
+#line 113 "auto/mime_type_to_extension.gperf"
+ {"application/shf+xml", "shf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 562 "auto/mime_type_to_extension.gperf"
+ {"application/x-pkcs7-certificates", "p7b"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 45 "auto/mime_type_to_extension.gperf"
+ {"application/java-serialized-object", "ser"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 314 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-artgalry", "cil"},
+ {"",nullptr},
+#line 82 "auto/mime_type_to_extension.gperf"
+ {"application/pkcs7-signature", "p7s"},
+ {"",nullptr},
+#line 91 "auto/mime_type_to_extension.gperf"
+ {"application/prs.cww", "cww"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 350 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.nokia.n-gage.symbian.install", "n-gage"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 775 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.mpegurl", "mxu"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 585 "auto/mime_type_to_extension.gperf"
+ {"application/x-tgwallpattern", "tgv"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 513 "auto/mime_type_to_extension.gperf"
+ {"application/x-dtbresource+xml", "res"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 787 "auto/mime_type_to_extension.gperf"
+ {"video/x-ms-vob", "vob"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 105 "auto/mime_type_to_extension.gperf"
+ {"application/sbml+xml", "sbml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 660 "auto/mime_type_to_extension.gperf"
+ {"image/jpeg", "jpg"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 220 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fuzzysheet", "fzs"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 342 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.muvee.style", "msty"},
+ {"",nullptr},
+#line 761 "auto/mime_type_to_extension.gperf"
+ {"video/jpeg", "jpgv"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 488 "auto/mime_type_to_extension.gperf"
+ {"application/x-abiword", "abw"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 147 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.anser-web-funds-transfer-initiation", "fti"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 560 "auto/mime_type_to_extension.gperf"
+ {"application/x-nzb", "nzb"},
+#line 545 "auto/mime_type_to_extension.gperf"
+ {"application/x-ms-wmz", "wmz"},
+ {"",nullptr}, {"",nullptr},
+#line 526 "auto/mime_type_to_extension.gperf"
+ {"application/x-font-woff", "woff"},
+ {"",nullptr}, {"",nullptr},
+#line 146 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.anser-web-certificate-issue-initiation", "cii"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 658 "auto/mime_type_to_extension.gperf"
+ {"image/heif-sequence", "heifs"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 234 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.groove-identity-message", "gim"},
+#line 250 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ibm.minipay", "mpy"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 637 "auto/mime_type_to_extension.gperf"
+ {"audio/x-pn-realaudio-plugin", "rmp"},
+ {"",nullptr},
+#line 683 "auto/mime_type_to_extension.gperf"
+ {"image/webp", "webp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 627 "auto/mime_type_to_extension.gperf"
+ {"audio/webm", "weba"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 273 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.kde.kchart", "chrt"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 779 "auto/mime_type_to_extension.gperf"
+ {"video/webm", "webm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 479 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.yellowriver-custom-menu", "cmp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 606 "auto/mime_type_to_extension.gperf"
+ {"application/yin+xml", "yin"},
+#line 286 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.llamagraphics.life-balance.desktop", "lbd"},
+#line 270 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.joost.joda-archive", "joda"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 42 "auto/mime_type_to_extension.gperf"
+ {"application/inkml+xml", "ink"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 439 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sun.xml.writer.global", "sxg"},
+ {"",nullptr},
+#line 440 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sun.xml.writer.template", "stw"},
+ {"",nullptr},
+#line 218 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fujixerox.docuworks", "xdw"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 605 "auto/mime_type_to_extension.gperf"
+ {"application/yang", "yang"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 348 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.noblenet-web", "nnw"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 87 "auto/mime_type_to_extension.gperf"
+ {"application/pkix-pkipath", "pkipath"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 337 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.ms-works", "wps"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 741 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.wap.wmlscript", "wmls"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 694 "auto/mime_type_to_extension.gperf"
+ {"image/x-portable-graymap", "pgm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 153 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.audiograph", "aep"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 446 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.syncml.dm+xml", "xdm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 156 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.businessobjects", "rep"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 219 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fujixerox.docuworks.binder", "xbd"},
+ {"",nullptr}, {"",nullptr},
+#line 507 "auto/mime_type_to_extension.gperf"
+ {"application/x-debian-package", "deb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 552 "auto/mime_type_to_extension.gperf"
+ {"application/x-msmediaview", "mvb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 92 "auto/mime_type_to_extension.gperf"
+ {"application/pskc+xml", "pskcxml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 485 "auto/mime_type_to_extension.gperf"
+ {"application/wsdl+xml", "wsdl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 287 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.llamagraphics.life-balance.exchange+xml", "lbe"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 681 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.wap.wbmp", "wbmp"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 740 "auto/mime_type_to_extension.gperf"
+ {"text/vnd.wap.wml", "wml"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 172 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.crick.clicker.wordbank", "clkw"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 444 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.syncml+xml", "xsm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 645 "auto/mime_type_to_extension.gperf"
+ {"chemical/x-xyz", "xyz"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 95 "auto/mime_type_to_extension.gperf"
+ {"application/relax-ng-compact-syntax", "rnc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 249 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.hydrostatix.sof-data", "sfd-hdstx"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 443 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.symbian.install", "sis"},
+ {"",nullptr},
+#line 35 "auto/mime_type_to_extension.gperf"
+ {"application/epub+zip", "epub"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 142 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.amazon.ebook", "azw"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 481 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.zzazz.deck+xml", "zaz"},
+ {"",nullptr},
+#line 512 "auto/mime_type_to_extension.gperf"
+ {"application/x-dtbook+xml", "dtb"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 445 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.syncml.dm+wbxml", "bdm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 541 "auto/mime_type_to_extension.gperf"
+ {"application/x-mobipocket-ebook", "prc"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 707 "auto/mime_type_to_extension.gperf"
+ {"model/vnd.gtw", "gtw"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 493 "auto/mime_type_to_extension.gperf"
+ {"application/x-authorware-seg", "aas"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 693 "auto/mime_type_to_extension.gperf"
+ {"image/x-portable-bitmap", "pbm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 486 "auto/mime_type_to_extension.gperf"
+ {"application/wspolicy+xml", "wspolicy"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 460 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.visionary", "vis"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 395 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.previewsystems.box", "box"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 211 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.fsc.weblaunch", "fsc"},
+#line 307 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mobius.mqy", "mqy"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 41 "auto/mime_type_to_extension.gperf"
+ {"application/hyperstudio", "stk"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 517 "auto/mime_type_to_extension.gperf"
+ {"application/x-fictionbook+xml", "fb2"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 99 "auto/mime_type_to_extension.gperf"
+ {"application/rpki-ghostbusters", "gbr"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 491 "auto/mime_type_to_extension.gperf"
+ {"application/x-authorware-bin", "aab"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 670 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.dvb.subtitle", "sub"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 500 "auto/mime_type_to_extension.gperf"
+ {"application/x-cdlink", "vcd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 615 "auto/mime_type_to_extension.gperf"
+ {"audio/silk", "sil"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 242 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.hhe.lesson-player", "les"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr},
+#line 667 "auto/mime_type_to_extension.gperf"
+ {"image/vnd.adobe.photoshop", "psd"},
+#line 692 "auto/mime_type_to_extension.gperf"
+ {"image/x-portable-anymap", "pnm"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 408 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.sailingtracker.track", "st"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 306 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.mobius.mbk", "mbk"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 568 "auto/mime_type_to_extension.gperf"
+ {"application/x-shockwave-flash", "swf"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 158 "auto/mime_type_to_extension.gperf"
+ {"application/vnd.chipnuts.karaoke-mmd", "mmd"},
+ {"",nullptr},
+#line 700 "auto/mime_type_to_extension.gperf"
+ {"image/x-xwindowdump", "xwd"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 622 "auto/mime_type_to_extension.gperf"
+ {"audio/vnd.ms-playready.media.pya", "pya"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 776 "auto/mime_type_to_extension.gperf"
+ {"video/vnd.ms-playready.media.pyv", "pyv"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr},
+#line 528 "auto/mime_type_to_extension.gperf"
+ {"application/x-futuresplash", "spl"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 795 "auto/mime_type_to_extension.gperf"
+ {"x-conference/x-cooltalk", "ice"},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+ {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr},
+#line 711 "auto/mime_type_to_extension.gperf"
+ {"model/x3d+binary", "x3db"}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register unsigned int key = mime_type_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE)
+ {
+ register const char *s = wordlist[key].mime_type;
+
+ if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
+ return &wordlist[key];
+ }
+ }
+ return 0;
+}
+#line 796 "auto/mime_type_to_extension.gperf"
+
+const char *mime_type_to_extension(const char *mime_type, size_t mime_type_len) {
+ const auto &result = search_mime_type(mime_type, mime_type_len);
+ if (result == nullptr) {
+ return nullptr;
+ }
+
+ return result->extension;
+}
diff --git a/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.gperf b/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.gperf
new file mode 100644
index 0000000000..269f07e17f
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.gperf
@@ -0,0 +1,804 @@
+%struct-type
+%ignore-case
+%language=ANSI-C
+%readonly-tables
+%includes
+%enum
+%define slot-name mime_type
+%define initializer-suffix ,nullptr
+%define slot-name mime_type
+%define hash-function-name mime_type_hash
+%define lookup-function-name search_mime_type
+struct mime_type_and_extension {
+ const char *mime_type;
+ const char *extension;
+}
+%%
+"application/andrew-inset", "ez"
+"application/applixware", "aw"
+"application/atom+xml", "atom"
+"application/atomcat+xml", "atomcat"
+"application/atomsvc+xml", "atomsvc"
+"application/ccxml+xml", "ccxml"
+"application/cdmi-capability", "cdmia"
+"application/cdmi-container", "cdmic"
+"application/cdmi-domain", "cdmid"
+"application/cdmi-object", "cdmio"
+"application/cdmi-queue", "cdmiq"
+"application/cu-seeme", "cu"
+"application/davmount+xml", "davmount"
+"application/docbook+xml", "dbk"
+"application/dssc+der", "dssc"
+"application/dssc+xml", "xdssc"
+"application/ecmascript", "es"
+"application/emma+xml", "emma"
+"application/epub+zip", "epub"
+"application/exi", "exi"
+"application/font-tdpfr", "pfr"
+"application/gml+xml", "gml"
+"application/gpx+xml", "gpx"
+"application/gxf", "gxf"
+"application/hyperstudio", "stk"
+"application/inkml+xml", "ink"
+"application/ipfix", "ipfix"
+"application/java-archive", "jar"
+"application/java-serialized-object", "ser"
+"application/java-vm", "class"
+"application/javascript", "js"
+"application/json", "json"
+"application/jsonml+json", "jsonml"
+"application/lost+xml", "lostxml"
+"application/mac-binhex40", "hqx"
+"application/mac-compactpro", "cpt"
+"application/mads+xml", "mads"
+"application/marc", "mrc"
+"application/marcxml+xml", "mrcx"
+"application/mathematica", "ma"
+"application/mathml+xml", "mathml"
+"application/mbox", "mbox"
+"application/mediaservercontrol+xml", "mscml"
+"application/metalink+xml", "metalink"
+"application/metalink4+xml", "meta4"
+"application/mets+xml", "mets"
+"application/mods+xml", "mods"
+"application/mp21", "m21"
+"application/mp4", "mp4s"
+"application/msword", "doc"
+"application/mxf", "mxf"
+"application/octet-stream", "bin"
+"application/oda", "oda"
+"application/oebps-package+xml", "opf"
+"application/ogg", "ogx"
+"application/omdoc+xml", "omdoc"
+"application/onenote", "onetoc"
+"application/oxps", "oxps"
+"application/patch-ops-error+xml", "xer"
+"application/pdf", "pdf"
+"application/pgp-encrypted", "pgp"
+"application/pgp-signature", "asc"
+"application/pics-rules", "prf"
+"application/pkcs10", "p10"
+"application/pkcs7-mime", "p7m"
+"application/pkcs7-signature", "p7s"
+"application/pkcs8", "p8"
+"application/pkix-attr-cert", "ac"
+"application/pkix-cert", "cer"
+"application/pkix-crl", "crl"
+"application/pkix-pkipath", "pkipath"
+"application/pkixcmp", "pki"
+"application/pls+xml", "pls"
+"application/postscript", "ai"
+"application/prs.cww", "cww"
+"application/pskc+xml", "pskcxml"
+"application/rdf+xml", "rdf"
+"application/reginfo+xml", "rif"
+"application/relax-ng-compact-syntax", "rnc"
+"application/resource-lists+xml", "rl"
+"application/resource-lists-diff+xml", "rld"
+"application/rls-services+xml", "rs"
+"application/rpki-ghostbusters", "gbr"
+"application/rpki-manifest", "mft"
+"application/rpki-roa", "roa"
+"application/rsd+xml", "rsd"
+"application/rss+xml", "rss"
+"application/rtf", "rtf"
+"application/sbml+xml", "sbml"
+"application/scvp-cv-request", "scq"
+"application/scvp-cv-response", "scs"
+"application/scvp-vp-request", "spq"
+"application/scvp-vp-response", "spp"
+"application/sdp", "sdp"
+"application/set-payment-initiation", "setpay"
+"application/set-registration-initiation", "setreg"
+"application/shf+xml", "shf"
+"application/smil+xml", "smi"
+"application/sparql-query", "rq"
+"application/sparql-results+xml", "srx"
+"application/srgs", "gram"
+"application/srgs+xml", "grxml"
+"application/sru+xml", "sru"
+"application/ssdl+xml", "ssdl"
+"application/ssml+xml", "ssml"
+"application/tei+xml", "tei"
+"application/thraud+xml", "tfi"
+"application/timestamped-data", "tsd"
+"application/vnd.3gpp.pic-bw-large", "plb"
+"application/vnd.3gpp.pic-bw-small", "psb"
+"application/vnd.3gpp.pic-bw-var", "pvb"
+"application/vnd.3gpp2.tcap", "tcap"
+"application/vnd.3m.post-it-notes", "pwn"
+"application/vnd.accpac.simply.aso", "aso"
+"application/vnd.accpac.simply.imp", "imp"
+"application/vnd.acucobol", "acu"
+"application/vnd.acucorp", "atc"
+"application/vnd.adobe.air-application-installer-package+zip", "air"
+"application/vnd.adobe.formscentral.fcdt", "fcdt"
+"application/vnd.adobe.fxp", "fxp"
+"application/vnd.adobe.xdp+xml", "xdp"
+"application/vnd.adobe.xfdf", "xfdf"
+"application/vnd.ahead.space", "ahead"
+"application/vnd.airzip.filesecure.azf", "azf"
+"application/vnd.airzip.filesecure.azs", "azs"
+"application/vnd.amazon.ebook", "azw"
+"application/vnd.americandynamics.acc", "acc"
+"application/vnd.amiga.ami", "ami"
+"application/vnd.android.package-archive", "apk"
+"application/vnd.anser-web-certificate-issue-initiation", "cii"
+"application/vnd.anser-web-funds-transfer-initiation", "fti"
+"application/vnd.antix.game-component", "atx"
+"application/vnd.apple.installer+xml", "mpkg"
+"application/vnd.apple.mpegurl", "m3u8"
+"application/vnd.aristanetworks.swi", "swi"
+"application/vnd.astraea-software.iota", "iota"
+"application/vnd.audiograph", "aep"
+"application/vnd.blueice.multipass", "mpm"
+"application/vnd.bmi", "bmi"
+"application/vnd.businessobjects", "rep"
+"application/vnd.chemdraw+xml", "cdxml"
+"application/vnd.chipnuts.karaoke-mmd", "mmd"
+"application/vnd.cinderella", "cdy"
+"application/vnd.claymore", "cla"
+"application/vnd.cloanto.rp9", "rp9"
+"application/vnd.clonk.c4group", "c4g"
+"application/vnd.cluetrust.cartomobile-config", "c11amc"
+"application/vnd.cluetrust.cartomobile-config-pkg", "c11amz"
+"application/vnd.commonspace", "csp"
+"application/vnd.contact.cmsg", "cdbcmsg"
+"application/vnd.cosmocaller", "cmc"
+"application/vnd.crick.clicker", "clkx"
+"application/vnd.crick.clicker.keyboard", "clkk"
+"application/vnd.crick.clicker.palette", "clkp"
+"application/vnd.crick.clicker.template", "clkt"
+"application/vnd.crick.clicker.wordbank", "clkw"
+"application/vnd.criticaltools.wbs+xml", "wbs"
+"application/vnd.ctc-posml", "pml"
+"application/vnd.cups-ppd", "ppd"
+"application/vnd.curl.car", "car"
+"application/vnd.curl.pcurl", "pcurl"
+"application/vnd.dart", "dart"
+"application/vnd.data-vision.rdz", "rdz"
+"application/vnd.dece.data", "uvf"
+"application/vnd.dece.ttml+xml", "uvt"
+"application/vnd.dece.unspecified", "uvx"
+"application/vnd.dece.zip", "uvz"
+"application/vnd.denovo.fcselayout-link", "fe_launch"
+"application/vnd.dna", "dna"
+"application/vnd.dolby.mlp", "mlp"
+"application/vnd.dpgraph", "dpg"
+"application/vnd.dreamfactory", "dfac"
+"application/vnd.ds-keypoint", "kpxx"
+"application/vnd.dvb.ait", "ait"
+"application/vnd.dvb.service", "svc"
+"application/vnd.dynageo", "geo"
+"application/vnd.ecowin.chart", "mag"
+"application/vnd.enliven", "nml"
+"application/vnd.epson.esf", "esf"
+"application/vnd.epson.msf", "msf"
+"application/vnd.epson.quickanime", "qam"
+"application/vnd.epson.salt", "slt"
+"application/vnd.epson.ssf", "ssf"
+"application/vnd.eszigno3+xml", "es3"
+"application/vnd.ezpix-album", "ez2"
+"application/vnd.ezpix-package", "ez3"
+"application/vnd.fdf", "fdf"
+"application/vnd.fdsn.mseed", "mseed"
+"application/vnd.fdsn.seed", "seed"
+"application/vnd.flographit", "gph"
+"application/vnd.fluxtime.clip", "ftc"
+"application/vnd.framemaker", "fm"
+"application/vnd.frogans.fnc", "fnc"
+"application/vnd.frogans.ltf", "ltf"
+"application/vnd.fsc.weblaunch", "fsc"
+"application/vnd.fujitsu.oasys", "oas"
+"application/vnd.fujitsu.oasys2", "oa2"
+"application/vnd.fujitsu.oasys3", "oa3"
+"application/vnd.fujitsu.oasysgp", "fg5"
+"application/vnd.fujitsu.oasysprs", "bh2"
+"application/vnd.fujixerox.ddd", "ddd"
+"application/vnd.fujixerox.docuworks", "xdw"
+"application/vnd.fujixerox.docuworks.binder", "xbd"
+"application/vnd.fuzzysheet", "fzs"
+"application/vnd.genomatix.tuxedo", "txd"
+"application/vnd.geogebra.file", "ggb"
+"application/vnd.geogebra.tool", "ggt"
+"application/vnd.geometry-explorer", "gex"
+"application/vnd.geonext", "gxt"
+"application/vnd.geoplan", "g2w"
+"application/vnd.geospace", "g3w"
+"application/vnd.gmx", "gmx"
+"application/vnd.google-earth.kml+xml", "kml"
+"application/vnd.google-earth.kmz", "kmz"
+"application/vnd.grafeq", "gqf"
+"application/vnd.groove-account", "gac"
+"application/vnd.groove-help", "ghf"
+"application/vnd.groove-identity-message", "gim"
+"application/vnd.groove-injector", "grv"
+"application/vnd.groove-tool-message", "gtm"
+"application/vnd.groove-tool-template", "tpl"
+"application/vnd.groove-vcard", "vcg"
+"application/vnd.hal+xml", "hal"
+"application/vnd.handheld-entertainment+xml", "zmm"
+"application/vnd.hbci", "hbci"
+"application/vnd.hhe.lesson-player", "les"
+"application/vnd.hp-hpgl", "hpgl"
+"application/vnd.hp-hpid", "hpid"
+"application/vnd.hp-hps", "hps"
+"application/vnd.hp-jlyt", "jlt"
+"application/vnd.hp-pcl", "pcl"
+"application/vnd.hp-pclxl", "pclxl"
+"application/vnd.hydrostatix.sof-data", "sfd-hdstx"
+"application/vnd.ibm.minipay", "mpy"
+"application/vnd.ibm.modcap", "afp"
+"application/vnd.ibm.rights-management", "irm"
+"application/vnd.ibm.secure-container", "sc"
+"application/vnd.iccprofile", "icc"
+"application/vnd.igloader", "igl"
+"application/vnd.immervision-ivp", "ivp"
+"application/vnd.immervision-ivu", "ivu"
+"application/vnd.insors.igm", "igm"
+"application/vnd.intercon.formnet", "xpw"
+"application/vnd.intergeo", "i2g"
+"application/vnd.intu.qbo", "qbo"
+"application/vnd.intu.qfx", "qfx"
+"application/vnd.ipunplugged.rcprofile", "rcprofile"
+"application/vnd.irepository.package+xml", "irp"
+"application/vnd.is-xpr", "xpr"
+"application/vnd.isac.fcs", "fcs"
+"application/vnd.jam", "jam"
+"application/vnd.jcp.javame.midlet-rms", "rms"
+"application/vnd.jisp", "jisp"
+"application/vnd.joost.joda-archive", "joda"
+"application/vnd.kahootz", "ktz"
+"application/vnd.kde.karbon", "karbon"
+"application/vnd.kde.kchart", "chrt"
+"application/vnd.kde.kformula", "kfo"
+"application/vnd.kde.kivio", "flw"
+"application/vnd.kde.kontour", "kon"
+"application/vnd.kde.kpresenter", "kpr"
+"application/vnd.kde.kspread", "ksp"
+"application/vnd.kde.kword", "kwd"
+"application/vnd.kenameaapp", "htke"
+"application/vnd.kidspiration", "kia"
+"application/vnd.kinar", "kne"
+"application/vnd.koan", "skp"
+"application/vnd.kodak-descriptor", "sse"
+"application/vnd.las.las+xml", "lasxml"
+"application/vnd.llamagraphics.life-balance.desktop", "lbd"
+"application/vnd.llamagraphics.life-balance.exchange+xml", "lbe"
+"application/vnd.lotus-1-2-3", "123"
+"application/vnd.lotus-approach", "apr"
+"application/vnd.lotus-freelance", "pre"
+"application/vnd.lotus-notes", "nsf"
+"application/vnd.lotus-organizer", "org"
+"application/vnd.lotus-screencam", "scm"
+"application/vnd.lotus-wordpro", "lwp"
+"application/vnd.macports.portpkg", "portpkg"
+"application/vnd.mcd", "mcd"
+"application/vnd.medcalcdata", "mc1"
+"application/vnd.mediastation.cdkey", "cdkey"
+"application/vnd.mfer", "mwf"
+"application/vnd.mfmp", "mfm"
+"application/vnd.micrografx.flo", "flo"
+"application/vnd.micrografx.igx", "igx"
+"application/vnd.mif", "mif"
+"application/vnd.mobius.daf", "daf"
+"application/vnd.mobius.dis", "dis"
+"application/vnd.mobius.mbk", "mbk"
+"application/vnd.mobius.mqy", "mqy"
+"application/vnd.mobius.msl", "msl"
+"application/vnd.mobius.plc", "plc"
+"application/vnd.mobius.txf", "txf"
+"application/vnd.mophun.application", "mpn"
+"application/vnd.mophun.certificate", "mpc"
+"application/vnd.mozilla.xul+xml", "xul"
+"application/vnd.ms-artgalry", "cil"
+"application/vnd.ms-cab-compressed", "cab"
+"application/vnd.ms-excel", "xls"
+"application/vnd.ms-excel.addin.macroenabled.12", "xlam"
+"application/vnd.ms-excel.sheet.binary.macroenabled.12", "xlsb"
+"application/vnd.ms-excel.sheet.macroenabled.12", "xlsm"
+"application/vnd.ms-excel.template.macroenabled.12", "xltm"
+"application/vnd.ms-fontobject", "eot"
+"application/vnd.ms-htmlhelp", "chm"
+"application/vnd.ms-ims", "ims"
+"application/vnd.ms-lrm", "lrm"
+"application/vnd.ms-officetheme", "thmx"
+"application/vnd.ms-pki.seccat", "cat"
+"application/vnd.ms-pki.stl", "stl"
+"application/vnd.ms-powerpoint", "ppt"
+"application/vnd.ms-powerpoint.addin.macroenabled.12", "ppam"
+"application/vnd.ms-powerpoint.presentation.macroenabled.12", "pptm"
+"application/vnd.ms-powerpoint.slide.macroenabled.12", "sldm"
+"application/vnd.ms-powerpoint.slideshow.macroenabled.12", "ppsm"
+"application/vnd.ms-powerpoint.template.macroenabled.12", "potm"
+"application/vnd.ms-project", "mpp"
+"application/vnd.ms-word.document.macroenabled.12", "docm"
+"application/vnd.ms-word.template.macroenabled.12", "dotm"
+"application/vnd.ms-works", "wps"
+"application/vnd.ms-wpl", "wpl"
+"application/vnd.ms-xpsdocument", "xps"
+"application/vnd.mseq", "mseq"
+"application/vnd.musician", "mus"
+"application/vnd.muvee.style", "msty"
+"application/vnd.mynfc", "taglet"
+"application/vnd.neurolanguage.nlu", "nlu"
+"application/vnd.nitf", "ntf"
+"application/vnd.noblenet-directory", "nnd"
+"application/vnd.noblenet-sealer", "nns"
+"application/vnd.noblenet-web", "nnw"
+"application/vnd.nokia.n-gage.data", "ngdat"
+"application/vnd.nokia.n-gage.symbian.install", "n-gage"
+"application/vnd.nokia.radio-preset", "rpst"
+"application/vnd.nokia.radio-presets", "rpss"
+"application/vnd.novadigm.edm", "edm"
+"application/vnd.novadigm.edx", "edx"
+"application/vnd.novadigm.ext", "ext"
+"application/vnd.oasis.opendocument.chart", "odc"
+"application/vnd.oasis.opendocument.chart-template", "otc"
+"application/vnd.oasis.opendocument.database", "odb"
+"application/vnd.oasis.opendocument.formula", "odf"
+"application/vnd.oasis.opendocument.formula-template", "odft"
+"application/vnd.oasis.opendocument.graphics", "odg"
+"application/vnd.oasis.opendocument.graphics-template", "otg"
+"application/vnd.oasis.opendocument.image", "odi"
+"application/vnd.oasis.opendocument.image-template", "oti"
+"application/vnd.oasis.opendocument.presentation", "odp"
+"application/vnd.oasis.opendocument.presentation-template", "otp"
+"application/vnd.oasis.opendocument.spreadsheet", "ods"
+"application/vnd.oasis.opendocument.spreadsheet-template", "ots"
+"application/vnd.oasis.opendocument.text", "odt"
+"application/vnd.oasis.opendocument.text-master", "odm"
+"application/vnd.oasis.opendocument.text-template", "ott"
+"application/vnd.oasis.opendocument.text-web", "oth"
+"application/vnd.olpc-sugar", "xo"
+"application/vnd.oma.dd2+xml", "dd2"
+"application/vnd.openofficeorg.extension", "oxt"
+"application/vnd.openxmlformats-officedocument.presentationml.presentation", "pptx"
+"application/vnd.openxmlformats-officedocument.presentationml.slide", "sldx"
+"application/vnd.openxmlformats-officedocument.presentationml.slideshow", "ppsx"
+"application/vnd.openxmlformats-officedocument.presentationml.template", "potx"
+"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlsx"
+"application/vnd.openxmlformats-officedocument.spreadsheetml.template", "xltx"
+"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "docx"
+"application/vnd.openxmlformats-officedocument.wordprocessingml.template", "dotx"
+"application/vnd.osgeo.mapguide.package", "mgp"
+"application/vnd.osgi.dp", "dp"
+"application/vnd.osgi.subsystem", "esa"
+"application/vnd.palm", "pdb"
+"application/vnd.pawaafile", "paw"
+"application/vnd.pg.format", "str"
+"application/vnd.pg.osasli", "ei6"
+"application/vnd.picsel", "efif"
+"application/vnd.pmi.widget", "wg"
+"application/vnd.pocketlearn", "plf"
+"application/vnd.powerbuilder6", "pbd"
+"application/vnd.previewsystems.box", "box"
+"application/vnd.proteus.magazine", "mgz"
+"application/vnd.publishare-delta-tree", "qps"
+"application/vnd.pvi.ptid1", "ptid"
+"application/vnd.quark.quarkxpress", "qxd"
+"application/vnd.realvnc.bed", "bed"
+"application/vnd.recordare.musicxml", "mxl"
+"application/vnd.recordare.musicxml+xml", "musicxml"
+"application/vnd.rig.cryptonote", "cryptonote"
+"application/vnd.rim.cod", "cod"
+"application/vnd.rn-realmedia", "rm"
+"application/vnd.rn-realmedia-vbr", "rmvb"
+"application/vnd.route66.link66+xml", "link66"
+"application/vnd.sailingtracker.track", "st"
+"application/vnd.seemail", "see"
+"application/vnd.sema", "sema"
+"application/vnd.semd", "semd"
+"application/vnd.semf", "semf"
+"application/vnd.shana.informed.formdata", "ifm"
+"application/vnd.shana.informed.formtemplate", "itp"
+"application/vnd.shana.informed.interchange", "iif"
+"application/vnd.shana.informed.package", "ipk"
+"application/vnd.simtech-mindmapper", "twd"
+"application/vnd.smaf", "mmf"
+"application/vnd.smart.teacher", "teacher"
+"application/vnd.solent.sdkm+xml", "sdkm"
+"application/vnd.spotfire.dxp", "dxp"
+"application/vnd.spotfire.sfs", "sfs"
+"application/vnd.stardivision.calc", "sdc"
+"application/vnd.stardivision.draw", "sda"
+"application/vnd.stardivision.impress", "sdd"
+"application/vnd.stardivision.math", "smf"
+"application/vnd.stardivision.writer", "sdw"
+"application/vnd.stardivision.writer-global", "sgl"
+"application/vnd.stepmania.package", "smzip"
+"application/vnd.stepmania.stepchart", "sm"
+"application/vnd.sun.xml.calc", "sxc"
+"application/vnd.sun.xml.calc.template", "stc"
+"application/vnd.sun.xml.draw", "sxd"
+"application/vnd.sun.xml.draw.template", "std"
+"application/vnd.sun.xml.impress", "sxi"
+"application/vnd.sun.xml.impress.template", "sti"
+"application/vnd.sun.xml.math", "sxm"
+"application/vnd.sun.xml.writer", "sxw"
+"application/vnd.sun.xml.writer.global", "sxg"
+"application/vnd.sun.xml.writer.template", "stw"
+"application/vnd.sus-calendar", "sus"
+"application/vnd.svd", "svd"
+"application/vnd.symbian.install", "sis"
+"application/vnd.syncml+xml", "xsm"
+"application/vnd.syncml.dm+wbxml", "bdm"
+"application/vnd.syncml.dm+xml", "xdm"
+"application/vnd.tao.intent-module-archive", "tao"
+"application/vnd.tcpdump.pcap", "pcap"
+"application/vnd.tmobile-livetv", "tmo"
+"application/vnd.trid.tpt", "tpt"
+"application/vnd.triscape.mxs", "mxs"
+"application/vnd.trueapp", "tra"
+"application/vnd.ufdl", "ufd"
+"application/vnd.uiq.theme", "utz"
+"application/vnd.umajin", "umj"
+"application/vnd.unity", "unityweb"
+"application/vnd.uoml+xml", "uoml"
+"application/vnd.vcx", "vcx"
+"application/vnd.visio", "vsd"
+"application/vnd.visionary", "vis"
+"application/vnd.vsf", "vsf"
+"application/vnd.wap.wbxml", "wbxml"
+"application/vnd.wap.wmlc", "wmlc"
+"application/vnd.wap.wmlscriptc", "wmlsc"
+"application/vnd.webturbo", "wtb"
+"application/vnd.wolfram.player", "nbp"
+"application/vnd.wordperfect", "wpd"
+"application/vnd.wqd", "wqd"
+"application/vnd.wt.stf", "stf"
+"application/vnd.xara", "xar"
+"application/vnd.xfdl", "xfdl"
+"application/vnd.yamaha.hv-dic", "hvd"
+"application/vnd.yamaha.hv-script", "hvs"
+"application/vnd.yamaha.hv-voice", "hvp"
+"application/vnd.yamaha.openscoreformat", "osf"
+"application/vnd.yamaha.openscoreformat.osfpvg+xml", "osfpvg"
+"application/vnd.yamaha.smaf-audio", "saf"
+"application/vnd.yamaha.smaf-phrase", "spf"
+"application/vnd.yellowriver-custom-menu", "cmp"
+"application/vnd.zul", "zir"
+"application/vnd.zzazz.deck+xml", "zaz"
+"application/voicexml+xml", "vxml"
+"application/widget", "wgt"
+"application/winhlp", "hlp"
+"application/wsdl+xml", "wsdl"
+"application/wspolicy+xml", "wspolicy"
+"application/x-7z-compressed", "7z"
+"application/x-abiword", "abw"
+"application/x-ace-compressed", "ace"
+"application/x-apple-diskimage", "dmg"
+"application/x-authorware-bin", "aab"
+"application/x-authorware-map", "aam"
+"application/x-authorware-seg", "aas"
+"application/x-bcpio", "bcpio"
+"application/x-bittorrent", "torrent"
+"application/x-blorb", "blb"
+"application/x-bzip", "bz"
+"application/x-bzip2", "bz2"
+"application/x-cbr", "cbr"
+"application/x-cdlink", "vcd"
+"application/x-cfs-compressed", "cfs"
+"application/x-chat", "chat"
+"application/x-chess-pgn", "pgn"
+"application/x-conference", "nsc"
+"application/x-cpio", "cpio"
+"application/x-csh", "csh"
+"application/x-debian-package", "deb"
+"application/x-dgc-compressed", "dgc"
+"application/x-director", "dir"
+"application/x-doom", "wad"
+"application/x-dtbncx+xml", "ncx"
+"application/x-dtbook+xml", "dtb"
+"application/x-dtbresource+xml", "res"
+"application/x-dvi", "dvi"
+"application/x-envoy", "evy"
+"application/x-eva", "eva"
+"application/x-fictionbook+xml", "fb2"
+"application/x-font-bdf", "bdf"
+"application/x-font-ghostscript", "gsf"
+"application/x-font-linux-psf", "psf"
+"application/x-font-otf", "otf"
+"application/x-font-pcf", "pcf"
+"application/x-font-snf", "snf"
+"application/x-font-ttf", "ttf"
+"application/x-font-type1", "pfa"
+"application/x-font-woff", "woff"
+"application/x-freearc", "arc"
+"application/x-futuresplash", "spl"
+"application/x-gca-compressed", "gca"
+"application/x-glulx", "ulx"
+"application/x-gnumeric", "gnumeric"
+"application/x-gramps-xml", "gramps"
+"application/x-gtar", "gtar"
+"application/x-hdf", "hdf"
+"application/x-install-instructions", "install"
+"application/x-iso9660-image", "iso"
+"application/x-java-jnlp-file", "jnlp"
+"application/x-latex", "latex"
+"application/x-lzh-compressed", "lzh"
+"application/x-mie", "mie"
+"application/x-mobipocket-ebook", "prc"
+"application/x-ms-application", "application"
+"application/x-ms-shortcut", "lnk"
+"application/x-ms-wmd", "wmd"
+"application/x-ms-wmz", "wmz"
+"application/x-ms-xbap", "xbap"
+"application/x-msaccess", "mdb"
+"application/x-msbinder", "obd"
+"application/x-mscardfile", "crd"
+"application/x-msclip", "clp"
+"application/x-msdownload", "exe"
+"application/x-msmediaview", "mvb"
+"application/x-msmetafile", "wmf"
+"application/x-msmoney", "mny"
+"application/x-mspublisher", "pub"
+"application/x-msschedule", "scd"
+"application/x-msterminal", "trm"
+"application/x-mswrite", "wri"
+"application/x-netcdf", "nc"
+"application/x-nzb", "nzb"
+"application/x-pkcs12", "p12"
+"application/x-pkcs7-certificates", "p7b"
+"application/x-pkcs7-certreqresp", "p7r"
+"application/x-rar-compressed", "rar"
+"application/x-research-info-systems", "ris"
+"application/x-sh", "sh"
+"application/x-shar", "shar"
+"application/x-shockwave-flash", "swf"
+"application/x-silverlight-app", "xap"
+"application/x-sql", "sql"
+"application/x-stuffit", "sit"
+"application/x-stuffitx", "sitx"
+"application/x-subrip", "srt"
+"application/x-sv4cpio", "sv4cpio"
+"application/x-sv4crc", "sv4crc"
+"application/x-t3vm-image", "t3"
+"application/x-tads", "gam"
+"application/x-tar", "tar"
+"application/x-tcl", "tcl"
+"application/x-tex", "tex"
+"application/x-tex-tfm", "tfm"
+"application/x-texinfo", "texinfo"
+"application/x-tgif", "obj"
+"application/x-tgsticker", "tgs"
+"application/x-tgwallpattern", "tgv"
+"application/x-ustar", "ustar"
+"application/x-wais-source", "src"
+"application/x-x509-ca-cert", "der"
+"application/x-xfig", "fig"
+"application/x-xliff+xml", "xlf"
+"application/x-xpinstall", "xpi"
+"application/x-xz", "xz"
+"application/x-zmachine", "z1"
+"application/xaml+xml", "xaml"
+"application/xcap-diff+xml", "xdf"
+"application/xenc+xml", "xenc"
+"application/xhtml+xml", "xhtml"
+"application/xml", "xml"
+"application/xml-dtd", "dtd"
+"application/xop+xml", "xop"
+"application/xproc+xml", "xpl"
+"application/xslt+xml", "xslt"
+"application/xspf+xml", "xspf"
+"application/xv+xml", "mxml"
+"application/yang", "yang"
+"application/yin+xml", "yin"
+"application/zip", "zip"
+"audio/adpcm", "adp"
+"audio/basic", "au"
+"audio/midi", "midi"
+"audio/mp4", "m4a"
+"audio/mpeg", "mp3"
+"audio/ogg", "oga"
+"audio/s3m", "s3m"
+"audio/silk", "sil"
+"audio/vnd.dece.audio", "uva"
+"audio/vnd.digital-winds", "eol"
+"audio/vnd.dra", "dra"
+"audio/vnd.dts", "dts"
+"audio/vnd.dts.hd", "dtshd"
+"audio/vnd.lucent.voice", "lvp"
+"audio/vnd.ms-playready.media.pya", "pya"
+"audio/vnd.nuera.ecelp4800", "ecelp4800"
+"audio/vnd.nuera.ecelp7470", "ecelp7470"
+"audio/vnd.nuera.ecelp9600", "ecelp9600"
+"audio/vnd.rip", "rip"
+"audio/webm", "weba"
+"audio/x-aac", "aac"
+"audio/x-aiff", "aif"
+"audio/x-caf", "caf"
+"audio/x-flac", "flac"
+"audio/x-matroska", "mka"
+"audio/x-mpegurl", "m3u"
+"audio/x-ms-wax", "wax"
+"audio/x-ms-wma", "wma"
+"audio/x-pn-realaudio", "ram"
+"audio/x-pn-realaudio-plugin", "rmp"
+"audio/x-wav", "wav"
+"audio/xm", "xm"
+"chemical/x-cdx", "cdx"
+"chemical/x-cif", "cif"
+"chemical/x-cmdf", "cmdf"
+"chemical/x-cml", "cml"
+"chemical/x-csml", "csml"
+"chemical/x-xyz", "xyz"
+"font/collection", "ttc"
+"font/otf", "otf"
+"font/ttf", "ttf"
+"font/woff", "woff"
+"font/woff2", "woff2"
+"image/bmp", "bmp"
+"image/cgm", "cgm"
+"image/g3fax", "g3"
+"image/gif", "gif"
+"image/heic", "heic"
+"image/heic-sequence", "heics"
+"image/heif", "heif"
+"image/heif-sequence", "heifs"
+"image/ief", "ief"
+"image/jpeg", "jpg"
+"image/ktx", "ktx"
+"image/png", "png"
+"image/prs.btif", "btif"
+"image/sgi", "sgi"
+"image/svg+xml", "svg"
+"image/tiff", "tiff"
+"image/vnd.adobe.photoshop", "psd"
+"image/vnd.dece.graphic", "uvi"
+"image/vnd.djvu", "djvu"
+"image/vnd.dvb.subtitle", "sub"
+"image/vnd.dwg", "dwg"
+"image/vnd.dxf", "dxf"
+"image/vnd.fastbidsheet", "fbs"
+"image/vnd.fpx", "fpx"
+"image/vnd.fst", "fst"
+"image/vnd.fujixerox.edmics-mmr", "mmr"
+"image/vnd.fujixerox.edmics-rlc", "rlc"
+"image/vnd.ms-modi", "mdi"
+"image/vnd.ms-photo", "wdp"
+"image/vnd.net-fpx", "npx"
+"image/vnd.wap.wbmp", "wbmp"
+"image/vnd.xiff", "xif"
+"image/webp", "webp"
+"image/x-3ds", "3ds"
+"image/x-cmu-raster", "ras"
+"image/x-cmx", "cmx"
+"image/x-freehand", "fh"
+"image/x-icon", "ico"
+"image/x-mrsid-image", "sid"
+"image/x-pcx", "pcx"
+"image/x-pict", "pic"
+"image/x-portable-anymap", "pnm"
+"image/x-portable-bitmap", "pbm"
+"image/x-portable-graymap", "pgm"
+"image/x-portable-pixmap", "ppm"
+"image/x-rgb", "rgb"
+"image/x-tga", "tga"
+"image/x-xbitmap", "xbm"
+"image/x-xpixmap", "xpm"
+"image/x-xwindowdump", "xwd"
+"message/rfc822", "eml"
+"model/iges", "igs"
+"model/mesh", "msh"
+"model/vnd.collada+xml", "dae"
+"model/vnd.dwf", "dwf"
+"model/vnd.gdl", "gdl"
+"model/vnd.gtw", "gtw"
+"model/vnd.mts", "mts"
+"model/vnd.vtu", "vtu"
+"model/vrml", "wrl"
+"model/x3d+binary", "x3db"
+"model/x3d+vrml", "x3dv"
+"model/x3d+xml", "x3d"
+"text/cache-manifest", "appcache"
+"text/calendar", "ics"
+"text/css", "css"
+"text/csv", "csv"
+"text/html", "html"
+"text/n3", "n3"
+"text/plain", "txt"
+"text/prs.lines.tag", "dsc"
+"text/richtext", "rtx"
+"text/sgml", "sgml"
+"text/tab-separated-values", "tsv"
+"text/troff", "t"
+"text/turtle", "ttl"
+"text/uri-list", "uri"
+"text/vcard", "vcard"
+"text/vnd.curl", "curl"
+"text/vnd.curl.dcurl", "dcurl"
+"text/vnd.curl.mcurl", "mcurl"
+"text/vnd.curl.scurl", "scurl"
+"text/vnd.dvb.subtitle", "sub"
+"text/vnd.fly", "fly"
+"text/vnd.fmi.flexstor", "flx"
+"text/vnd.graphviz", "gv"
+"text/vnd.in3d.3dml", "3dml"
+"text/vnd.in3d.spot", "spot"
+"text/vnd.sun.j2me.app-descriptor", "jad"
+"text/vnd.wap.wml", "wml"
+"text/vnd.wap.wmlscript", "wmls"
+"text/x-asm", "asm"
+"text/x-c", "c"
+"text/x-fortran", "f"
+"text/x-java-source", "java"
+"text/x-nfo", "nfo"
+"text/x-opml", "opml"
+"text/x-pascal", "pas"
+"text/x-php", "php"
+"text/x-setext", "etx"
+"text/x-sfv", "sfv"
+"text/x-uuencode", "uu"
+"text/x-vcalendar", "vcs"
+"text/x-vcard", "vcf"
+"video/3gpp", "3gp"
+"video/3gpp2", "3g2"
+"video/h261", "h261"
+"video/h263", "h263"
+"video/h264", "h264"
+"video/h265", "h265"
+"video/jpeg", "jpgv"
+"video/jpm", "jpm"
+"video/mj2", "mj2"
+"video/mp4", "mp4"
+"video/mpeg", "mpeg"
+"video/ogg", "ogv"
+"video/quicktime", "mov"
+"video/vnd.dece.hd", "uvh"
+"video/vnd.dece.mobile", "uvm"
+"video/vnd.dece.pd", "uvp"
+"video/vnd.dece.sd", "uvs"
+"video/vnd.dece.video", "uvv"
+"video/vnd.dvb.file", "dvb"
+"video/vnd.fvt", "fvt"
+"video/vnd.mpegurl", "mxu"
+"video/vnd.ms-playready.media.pyv", "pyv"
+"video/vnd.uvvu.mp4", "uvu"
+"video/vnd.vivo", "viv"
+"video/webm", "webm"
+"video/x-f4v", "f4v"
+"video/x-fli", "fli"
+"video/x-flv", "flv"
+"video/x-m4v", "m4v"
+"video/x-matroska", "mkv"
+"video/x-mng", "mng"
+"video/x-ms-asf", "asf"
+"video/x-ms-vob", "vob"
+"video/x-ms-wm", "wm"
+"video/x-ms-wmv", "wmv"
+"video/x-ms-wmx", "wmx"
+"video/x-ms-wvx", "wvx"
+"video/x-msvideo", "avi"
+"video/x-sgi-movie", "movie"
+"video/x-smv", "smv"
+"x-conference/x-cooltalk", "ice"
+%%
+const char *mime_type_to_extension(const char *mime_type, size_t mime_type_len) {
+ const auto &result = search_mime_type(mime_type, mime_type_len);
+ if (result == nullptr) {
+ return nullptr;
+ }
+
+ return result->extension;
+}