twilight_cache_any_backend/model/
channel.rs1use twilight_model::{
2 channel::{
3 permission_overwrite::PermissionOverwrite,
4 thread::{AutoArchiveDuration, ThreadMetadata},
5 Channel, ChannelType, VideoQualityMode,
6 },
7 id::{
8 marker::{ApplicationMarker, ChannelMarker, GuildMarker, UserMarker},
9 Id,
10 },
11 util::ImageHash,
12};
13
14#[derive(Clone, Debug)]
28pub struct CachedChannel {
29 pub application_id: Option<Id<ApplicationMarker>>,
30 pub bitrate: Option<u32>,
31 pub default_auto_archive_duration: Option<AutoArchiveDuration>,
32 pub guild_id: Option<Id<GuildMarker>>,
33 pub icon: Option<ImageHash>,
34 pub id: Id<ChannelMarker>,
35 pub invitable: Option<bool>,
36 pub kind: ChannelType,
37 pub name: Option<String>,
38 pub nsfw: Option<bool>,
39 pub owner_id: Option<Id<UserMarker>>,
40 pub parent_id: Option<Id<ChannelMarker>>,
41 pub permission_overwrites: Option<Vec<PermissionOverwrite>>,
42 pub position: Option<i32>,
43 pub rate_limit_per_user: Option<u16>,
44 pub rtc_region: Option<String>,
45 pub thread_metadata: Option<ThreadMetadata>,
46 pub topic: Option<String>,
47 pub user_limit: Option<u32>,
48 pub video_quality_mode: Option<VideoQualityMode>,
49}
50
51impl From<&Channel> for CachedChannel {
52 fn from(channel: &Channel) -> Self {
53 Self {
54 application_id: channel.application_id,
55 bitrate: channel.bitrate,
56 default_auto_archive_duration: channel.default_auto_archive_duration,
57 guild_id: channel.guild_id,
58 icon: channel.icon,
59 id: channel.id,
60 invitable: channel.invitable,
61 kind: channel.kind,
62 name: channel.name.clone(),
63 nsfw: channel.nsfw,
64 owner_id: channel.owner_id,
65 parent_id: channel.parent_id,
66 permission_overwrites: channel.permission_overwrites.clone(),
67 position: channel.position,
68 rate_limit_per_user: channel.rate_limit_per_user,
69 rtc_region: channel.rtc_region.clone(),
70 thread_metadata: channel.thread_metadata.clone(),
71 topic: channel.topic.clone(),
72 user_limit: channel.user_limit,
73 video_quality_mode: channel.video_quality_mode,
74 }
75 }
76}