1use super::*;
2
3#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
4#[serde(tag = "type")]
5#[non_exhaustive]
6pub enum AgentCryptoError {
7 #[serde(rename = "DECRYPT_AES")]
8 DecryptAes,
9 #[serde(rename = "DECRYPT_CB")]
10 DecryptCb,
11 #[serde(rename = "RATCHET_HEADER")]
12 RatchetHeader,
13 #[serde(rename = "RATCHET_SYNC")]
14 RatchetSync,
15 #[serde(untagged)]
16 Undocumented(BTreeMap<String, JsonObject>),
17}
18
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
20#[serde(tag = "type")]
21#[non_exhaustive]
22pub enum AgentErrorType {
23 #[serde(rename = "CMD")]
24 Cmd {
25 #[serde(rename = "cmdErr")]
26 cmd_err: CommandErrorType,
27
28 #[serde(rename = "errContext")]
29 err_context: String,
30
31 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
32 undocumented: BTreeMap<String, JsonObject>,
33 },
34 #[serde(rename = "CONN")]
35 Conn {
36 #[serde(rename = "connErr")]
37 conn_err: ConnectionErrorType,
38
39 #[serde(rename = "errContext")]
40 err_context: String,
41
42 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
43 undocumented: BTreeMap<String, JsonObject>,
44 },
45 #[serde(rename = "NO_USER")]
46 NoUser,
47 #[serde(rename = "SMP")]
48 Smp {
49 #[serde(rename = "serverAddress")]
50 server_address: String,
51
52 #[serde(rename = "smpErr")]
53 smp_err: ErrorType,
54
55 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
56 undocumented: BTreeMap<String, JsonObject>,
57 },
58 #[serde(rename = "NTF")]
59 Ntf {
60 #[serde(rename = "serverAddress")]
61 server_address: String,
62
63 #[serde(rename = "ntfErr")]
64 ntf_err: ErrorType,
65
66 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
67 undocumented: BTreeMap<String, JsonObject>,
68 },
69 #[serde(rename = "XFTP")]
70 Xftp {
71 #[serde(rename = "serverAddress")]
72 server_address: String,
73
74 #[serde(rename = "xftpErr")]
75 xftp_err: XFTPErrorType,
76
77 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
78 undocumented: BTreeMap<String, JsonObject>,
79 },
80 #[serde(rename = "FILE")]
81 File {
82 #[serde(rename = "fileErr")]
83 file_err: FileErrorType,
84
85 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
86 undocumented: BTreeMap<String, JsonObject>,
87 },
88 #[serde(rename = "PROXY")]
89 Proxy {
90 #[serde(rename = "proxyServer")]
91 proxy_server: String,
92
93 #[serde(rename = "relayServer")]
94 relay_server: String,
95
96 #[serde(rename = "proxyErr")]
97 proxy_err: ProxyClientError,
98
99 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
100 undocumented: BTreeMap<String, JsonObject>,
101 },
102 #[serde(rename = "RCP")]
103 Rcp {
104 #[serde(rename = "rcpErr")]
105 rcp_err: RCErrorType,
106
107 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
108 undocumented: BTreeMap<String, JsonObject>,
109 },
110 #[serde(rename = "BROKER")]
111 Broker {
112 #[serde(rename = "brokerAddress")]
113 broker_address: String,
114
115 #[serde(rename = "brokerErr")]
116 broker_err: BrokerErrorType,
117
118 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
119 undocumented: BTreeMap<String, JsonObject>,
120 },
121 #[serde(rename = "AGENT")]
122 Agent {
123 #[serde(rename = "agentErr")]
124 agent_err: SMPAgentError,
125
126 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
127 undocumented: BTreeMap<String, JsonObject>,
128 },
129 #[serde(rename = "INTERNAL")]
130 Internal {
131 #[serde(rename = "internalErr")]
132 internal_err: String,
133
134 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
135 undocumented: BTreeMap<String, JsonObject>,
136 },
137 #[serde(rename = "CRITICAL")]
138 Critical {
139 #[serde(rename = "offerRestart")]
140 offer_restart: bool,
141
142 #[serde(rename = "criticalErr")]
143 critical_err: String,
144
145 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
146 undocumented: BTreeMap<String, JsonObject>,
147 },
148 #[serde(rename = "INACTIVE")]
149 Inactive,
150 #[serde(untagged)]
151 Undocumented(BTreeMap<String, JsonObject>),
152}
153
154#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
155#[serde(tag = "type")]
156#[non_exhaustive]
157pub enum BrokerErrorType {
158 #[serde(rename = "RESPONSE")]
159 Response {
160 #[serde(rename = "respErr")]
161 resp_err: String,
162
163 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
164 undocumented: BTreeMap<String, JsonObject>,
165 },
166 #[serde(rename = "UNEXPECTED")]
167 Unexpected {
168 #[serde(rename = "respErr")]
169 resp_err: String,
170
171 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
172 undocumented: BTreeMap<String, JsonObject>,
173 },
174 #[serde(rename = "NETWORK")]
175 Network {
176 #[serde(rename = "networkError")]
177 network_error: NetworkError,
178
179 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
180 undocumented: BTreeMap<String, JsonObject>,
181 },
182 #[serde(rename = "HOST")]
183 Host,
184 #[serde(rename = "NO_SERVICE")]
185 NoService,
186 #[serde(rename = "TRANSPORT")]
187 Transport {
188 #[serde(rename = "transportErr")]
189 transport_err: TransportError,
190
191 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
192 undocumented: BTreeMap<String, JsonObject>,
193 },
194 #[serde(rename = "TIMEOUT")]
195 Timeout,
196 #[serde(untagged)]
197 Undocumented(BTreeMap<String, JsonObject>),
198}
199
200#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
201#[serde(tag = "type")]
202#[non_exhaustive]
203pub enum ChatError {
204 #[serde(rename = "error")]
205 Error {
206 #[serde(rename = "errorType")]
207 error_type: ChatErrorType,
208
209 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
210 undocumented: BTreeMap<String, JsonObject>,
211 },
212 #[serde(rename = "errorAgent")]
213 ErrorAgent {
214 #[serde(rename = "agentError")]
215 agent_error: AgentErrorType,
216
217 #[serde(rename = "connectionEntity_", skip_serializing_if = "Option::is_none")]
218 connection_entity: Option<ConnectionEntity>,
219
220 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
221 undocumented: BTreeMap<String, JsonObject>,
222 },
223 #[serde(rename = "errorStore")]
224 ErrorStore {
225 #[serde(rename = "storeError")]
226 store_error: StoreError,
227
228 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
229 undocumented: BTreeMap<String, JsonObject>,
230 },
231 #[serde(untagged)]
232 Undocumented(BTreeMap<String, JsonObject>),
233}
234
235#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
236#[serde(tag = "type")]
237#[non_exhaustive]
238pub enum ChatErrorType {
239 #[serde(rename = "noActiveUser")]
240 NoActiveUser,
241 #[serde(rename = "noConnectionUser")]
242 NoConnectionUser {
243 #[serde(rename = "agentConnId")]
244 agent_conn_id: String,
245
246 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
247 undocumented: BTreeMap<String, JsonObject>,
248 },
249 #[serde(rename = "noSndFileUser")]
250 NoSndFileUser {
251 #[serde(rename = "agentSndFileId")]
252 agent_snd_file_id: String,
253
254 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
255 undocumented: BTreeMap<String, JsonObject>,
256 },
257 #[serde(rename = "noRcvFileUser")]
258 NoRcvFileUser {
259 #[serde(rename = "agentRcvFileId")]
260 agent_rcv_file_id: String,
261
262 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
263 undocumented: BTreeMap<String, JsonObject>,
264 },
265 #[serde(rename = "userUnknown")]
266 UserUnknown,
267 #[serde(rename = "activeUserExists")]
268 ActiveUserExists,
269 #[serde(rename = "userExists")]
270 UserExists {
271 #[serde(rename = "contactName")]
272 contact_name: String,
273
274 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
275 undocumented: BTreeMap<String, JsonObject>,
276 },
277 #[serde(rename = "differentActiveUser")]
278 DifferentActiveUser {
279 #[serde(
280 rename = "commandUserId",
281 deserialize_with = "deserialize_number_from_string"
282 )]
283 command_user_id: i64,
284
285 #[serde(
286 rename = "activeUserId",
287 deserialize_with = "deserialize_number_from_string"
288 )]
289 active_user_id: i64,
290
291 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
292 undocumented: BTreeMap<String, JsonObject>,
293 },
294 #[serde(rename = "cantDeleteActiveUser")]
295 CantDeleteActiveUser {
296 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
297 user_id: i64,
298
299 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
300 undocumented: BTreeMap<String, JsonObject>,
301 },
302 #[serde(rename = "cantDeleteLastUser")]
303 CantDeleteLastUser {
304 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
305 user_id: i64,
306
307 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
308 undocumented: BTreeMap<String, JsonObject>,
309 },
310 #[serde(rename = "cantHideLastUser")]
311 CantHideLastUser {
312 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
313 user_id: i64,
314
315 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
316 undocumented: BTreeMap<String, JsonObject>,
317 },
318 #[serde(rename = "hiddenUserAlwaysMuted")]
319 HiddenUserAlwaysMuted {
320 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
321 user_id: i64,
322
323 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
324 undocumented: BTreeMap<String, JsonObject>,
325 },
326 #[serde(rename = "emptyUserPassword")]
327 EmptyUserPassword {
328 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
329 user_id: i64,
330
331 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
332 undocumented: BTreeMap<String, JsonObject>,
333 },
334 #[serde(rename = "userAlreadyHidden")]
335 UserAlreadyHidden {
336 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
337 user_id: i64,
338
339 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
340 undocumented: BTreeMap<String, JsonObject>,
341 },
342 #[serde(rename = "userNotHidden")]
343 UserNotHidden {
344 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
345 user_id: i64,
346
347 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
348 undocumented: BTreeMap<String, JsonObject>,
349 },
350 #[serde(rename = "invalidDisplayName")]
351 InvalidDisplayName {
352 #[serde(rename = "displayName")]
353 display_name: String,
354
355 #[serde(rename = "validName")]
356 valid_name: String,
357
358 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
359 undocumented: BTreeMap<String, JsonObject>,
360 },
361 #[serde(rename = "chatNotStarted")]
362 ChatNotStarted,
363 #[serde(rename = "chatNotStopped")]
364 ChatNotStopped,
365 #[serde(rename = "chatStoreChanged")]
366 ChatStoreChanged,
367 #[serde(rename = "invalidConnReq")]
368 InvalidConnReq,
369 #[serde(rename = "unsupportedConnReq")]
370 UnsupportedConnReq,
371 #[serde(rename = "connReqMessageProhibited")]
372 ConnReqMessageProhibited,
373 #[serde(rename = "contactNotReady")]
374 ContactNotReady {
375 #[serde(rename = "contact")]
376 contact: Contact,
377
378 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
379 undocumented: BTreeMap<String, JsonObject>,
380 },
381 #[serde(rename = "contactNotActive")]
382 ContactNotActive {
383 #[serde(rename = "contact")]
384 contact: Contact,
385
386 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
387 undocumented: BTreeMap<String, JsonObject>,
388 },
389 #[serde(rename = "contactDisabled")]
390 ContactDisabled {
391 #[serde(rename = "contact")]
392 contact: Contact,
393
394 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
395 undocumented: BTreeMap<String, JsonObject>,
396 },
397 #[serde(rename = "connectionDisabled")]
398 ConnectionDisabled {
399 #[serde(rename = "connection")]
400 connection: Connection,
401
402 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
403 undocumented: BTreeMap<String, JsonObject>,
404 },
405 #[serde(rename = "groupUserRole")]
406 GroupUserRole {
407 #[serde(rename = "groupInfo")]
408 group_info: GroupInfo,
409
410 #[serde(rename = "requiredRole")]
411 required_role: GroupMemberRole,
412
413 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
414 undocumented: BTreeMap<String, JsonObject>,
415 },
416 #[serde(rename = "groupMemberInitialRole")]
417 GroupMemberInitialRole {
418 #[serde(rename = "groupInfo")]
419 group_info: GroupInfo,
420
421 #[serde(rename = "initialRole")]
422 initial_role: GroupMemberRole,
423
424 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
425 undocumented: BTreeMap<String, JsonObject>,
426 },
427 #[serde(rename = "contactIncognitoCantInvite")]
428 ContactIncognitoCantInvite,
429 #[serde(rename = "groupIncognitoCantInvite")]
430 GroupIncognitoCantInvite,
431 #[serde(rename = "groupContactRole")]
432 GroupContactRole {
433 #[serde(rename = "contactName")]
434 contact_name: String,
435
436 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
437 undocumented: BTreeMap<String, JsonObject>,
438 },
439 #[serde(rename = "groupDuplicateMember")]
440 GroupDuplicateMember {
441 #[serde(rename = "contactName")]
442 contact_name: String,
443
444 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
445 undocumented: BTreeMap<String, JsonObject>,
446 },
447 #[serde(rename = "groupDuplicateMemberId")]
448 GroupDuplicateMemberId,
449 #[serde(rename = "groupNotJoined")]
450 GroupNotJoined {
451 #[serde(rename = "groupInfo")]
452 group_info: GroupInfo,
453
454 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
455 undocumented: BTreeMap<String, JsonObject>,
456 },
457 #[serde(rename = "groupMemberNotActive")]
458 GroupMemberNotActive,
459 #[serde(rename = "cantBlockMemberForSelf")]
460 CantBlockMemberForSelf {
461 #[serde(rename = "groupInfo")]
462 group_info: GroupInfo,
463
464 #[serde(rename = "member")]
465 member: GroupMember,
466
467 #[serde(rename = "setShowMessages")]
468 set_show_messages: bool,
469
470 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
471 undocumented: BTreeMap<String, JsonObject>,
472 },
473 #[serde(rename = "groupMemberUserRemoved")]
474 GroupMemberUserRemoved,
475 #[serde(rename = "groupMemberNotFound")]
476 GroupMemberNotFound,
477 #[serde(rename = "groupCantResendInvitation")]
478 GroupCantResendInvitation {
479 #[serde(rename = "groupInfo")]
480 group_info: GroupInfo,
481
482 #[serde(rename = "contactName")]
483 contact_name: String,
484
485 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
486 undocumented: BTreeMap<String, JsonObject>,
487 },
488 #[serde(rename = "groupInternal")]
489 GroupInternal {
490 #[serde(rename = "message")]
491 message: String,
492
493 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
494 undocumented: BTreeMap<String, JsonObject>,
495 },
496 #[serde(rename = "fileNotFound")]
497 FileNotFound {
498 #[serde(rename = "message")]
499 message: String,
500
501 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
502 undocumented: BTreeMap<String, JsonObject>,
503 },
504 #[serde(rename = "fileSize")]
505 FileSize {
506 #[serde(rename = "filePath")]
507 file_path: String,
508
509 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
510 undocumented: BTreeMap<String, JsonObject>,
511 },
512 #[serde(rename = "fileAlreadyReceiving")]
513 FileAlreadyReceiving {
514 #[serde(rename = "message")]
515 message: String,
516
517 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
518 undocumented: BTreeMap<String, JsonObject>,
519 },
520 #[serde(rename = "fileCancelled")]
521 FileCancelled {
522 #[serde(rename = "message")]
523 message: String,
524
525 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
526 undocumented: BTreeMap<String, JsonObject>,
527 },
528 #[serde(rename = "fileCancel")]
529 FileCancel {
530 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
531 file_id: i64,
532
533 #[serde(rename = "message")]
534 message: String,
535
536 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
537 undocumented: BTreeMap<String, JsonObject>,
538 },
539 #[serde(rename = "fileAlreadyExists")]
540 FileAlreadyExists {
541 #[serde(rename = "filePath")]
542 file_path: String,
543
544 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
545 undocumented: BTreeMap<String, JsonObject>,
546 },
547 #[serde(rename = "fileRead")]
548 FileRead {
549 #[serde(rename = "filePath")]
550 file_path: String,
551
552 #[serde(rename = "message")]
553 message: String,
554
555 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
556 undocumented: BTreeMap<String, JsonObject>,
557 },
558 #[serde(rename = "fileWrite")]
559 FileWrite {
560 #[serde(rename = "filePath")]
561 file_path: String,
562
563 #[serde(rename = "message")]
564 message: String,
565
566 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
567 undocumented: BTreeMap<String, JsonObject>,
568 },
569 #[serde(rename = "fileSend")]
570 FileSend {
571 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
572 file_id: i64,
573
574 #[serde(rename = "agentError")]
575 agent_error: AgentErrorType,
576
577 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
578 undocumented: BTreeMap<String, JsonObject>,
579 },
580 #[serde(rename = "fileRcvChunk")]
581 FileRcvChunk {
582 #[serde(rename = "message")]
583 message: String,
584
585 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
586 undocumented: BTreeMap<String, JsonObject>,
587 },
588 #[serde(rename = "fileInternal")]
589 FileInternal {
590 #[serde(rename = "message")]
591 message: String,
592
593 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
594 undocumented: BTreeMap<String, JsonObject>,
595 },
596 #[serde(rename = "fileImageType")]
597 FileImageType {
598 #[serde(rename = "filePath")]
599 file_path: String,
600
601 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
602 undocumented: BTreeMap<String, JsonObject>,
603 },
604 #[serde(rename = "fileImageSize")]
605 FileImageSize {
606 #[serde(rename = "filePath")]
607 file_path: String,
608
609 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
610 undocumented: BTreeMap<String, JsonObject>,
611 },
612 #[serde(rename = "fileNotReceived")]
613 FileNotReceived {
614 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
615 file_id: i64,
616
617 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
618 undocumented: BTreeMap<String, JsonObject>,
619 },
620 #[serde(rename = "fileNotApproved")]
621 FileNotApproved {
622 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
623 file_id: i64,
624
625 #[serde(rename = "unknownServers")]
626 unknown_servers: Vec<String>,
627
628 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
629 undocumented: BTreeMap<String, JsonObject>,
630 },
631 #[serde(rename = "fallbackToSMPProhibited")]
632 FallbackToSmpProhibited {
633 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
634 file_id: i64,
635
636 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
637 undocumented: BTreeMap<String, JsonObject>,
638 },
639 #[serde(rename = "inlineFileProhibited")]
640 InlineFileProhibited {
641 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
642 file_id: i64,
643
644 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
645 undocumented: BTreeMap<String, JsonObject>,
646 },
647 #[serde(rename = "invalidForward")]
648 InvalidForward,
649 #[serde(rename = "invalidChatItemUpdate")]
650 InvalidChatItemUpdate,
651 #[serde(rename = "invalidChatItemDelete")]
652 InvalidChatItemDelete,
653 #[serde(rename = "hasCurrentCall")]
654 HasCurrentCall,
655 #[serde(rename = "noCurrentCall")]
656 NoCurrentCall,
657 #[serde(rename = "callContact")]
658 CallContact {
659 #[serde(
660 rename = "contactId",
661 deserialize_with = "deserialize_number_from_string"
662 )]
663 contact_id: i64,
664
665 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
666 undocumented: BTreeMap<String, JsonObject>,
667 },
668 #[serde(rename = "directMessagesProhibited")]
669 DirectMessagesProhibited {
670 #[serde(rename = "direction")]
671 direction: MsgDirection,
672
673 #[serde(rename = "contact")]
674 contact: Contact,
675
676 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
677 undocumented: BTreeMap<String, JsonObject>,
678 },
679 #[serde(rename = "agentVersion")]
680 AgentVersion,
681 #[serde(rename = "agentNoSubResult")]
682 AgentNoSubResult {
683 #[serde(rename = "agentConnId")]
684 agent_conn_id: String,
685
686 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
687 undocumented: BTreeMap<String, JsonObject>,
688 },
689 #[serde(rename = "commandError")]
690 CommandError {
691 #[serde(rename = "message")]
692 message: String,
693
694 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
695 undocumented: BTreeMap<String, JsonObject>,
696 },
697 #[serde(rename = "agentCommandError")]
698 AgentCommandError {
699 #[serde(rename = "message")]
700 message: String,
701
702 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
703 undocumented: BTreeMap<String, JsonObject>,
704 },
705 #[serde(rename = "invalidFileDescription")]
706 InvalidFileDescription {
707 #[serde(rename = "message")]
708 message: String,
709
710 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
711 undocumented: BTreeMap<String, JsonObject>,
712 },
713 #[serde(rename = "connectionIncognitoChangeProhibited")]
714 ConnectionIncognitoChangeProhibited,
715 #[serde(rename = "connectionUserChangeProhibited")]
716 ConnectionUserChangeProhibited,
717 #[serde(rename = "peerChatVRangeIncompatible")]
718 PeerChatVRangeIncompatible,
719 #[serde(rename = "internalError")]
720 InternalError {
721 #[serde(rename = "message")]
722 message: String,
723
724 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
725 undocumented: BTreeMap<String, JsonObject>,
726 },
727 #[serde(rename = "exception")]
728 Exception {
729 #[serde(rename = "message")]
730 message: String,
731
732 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
733 undocumented: BTreeMap<String, JsonObject>,
734 },
735 #[serde(untagged)]
736 Undocumented(BTreeMap<String, JsonObject>),
737}
738
739#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
740#[serde(tag = "type")]
741#[non_exhaustive]
742pub enum CommandError {
743 #[serde(rename = "UNKNOWN")]
744 Unknown,
745 #[serde(rename = "SYNTAX")]
746 Syntax,
747 #[serde(rename = "PROHIBITED")]
748 Prohibited,
749 #[serde(rename = "NO_AUTH")]
750 NoAuth,
751 #[serde(rename = "HAS_AUTH")]
752 HasAuth,
753 #[serde(rename = "NO_ENTITY")]
754 NoEntity,
755 #[serde(untagged)]
756 Undocumented(BTreeMap<String, JsonObject>),
757}
758
759#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
760#[serde(tag = "type")]
761#[non_exhaustive]
762pub enum CommandErrorType {
763 #[serde(rename = "PROHIBITED")]
764 Prohibited,
765 #[serde(rename = "SYNTAX")]
766 Syntax,
767 #[serde(rename = "NO_CONN")]
768 NoConn,
769 #[serde(rename = "SIZE")]
770 Size,
771 #[serde(rename = "LARGE")]
772 Large,
773 #[serde(untagged)]
774 Undocumented(BTreeMap<String, JsonObject>),
775}
776
777#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
778#[serde(tag = "type")]
779#[non_exhaustive]
780pub enum ConnectionErrorType {
781 #[serde(rename = "NOT_FOUND")]
782 NotFound,
783 #[serde(rename = "DUPLICATE")]
784 Duplicate,
785 #[serde(rename = "SIMPLEX")]
786 Simplex,
787 #[serde(rename = "NOT_ACCEPTED")]
788 NotAccepted,
789 #[serde(rename = "NOT_AVAILABLE")]
790 NotAvailable,
791 #[serde(untagged)]
792 Undocumented(BTreeMap<String, JsonObject>),
793}
794
795#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
796#[serde(tag = "type")]
797#[non_exhaustive]
798pub enum ErrorType {
799 #[serde(rename = "BLOCK")]
800 Block,
801 #[serde(rename = "SESSION")]
802 Session,
803 #[serde(rename = "CMD")]
804 Cmd {
805 #[serde(rename = "cmdErr")]
806 cmd_err: CommandError,
807
808 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
809 undocumented: BTreeMap<String, JsonObject>,
810 },
811 #[serde(rename = "PROXY")]
812 Proxy {
813 #[serde(rename = "proxyErr")]
814 proxy_err: Arc<ProxyError>,
815
816 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
817 undocumented: BTreeMap<String, JsonObject>,
818 },
819 #[serde(rename = "AUTH")]
820 Auth,
821 #[serde(rename = "BLOCKED")]
822 Blocked {
823 #[serde(rename = "blockInfo")]
824 block_info: BlockingInfo,
825
826 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
827 undocumented: BTreeMap<String, JsonObject>,
828 },
829 #[serde(rename = "SERVICE")]
830 Service,
831 #[serde(rename = "CRYPTO")]
832 Crypto,
833 #[serde(rename = "QUOTA")]
834 Quota,
835 #[serde(rename = "STORE")]
836 Store {
837 #[serde(rename = "storeErr")]
838 store_err: String,
839
840 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
841 undocumented: BTreeMap<String, JsonObject>,
842 },
843 #[serde(rename = "NO_MSG")]
844 NoMsg,
845 #[serde(rename = "LARGE_MSG")]
846 LargeMsg,
847 #[serde(rename = "EXPIRED")]
848 Expired,
849 #[serde(rename = "INTERNAL")]
850 Internal,
851 #[serde(rename = "DUPLICATE_")]
852 Duplicate,
853 #[serde(untagged)]
854 Undocumented(BTreeMap<String, JsonObject>),
855}
856
857#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
858#[serde(tag = "type")]
859#[non_exhaustive]
860pub enum FileError {
861 #[serde(rename = "auth")]
862 Auth,
863 #[serde(rename = "blocked")]
864 Blocked {
865 #[serde(rename = "server")]
866 server: String,
867
868 #[serde(rename = "blockInfo")]
869 block_info: BlockingInfo,
870
871 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
872 undocumented: BTreeMap<String, JsonObject>,
873 },
874 #[serde(rename = "noFile")]
875 NoFile,
876 #[serde(rename = "relay")]
877 Relay {
878 #[serde(rename = "srvError")]
879 srv_error: SrvError,
880
881 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
882 undocumented: BTreeMap<String, JsonObject>,
883 },
884 #[serde(rename = "other")]
885 Other {
886 #[serde(rename = "fileError")]
887 file_error: String,
888
889 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
890 undocumented: BTreeMap<String, JsonObject>,
891 },
892 #[serde(untagged)]
893 Undocumented(BTreeMap<String, JsonObject>),
894}
895
896#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
897#[serde(tag = "type")]
898#[non_exhaustive]
899pub enum FileErrorType {
900 #[serde(rename = "NOT_APPROVED")]
901 NotApproved,
902 #[serde(rename = "SIZE")]
903 Size,
904 #[serde(rename = "REDIRECT")]
905 Redirect {
906 #[serde(rename = "redirectError")]
907 redirect_error: String,
908
909 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
910 undocumented: BTreeMap<String, JsonObject>,
911 },
912 #[serde(rename = "FILE_IO")]
913 FileIo {
914 #[serde(rename = "fileIOError")]
915 file_io_error: String,
916
917 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
918 undocumented: BTreeMap<String, JsonObject>,
919 },
920 #[serde(rename = "NO_FILE")]
921 NoFile,
922 #[serde(untagged)]
923 Undocumented(BTreeMap<String, JsonObject>),
924}
925
926#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
927#[non_exhaustive]
928pub enum HandshakeError {
929 #[default]
930 #[serde(rename = "PARSE")]
931 Parse,
932 #[serde(rename = "IDENTITY")]
933 Identity,
934 #[serde(rename = "BAD_AUTH")]
935 BadAuth,
936 #[serde(rename = "BAD_SERVICE")]
937 BadService,
938}
939
940#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
941#[non_exhaustive]
942pub enum MsgDecryptError {
943 #[default]
944 #[serde(rename = "ratchetHeader")]
945 RatchetHeader,
946 #[serde(rename = "tooManySkipped")]
947 TooManySkipped,
948 #[serde(rename = "ratchetEarlier")]
949 RatchetEarlier,
950 #[serde(rename = "other")]
951 Other,
952 #[serde(rename = "ratchetSync")]
953 RatchetSync,
954}
955
956#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
957#[serde(tag = "type")]
958#[non_exhaustive]
959pub enum MsgErrorType {
960 #[serde(rename = "msgSkipped")]
961 MsgSkipped {
962 #[serde(
963 rename = "fromMsgId",
964 deserialize_with = "deserialize_number_from_string"
965 )]
966 from_msg_id: i64,
967
968 #[serde(
969 rename = "toMsgId",
970 deserialize_with = "deserialize_number_from_string"
971 )]
972 to_msg_id: i64,
973
974 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
975 undocumented: BTreeMap<String, JsonObject>,
976 },
977 #[serde(rename = "msgBadId")]
978 MsgBadId {
979 #[serde(rename = "msgId", deserialize_with = "deserialize_number_from_string")]
980 msg_id: i64,
981
982 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
983 undocumented: BTreeMap<String, JsonObject>,
984 },
985 #[serde(rename = "msgBadHash")]
986 MsgBadHash,
987 #[serde(rename = "msgDuplicate")]
988 MsgDuplicate,
989 #[serde(untagged)]
990 Undocumented(BTreeMap<String, JsonObject>),
991}
992
993#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
994#[serde(tag = "type")]
995#[non_exhaustive]
996pub enum NetworkError {
997 #[serde(rename = "connectError")]
998 ConnectError {
999 #[serde(rename = "connectError")]
1000 connect_error: String,
1001
1002 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1003 undocumented: BTreeMap<String, JsonObject>,
1004 },
1005 #[serde(rename = "tLSError")]
1006 TLsError {
1007 #[serde(rename = "tlsError")]
1008 tls_error: String,
1009
1010 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1011 undocumented: BTreeMap<String, JsonObject>,
1012 },
1013 #[serde(rename = "unknownCAError")]
1014 UnknownCaError,
1015 #[serde(rename = "failedError")]
1016 FailedError,
1017 #[serde(rename = "timeoutError")]
1018 TimeoutError,
1019 #[serde(rename = "subscribeError")]
1020 SubscribeError {
1021 #[serde(rename = "subscribeError")]
1022 subscribe_error: String,
1023
1024 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1025 undocumented: BTreeMap<String, JsonObject>,
1026 },
1027 #[serde(untagged)]
1028 Undocumented(BTreeMap<String, JsonObject>),
1029}
1030
1031#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1032#[serde(tag = "type")]
1033#[non_exhaustive]
1034pub enum ProxyClientError {
1035 #[serde(rename = "protocolError")]
1036 ProtocolError {
1037 #[serde(rename = "protocolErr")]
1038 protocol_err: ErrorType,
1039
1040 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1041 undocumented: BTreeMap<String, JsonObject>,
1042 },
1043 #[serde(rename = "unexpectedResponse")]
1044 UnexpectedResponse {
1045 #[serde(rename = "responseStr")]
1046 response_str: String,
1047
1048 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1049 undocumented: BTreeMap<String, JsonObject>,
1050 },
1051 #[serde(rename = "responseError")]
1052 ResponseError {
1053 #[serde(rename = "responseErr")]
1054 response_err: ErrorType,
1055
1056 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1057 undocumented: BTreeMap<String, JsonObject>,
1058 },
1059 #[serde(untagged)]
1060 Undocumented(BTreeMap<String, JsonObject>),
1061}
1062
1063#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1064#[serde(tag = "type")]
1065#[non_exhaustive]
1066pub enum ProxyError {
1067 #[serde(rename = "PROTOCOL")]
1068 Protocol {
1069 #[serde(rename = "protocolErr")]
1070 protocol_err: ErrorType,
1071
1072 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1073 undocumented: BTreeMap<String, JsonObject>,
1074 },
1075 #[serde(rename = "BROKER")]
1076 Broker {
1077 #[serde(rename = "brokerErr")]
1078 broker_err: BrokerErrorType,
1079
1080 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1081 undocumented: BTreeMap<String, JsonObject>,
1082 },
1083 #[serde(rename = "BASIC_AUTH")]
1084 BasicAuth,
1085 #[serde(rename = "NO_SESSION")]
1086 NoSession,
1087 #[serde(untagged)]
1088 Undocumented(BTreeMap<String, JsonObject>),
1089}
1090
1091#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1092#[serde(tag = "type")]
1093#[non_exhaustive]
1094pub enum RCErrorType {
1095 #[serde(rename = "internal")]
1096 Internal {
1097 #[serde(rename = "internalErr")]
1098 internal_err: String,
1099
1100 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1101 undocumented: BTreeMap<String, JsonObject>,
1102 },
1103 #[serde(rename = "identity")]
1104 Identity,
1105 #[serde(rename = "noLocalAddress")]
1106 NoLocalAddress,
1107 #[serde(rename = "newController")]
1108 NewController,
1109 #[serde(rename = "notDiscovered")]
1110 NotDiscovered,
1111 #[serde(rename = "tLSStartFailed")]
1112 TLsStartFailed,
1113 #[serde(rename = "exception")]
1114 Exception {
1115 #[serde(rename = "exception")]
1116 exception: String,
1117
1118 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1119 undocumented: BTreeMap<String, JsonObject>,
1120 },
1121 #[serde(rename = "ctrlAuth")]
1122 CtrlAuth,
1123 #[serde(rename = "ctrlNotFound")]
1124 CtrlNotFound,
1125 #[serde(rename = "ctrlError")]
1126 CtrlError {
1127 #[serde(rename = "ctrlErr")]
1128 ctrl_err: String,
1129
1130 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1131 undocumented: BTreeMap<String, JsonObject>,
1132 },
1133 #[serde(rename = "invitation")]
1134 Invitation,
1135 #[serde(rename = "version")]
1136 Version,
1137 #[serde(rename = "encrypt")]
1138 Encrypt,
1139 #[serde(rename = "decrypt")]
1140 Decrypt,
1141 #[serde(rename = "blockSize")]
1142 BlockSize,
1143 #[serde(rename = "syntax")]
1144 Syntax {
1145 #[serde(rename = "syntaxErr")]
1146 syntax_err: String,
1147
1148 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1149 undocumented: BTreeMap<String, JsonObject>,
1150 },
1151 #[serde(untagged)]
1152 Undocumented(BTreeMap<String, JsonObject>),
1153}
1154
1155#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1156#[serde(tag = "type")]
1157#[non_exhaustive]
1158pub enum SMPAgentError {
1159 #[serde(rename = "A_MESSAGE")]
1160 AMessage,
1161 #[serde(rename = "A_PROHIBITED")]
1162 AProhibited {
1163 #[serde(rename = "prohibitedErr")]
1164 prohibited_err: String,
1165
1166 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1167 undocumented: BTreeMap<String, JsonObject>,
1168 },
1169 #[serde(rename = "A_VERSION")]
1170 AVersion,
1171 #[serde(rename = "A_LINK")]
1172 ALink {
1173 #[serde(rename = "linkErr")]
1174 link_err: String,
1175
1176 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1177 undocumented: BTreeMap<String, JsonObject>,
1178 },
1179 #[serde(rename = "A_CRYPTO")]
1180 ACrypto {
1181 #[serde(rename = "cryptoErr")]
1182 crypto_err: AgentCryptoError,
1183
1184 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1185 undocumented: BTreeMap<String, JsonObject>,
1186 },
1187 #[serde(rename = "A_DUPLICATE")]
1188 ADuplicate,
1189 #[serde(rename = "A_QUEUE")]
1190 AQueue {
1191 #[serde(rename = "queueErr")]
1192 queue_err: String,
1193
1194 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1195 undocumented: BTreeMap<String, JsonObject>,
1196 },
1197 #[serde(untagged)]
1198 Undocumented(BTreeMap<String, JsonObject>),
1199}
1200
1201#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1202#[serde(tag = "type")]
1203#[non_exhaustive]
1204pub enum SndError {
1205 #[serde(rename = "auth")]
1206 Auth,
1207 #[serde(rename = "quota")]
1208 Quota,
1209 #[serde(rename = "expired")]
1210 Expired,
1211 #[serde(rename = "relay")]
1212 Relay {
1213 #[serde(rename = "srvError")]
1214 srv_error: SrvError,
1215
1216 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1217 undocumented: BTreeMap<String, JsonObject>,
1218 },
1219 #[serde(rename = "proxy")]
1220 Proxy {
1221 #[serde(rename = "proxyServer")]
1222 proxy_server: String,
1223
1224 #[serde(rename = "srvError")]
1225 srv_error: SrvError,
1226
1227 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1228 undocumented: BTreeMap<String, JsonObject>,
1229 },
1230 #[serde(rename = "proxyRelay")]
1231 ProxyRelay {
1232 #[serde(rename = "proxyServer")]
1233 proxy_server: String,
1234
1235 #[serde(rename = "srvError")]
1236 srv_error: SrvError,
1237
1238 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1239 undocumented: BTreeMap<String, JsonObject>,
1240 },
1241 #[serde(rename = "other")]
1242 Other {
1243 #[serde(rename = "sndError")]
1244 snd_error: String,
1245
1246 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1247 undocumented: BTreeMap<String, JsonObject>,
1248 },
1249 #[serde(untagged)]
1250 Undocumented(BTreeMap<String, JsonObject>),
1251}
1252
1253#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1254#[serde(tag = "type")]
1255#[non_exhaustive]
1256pub enum SrvError {
1257 #[serde(rename = "host")]
1258 Host,
1259 #[serde(rename = "version")]
1260 Version,
1261 #[serde(rename = "other")]
1262 Other {
1263 #[serde(rename = "srvError")]
1264 srv_error: String,
1265
1266 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1267 undocumented: BTreeMap<String, JsonObject>,
1268 },
1269 #[serde(untagged)]
1270 Undocumented(BTreeMap<String, JsonObject>),
1271}
1272
1273#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1274#[serde(tag = "type")]
1275#[non_exhaustive]
1276pub enum StoreError {
1277 #[serde(rename = "duplicateName")]
1278 DuplicateName,
1279 #[serde(rename = "userNotFound")]
1280 UserNotFound {
1281 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
1282 user_id: i64,
1283
1284 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1285 undocumented: BTreeMap<String, JsonObject>,
1286 },
1287 #[serde(rename = "userNotFoundByName")]
1288 UserNotFoundByName {
1289 #[serde(rename = "contactName")]
1290 contact_name: String,
1291
1292 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1293 undocumented: BTreeMap<String, JsonObject>,
1294 },
1295 #[serde(rename = "userNotFoundByContactId")]
1296 UserNotFoundByContactId {
1297 #[serde(
1298 rename = "contactId",
1299 deserialize_with = "deserialize_number_from_string"
1300 )]
1301 contact_id: i64,
1302
1303 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1304 undocumented: BTreeMap<String, JsonObject>,
1305 },
1306 #[serde(rename = "userNotFoundByGroupId")]
1307 UserNotFoundByGroupId {
1308 #[serde(
1309 rename = "groupId",
1310 deserialize_with = "deserialize_number_from_string"
1311 )]
1312 group_id: i64,
1313
1314 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1315 undocumented: BTreeMap<String, JsonObject>,
1316 },
1317 #[serde(rename = "userNotFoundByFileId")]
1318 UserNotFoundByFileId {
1319 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1320 file_id: i64,
1321
1322 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1323 undocumented: BTreeMap<String, JsonObject>,
1324 },
1325 #[serde(rename = "userNotFoundByContactRequestId")]
1326 UserNotFoundByContactRequestId {
1327 #[serde(
1328 rename = "contactRequestId",
1329 deserialize_with = "deserialize_number_from_string"
1330 )]
1331 contact_request_id: i64,
1332
1333 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1334 undocumented: BTreeMap<String, JsonObject>,
1335 },
1336 #[serde(rename = "contactNotFound")]
1337 ContactNotFound {
1338 #[serde(
1339 rename = "contactId",
1340 deserialize_with = "deserialize_number_from_string"
1341 )]
1342 contact_id: i64,
1343
1344 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1345 undocumented: BTreeMap<String, JsonObject>,
1346 },
1347 #[serde(rename = "contactNotFoundByName")]
1348 ContactNotFoundByName {
1349 #[serde(rename = "contactName")]
1350 contact_name: String,
1351
1352 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1353 undocumented: BTreeMap<String, JsonObject>,
1354 },
1355 #[serde(rename = "contactNotFoundByMemberId")]
1356 ContactNotFoundByMemberId {
1357 #[serde(
1358 rename = "groupMemberId",
1359 deserialize_with = "deserialize_number_from_string"
1360 )]
1361 group_member_id: i64,
1362
1363 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1364 undocumented: BTreeMap<String, JsonObject>,
1365 },
1366 #[serde(rename = "contactNotReady")]
1367 ContactNotReady {
1368 #[serde(rename = "contactName")]
1369 contact_name: String,
1370
1371 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1372 undocumented: BTreeMap<String, JsonObject>,
1373 },
1374 #[serde(rename = "duplicateContactLink")]
1375 DuplicateContactLink,
1376 #[serde(rename = "userContactLinkNotFound")]
1377 UserContactLinkNotFound,
1378 #[serde(rename = "contactRequestNotFound")]
1379 ContactRequestNotFound {
1380 #[serde(
1381 rename = "contactRequestId",
1382 deserialize_with = "deserialize_number_from_string"
1383 )]
1384 contact_request_id: i64,
1385
1386 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1387 undocumented: BTreeMap<String, JsonObject>,
1388 },
1389 #[serde(rename = "contactRequestNotFoundByName")]
1390 ContactRequestNotFoundByName {
1391 #[serde(rename = "contactName")]
1392 contact_name: String,
1393
1394 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1395 undocumented: BTreeMap<String, JsonObject>,
1396 },
1397 #[serde(rename = "invalidContactRequestEntity")]
1398 InvalidContactRequestEntity {
1399 #[serde(
1400 rename = "contactRequestId",
1401 deserialize_with = "deserialize_number_from_string"
1402 )]
1403 contact_request_id: i64,
1404
1405 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1406 undocumented: BTreeMap<String, JsonObject>,
1407 },
1408 #[serde(rename = "invalidBusinessChatContactRequest")]
1409 InvalidBusinessChatContactRequest,
1410 #[serde(rename = "groupNotFound")]
1411 GroupNotFound {
1412 #[serde(
1413 rename = "groupId",
1414 deserialize_with = "deserialize_number_from_string"
1415 )]
1416 group_id: i64,
1417
1418 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1419 undocumented: BTreeMap<String, JsonObject>,
1420 },
1421 #[serde(rename = "groupNotFoundByName")]
1422 GroupNotFoundByName {
1423 #[serde(rename = "groupName")]
1424 group_name: String,
1425
1426 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1427 undocumented: BTreeMap<String, JsonObject>,
1428 },
1429 #[serde(rename = "groupMemberNameNotFound")]
1430 GroupMemberNameNotFound {
1431 #[serde(
1432 rename = "groupId",
1433 deserialize_with = "deserialize_number_from_string"
1434 )]
1435 group_id: i64,
1436
1437 #[serde(rename = "groupMemberName")]
1438 group_member_name: String,
1439
1440 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1441 undocumented: BTreeMap<String, JsonObject>,
1442 },
1443 #[serde(rename = "groupMemberNotFound")]
1444 GroupMemberNotFound {
1445 #[serde(
1446 rename = "groupMemberId",
1447 deserialize_with = "deserialize_number_from_string"
1448 )]
1449 group_member_id: i64,
1450
1451 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1452 undocumented: BTreeMap<String, JsonObject>,
1453 },
1454 #[serde(rename = "groupHostMemberNotFound")]
1455 GroupHostMemberNotFound {
1456 #[serde(
1457 rename = "groupId",
1458 deserialize_with = "deserialize_number_from_string"
1459 )]
1460 group_id: i64,
1461
1462 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1463 undocumented: BTreeMap<String, JsonObject>,
1464 },
1465 #[serde(rename = "groupMemberNotFoundByMemberId")]
1466 GroupMemberNotFoundByMemberId {
1467 #[serde(rename = "memberId")]
1468 member_id: String,
1469
1470 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1471 undocumented: BTreeMap<String, JsonObject>,
1472 },
1473 #[serde(rename = "memberContactGroupMemberNotFound")]
1474 MemberContactGroupMemberNotFound {
1475 #[serde(
1476 rename = "contactId",
1477 deserialize_with = "deserialize_number_from_string"
1478 )]
1479 contact_id: i64,
1480
1481 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1482 undocumented: BTreeMap<String, JsonObject>,
1483 },
1484 #[serde(rename = "groupWithoutUser")]
1485 GroupWithoutUser,
1486 #[serde(rename = "duplicateGroupMember")]
1487 DuplicateGroupMember,
1488 #[serde(rename = "groupAlreadyJoined")]
1489 GroupAlreadyJoined,
1490 #[serde(rename = "groupInvitationNotFound")]
1491 GroupInvitationNotFound,
1492 #[serde(rename = "noteFolderAlreadyExists")]
1493 NoteFolderAlreadyExists {
1494 #[serde(
1495 rename = "noteFolderId",
1496 deserialize_with = "deserialize_number_from_string"
1497 )]
1498 note_folder_id: i64,
1499
1500 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1501 undocumented: BTreeMap<String, JsonObject>,
1502 },
1503 #[serde(rename = "noteFolderNotFound")]
1504 NoteFolderNotFound {
1505 #[serde(
1506 rename = "noteFolderId",
1507 deserialize_with = "deserialize_number_from_string"
1508 )]
1509 note_folder_id: i64,
1510
1511 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1512 undocumented: BTreeMap<String, JsonObject>,
1513 },
1514 #[serde(rename = "userNoteFolderNotFound")]
1515 UserNoteFolderNotFound,
1516 #[serde(rename = "sndFileNotFound")]
1517 SndFileNotFound {
1518 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1519 file_id: i64,
1520
1521 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1522 undocumented: BTreeMap<String, JsonObject>,
1523 },
1524 #[serde(rename = "sndFileInvalid")]
1525 SndFileInvalid {
1526 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1527 file_id: i64,
1528
1529 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1530 undocumented: BTreeMap<String, JsonObject>,
1531 },
1532 #[serde(rename = "rcvFileNotFound")]
1533 RcvFileNotFound {
1534 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1535 file_id: i64,
1536
1537 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1538 undocumented: BTreeMap<String, JsonObject>,
1539 },
1540 #[serde(rename = "rcvFileDescrNotFound")]
1541 RcvFileDescrNotFound {
1542 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1543 file_id: i64,
1544
1545 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1546 undocumented: BTreeMap<String, JsonObject>,
1547 },
1548 #[serde(rename = "fileNotFound")]
1549 FileNotFound {
1550 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1551 file_id: i64,
1552
1553 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1554 undocumented: BTreeMap<String, JsonObject>,
1555 },
1556 #[serde(rename = "rcvFileInvalid")]
1557 RcvFileInvalid {
1558 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1559 file_id: i64,
1560
1561 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1562 undocumented: BTreeMap<String, JsonObject>,
1563 },
1564 #[serde(rename = "rcvFileInvalidDescrPart")]
1565 RcvFileInvalidDescrPart,
1566 #[serde(rename = "localFileNoTransfer")]
1567 LocalFileNoTransfer {
1568 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1569 file_id: i64,
1570
1571 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1572 undocumented: BTreeMap<String, JsonObject>,
1573 },
1574 #[serde(rename = "sharedMsgIdNotFoundByFileId")]
1575 SharedMsgIdNotFoundByFileId {
1576 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1577 file_id: i64,
1578
1579 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1580 undocumented: BTreeMap<String, JsonObject>,
1581 },
1582 #[serde(rename = "fileIdNotFoundBySharedMsgId")]
1583 FileIdNotFoundBySharedMsgId {
1584 #[serde(rename = "sharedMsgId")]
1585 shared_msg_id: String,
1586
1587 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1588 undocumented: BTreeMap<String, JsonObject>,
1589 },
1590 #[serde(rename = "sndFileNotFoundXFTP")]
1591 SndFileNotFoundXftp {
1592 #[serde(rename = "agentSndFileId")]
1593 agent_snd_file_id: String,
1594
1595 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1596 undocumented: BTreeMap<String, JsonObject>,
1597 },
1598 #[serde(rename = "rcvFileNotFoundXFTP")]
1599 RcvFileNotFoundXftp {
1600 #[serde(rename = "agentRcvFileId")]
1601 agent_rcv_file_id: String,
1602
1603 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1604 undocumented: BTreeMap<String, JsonObject>,
1605 },
1606 #[serde(rename = "connectionNotFound")]
1607 ConnectionNotFound {
1608 #[serde(rename = "agentConnId")]
1609 agent_conn_id: String,
1610
1611 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1612 undocumented: BTreeMap<String, JsonObject>,
1613 },
1614 #[serde(rename = "connectionNotFoundById")]
1615 ConnectionNotFoundById {
1616 #[serde(rename = "connId", deserialize_with = "deserialize_number_from_string")]
1617 conn_id: i64,
1618
1619 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1620 undocumented: BTreeMap<String, JsonObject>,
1621 },
1622 #[serde(rename = "connectionNotFoundByMemberId")]
1623 ConnectionNotFoundByMemberId {
1624 #[serde(
1625 rename = "groupMemberId",
1626 deserialize_with = "deserialize_number_from_string"
1627 )]
1628 group_member_id: i64,
1629
1630 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1631 undocumented: BTreeMap<String, JsonObject>,
1632 },
1633 #[serde(rename = "pendingConnectionNotFound")]
1634 PendingConnectionNotFound {
1635 #[serde(rename = "connId", deserialize_with = "deserialize_number_from_string")]
1636 conn_id: i64,
1637
1638 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1639 undocumented: BTreeMap<String, JsonObject>,
1640 },
1641 #[serde(rename = "introNotFound")]
1642 IntroNotFound,
1643 #[serde(rename = "uniqueID")]
1644 UniqueId,
1645 #[serde(rename = "largeMsg")]
1646 LargeMsg,
1647 #[serde(rename = "internalError")]
1648 InternalError {
1649 #[serde(rename = "message")]
1650 message: String,
1651
1652 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1653 undocumented: BTreeMap<String, JsonObject>,
1654 },
1655 #[serde(rename = "dBException")]
1656 DBException {
1657 #[serde(rename = "message")]
1658 message: String,
1659
1660 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1661 undocumented: BTreeMap<String, JsonObject>,
1662 },
1663 #[serde(rename = "dBBusyError")]
1664 DBBusyError {
1665 #[serde(rename = "message")]
1666 message: String,
1667
1668 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1669 undocumented: BTreeMap<String, JsonObject>,
1670 },
1671 #[serde(rename = "badChatItem")]
1672 BadChatItem {
1673 #[serde(rename = "itemId", deserialize_with = "deserialize_number_from_string")]
1674 item_id: i64,
1675
1676 #[serde(rename = "itemTs", skip_serializing_if = "Option::is_none")]
1677 item_ts: Option<UtcTime>,
1678
1679 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1680 undocumented: BTreeMap<String, JsonObject>,
1681 },
1682 #[serde(rename = "chatItemNotFound")]
1683 ChatItemNotFound {
1684 #[serde(rename = "itemId", deserialize_with = "deserialize_number_from_string")]
1685 item_id: i64,
1686
1687 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1688 undocumented: BTreeMap<String, JsonObject>,
1689 },
1690 #[serde(rename = "chatItemNotFoundByText")]
1691 ChatItemNotFoundByText {
1692 #[serde(rename = "text")]
1693 text: String,
1694
1695 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1696 undocumented: BTreeMap<String, JsonObject>,
1697 },
1698 #[serde(rename = "chatItemSharedMsgIdNotFound")]
1699 ChatItemSharedMsgIdNotFound {
1700 #[serde(rename = "sharedMsgId")]
1701 shared_msg_id: String,
1702
1703 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1704 undocumented: BTreeMap<String, JsonObject>,
1705 },
1706 #[serde(rename = "chatItemNotFoundByFileId")]
1707 ChatItemNotFoundByFileId {
1708 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1709 file_id: i64,
1710
1711 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1712 undocumented: BTreeMap<String, JsonObject>,
1713 },
1714 #[serde(rename = "chatItemNotFoundByContactId")]
1715 ChatItemNotFoundByContactId {
1716 #[serde(
1717 rename = "contactId",
1718 deserialize_with = "deserialize_number_from_string"
1719 )]
1720 contact_id: i64,
1721
1722 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1723 undocumented: BTreeMap<String, JsonObject>,
1724 },
1725 #[serde(rename = "chatItemNotFoundByGroupId")]
1726 ChatItemNotFoundByGroupId {
1727 #[serde(
1728 rename = "groupId",
1729 deserialize_with = "deserialize_number_from_string"
1730 )]
1731 group_id: i64,
1732
1733 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1734 undocumented: BTreeMap<String, JsonObject>,
1735 },
1736 #[serde(rename = "profileNotFound")]
1737 ProfileNotFound {
1738 #[serde(
1739 rename = "profileId",
1740 deserialize_with = "deserialize_number_from_string"
1741 )]
1742 profile_id: i64,
1743
1744 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1745 undocumented: BTreeMap<String, JsonObject>,
1746 },
1747 #[serde(rename = "duplicateGroupLink")]
1748 DuplicateGroupLink {
1749 #[serde(rename = "groupInfo")]
1750 group_info: GroupInfo,
1751
1752 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1753 undocumented: BTreeMap<String, JsonObject>,
1754 },
1755 #[serde(rename = "groupLinkNotFound")]
1756 GroupLinkNotFound {
1757 #[serde(rename = "groupInfo")]
1758 group_info: GroupInfo,
1759
1760 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1761 undocumented: BTreeMap<String, JsonObject>,
1762 },
1763 #[serde(rename = "hostMemberIdNotFound")]
1764 HostMemberIdNotFound {
1765 #[serde(
1766 rename = "groupId",
1767 deserialize_with = "deserialize_number_from_string"
1768 )]
1769 group_id: i64,
1770
1771 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1772 undocumented: BTreeMap<String, JsonObject>,
1773 },
1774 #[serde(rename = "contactNotFoundByFileId")]
1775 ContactNotFoundByFileId {
1776 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1777 file_id: i64,
1778
1779 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1780 undocumented: BTreeMap<String, JsonObject>,
1781 },
1782 #[serde(rename = "noGroupSndStatus")]
1783 NoGroupSndStatus {
1784 #[serde(rename = "itemId", deserialize_with = "deserialize_number_from_string")]
1785 item_id: i64,
1786
1787 #[serde(
1788 rename = "groupMemberId",
1789 deserialize_with = "deserialize_number_from_string"
1790 )]
1791 group_member_id: i64,
1792
1793 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1794 undocumented: BTreeMap<String, JsonObject>,
1795 },
1796 #[serde(rename = "duplicateGroupMessage")]
1797 DuplicateGroupMessage {
1798 #[serde(
1799 rename = "groupId",
1800 deserialize_with = "deserialize_number_from_string"
1801 )]
1802 group_id: i64,
1803
1804 #[serde(rename = "sharedMsgId")]
1805 shared_msg_id: String,
1806
1807 #[serde(
1808 rename = "authorGroupMemberId",
1809 skip_serializing_if = "Option::is_none",
1810 deserialize_with = "deserialize_option_number_from_string",
1811 default
1812 )]
1813 author_group_member_id: Option<i64>,
1814
1815 #[serde(
1816 rename = "forwardedByGroupMemberId",
1817 skip_serializing_if = "Option::is_none",
1818 deserialize_with = "deserialize_option_number_from_string",
1819 default
1820 )]
1821 forwarded_by_group_member_id: Option<i64>,
1822
1823 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1824 undocumented: BTreeMap<String, JsonObject>,
1825 },
1826 #[serde(rename = "remoteHostNotFound")]
1827 RemoteHostNotFound {
1828 #[serde(
1829 rename = "remoteHostId",
1830 deserialize_with = "deserialize_number_from_string"
1831 )]
1832 remote_host_id: i64,
1833
1834 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1835 undocumented: BTreeMap<String, JsonObject>,
1836 },
1837 #[serde(rename = "remoteHostUnknown")]
1838 RemoteHostUnknown,
1839 #[serde(rename = "remoteHostDuplicateCA")]
1840 RemoteHostDuplicateCa,
1841 #[serde(rename = "remoteCtrlNotFound")]
1842 RemoteCtrlNotFound {
1843 #[serde(
1844 rename = "remoteCtrlId",
1845 deserialize_with = "deserialize_number_from_string"
1846 )]
1847 remote_ctrl_id: i64,
1848
1849 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1850 undocumented: BTreeMap<String, JsonObject>,
1851 },
1852 #[serde(rename = "remoteCtrlDuplicateCA")]
1853 RemoteCtrlDuplicateCa,
1854 #[serde(rename = "prohibitedDeleteUser")]
1855 ProhibitedDeleteUser {
1856 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
1857 user_id: i64,
1858
1859 #[serde(
1860 rename = "contactId",
1861 deserialize_with = "deserialize_number_from_string"
1862 )]
1863 contact_id: i64,
1864
1865 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1866 undocumented: BTreeMap<String, JsonObject>,
1867 },
1868 #[serde(rename = "operatorNotFound")]
1869 OperatorNotFound {
1870 #[serde(
1871 rename = "serverOperatorId",
1872 deserialize_with = "deserialize_number_from_string"
1873 )]
1874 server_operator_id: i64,
1875
1876 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1877 undocumented: BTreeMap<String, JsonObject>,
1878 },
1879 #[serde(rename = "usageConditionsNotFound")]
1880 UsageConditionsNotFound,
1881 #[serde(rename = "invalidQuote")]
1882 InvalidQuote,
1883 #[serde(rename = "invalidMention")]
1884 InvalidMention,
1885 #[serde(untagged)]
1886 Undocumented(BTreeMap<String, JsonObject>),
1887}
1888
1889#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1890#[serde(tag = "type")]
1891#[non_exhaustive]
1892pub enum TransportError {
1893 #[serde(rename = "badBlock")]
1894 BadBlock,
1895 #[serde(rename = "version")]
1896 Version,
1897 #[serde(rename = "largeMsg")]
1898 LargeMsg,
1899 #[serde(rename = "badSession")]
1900 BadSession,
1901 #[serde(rename = "noServerAuth")]
1902 NoServerAuth,
1903 #[serde(rename = "handshake")]
1904 Handshake {
1905 #[serde(rename = "handshakeErr")]
1906 handshake_err: HandshakeError,
1907
1908 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1909 undocumented: BTreeMap<String, JsonObject>,
1910 },
1911 #[serde(untagged)]
1912 Undocumented(BTreeMap<String, JsonObject>),
1913}
1914
1915#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1916#[serde(tag = "type")]
1917#[non_exhaustive]
1918pub enum XFTPErrorType {
1919 #[serde(rename = "BLOCK")]
1920 Block,
1921 #[serde(rename = "SESSION")]
1922 Session,
1923 #[serde(rename = "HANDSHAKE")]
1924 Handshake,
1925 #[serde(rename = "CMD")]
1926 Cmd {
1927 #[serde(rename = "cmdErr")]
1928 cmd_err: CommandError,
1929
1930 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1931 undocumented: BTreeMap<String, JsonObject>,
1932 },
1933 #[serde(rename = "AUTH")]
1934 Auth,
1935 #[serde(rename = "BLOCKED")]
1936 Blocked {
1937 #[serde(rename = "blockInfo")]
1938 block_info: BlockingInfo,
1939
1940 #[serde(flatten, skip_serializing_if = "BTreeMap::is_empty")]
1941 undocumented: BTreeMap<String, JsonObject>,
1942 },
1943 #[serde(rename = "SIZE")]
1944 Size,
1945 #[serde(rename = "QUOTA")]
1946 Quota,
1947 #[serde(rename = "DIGEST")]
1948 Digest,
1949 #[serde(rename = "CRYPTO")]
1950 Crypto,
1951 #[serde(rename = "NO_FILE")]
1952 NoFile,
1953 #[serde(rename = "HAS_FILE")]
1954 HasFile,
1955 #[serde(rename = "FILE_IO")]
1956 FileIo,
1957 #[serde(rename = "TIMEOUT")]
1958 Timeout,
1959 #[serde(rename = "INTERNAL")]
1960 Internal,
1961 #[serde(rename = "DUPLICATE_")]
1962 Duplicate,
1963 #[serde(untagged)]
1964 Undocumented(BTreeMap<String, JsonObject>),
1965}
1966
1967macro_rules! impl_error {
1968 ($($t:ty),+ $(,)?) => (
1969 $(
1970 impl std::fmt::Display for $t {
1971 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1972 write!(f, "{:#?}", self)
1973 }
1974 }
1975
1976 impl std::error::Error for $t {}
1977 )+
1978 );
1979}
1980
1981impl_error!(
1982 AgentCryptoError,
1983 AgentErrorType,
1984 BrokerErrorType,
1985 ChatError,
1986 ChatErrorType,
1987 CommandError,
1988 CommandErrorType,
1989 ConnectionErrorType,
1990 ErrorType,
1991 FileError,
1992 FileErrorType,
1993 HandshakeError,
1994 MsgDecryptError,
1995 MsgErrorType,
1996 NetworkError,
1997 ProxyClientError,
1998 ProxyError,
1999 RCErrorType,
2000 SMPAgentError,
2001 SndError,
2002 SrvError,
2003 StoreError,
2004 TransportError,
2005 XFTPErrorType
2006);