const json = @import("../json.zig"); const User = @import("User.zig"); pub const ChatMember = union(enum) { creator: struct { user: User, is_anonymous: bool, custom_title: ?[]const u8 = null, }, administrator: struct { user: User, can_be_edited: bool, is_anonymous: bool, can_manage_chat: bool, can_delete_messages: bool, can_manage_video_chats: bool, can_restrict_members: bool, can_promote_members: bool, can_change_info: bool, can_invite_users: bool, can_post_stories: bool, can_edit_stories: bool, can_delete_stories: bool, can_post_messages: ?bool = null, can_edit_messages: ?bool = null, can_pin_messages: ?bool = null, can_manage_topics: ?bool = null, custom_title: ?[]const u8 = null, }, member: struct { user: User, }, restricted: struct { user: User, is_member: bool, can_send_messages: bool, can_send_audios: bool, can_send_documents: bool, can_send_photos: bool, can_send_videos: bool, can_send_video_notes: bool, can_send_voice_notes: bool, can_send_polls: bool, can_send_other_messages: bool, can_add_web_page_previews: bool, can_change_info: bool, can_invite_users: bool, can_pin_messages: bool, can_manage_topics: bool, until_date: u64, }, left: struct { user: User, }, banned: struct { user: User, until_date: u64, }, pub const jsonParse = json.makeJsonParse(ChatMember); pub const jsonParseFromValue = json.makeJsonParseFromValueWithTag(ChatMember, "status"); };