use iso8601_timestamp::Timestamp; use std::collections::HashSet; auto_derived!( pub struct DataChannelMessagesSearch { pub channel: Option, pub server: Option, pub offset: Option, pub limit: Option, pub filters: Option, pub sort: Option, pub include_users: Option, } pub struct DataChannelMessagesSearchFilters { pub content: Option, pub author: Option>, pub mentions: Option>, pub role_mentions: Option>, pub before_date: Option, pub after_date: Option, pub author_type: Option>, pub pinned: Option, pub components: Option>, } #[derive(Copy, Hash)] pub enum AuthorType { User, // Bot, Webhook, } #[derive(Copy, Hash)] pub enum MessageComponent { Image, Video, // Link, File, Embed, } #[derive(Copy, Default)] #[cfg_attr(feature = "serde", serde(rename_all = "lowercase"))] pub enum SortOrder { Asc, #[default] Desc, } );