twilight_model/guild/widget/
settings.rs1use crate::id::{marker::ChannelMarker, Id};
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
5pub struct GuildWidgetSettings {
6 pub channel_id: Id<ChannelMarker>,
7 pub enabled: bool,
8}
9
10#[cfg(test)]
11mod tests {
12 use super::GuildWidgetSettings;
13 use crate::id::Id;
14 use serde::{Deserialize, Serialize};
15 use serde_test::Token;
16 use static_assertions::{assert_fields, assert_impl_all};
17 use std::{fmt::Debug, hash::Hash};
18
19 assert_fields!(GuildWidgetSettings: channel_id, enabled);
20 assert_impl_all!(
21 GuildWidgetSettings: Clone,
22 Debug,
23 Deserialize<'static>,
24 Eq,
25 Hash,
26 PartialEq,
27 Serialize,
28 Send,
29 Sync
30 );
31
32 #[test]
33 fn guild_widget_settings() {
34 let value = GuildWidgetSettings {
35 channel_id: Id::new(111_111_111_111_111_111),
36 enabled: true,
37 };
38
39 serde_test::assert_tokens(
40 &value,
41 &[
42 Token::Struct {
43 name: "GuildWidgetSettings",
44 len: 2,
45 },
46 Token::Str("channel_id"),
47 Token::NewtypeStruct { name: "Id" },
48 Token::Str("111111111111111111"),
49 Token::Str("enabled"),
50 Token::Bool(true),
51 Token::StructEnd,
52 ],
53 );
54 }
55}