Orca
A bot framework that is easy to reason about, easy to debug, and easy to use.
channel.h
Go to the documentation of this file.
1 /* This file is generated from specs/discord/channel.json, Please don't edit it. */
12 enum discord_channel_types {
13  DISCORD_CHANNEL_GUILD_TEXT = 0,
14  DISCORD_CHANNEL_DM = 1,
15  DISCORD_CHANNEL_GUILD_VOICE = 2,
16  DISCORD_CHANNEL_GROUP_DM = 3,
17  DISCORD_CHANNEL_GUILD_CATEGORY = 4,
18  DISCORD_CHANNEL_GUILD_NEWS = 5,
19  DISCORD_CHANNEL_GUILD_STORE = 6,
20 };
21 extern char* discord_channel_types_to_string(enum discord_channel_types);
22 extern enum discord_channel_types discord_channel_types_from_string(char*);
23 extern bool discord_channel_types_has(enum discord_channel_types, char*);
24 
32  /* specs/discord/channel.json:28:78
33  '{"type":{"base":"char", "dec":"*", "converter":"snowflake"}, "name":"id"}' */
34  u64_snowflake_t id;
35 
36  /* specs/discord/channel.json:29:83
37  '{"type":{"base":"int", "int_alias":"enum discord_channel_types"}, "name":"type"}' */
38  enum discord_channel_types type;
39 
40  /* specs/discord/channel.json:30:78
41  '{"type":{"base":"char", "dec":"*", "converter":"snowflake"}, "name":"guild_id",
42  "option":true, "inject_if_not":0 }' */
43  u64_snowflake_t guild_id;
44 
45  /* specs/discord/channel.json:32:41
46  '{"type":{"base":"int"}, "name":"position",
47  "option":true, "inject_if_not":0 }' */
48  int position;
49 
50  /* specs/discord/channel.json:34:83
51  '{"type":{"base":"struct discord_channel_overwrite", "dec":"ntl"}, "name":"permission_overwrites",
52  "option":true, "inject_if_not":null }' */
53  struct discord_channel_overwrite **permission_overwrites;
54 
55  /* specs/discord/channel.json:36:66
56  '{"type":{"base":"char", "dec":"[MAX_NAME_LEN]"}, "name":"name",
57  "option":true, "inject_if_not":null}' */
58  char name[MAX_NAME_LEN];
59 
60  /* specs/discord/channel.json:38:67
61  '{"type":{"base":"char", "dec":"[MAX_TOPIC_LEN]"}, "name":"topic",
62  "option":true, "inject_if_not":null }' */
63  char topic[MAX_TOPIC_LEN];
64 
65  /* specs/discord/channel.json:40:42
66  '{"type":{"base":"bool"}, "name":"nsfw", "option":true, "inject_if_not":false}' */
67  bool nsfw;
68 
69  /* specs/discord/channel.json:41:78
70  '{"type":{"base":"char", "dec":"*", "converter":"snowflake"}, "name":"last_message_id",
71  "option":true, "inject_if_not":0}' */
72  u64_snowflake_t last_message_id;
73 
74  /* specs/discord/channel.json:43:41
75  '{"type":{"base":"int"}, "name":"bitrate", "option":true, "inject_if_not":0}' */
76  int bitrate;
77 
78  /* specs/discord/channel.json:44:41
79  '{"type":{"base":"int"}, "name":"user_limit", "option":true, "inject_if_not":0}' */
80  int user_limit;
81 
82  /* specs/discord/channel.json:45:41
83  '{"type":{"base":"int"}, "name":"rate_limit_per_user",
84  "option":true, "inject_if_not":0}' */
85  int rate_limit_per_user;
86 
87  /* specs/discord/channel.json:47:70
88  '{"type":{"base":"struct discord_user", "dec":"ntl"}, "name":"recipients",
89  "option":true, "inject_if_not":null}' */
90  struct discord_user **recipients;
91 
92  /* specs/discord/channel.json:49:68
93  '{"type":{"base":"char", "dec":"[MAX_SHA256_LEN]"}, "name":"icon",
94  "option":true, "inject_if_not":null}' */
95  char icon[MAX_SHA256_LEN];
96 
97  /* specs/discord/channel.json:51:78
98  '{"type":{"base":"char", "dec":"*", "converter":"snowflake"}, "name":"owner_id",
99  "option":true, "inject_if_not":0}' */
100  u64_snowflake_t owner_id;
101 
102  /* specs/discord/channel.json:53:78
103  '{"type":{"base":"char", "dec":"*", "converter":"snowflake"}, "name":"application_id",
104  "option":true, "inject_if_not":0}' */
105  u64_snowflake_t application_id;
106 
107  /* specs/discord/channel.json:55:95
108  '{"type":{"base":"char", "dec":"*", "converter":"snowflake", "nullable":true}, "name":"parent_id",
109  "option":true, "inject_if_not":0}' */
110  u64_snowflake_t parent_id;
111 
112  /* specs/discord/channel.json:57:93
113  '{"type":{"base":"char", "dec":"*", "converter":"iso8601", "nullable":true}, "name":"last_pin_timestamp",
114  "option":true, "inject_if_not":0}' */
115  u64_unix_ms_t last_pin_timestamp;
116 
117  /* specs/discord/channel.json:59:73
118  '{"type":{"base":"struct discord_message", "dec":"ntl"}, "name":"messages"}' */
119  struct discord_message **messages;
120 
121  // The following is metadata used to
122  // 1. control which field should be extracted/injected
123  // 2. record which field is presented(defined) in JSON
124  // 3. record which field is null in JSON
126  struct {
127  bool enable_arg_switches;
128  bool enable_record_defined;
129  bool enable_record_null;
130  void *arg_switches[19];
131  void *record_defined[19];
132  void *record_null[19];
133  } __M; // metadata
135 };
136 extern void discord_channel_cleanup_v(void *p);
137 extern void discord_channel_cleanup(struct discord_channel *p);
138 extern void discord_channel_init_v(void *p);
139 extern void discord_channel_init(struct discord_channel *p);
140 extern struct discord_channel * discord_channel_alloc();
141 extern void discord_channel_free_v(void *p);
142 extern void discord_channel_free(struct discord_channel *p);
143 extern void discord_channel_from_json_v(char *json, size_t len, void *p);
144 extern void discord_channel_from_json(char *json, size_t len, struct discord_channel *p);
145 extern size_t discord_channel_to_json_v(char *json, size_t len, void *p);
146 extern size_t discord_channel_to_json(char *json, size_t len, struct discord_channel *p);
147 extern size_t discord_channel_to_query_v(char *json, size_t len, void *p);
148 extern size_t discord_channel_to_query(char *json, size_t len, struct discord_channel *p);
149 extern void discord_channel_list_free_v(void **p);
150 extern void discord_channel_list_free(struct discord_channel **p);
151 extern void discord_channel_list_from_json_v(char *str, size_t len, void *p);
152 extern void discord_channel_list_from_json(char *str, size_t len, struct discord_channel ***p);
153 extern size_t discord_channel_list_to_json_v(char *str, size_t len, void *p);
154 extern size_t discord_channel_list_to_json(char *str, size_t len, struct discord_channel **p);
155 
156 
157 enum discord_message_sticker_format_types {
158  DISCORD_MESSAGE_STICKER_PNG = 1,
159  DISCORD_MESSAGE_STICKER_APNG = 2,
160  DISCORD_MESSAGE_STICKER_LOTTIE = 3,
161 };
162 extern char* discord_message_sticker_format_types_to_string(enum discord_message_sticker_format_types);
163 extern enum discord_message_sticker_format_types discord_message_sticker_format_types_from_string(char*);
164 extern bool discord_message_sticker_format_types_has(enum discord_message_sticker_format_types, char*);
165 
173  /* specs/discord/channel.json:80:18
174  '{"name":"id", "type":{"base":"char", "dec":"*", "converter":"snowflake"}}' */
175  u64_snowflake_t id;
176 
177  /* specs/discord/channel.json:81:18
178  '{"name":"pack_id", "type":{"base":"char", "dec":"*", "converter":"snowflake"}}' */
179  u64_snowflake_t pack_id;
180 
181  /* specs/discord/channel.json:82:18
182  '{"name":"name", "type":{"base":"char", "dec":"*"}}' */
183  char *name;
184 
185  /* specs/discord/channel.json:83:18
186  '{"name":"description", "type":{"base":"char", "dec":"*"}}' */
187  char *description;
188 
189  /* specs/discord/channel.json:84:18
190  '{"name":"tags", "type":{"base":"char", "dec":"*"}, "option":true, "inject_of_not":null}' */
191  char *tags;
192 
193  /* specs/discord/channel.json:85:18
194  '{"name":"asset","type":{"base":"char", "dec":"[MAX_SHA256_LEN]"}}' */
195  char asset[MAX_SHA256_LEN];
196 
197  /* specs/discord/channel.json:86:18
198  '{"name":"preview_asset", "type":{"base":"char", "dec":"[MAX_SHA256_LEN]"},
199  "option":true, "inject_if_not":null}' */
200  char preview_asset[MAX_SHA256_LEN];
201 
202  /* specs/discord/channel.json:88:18
203  '{"name":"type", "type":{"base":"int", "int_alias":"enum discord_message_sticker_format_types"}}' */
204  enum discord_message_sticker_format_types type;
205 
206  // The following is metadata used to
207  // 1. control which field should be extracted/injected
208  // 2. record which field is presented(defined) in JSON
209  // 3. record which field is null in JSON
211  struct {
212  bool enable_arg_switches;
213  bool enable_record_defined;
214  bool enable_record_null;
215  void *arg_switches[8];
216  void *record_defined[8];
217  void *record_null[8];
218  } __M; // metadata
220 };
221 extern void discord_message_sticker_cleanup_v(void *p);
222 extern void discord_message_sticker_cleanup(struct discord_message_sticker *p);
223 extern void discord_message_sticker_init_v(void *p);
224 extern void discord_message_sticker_init(struct discord_message_sticker *p);
225 extern struct discord_message_sticker * discord_message_sticker_alloc();
226 extern void discord_message_sticker_free_v(void *p);
227 extern void discord_message_sticker_free(struct discord_message_sticker *p);
228 extern void discord_message_sticker_from_json_v(char *json, size_t len, void *p);
229 extern void discord_message_sticker_from_json(char *json, size_t len, struct discord_message_sticker *p);
230 extern size_t discord_message_sticker_to_json_v(char *json, size_t len, void *p);
231 extern size_t discord_message_sticker_to_json(char *json, size_t len, struct discord_message_sticker *p);
232 extern size_t discord_message_sticker_to_query_v(char *json, size_t len, void *p);
233 extern size_t discord_message_sticker_to_query(char *json, size_t len, struct discord_message_sticker *p);
234 extern void discord_message_sticker_list_free_v(void **p);
235 extern void discord_message_sticker_list_free(struct discord_message_sticker **p);
236 extern void discord_message_sticker_list_from_json_v(char *str, size_t len, void *p);
237 extern void discord_message_sticker_list_from_json(char *str, size_t len, struct discord_message_sticker ***p);
238 extern size_t discord_message_sticker_list_to_json_v(char *str, size_t len, void *p);
239 extern size_t discord_message_sticker_list_to_json(char *str, size_t len, struct discord_message_sticker **p);
240 
241 
242 enum discord_message_flags {
243  DISCORD_MESSAGE_CROSSPOSTED = 1, // 1<<0
244  DISCORD_MESSAGE_IS_CROSSPOST = 2, // 1<<1
245  DISCORD_MESSAGE_SUPRESS_EMBEDS = 4, // 1<<2
246  DISCORD_MESSAGE_SOURCE_MESSAGE_DELETED = 8, // 1<<3
247  DISCORD_MESSAGE_URGENT = 16, // 1<<4
248 };
249 extern char* discord_message_flags_to_string(enum discord_message_flags);
250 extern enum discord_message_flags discord_message_flags_from_string(char*);
251 extern bool discord_message_flags_has(enum discord_message_flags, char*);
252 
260  /* specs/discord/channel.json:110:18
261  '{"name":"message_id", "type":{"base":"char", "dec":"*", "converter":"snowflake"}, "option":true, "inject_if_not":0}' */
262  u64_snowflake_t message_id;
263 
264  /* specs/discord/channel.json:111:18
265  '{"name":"channel_id", "type":{"base":"char", "dec":"*", "converter":"snowflake"}, "option":true, "inject_if_not":0}' */
266  u64_snowflake_t channel_id;
267 
268  /* specs/discord/channel.json:112:18
269  '{"name":"guild_id", "type":{"base":"char", "dec":"*", "converter":"snowflake"}, "option":true, "inject_if_not":0}' */
270  u64_snowflake_t guild_id;
271 
272  /* specs/discord/channel.json:113:18
273  '{"name":"fail_if_not_exists", "type":{"base":"bool"}, "option":true, "inject_if_not":false}' */
274  bool fail_if_not_exists;
275 
276  // The following is metadata used to
277  // 1. control which field should be extracted/injected
278  // 2. record which field is presented(defined) in JSON
279  // 3. record which field is null in JSON
281  struct {
282  bool enable_arg_switches;
283  bool enable_record_defined;
284  bool enable_record_null;
285  void *arg_switches[4];
286  void *record_defined[4];
287  void *record_null[4];
288  } __M; // metadata
290 };
291 extern void discord_message_reference_cleanup_v(void *p);
292 extern void discord_message_reference_cleanup(struct discord_message_reference *p);
293 extern void discord_message_reference_init_v(void *p);
294 extern void discord_message_reference_init(struct discord_message_reference *p);
295 extern struct discord_message_reference * discord_message_reference_alloc();
296 extern void discord_message_reference_free_v(void *p);
297 extern void discord_message_reference_free(struct discord_message_reference *p);
298 extern void discord_message_reference_from_json_v(char *json, size_t len, void *p);
299 extern void discord_message_reference_from_json(char *json, size_t len, struct discord_message_reference *p);
300 extern size_t discord_message_reference_to_json_v(char *json, size_t len, void *p);
301 extern size_t discord_message_reference_to_json(char *json, size_t len, struct discord_message_reference *p);
302 extern size_t discord_message_reference_to_query_v(char *json, size_t len, void *p);
303 extern size_t discord_message_reference_to_query(char *json, size_t len, struct discord_message_reference *p);
304 extern void discord_message_reference_list_free_v(void **p);
305 extern void discord_message_reference_list_free(struct discord_message_reference **p);
306 extern void discord_message_reference_list_from_json_v(char *str, size_t len, void *p);
307 extern void discord_message_reference_list_from_json(char *str, size_t len, struct discord_message_reference ***p);
308 extern size_t discord_message_reference_list_to_json_v(char *str, size_t len, void *p);
309 extern size_t discord_message_reference_list_to_json(char *str, size_t len, struct discord_message_reference **p);
310 
318  /* specs/discord/channel.json:122:18
319  '{"name":"id", "type":{"base":"char", "dec":"*", "converter":"snowflake"}}' */
320  u64_snowflake_t id;
321 
322  /* specs/discord/channel.json:123:18
323  '{"name":"cover_image", "type":{"base":"char", "dec":"*"}, "option":true, "inject_if_not":null}' */
324  char *cover_image;
325 
326  /* specs/discord/channel.json:124:18
327  '{"name":"description", "type":{"base":"char", "dec":"*"}}' */
328  char *description;
329 
330  /* specs/discord/channel.json:125:18
331  '{"name":"icon", "type":{"base":"char", "dec":"*"}, "inject_if_not":null}' */
332  char *icon;
333 
334  /* specs/discord/channel.json:126:18
335  '{"name":"name", "type":{"base":"char", "dec":"*"}}' */
336  char *name;
337 
338  // The following is metadata used to
339  // 1. control which field should be extracted/injected
340  // 2. record which field is presented(defined) in JSON
341  // 3. record which field is null in JSON
343  struct {
344  bool enable_arg_switches;
345  bool enable_record_defined;
346  bool enable_record_null;
347  void *arg_switches[5];
348  void *record_defined[5];
349  void *record_null[5];
350  } __M; // metadata
352 };
353 extern void discord_message_application_cleanup_v(void *p);
354 extern void discord_message_application_cleanup(struct discord_message_application *p);
355 extern void discord_message_application_init_v(void *p);
356 extern void discord_message_application_init(struct discord_message_application *p);
357 extern struct discord_message_application * discord_message_application_alloc();
358 extern void discord_message_application_free_v(void *p);
359 extern void discord_message_application_free(struct discord_message_application *p);
360 extern void discord_message_application_from_json_v(char *json, size_t len, void *p);
361 extern void discord_message_application_from_json(char *json, size_t len, struct discord_message_application *p);
362 extern size_t discord_message_application_to_json_v(char *json, size_t len, void *p);
363 extern size_t discord_message_application_to_json(char *json, size_t len, struct discord_message_application *p);
364 extern size_t discord_message_application_to_query_v(char *json, size_t len, void *p);
365 extern size_t discord_message_application_to_query(char *json, size_t len, struct discord_message_application *p);
366 extern void discord_message_application_list_free_v(void **p);
367 extern void discord_message_application_list_free(struct discord_message_application **p);
368 extern void discord_message_application_list_from_json_v(char *str, size_t len, void *p);
369 extern void discord_message_application_list_from_json(char *str, size_t len, struct discord_message_application ***p);
370 extern size_t discord_message_application_list_to_json_v(char *str, size_t len, void *p);
371 extern size_t discord_message_application_list_to_json(char *str, size_t len, struct discord_message_application **p);
372 
373 
374 enum discord_message_activity_types {
375  DISCORD_MESSAGE_ACTIVITY_JOIN = 1,
376  DISCORD_MESSAGE_ACTIVITY_SPECTATE = 2,
377  DISCORD_MESSAGE_ACTIVITY_LISTEN = 3,
378  DISCORD_MESSAGE_ACTIVITY_JOIN_REQUEST = 5,
379 };
380 extern char* discord_message_activity_types_to_string(enum discord_message_activity_types);
381 extern enum discord_message_activity_types discord_message_activity_types_from_string(char*);
382 extern bool discord_message_activity_types_has(enum discord_message_activity_types, char*);
383 
391  /* specs/discord/channel.json:147:18
392  '{"name":"type", "type":{"base":"int", "int_alias":"enum discord_message_activity_types"}}' */
393  enum discord_message_activity_types type;
394 
395  /* specs/discord/channel.json:148:18
396  '{"name":"party_id", "type":{"base":"char", "dec":"*"},
397  "option":true, "inject_if_not":null}' */
398  char *party_id;
399 
400  // The following is metadata used to
401  // 1. control which field should be extracted/injected
402  // 2. record which field is presented(defined) in JSON
403  // 3. record which field is null in JSON
405  struct {
406  bool enable_arg_switches;
407  bool enable_record_defined;
408  bool enable_record_null;
409  void *arg_switches[2];
410  void *record_defined[2];
411  void *record_null[2];
412  } __M; // metadata
414 };
415 extern void discord_message_activity_cleanup_v(void *p);
416 extern void discord_message_activity_cleanup(struct discord_message_activity *p);
417 extern void discord_message_activity_init_v(void *p);
418 extern void discord_message_activity_init(struct discord_message_activity *p);
419 extern struct discord_message_activity * discord_message_activity_alloc();
420 extern void discord_message_activity_free_v(void *p);
421 extern void discord_message_activity_free(struct discord_message_activity *p);
422 extern void discord_message_activity_from_json_v(char *json, size_t len, void *p);
423 extern void discord_message_activity_from_json(char *json, size_t len, struct discord_message_activity *p);
424 extern size_t discord_message_activity_to_json_v(char *json, size_t len, void *p);
425 extern size_t discord_message_activity_to_json(char *json, size_t len, struct discord_message_activity *p);
426 extern size_t discord_message_activity_to_query_v(char *json, size_t len, void *p);
427 extern size_t discord_message_activity_to_query(char *json, size_t len, struct discord_message_activity *p);
428 extern void discord_message_activity_list_free_v(void **p);
429 extern void discord_message_activity_list_free(struct discord_message_activity **p);
430 extern void discord_message_activity_list_from_json_v(char *str, size_t len, void *p);
431 extern void discord_message_activity_list_from_json(char *str, size_t len, struct discord_message_activity ***p);
432 extern size_t discord_message_activity_list_to_json_v(char *str, size_t len, void *p);
433 extern size_t discord_message_activity_list_to_json(char *str, size_t len, struct discord_message_activity **p);
434 
435 
436 enum discord_message_types {
437  DISCORD_MESSAGE_DEFAULT = 0,
438  DISCORD_MESSAGE_RECIPIENT_ADD = 1,
439  DISCORD_MESSAGE_RECIPIENT_REMOVE = 3,
440  DISCORD_MESSAGE_CALL = 5,
441  DISCORD_MESSAGE_CHANNEL_NAME_CHANGE = 5,
442  DISCORD_MESSAGE_CHANNEL_ICON_CHANGE = 5,
443  DISCORD_MESSAGE_CHANNEL_PINNED_MESSAGE = 5,
444  DISCORD_MESSAGE_GUILD_MEMBER_JOIN = 5,
445  DISCORD_MESSAGE_USER_PREMIUM_GUILD_SUBSCRIPTION = 5,
446  DISCORD_MESSAGE_USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1 = 9,
447  DISCORD_MESSAGE_USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2 = 10,
448  DISCORD_MESSAGE_USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3 = 11,
449  DISCORD_MESSAGE_CHANNEL_FOLLOW_ADD = 12,
450  DISCORD_MESSAGE_GUILD_DISCOVERY_DISQUALIFIED = 14,
451  DISCORD_MESSAGE_GUILD_DISCOVERY_REQUALIFIED = 15,
452  DISCORD_MESSAGE_REPLY = 19,
453  DISCORD_MESSAGE_APPLICATION_COMMAND = 20,
454 };
455 extern char* discord_message_types_to_string(enum discord_message_types);
456 extern enum discord_message_types discord_message_types_from_string(char*);
457 extern bool discord_message_types_has(enum discord_message_types, char*);
458 
466  /* specs/discord/channel.json:183:79
467  '{"type":{"base":"char", "dec":"*", "converter":"snowflake"}, "name":"id"}' */
468  u64_snowflake_t id;
469 
470  /* specs/discord/channel.json:184:79
471  '{"type":{"base":"char", "dec":"*", "converter":"snowflake"}, "name":"channel_id"}' */
472  u64_snowflake_t channel_id;
473 
474  /* specs/discord/channel.json:185:79
475  '{"type":{"base":"char", "dec":"*", "converter":"snowflake"}, "name":"guild_id", "option":true, "inject_if_not":0}' */
476  u64_snowflake_t guild_id;
477 
478  /* specs/discord/channel.json:186:69
479  '{"type":{"base":"struct discord_user", "dec":"*"}, "name":"author"}' */
480  struct discord_user *author;
481 
482  /* specs/discord/channel.json:187:77
483  '{"type":{"base":"struct discord_guild_member", "dec":"*"}, "name":"member", "option":true, "comment":"partial guild member object"}' */
484  struct discord_guild_member *member; // partial guild member object
485 
486  /* specs/discord/channel.json:188:54
487  '{"type":{"base":"char", "dec":"*"}, "name":"content"}' */
488  char *content;
489 
490  /* specs/discord/channel.json:189:76
491  '{"type":{"base":"char", "dec":"*", "converter":"iso8601"},"name":"timestamp"}' */
492  u64_unix_ms_t timestamp;
493 
494  /* specs/discord/channel.json:190:77
495  '{"type":{"base":"char", "dec":"*", "converter":"iso8601"}, "name":"edited_timestamp", "inject_if_not":0}' */
496  u64_unix_ms_t edited_timestamp;
497 
498  /* specs/discord/channel.json:191:43
499  '{"type":{"base":"bool"}, "name":"tts"}' */
500  bool tts;
501 
502  /* specs/discord/channel.json:192:43
503  '{"type":{"base":"bool"}, "name":"mention_everyone"}' */
504  bool mention_everyone;
505 
506  /* specs/discord/channel.json:193:71
507  '{"type":{"base":"struct discord_user", "dec":"ntl"}, "name":"mentions", "comment":"array of user objects, with an additional partial member field"}' */
508  struct discord_user **mentions; // array of user objects, with an additional partial member field
509 
510  /* specs/discord/channel.json:194:58
511  '{"type":{"base":"ja_u64", "dec":"ntl"}, "name":"mention_roles", "comment":"array of role object ids"}' */
512  ja_u64 **mention_roles; // array of role object ids
513 
514  /* specs/discord/channel.json:195:82
515  '{"type":{"base":"struct discord_channel_mention", "dec":"ntl"}, "name":"mention_channels", "option":true }' */
516  struct discord_channel_mention **mention_channels;
517 
518  /* specs/discord/channel.json:196:85
519  '{"type":{"base":"struct discord_channel_attachment", "dec":"ntl"}, "name":"attachments"}' */
520  struct discord_channel_attachment **attachments;
521 
522  /* specs/discord/channel.json:197:72
523  '{"type":{"base":"struct discord_embed", "dec":"ntl"}, "name":"embeds"}' */
524  struct discord_embed **embeds;
525 
526  /* specs/discord/channel.json:198:82
527  '{"type":{"base":"struct discord_channel_reaction","dec":"ntl"}, "name":"reactions", "option":true }' */
528  struct discord_channel_reaction **reactions;
529 
530  /* specs/discord/channel.json:199:54
531  '{"type":{"base":"char", "dec":"*"}, "name":"nonce", "comment":"integer or string", "option":true }' */
532  char *nonce; // integer or string
533 
534  /* specs/discord/channel.json:200:43
535  '{"type":{"base":"bool"}, "name":"pinned"}' */
536  bool pinned;
537 
538  /* specs/discord/channel.json:201:79
539  '{"type":{"base":"char", "dec":"*", "converter":"snowflake"}, "name":"webhook_id",
540  "option":true }' */
541  u64_snowflake_t webhook_id;
542 
543  /* specs/discord/channel.json:203:84
544  '{"type":{"base":"int", "int_alias":"enum discord_message_types"}, "name":"type"}' */
545  enum discord_message_types type;
546 
547  /* specs/discord/channel.json:204:81
548  '{"type":{"base":"struct discord_message_activity", "dec":"*"}, "name":"activity", "option":true, "inject_if_not":null }' */
549  struct discord_message_activity *activity;
550 
551  /* specs/discord/channel.json:205:86
552  '{"type":{"base":"struct discord_message_application", "dec":"ntl"}, "name":"application", "option":true, "inject_if_not":null }' */
553  struct discord_message_application **application;
554 
555  /* specs/discord/channel.json:206:82
556  '{"type":{"base":"struct discord_message_reference", "dec":"*"}, "name":"message_reference", "option":true, "inject_if_not":null }' */
557  struct discord_message_reference *message_reference;
558 
559  /* specs/discord/channel.json:207:84
560  '{"type":{"base":"int", "int_alias":"enum discord_message_flags"}, "name":"flags", "option":true, "inject_if_not":0 }' */
561  enum discord_message_flags flags;
562 
563  /* specs/discord/channel.json:208:82
564  '{"type":{"base":"struct discord_message_sticker", "dec":"ntl"}, "name":"stickers", "option":true, "inject_if_not":null, "comment":"array of sticker objects"}' */
565  struct discord_message_sticker **stickers; // array of sticker objects
566 
567  /* specs/discord/channel.json:209:72
568  '{"type":{"base":"struct discord_message", "dec":"*"}, "name":"referenced_message", "lazy_init":true, "option":true, "inject_if_not":null,
569  "comment":"this will cause recursive allocation if allocating as the parent"}' */
570  struct discord_message *referenced_message; // this will cause recursive allocation if allocating as the parent
571 
572  // The following is metadata used to
573  // 1. control which field should be extracted/injected
574  // 2. record which field is presented(defined) in JSON
575  // 3. record which field is null in JSON
577  struct {
578  bool enable_arg_switches;
579  bool enable_record_defined;
580  bool enable_record_null;
581  void *arg_switches[26];
582  void *record_defined[26];
583  void *record_null[26];
584  } __M; // metadata
586 };
587 extern void discord_message_cleanup_v(void *p);
588 extern void discord_message_cleanup(struct discord_message *p);
589 extern void discord_message_init_v(void *p);
590 extern void discord_message_init(struct discord_message *p);
591 extern struct discord_message * discord_message_alloc();
592 extern void discord_message_free_v(void *p);
593 extern void discord_message_free(struct discord_message *p);
594 extern void discord_message_from_json_v(char *json, size_t len, void *p);
595 extern void discord_message_from_json(char *json, size_t len, struct discord_message *p);
596 extern size_t discord_message_to_json_v(char *json, size_t len, void *p);
597 extern size_t discord_message_to_json(char *json, size_t len, struct discord_message *p);
598 extern size_t discord_message_to_query_v(char *json, size_t len, void *p);
599 extern size_t discord_message_to_query(char *json, size_t len, struct discord_message *p);
600 extern void discord_message_list_free_v(void **p);
601 extern void discord_message_list_free(struct discord_message **p);
602 extern void discord_message_list_from_json_v(char *str, size_t len, void *p);
603 extern void discord_message_list_from_json(char *str, size_t len, struct discord_message ***p);
604 extern size_t discord_message_list_to_json_v(char *str, size_t len, void *p);
605 extern size_t discord_message_list_to_json(char *str, size_t len, struct discord_message **p);
606 
614  /* specs/discord/channel.json:220:20
615  '{ "name": "channel_id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" }}' */
616  u64_snowflake_t channel_id;
617 
618  /* specs/discord/channel.json:221:20
619  '{ "name": "webhook_id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" }}' */
620  u64_snowflake_t webhook_id;
621 
622  // The following is metadata used to
623  // 1. control which field should be extracted/injected
624  // 2. record which field is presented(defined) in JSON
625  // 3. record which field is null in JSON
627  struct {
628  bool enable_arg_switches;
629  bool enable_record_defined;
630  bool enable_record_null;
631  void *arg_switches[2];
632  void *record_defined[2];
633  void *record_null[2];
634  } __M; // metadata
636 };
637 extern void discord_channel_followed_channel_cleanup_v(void *p);
638 extern void discord_channel_followed_channel_cleanup(struct discord_channel_followed_channel *p);
639 extern void discord_channel_followed_channel_init_v(void *p);
640 extern void discord_channel_followed_channel_init(struct discord_channel_followed_channel *p);
641 extern struct discord_channel_followed_channel * discord_channel_followed_channel_alloc();
642 extern void discord_channel_followed_channel_free_v(void *p);
643 extern void discord_channel_followed_channel_free(struct discord_channel_followed_channel *p);
644 extern void discord_channel_followed_channel_from_json_v(char *json, size_t len, void *p);
645 extern void discord_channel_followed_channel_from_json(char *json, size_t len, struct discord_channel_followed_channel *p);
646 extern size_t discord_channel_followed_channel_to_json_v(char *json, size_t len, void *p);
647 extern size_t discord_channel_followed_channel_to_json(char *json, size_t len, struct discord_channel_followed_channel *p);
648 extern size_t discord_channel_followed_channel_to_query_v(char *json, size_t len, void *p);
649 extern size_t discord_channel_followed_channel_to_query(char *json, size_t len, struct discord_channel_followed_channel *p);
650 extern void discord_channel_followed_channel_list_free_v(void **p);
651 extern void discord_channel_followed_channel_list_free(struct discord_channel_followed_channel **p);
652 extern void discord_channel_followed_channel_list_from_json_v(char *str, size_t len, void *p);
653 extern void discord_channel_followed_channel_list_from_json(char *str, size_t len, struct discord_channel_followed_channel ***p);
654 extern size_t discord_channel_followed_channel_list_to_json_v(char *str, size_t len, void *p);
655 extern size_t discord_channel_followed_channel_list_to_json(char *str, size_t len, struct discord_channel_followed_channel **p);
656 
664  /* specs/discord/channel.json:231:20
665  '{ "name": "count", "type":{ "base":"int" }}' */
666  int count;
667 
668  /* specs/discord/channel.json:232:20
669  '{ "name": "me", "type":{ "base":"bool" }}' */
670  bool me;
671 
672  /* specs/discord/channel.json:233:20
673  '{ "name": "emoji", "type":{ "base":"struct discord_emoji", "dec":"*" }, "comment":"partial emoji object"}' */
674  struct discord_emoji *emoji; // partial emoji object
675 
676  // The following is metadata used to
677  // 1. control which field should be extracted/injected
678  // 2. record which field is presented(defined) in JSON
679  // 3. record which field is null in JSON
681  struct {
682  bool enable_arg_switches;
683  bool enable_record_defined;
684  bool enable_record_null;
685  void *arg_switches[3];
686  void *record_defined[3];
687  void *record_null[3];
688  } __M; // metadata
690 };
691 extern void discord_channel_reaction_cleanup_v(void *p);
692 extern void discord_channel_reaction_cleanup(struct discord_channel_reaction *p);
693 extern void discord_channel_reaction_init_v(void *p);
694 extern void discord_channel_reaction_init(struct discord_channel_reaction *p);
695 extern struct discord_channel_reaction * discord_channel_reaction_alloc();
696 extern void discord_channel_reaction_free_v(void *p);
697 extern void discord_channel_reaction_free(struct discord_channel_reaction *p);
698 extern void discord_channel_reaction_from_json_v(char *json, size_t len, void *p);
699 extern void discord_channel_reaction_from_json(char *json, size_t len, struct discord_channel_reaction *p);
700 extern size_t discord_channel_reaction_to_json_v(char *json, size_t len, void *p);
701 extern size_t discord_channel_reaction_to_json(char *json, size_t len, struct discord_channel_reaction *p);
702 extern size_t discord_channel_reaction_to_query_v(char *json, size_t len, void *p);
703 extern size_t discord_channel_reaction_to_query(char *json, size_t len, struct discord_channel_reaction *p);
704 extern void discord_channel_reaction_list_free_v(void **p);
705 extern void discord_channel_reaction_list_free(struct discord_channel_reaction **p);
706 extern void discord_channel_reaction_list_from_json_v(char *str, size_t len, void *p);
707 extern void discord_channel_reaction_list_from_json(char *str, size_t len, struct discord_channel_reaction ***p);
708 extern size_t discord_channel_reaction_list_to_json_v(char *str, size_t len, void *p);
709 extern size_t discord_channel_reaction_list_to_json(char *str, size_t len, struct discord_channel_reaction **p);
710 
717  /* specs/discord/channel.json:243:20
718  '{ "name": "id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" }}' */
719  u64_snowflake_t id;
720 
721  /* specs/discord/channel.json:244:20
722  '{ "name": "type", "type":{ "base":"int" }}' */
723  int type;
724 
725  /* specs/discord/channel.json:245:20
726  '{ "name": "allow", "type":{ "base":"s_as_hex_uint", "int_alias":"enum discord_permissions_bitwise_flags"},
727  "comment":"permission bit set"}' */
728  enum discord_permissions_bitwise_flags allow; // permission bit set
729 
730  /* specs/discord/channel.json:247:20
731  '{ "name": "deny", "type":{ "base":"s_as_hex_uint", "int_alias":"enum discord_permissions_bitwise_flags"},
732  "comment":"permission bit set"}' */
733  enum discord_permissions_bitwise_flags deny; // permission bit set
734 
735  // The following is metadata used to
736  // 1. control which field should be extracted/injected
737  // 2. record which field is presented(defined) in JSON
738  // 3. record which field is null in JSON
740  struct {
741  bool enable_arg_switches;
742  bool enable_record_defined;
743  bool enable_record_null;
744  void *arg_switches[4];
745  void *record_defined[4];
746  void *record_null[4];
747  } __M; // metadata
749 };
750 extern void discord_channel_overwrite_cleanup_v(void *p);
751 extern void discord_channel_overwrite_cleanup(struct discord_channel_overwrite *p);
752 extern void discord_channel_overwrite_init_v(void *p);
753 extern void discord_channel_overwrite_init(struct discord_channel_overwrite *p);
754 extern struct discord_channel_overwrite * discord_channel_overwrite_alloc();
755 extern void discord_channel_overwrite_free_v(void *p);
756 extern void discord_channel_overwrite_free(struct discord_channel_overwrite *p);
757 extern void discord_channel_overwrite_from_json_v(char *json, size_t len, void *p);
758 extern void discord_channel_overwrite_from_json(char *json, size_t len, struct discord_channel_overwrite *p);
759 extern size_t discord_channel_overwrite_to_json_v(char *json, size_t len, void *p);
760 extern size_t discord_channel_overwrite_to_json(char *json, size_t len, struct discord_channel_overwrite *p);
761 extern size_t discord_channel_overwrite_to_query_v(char *json, size_t len, void *p);
762 extern size_t discord_channel_overwrite_to_query(char *json, size_t len, struct discord_channel_overwrite *p);
763 extern void discord_channel_overwrite_list_free_v(void **p);
764 extern void discord_channel_overwrite_list_free(struct discord_channel_overwrite **p);
765 extern void discord_channel_overwrite_list_from_json_v(char *str, size_t len, void *p);
766 extern void discord_channel_overwrite_list_from_json(char *str, size_t len, struct discord_channel_overwrite ***p);
767 extern size_t discord_channel_overwrite_list_to_json_v(char *str, size_t len, void *p);
768 extern size_t discord_channel_overwrite_list_to_json(char *str, size_t len, struct discord_channel_overwrite **p);
769 
777  /* specs/discord/channel.json:258:20
778  '{ "name": "archived", "type":{ "base":"bool" }}' */
779  bool archived;
780 
781  /* specs/discord/channel.json:259:20
782  '{ "name": "archiver_id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" }}' */
783  u64_snowflake_t archiver_id;
784 
785  /* specs/discord/channel.json:260:20
786  '{ "name": "auto_archive_duration", "type":{ "base":"int" }}' */
787  int auto_archive_duration;
788 
789  /* specs/discord/channel.json:261:20
790  '{ "name": "archive_timestamp", "type":{ "base":"char", "dec":"*", "converter":"iso8601" }}' */
791  u64_unix_ms_t archive_timestamp;
792 
793  /* specs/discord/channel.json:262:20
794  '{ "name": "locked", "type":{ "base":"bool" }}' */
795  bool locked;
796 
797  // The following is metadata used to
798  // 1. control which field should be extracted/injected
799  // 2. record which field is presented(defined) in JSON
800  // 3. record which field is null in JSON
802  struct {
803  bool enable_arg_switches;
804  bool enable_record_defined;
805  bool enable_record_null;
806  void *arg_switches[5];
807  void *record_defined[5];
808  void *record_null[5];
809  } __M; // metadata
811 };
812 extern void discord_thread_metadata_cleanup_v(void *p);
813 extern void discord_thread_metadata_cleanup(struct discord_thread_metadata *p);
814 extern void discord_thread_metadata_init_v(void *p);
815 extern void discord_thread_metadata_init(struct discord_thread_metadata *p);
816 extern struct discord_thread_metadata * discord_thread_metadata_alloc();
817 extern void discord_thread_metadata_free_v(void *p);
818 extern void discord_thread_metadata_free(struct discord_thread_metadata *p);
819 extern void discord_thread_metadata_from_json_v(char *json, size_t len, void *p);
820 extern void discord_thread_metadata_from_json(char *json, size_t len, struct discord_thread_metadata *p);
821 extern size_t discord_thread_metadata_to_json_v(char *json, size_t len, void *p);
822 extern size_t discord_thread_metadata_to_json(char *json, size_t len, struct discord_thread_metadata *p);
823 extern size_t discord_thread_metadata_to_query_v(char *json, size_t len, void *p);
824 extern size_t discord_thread_metadata_to_query(char *json, size_t len, struct discord_thread_metadata *p);
825 extern void discord_thread_metadata_list_free_v(void **p);
826 extern void discord_thread_metadata_list_free(struct discord_thread_metadata **p);
827 extern void discord_thread_metadata_list_from_json_v(char *str, size_t len, void *p);
828 extern void discord_thread_metadata_list_from_json(char *str, size_t len, struct discord_thread_metadata ***p);
829 extern size_t discord_thread_metadata_list_to_json_v(char *str, size_t len, void *p);
830 extern size_t discord_thread_metadata_list_to_json(char *str, size_t len, struct discord_thread_metadata **p);
831 
839  /* specs/discord/channel.json:272:20
840  '{ "name": "id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" }}' */
841  u64_snowflake_t id;
842 
843  /* specs/discord/channel.json:273:20
844  '{ "name": "user_id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" }}' */
845  u64_snowflake_t user_id;
846 
847  /* specs/discord/channel.json:274:20
848  '{ "name": "join_timestamp", "type":{ "base":"char", "dec":"*", "converter":"iso8601" }}' */
849  u64_unix_ms_t join_timestamp;
850 
851  /* specs/discord/channel.json:275:20
852  '{ "name": "flags", "type":{ "base":"int" }}' */
853  int flags;
854 
855  // The following is metadata used to
856  // 1. control which field should be extracted/injected
857  // 2. record which field is presented(defined) in JSON
858  // 3. record which field is null in JSON
860  struct {
861  bool enable_arg_switches;
862  bool enable_record_defined;
863  bool enable_record_null;
864  void *arg_switches[4];
865  void *record_defined[4];
866  void *record_null[4];
867  } __M; // metadata
869 };
870 extern void discord_thread_member_cleanup_v(void *p);
871 extern void discord_thread_member_cleanup(struct discord_thread_member *p);
872 extern void discord_thread_member_init_v(void *p);
873 extern void discord_thread_member_init(struct discord_thread_member *p);
874 extern struct discord_thread_member * discord_thread_member_alloc();
875 extern void discord_thread_member_free_v(void *p);
876 extern void discord_thread_member_free(struct discord_thread_member *p);
877 extern void discord_thread_member_from_json_v(char *json, size_t len, void *p);
878 extern void discord_thread_member_from_json(char *json, size_t len, struct discord_thread_member *p);
879 extern size_t discord_thread_member_to_json_v(char *json, size_t len, void *p);
880 extern size_t discord_thread_member_to_json(char *json, size_t len, struct discord_thread_member *p);
881 extern size_t discord_thread_member_to_query_v(char *json, size_t len, void *p);
882 extern size_t discord_thread_member_to_query(char *json, size_t len, struct discord_thread_member *p);
883 extern void discord_thread_member_list_free_v(void **p);
884 extern void discord_thread_member_list_free(struct discord_thread_member **p);
885 extern void discord_thread_member_list_from_json_v(char *str, size_t len, void *p);
886 extern void discord_thread_member_list_from_json(char *str, size_t len, struct discord_thread_member ***p);
887 extern size_t discord_thread_member_list_to_json_v(char *str, size_t len, void *p);
888 extern size_t discord_thread_member_list_to_json(char *str, size_t len, struct discord_thread_member **p);
889 
897  /* specs/discord/channel.json:285:20
898  '{ "name": "id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" }}' */
899  u64_snowflake_t id;
900 
901  /* specs/discord/channel.json:286:20
902  '{ "name": "filename", "type":{ "base":"char", "dec":"[256]" }}' */
903  char filename[256];
904 
905  /* specs/discord/channel.json:287:20
906  '{ "name": "size", "type":{ "base":"int" }}' */
907  int size;
908 
909  /* specs/discord/channel.json:288:20
910  '{ "name": "url", "type":{ "base":"char", "dec":"*" }}' */
911  char *url;
912 
913  /* specs/discord/channel.json:289:20
914  '{ "name": "proxy_url", "type":{ "base":"char", "dec":"*" }}' */
915  char *proxy_url;
916 
917  /* specs/discord/channel.json:290:20
918  '{ "name": "height", "type":{ "base":"int", "nullable":true }}' */
919  int height;
920 
921  /* specs/discord/channel.json:291:20
922  '{ "name": "width", "type":{ "base":"int", "nullable":true }}' */
923  int width;
924 
925  // The following is metadata used to
926  // 1. control which field should be extracted/injected
927  // 2. record which field is presented(defined) in JSON
928  // 3. record which field is null in JSON
930  struct {
931  bool enable_arg_switches;
932  bool enable_record_defined;
933  bool enable_record_null;
934  void *arg_switches[7];
935  void *record_defined[7];
936  void *record_null[7];
937  } __M; // metadata
939 };
940 extern void discord_channel_attachment_cleanup_v(void *p);
941 extern void discord_channel_attachment_cleanup(struct discord_channel_attachment *p);
942 extern void discord_channel_attachment_init_v(void *p);
943 extern void discord_channel_attachment_init(struct discord_channel_attachment *p);
944 extern struct discord_channel_attachment * discord_channel_attachment_alloc();
945 extern void discord_channel_attachment_free_v(void *p);
946 extern void discord_channel_attachment_free(struct discord_channel_attachment *p);
947 extern void discord_channel_attachment_from_json_v(char *json, size_t len, void *p);
948 extern void discord_channel_attachment_from_json(char *json, size_t len, struct discord_channel_attachment *p);
949 extern size_t discord_channel_attachment_to_json_v(char *json, size_t len, void *p);
950 extern size_t discord_channel_attachment_to_json(char *json, size_t len, struct discord_channel_attachment *p);
951 extern size_t discord_channel_attachment_to_query_v(char *json, size_t len, void *p);
952 extern size_t discord_channel_attachment_to_query(char *json, size_t len, struct discord_channel_attachment *p);
953 extern void discord_channel_attachment_list_free_v(void **p);
954 extern void discord_channel_attachment_list_free(struct discord_channel_attachment **p);
955 extern void discord_channel_attachment_list_from_json_v(char *str, size_t len, void *p);
956 extern void discord_channel_attachment_list_from_json(char *str, size_t len, struct discord_channel_attachment ***p);
957 extern size_t discord_channel_attachment_list_to_json_v(char *str, size_t len, void *p);
958 extern size_t discord_channel_attachment_list_to_json(char *str, size_t len, struct discord_channel_attachment **p);
959 
967  /* specs/discord/channel.json:301:20
968  '{ "name": "id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" }}' */
969  u64_snowflake_t id;
970 
971  /* specs/discord/channel.json:302:20
972  '{ "name": "guild_id", "type":{ "base":"char", "dec":"*", "converter":"snowflake" }}' */
973  u64_snowflake_t guild_id;
974 
975  /* specs/discord/channel.json:303:20
976  '{ "name": "type", "type":{ "base":"int", "int_alias":"enum discord_channel_types" }}' */
977  enum discord_channel_types type;
978 
979  /* specs/discord/channel.json:304:20
980  '{ "name": "name", "type":{ "base":"char", "dec":"*" }}' */
981  char *name;
982 
983  // The following is metadata used to
984  // 1. control which field should be extracted/injected
985  // 2. record which field is presented(defined) in JSON
986  // 3. record which field is null in JSON
988  struct {
989  bool enable_arg_switches;
990  bool enable_record_defined;
991  bool enable_record_null;
992  void *arg_switches[4];
993  void *record_defined[4];
994  void *record_null[4];
995  } __M; // metadata
997 };
998 extern void discord_channel_mention_cleanup_v(void *p);
999 extern void discord_channel_mention_cleanup(struct discord_channel_mention *p);
1000 extern void discord_channel_mention_init_v(void *p);
1001 extern void discord_channel_mention_init(struct discord_channel_mention *p);
1002 extern struct discord_channel_mention * discord_channel_mention_alloc();
1003 extern void discord_channel_mention_free_v(void *p);
1004 extern void discord_channel_mention_free(struct discord_channel_mention *p);
1005 extern void discord_channel_mention_from_json_v(char *json, size_t len, void *p);
1006 extern void discord_channel_mention_from_json(char *json, size_t len, struct discord_channel_mention *p);
1007 extern size_t discord_channel_mention_to_json_v(char *json, size_t len, void *p);
1008 extern size_t discord_channel_mention_to_json(char *json, size_t len, struct discord_channel_mention *p);
1009 extern size_t discord_channel_mention_to_query_v(char *json, size_t len, void *p);
1010 extern size_t discord_channel_mention_to_query(char *json, size_t len, struct discord_channel_mention *p);
1011 extern void discord_channel_mention_list_free_v(void **p);
1012 extern void discord_channel_mention_list_free(struct discord_channel_mention **p);
1013 extern void discord_channel_mention_list_from_json_v(char *str, size_t len, void *p);
1014 extern void discord_channel_mention_list_from_json(char *str, size_t len, struct discord_channel_mention ***p);
1015 extern size_t discord_channel_mention_list_to_json_v(char *str, size_t len, void *p);
1016 extern size_t discord_channel_mention_list_to_json(char *str, size_t len, struct discord_channel_mention **p);
1017 
1025  /* specs/discord/channel.json:314:20
1026  '{ "name": "parse", "type":{ "base":"ja_str", "dec":"ntl" }}' */
1027  ja_str **parse;
1028 
1029  /* specs/discord/channel.json:315:20
1030  '{ "name": "roles", "type":{ "base":"ja_u64", "dec":"ntl" }, "comment":"list of snowflakes"}' */
1031  ja_u64 **roles; // list of snowflakes
1032 
1033  /* specs/discord/channel.json:316:20
1034  '{ "name": "users", "type":{ "base":"ja_u64", "dec":"ntl" }, "comment":"list of snowflakes"}' */
1035  ja_u64 **users; // list of snowflakes
1036 
1037  /* specs/discord/channel.json:317:20
1038  '{ "name": "replied_user", "type":{ "base":"bool" }}' */
1039  bool replied_user;
1040 
1041  // The following is metadata used to
1042  // 1. control which field should be extracted/injected
1043  // 2. record which field is presented(defined) in JSON
1044  // 3. record which field is null in JSON
1046  struct {
1047  bool enable_arg_switches;
1048  bool enable_record_defined;
1049  bool enable_record_null;
1050  void *arg_switches[4];
1051  void *record_defined[4];
1052  void *record_null[4];
1053  } __M; // metadata
1055 };
1056 extern void discord_channel_allowed_mentions_cleanup_v(void *p);
1057 extern void discord_channel_allowed_mentions_cleanup(struct discord_channel_allowed_mentions *p);
1058 extern void discord_channel_allowed_mentions_init_v(void *p);
1059 extern void discord_channel_allowed_mentions_init(struct discord_channel_allowed_mentions *p);
1060 extern struct discord_channel_allowed_mentions * discord_channel_allowed_mentions_alloc();
1061 extern void discord_channel_allowed_mentions_free_v(void *p);
1062 extern void discord_channel_allowed_mentions_free(struct discord_channel_allowed_mentions *p);
1063 extern void discord_channel_allowed_mentions_from_json_v(char *json, size_t len, void *p);
1064 extern void discord_channel_allowed_mentions_from_json(char *json, size_t len, struct discord_channel_allowed_mentions *p);
1065 extern size_t discord_channel_allowed_mentions_to_json_v(char *json, size_t len, void *p);
1066 extern size_t discord_channel_allowed_mentions_to_json(char *json, size_t len, struct discord_channel_allowed_mentions *p);
1067 extern size_t discord_channel_allowed_mentions_to_query_v(char *json, size_t len, void *p);
1068 extern size_t discord_channel_allowed_mentions_to_query(char *json, size_t len, struct discord_channel_allowed_mentions *p);
1069 extern void discord_channel_allowed_mentions_list_free_v(void **p);
1070 extern void discord_channel_allowed_mentions_list_free(struct discord_channel_allowed_mentions **p);
1071 extern void discord_channel_allowed_mentions_list_from_json_v(char *str, size_t len, void *p);
1072 extern void discord_channel_allowed_mentions_list_from_json(char *str, size_t len, struct discord_channel_allowed_mentions ***p);
1073 extern size_t discord_channel_allowed_mentions_list_to_json_v(char *str, size_t len, void *p);
1074 extern size_t discord_channel_allowed_mentions_list_to_json(char *str, size_t len, struct discord_channel_allowed_mentions **p);
1075 
1083  /* specs/discord/channel.json:326:20
1084  '{ "name": "title", "type":{ "base":"char", "dec":"[EMBED_TITLE_LEN]" }, "option":true, "inject_if_not":null}' */
1085  char title[EMBED_TITLE_LEN];
1086 
1087  /* specs/discord/channel.json:327:20
1088  '{ "name": "type", "type":{ "base":"char", "dec":"[32]" }, "option":true, "inject_if_not":null}' */
1089  char type[32];
1090 
1091  /* specs/discord/channel.json:328:20
1092  '{ "name": "description", "type":{ "base":"char", "dec":"[EMBED_DESCRIPTION_LEN]"}, "option":true, "inject_if_not":null}' */
1093  char description[EMBED_DESCRIPTION_LEN];
1094 
1095  /* specs/discord/channel.json:329:20
1096  '{ "name": "url", "type":{ "base":"char", "dec":"*"}, "option":true, "inject_if_not":null}' */
1097  char *url;
1098 
1099  /* specs/discord/channel.json:330:20
1100  '{ "name": "timestamp", "type":{ "base":"char", "dec":"*", "converter":"iso8601" }, "option":true, "inject_if_not":0}' */
1101  u64_unix_ms_t timestamp;
1102 
1103  /* specs/discord/channel.json:331:20
1104  '{ "name": "color", "type":{ "base":"int" }, "option":true, "inject_if_not":0}' */
1105  int color;
1106 
1107  /* specs/discord/channel.json:332:20
1108  '{ "name": "footer", "type":{ "base":"struct discord_embed_footer", "dec":"*"}, "option":true, "inject_if_not":null}' */
1109  struct discord_embed_footer *footer;
1110 
1111  /* specs/discord/channel.json:333:20
1112  '{ "name": "image", "type":{ "base":"struct discord_embed_image", "dec":"*"}, "inject_if_not":null}' */
1113  struct discord_embed_image *image;
1114 
1115  /* specs/discord/channel.json:334:20
1116  '{ "name": "thumbnail", "type":{ "base":"struct discord_embed_thumbnail", "dec":"*"}, "inject_if_not":null}' */
1117  struct discord_embed_thumbnail *thumbnail;
1118 
1119  /* specs/discord/channel.json:335:20
1120  '{ "name": "video", "type":{ "base":"struct discord_embed_video", "dec":"*"}, "inject_if_not":null}' */
1121  struct discord_embed_video *video;
1122 
1123  /* specs/discord/channel.json:336:20
1124  '{ "name": "provider", "type":{ "base":"struct discord_embed_provider", "dec":"*"}, "inject_if_not":null}' */
1125  struct discord_embed_provider *provider;
1126 
1127  /* specs/discord/channel.json:337:20
1128  '{ "name": "author", "type":{ "base":"struct discord_embed_author", "dec":"*"}, "inject_if_not":null}' */
1129  struct discord_embed_author *author;
1130 
1131  /* specs/discord/channel.json:338:20
1132  '{ "name": "fields", "type":{ "base":"struct discord_embed_field", "dec":"ntl"}, "option":true, "inject_if_not":null}' */
1133  struct discord_embed_field **fields;
1134 
1135  // The following is metadata used to
1136  // 1. control which field should be extracted/injected
1137  // 2. record which field is presented(defined) in JSON
1138  // 3. record which field is null in JSON
1140  struct {
1141  bool enable_arg_switches;
1142  bool enable_record_defined;
1143  bool enable_record_null;
1144  void *arg_switches[13];
1145  void *record_defined[13];
1146  void *record_null[13];
1147  } __M; // metadata
1149 };
1150 extern void discord_embed_cleanup_v(void *p);
1151 extern void discord_embed_cleanup(struct discord_embed *p);
1152 extern void discord_embed_init_v(void *p);
1153 extern void discord_embed_init(struct discord_embed *p);
1154 extern struct discord_embed * discord_embed_alloc();
1155 extern void discord_embed_free_v(void *p);
1156 extern void discord_embed_free(struct discord_embed *p);
1157 extern void discord_embed_from_json_v(char *json, size_t len, void *p);
1158 extern void discord_embed_from_json(char *json, size_t len, struct discord_embed *p);
1159 extern size_t discord_embed_to_json_v(char *json, size_t len, void *p);
1160 extern size_t discord_embed_to_json(char *json, size_t len, struct discord_embed *p);
1161 extern size_t discord_embed_to_query_v(char *json, size_t len, void *p);
1162 extern size_t discord_embed_to_query(char *json, size_t len, struct discord_embed *p);
1163 extern void discord_embed_list_free_v(void **p);
1164 extern void discord_embed_list_free(struct discord_embed **p);
1165 extern void discord_embed_list_from_json_v(char *str, size_t len, void *p);
1166 extern void discord_embed_list_from_json(char *str, size_t len, struct discord_embed ***p);
1167 extern size_t discord_embed_list_to_json_v(char *str, size_t len, void *p);
1168 extern size_t discord_embed_list_to_json(char *str, size_t len, struct discord_embed **p);
1169 
1177  /* specs/discord/channel.json:347:20
1178  '{ "name": "url", "type":{ "base":"char", "dec":"*" }, "inject_if_not":null}' */
1179  char *url;
1180 
1181  /* specs/discord/channel.json:348:20
1182  '{ "name": "proxy_url", "type":{ "base":"char", "dec":"*" }, "inject_if_not":null}' */
1183  char *proxy_url;
1184 
1185  /* specs/discord/channel.json:349:20
1186  '{ "name": "height", "type":{ "base":"int" }, "inject_if_not":0}' */
1187  int height;
1188 
1189  /* specs/discord/channel.json:350:20
1190  '{ "name": "width", "type":{ "base":"int" }, "inject_if_not":0}' */
1191  int width;
1192 
1193  // The following is metadata used to
1194  // 1. control which field should be extracted/injected
1195  // 2. record which field is presented(defined) in JSON
1196  // 3. record which field is null in JSON
1198  struct {
1199  bool enable_arg_switches;
1200  bool enable_record_defined;
1201  bool enable_record_null;
1202  void *arg_switches[4];
1203  void *record_defined[4];
1204  void *record_null[4];
1205  } __M; // metadata
1207 };
1208 extern void discord_embed_thumbnail_cleanup_v(void *p);
1209 extern void discord_embed_thumbnail_cleanup(struct discord_embed_thumbnail *p);
1210 extern void discord_embed_thumbnail_init_v(void *p);
1211 extern void discord_embed_thumbnail_init(struct discord_embed_thumbnail *p);
1212 extern struct discord_embed_thumbnail * discord_embed_thumbnail_alloc();
1213 extern void discord_embed_thumbnail_free_v(void *p);
1214 extern void discord_embed_thumbnail_free(struct discord_embed_thumbnail *p);
1215 extern void discord_embed_thumbnail_from_json_v(char *json, size_t len, void *p);
1216 extern void discord_embed_thumbnail_from_json(char *json, size_t len, struct discord_embed_thumbnail *p);
1217 extern size_t discord_embed_thumbnail_to_json_v(char *json, size_t len, void *p);
1218 extern size_t discord_embed_thumbnail_to_json(char *json, size_t len, struct discord_embed_thumbnail *p);
1219 extern size_t discord_embed_thumbnail_to_query_v(char *json, size_t len, void *p);
1220 extern size_t discord_embed_thumbnail_to_query(char *json, size_t len, struct discord_embed_thumbnail *p);
1221 extern void discord_embed_thumbnail_list_free_v(void **p);
1222 extern void discord_embed_thumbnail_list_free(struct discord_embed_thumbnail **p);
1223 extern void discord_embed_thumbnail_list_from_json_v(char *str, size_t len, void *p);
1224 extern void discord_embed_thumbnail_list_from_json(char *str, size_t len, struct discord_embed_thumbnail ***p);
1225 extern size_t discord_embed_thumbnail_list_to_json_v(char *str, size_t len, void *p);
1226 extern size_t discord_embed_thumbnail_list_to_json(char *str, size_t len, struct discord_embed_thumbnail **p);
1227 
1235  /* specs/discord/channel.json:359:20
1236  '{ "name": "url", "type":{ "base":"char", "dec":"*" }, "inject_if_not":null}' */
1237  char *url;
1238 
1239  /* specs/discord/channel.json:360:20
1240  '{ "name": "proxy_url", "type":{ "base":"char", "dec":"*" }, "inject_if_not":null}' */
1241  char *proxy_url;
1242 
1243  /* specs/discord/channel.json:361:20
1244  '{ "name": "height", "type":{ "base":"int" }, "inject_if_not":0}' */
1245  int height;
1246 
1247  /* specs/discord/channel.json:362:20
1248  '{ "name": "width", "type":{ "base":"int" }, "inject_if_not":0}' */
1249  int width;
1250 
1251  // The following is metadata used to
1252  // 1. control which field should be extracted/injected
1253  // 2. record which field is presented(defined) in JSON
1254  // 3. record which field is null in JSON
1256  struct {
1257  bool enable_arg_switches;
1258  bool enable_record_defined;
1259  bool enable_record_null;
1260  void *arg_switches[4];
1261  void *record_defined[4];
1262  void *record_null[4];
1263  } __M; // metadata
1265 };
1266 extern void discord_embed_video_cleanup_v(void *p);
1267 extern void discord_embed_video_cleanup(struct discord_embed_video *p);
1268 extern void discord_embed_video_init_v(void *p);
1269 extern void discord_embed_video_init(struct discord_embed_video *p);
1270 extern struct discord_embed_video * discord_embed_video_alloc();
1271 extern void discord_embed_video_free_v(void *p);
1272 extern void discord_embed_video_free(struct discord_embed_video *p);
1273 extern void discord_embed_video_from_json_v(char *json, size_t len, void *p);
1274 extern void discord_embed_video_from_json(char *json, size_t len, struct discord_embed_video *p);
1275 extern size_t discord_embed_video_to_json_v(char *json, size_t len, void *p);
1276 extern size_t discord_embed_video_to_json(char *json, size_t len, struct discord_embed_video *p);
1277 extern size_t discord_embed_video_to_query_v(char *json, size_t len, void *p);
1278 extern size_t discord_embed_video_to_query(char *json, size_t len, struct discord_embed_video *p);
1279 extern void discord_embed_video_list_free_v(void **p);
1280 extern void discord_embed_video_list_free(struct discord_embed_video **p);
1281 extern void discord_embed_video_list_from_json_v(char *str, size_t len, void *p);
1282 extern void discord_embed_video_list_from_json(char *str, size_t len, struct discord_embed_video ***p);
1283 extern size_t discord_embed_video_list_to_json_v(char *str, size_t len, void *p);
1284 extern size_t discord_embed_video_list_to_json(char *str, size_t len, struct discord_embed_video **p);
1285 
1293  /* specs/discord/channel.json:371:20
1294  '{ "name": "url", "type":{ "base":"char", "dec":"*" }, "inject_if_not":null}' */
1295  char *url;
1296 
1297  /* specs/discord/channel.json:372:20
1298  '{ "name": "proxy_url", "type":{ "base":"char", "dec":"*" }, "inject_if_not":null}' */
1299  char *proxy_url;
1300 
1301  /* specs/discord/channel.json:373:20
1302  '{ "name": "height", "type":{ "base":"int" }, "inject_if_not":0}' */
1303  int height;
1304 
1305  /* specs/discord/channel.json:374:20
1306  '{ "name": "width", "type":{ "base":"int" }, "inject_if_not":0}' */
1307  int width;
1308 
1309  // The following is metadata used to
1310  // 1. control which field should be extracted/injected
1311  // 2. record which field is presented(defined) in JSON
1312  // 3. record which field is null in JSON
1314  struct {
1315  bool enable_arg_switches;
1316  bool enable_record_defined;
1317  bool enable_record_null;
1318  void *arg_switches[4];
1319  void *record_defined[4];
1320  void *record_null[4];
1321  } __M; // metadata
1323 };
1324 extern void discord_embed_image_cleanup_v(void *p);
1325 extern void discord_embed_image_cleanup(struct discord_embed_image *p);
1326 extern void discord_embed_image_init_v(void *p);
1327 extern void discord_embed_image_init(struct discord_embed_image *p);
1328 extern struct discord_embed_image * discord_embed_image_alloc();
1329 extern void discord_embed_image_free_v(void *p);
1330 extern void discord_embed_image_free(struct discord_embed_image *p);
1331 extern void discord_embed_image_from_json_v(char *json, size_t len, void *p);
1332 extern void discord_embed_image_from_json(char *json, size_t len, struct discord_embed_image *p);
1333 extern size_t discord_embed_image_to_json_v(char *json, size_t len, void *p);
1334 extern size_t discord_embed_image_to_json(char *json, size_t len, struct discord_embed_image *p);
1335 extern size_t discord_embed_image_to_query_v(char *json, size_t len, void *p);
1336 extern size_t discord_embed_image_to_query(char *json, size_t len, struct discord_embed_image *p);
1337 extern void discord_embed_image_list_free_v(void **p);
1338 extern void discord_embed_image_list_free(struct discord_embed_image **p);
1339 extern void discord_embed_image_list_from_json_v(char *str, size_t len, void *p);
1340 extern void discord_embed_image_list_from_json(char *str, size_t len, struct discord_embed_image ***p);
1341 extern size_t discord_embed_image_list_to_json_v(char *str, size_t len, void *p);
1342 extern size_t discord_embed_image_list_to_json(char *str, size_t len, struct discord_embed_image **p);
1343 
1351  /* specs/discord/channel.json:383:20
1352  '{ "name": "name", "type":{"base":"char", "dec":"*"}, "inject_if_not":null}' */
1353  char *name;
1354 
1355  /* specs/discord/channel.json:384:20
1356  '{ "name": "url", "type":{"base":"char", "dec":"*"}, "inject_if_not":null}' */
1357  char *url;
1358 
1359  // The following is metadata used to
1360  // 1. control which field should be extracted/injected
1361  // 2. record which field is presented(defined) in JSON
1362  // 3. record which field is null in JSON
1364  struct {
1365  bool enable_arg_switches;
1366  bool enable_record_defined;
1367  bool enable_record_null;
1368  void *arg_switches[2];
1369  void *record_defined[2];
1370  void *record_null[2];
1371  } __M; // metadata
1373 };
1374 extern void discord_embed_provider_cleanup_v(void *p);
1375 extern void discord_embed_provider_cleanup(struct discord_embed_provider *p);
1376 extern void discord_embed_provider_init_v(void *p);
1377 extern void discord_embed_provider_init(struct discord_embed_provider *p);
1378 extern struct discord_embed_provider * discord_embed_provider_alloc();
1379 extern void discord_embed_provider_free_v(void *p);
1380 extern void discord_embed_provider_free(struct discord_embed_provider *p);
1381 extern void discord_embed_provider_from_json_v(char *json, size_t len, void *p);
1382 extern void discord_embed_provider_from_json(char *json, size_t len, struct discord_embed_provider *p);
1383 extern size_t discord_embed_provider_to_json_v(char *json, size_t len, void *p);
1384 extern size_t discord_embed_provider_to_json(char *json, size_t len, struct discord_embed_provider *p);
1385 extern size_t discord_embed_provider_to_query_v(char *json, size_t len, void *p);
1386 extern size_t discord_embed_provider_to_query(char *json, size_t len, struct discord_embed_provider *p);
1387 extern void discord_embed_provider_list_free_v(void **p);
1388 extern void discord_embed_provider_list_free(struct discord_embed_provider **p);
1389 extern void discord_embed_provider_list_from_json_v(char *str, size_t len, void *p);
1390 extern void discord_embed_provider_list_from_json(char *str, size_t len, struct discord_embed_provider ***p);
1391 extern size_t discord_embed_provider_list_to_json_v(char *str, size_t len, void *p);
1392 extern size_t discord_embed_provider_list_to_json(char *str, size_t len, struct discord_embed_provider **p);
1393 
1401  /* specs/discord/channel.json:393:20
1402  '{ "name": "name", "type":{ "base":"char", "dec":"[EMBED_AUTHOR_NAME_LEN]" }, "inject_if_not":null}' */
1403  char name[EMBED_AUTHOR_NAME_LEN];
1404 
1405  /* specs/discord/channel.json:394:20
1406  '{ "name": "url", "type":{ "base":"char", "dec":"*" }, "inject_if_not":null}' */
1407  char *url;
1408 
1409  /* specs/discord/channel.json:395:20
1410  '{ "name": "icon_url", "type":{ "base":"char", "dec":"*" }, "inject_if_not":null}' */
1411  char *icon_url;
1412 
1413  /* specs/discord/channel.json:396:20
1414  '{ "name": "proxy_icon_url", "type":{ "base":"char", "dec":"*" }, "inject_if_not":null}' */
1415  char *proxy_icon_url;
1416 
1417  // The following is metadata used to
1418  // 1. control which field should be extracted/injected
1419  // 2. record which field is presented(defined) in JSON
1420  // 3. record which field is null in JSON
1422  struct {
1423  bool enable_arg_switches;
1424  bool enable_record_defined;
1425  bool enable_record_null;
1426  void *arg_switches[4];
1427  void *record_defined[4];
1428  void *record_null[4];
1429  } __M; // metadata
1431 };
1432 extern void discord_embed_author_cleanup_v(void *p);
1433 extern void discord_embed_author_cleanup(struct discord_embed_author *p);
1434 extern void discord_embed_author_init_v(void *p);
1435 extern void discord_embed_author_init(struct discord_embed_author *p);
1436 extern struct discord_embed_author * discord_embed_author_alloc();
1437 extern void discord_embed_author_free_v(void *p);
1438 extern void discord_embed_author_free(struct discord_embed_author *p);
1439 extern void discord_embed_author_from_json_v(char *json, size_t len, void *p);
1440 extern void discord_embed_author_from_json(char *json, size_t len, struct discord_embed_author *p);
1441 extern size_t discord_embed_author_to_json_v(char *json, size_t len, void *p);
1442 extern size_t discord_embed_author_to_json(char *json, size_t len, struct discord_embed_author *p);
1443 extern size_t discord_embed_author_to_query_v(char *json, size_t len, void *p);
1444 extern size_t discord_embed_author_to_query(char *json, size_t len, struct discord_embed_author *p);
1445 extern void discord_embed_author_list_free_v(void **p);
1446 extern void discord_embed_author_list_free(struct discord_embed_author **p);
1447 extern void discord_embed_author_list_from_json_v(char *str, size_t len, void *p);
1448 extern void discord_embed_author_list_from_json(char *str, size_t len, struct discord_embed_author ***p);
1449 extern size_t discord_embed_author_list_to_json_v(char *str, size_t len, void *p);
1450 extern size_t discord_embed_author_list_to_json(char *str, size_t len, struct discord_embed_author **p);
1451 
1459  /* specs/discord/channel.json:405:20
1460  '{ "name": "text", "type": {"base":"char", "dec":"[EMBED_FOOTER_TEXT_LEN]"}, "inject_if_not":null}' */
1461  char text[EMBED_FOOTER_TEXT_LEN];
1462 
1463  /* specs/discord/channel.json:406:20
1464  '{ "name": "icon_url", "type": {"base":"char", "dec":"*" }, "option":true, "inject_if_not":null}' */
1465  char *icon_url;
1466 
1467  /* specs/discord/channel.json:407:20
1468  '{ "name": "proxy_icon_url", "type": {"base":"char", "dec":"*"}, "option":true, "inject_if_not":null}' */
1469  char *proxy_icon_url;
1470 
1471  // The following is metadata used to
1472  // 1. control which field should be extracted/injected
1473  // 2. record which field is presented(defined) in JSON
1474  // 3. record which field is null in JSON
1476  struct {
1477  bool enable_arg_switches;
1478  bool enable_record_defined;
1479  bool enable_record_null;
1480  void *arg_switches[3];
1481  void *record_defined[3];
1482  void *record_null[3];
1483  } __M; // metadata
1485 };
1486 extern void discord_embed_footer_cleanup_v(void *p);
1487 extern void discord_embed_footer_cleanup(struct discord_embed_footer *p);
1488 extern void discord_embed_footer_init_v(void *p);
1489 extern void discord_embed_footer_init(struct discord_embed_footer *p);
1490 extern struct discord_embed_footer * discord_embed_footer_alloc();
1491 extern void discord_embed_footer_free_v(void *p);
1492 extern void discord_embed_footer_free(struct discord_embed_footer *p);
1493 extern void discord_embed_footer_from_json_v(char *json, size_t len, void *p);
1494 extern void discord_embed_footer_from_json(char *json, size_t len, struct discord_embed_footer *p);
1495 extern size_t discord_embed_footer_to_json_v(char *json, size_t len, void *p);
1496 extern size_t discord_embed_footer_to_json(char *json, size_t len, struct discord_embed_footer *p);
1497 extern size_t discord_embed_footer_to_query_v(char *json, size_t len, void *p);
1498 extern size_t discord_embed_footer_to_query(char *json, size_t len, struct discord_embed_footer *p);
1499 extern void discord_embed_footer_list_free_v(void **p);
1500 extern void discord_embed_footer_list_free(struct discord_embed_footer **p);
1501 extern void discord_embed_footer_list_from_json_v(char *str, size_t len, void *p);
1502 extern void discord_embed_footer_list_from_json(char *str, size_t len, struct discord_embed_footer ***p);
1503 extern size_t discord_embed_footer_list_to_json_v(char *str, size_t len, void *p);
1504 extern size_t discord_embed_footer_list_to_json(char *str, size_t len, struct discord_embed_footer **p);
1505 
1513  /* specs/discord/channel.json:416:20
1514  '{ "name": "name", "type": { "base":"char", "dec":"[EMBED_FIELD_NAME_LEN]" }, "inject_if_not":null}' */
1515  char name[EMBED_FIELD_NAME_LEN];
1516 
1517  /* specs/discord/channel.json:417:20
1518  '{ "name": "value", "type": { "base":"char", "dec":"[EMBED_FIELD_VALUE_LEN]" }, "inject_if_not":null}' */
1519  char value[EMBED_FIELD_VALUE_LEN];
1520 
1521  /* specs/discord/channel.json:418:20
1522  '{ "name": "Inline", "json_key":"inline", "type": { "base":"bool" }, "option":true}' */
1523  bool Inline;
1524 
1525  // The following is metadata used to
1526  // 1. control which field should be extracted/injected
1527  // 2. record which field is presented(defined) in JSON
1528  // 3. record which field is null in JSON
1530  struct {
1531  bool enable_arg_switches;
1532  bool enable_record_defined;
1533  bool enable_record_null;
1534  void *arg_switches[3];
1535  void *record_defined[3];
1536  void *record_null[3];
1537  } __M; // metadata
1539 };
1540 extern void discord_embed_field_cleanup_v(void *p);
1541 extern void discord_embed_field_cleanup(struct discord_embed_field *p);
1542 extern void discord_embed_field_init_v(void *p);
1543 extern void discord_embed_field_init(struct discord_embed_field *p);
1544 extern struct discord_embed_field * discord_embed_field_alloc();
1545 extern void discord_embed_field_free_v(void *p);
1546 extern void discord_embed_field_free(struct discord_embed_field *p);
1547 extern void discord_embed_field_from_json_v(char *json, size_t len, void *p);
1548 extern void discord_embed_field_from_json(char *json, size_t len, struct discord_embed_field *p);
1549 extern size_t discord_embed_field_to_json_v(char *json, size_t len, void *p);
1550 extern size_t discord_embed_field_to_json(char *json, size_t len, struct discord_embed_field *p);
1551 extern size_t discord_embed_field_to_query_v(char *json, size_t len, void *p);
1552 extern size_t discord_embed_field_to_query(char *json, size_t len, struct discord_embed_field *p);
1553 extern void discord_embed_field_list_free_v(void **p);
1554 extern void discord_embed_field_list_free(struct discord_embed_field **p);
1555 extern void discord_embed_field_list_from_json_v(char *str, size_t len, void *p);
1556 extern void discord_embed_field_list_from_json(char *str, size_t len, struct discord_embed_field ***p);
1557 extern size_t discord_embed_field_list_to_json_v(char *str, size_t len, void *p);
1558 extern size_t discord_embed_field_list_to_json(char *str, size_t len, struct discord_embed_field **p);
discord_embed_field
Embed Field Structure.
Definition: channel.h:1512
discord_channel_allowed_mentions
Allowed Mentions Structure.
Definition: channel.h:1024
discord_embed_author
Embed Author Structure.
Definition: channel.h:1400
discord_embed_provider
Embed Provider Structure.
Definition: channel.h:1350
discord_channel_followed_channel
Followed Channel Structure.
Definition: channel.h:613
discord_channel_overwrite
Overwrite Structure.
Definition: channel.h:716
discord_embed_video
Embed Video Structure.
Definition: channel.h:1234
discord_channel_mention
Channel Mention Structure.
Definition: channel.h:966
discord_message_sticker
Message Sticker Structure.
Definition: channel.h:172
discord_embed_image
Embed Image Structure.
Definition: channel.h:1292
discord_thread_member
Thread Member Object.
Definition: channel.h:838
discord_message_application
Message Application Structure.
Definition: channel.h:317
discord_embed_thumbnail
Embed Thumbnail Structure.
Definition: channel.h:1176
discord_channel_attachment
Attachment Strcture.
Definition: channel.h:896
discord_message_reference
Message Reference Structure.
Definition: channel.h:259
u64_unix_ms_t
uint64_t u64_unix_ms_t
unix time in ms
Definition: discord.h:26
u64_snowflake_t
uint64_t u64_snowflake_t
snowflake datatype
Definition: discord.h:32
discord_message
Message Structure.
Definition: channel.h:465
discord_message_activity
Message Activity Structure.
Definition: channel.h:390
discord_channel_reaction
Reaction Structure.
Definition: channel.h:663
discord_guild_member
Guild Member Structure.
Definition: guild.h:515
discord_channel
Channel Structure.
Definition: channel.h:31
discord_emoji
Emoji Structure.
Definition: emoji.h:17
discord_user
User Structure.
Definition: user.h:45
discord_embed
Embed Structure.
Definition: channel.h:1082
discord_thread_metadata
Thread Metadata Object.
Definition: channel.h:776