twilight_model/channel/
followed_channel.rs

1use crate::id::{
2    marker::{ChannelMarker, WebhookMarker},
3    Id,
4};
5use serde::{Deserialize, Serialize};
6
7/// An object indicating that following a news channel
8/// was successful.
9///
10/// It contains the [`Id<ChannelMarker>`] that is being followed
11/// and the [`Id<WebhookMarker>`] that was created in the
12/// target channel.
13#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
14pub struct FollowedChannel {
15    pub channel_id: Id<ChannelMarker>,
16    pub webhook_id: Id<WebhookMarker>,
17}
18
19#[cfg(test)]
20mod tests {
21    use super::FollowedChannel;
22    use crate::id::Id;
23    use serde_test::Token;
24
25    #[test]
26    fn followed_channel() {
27        let value = FollowedChannel {
28            channel_id: Id::new(1),
29            webhook_id: Id::new(2),
30        };
31
32        serde_test::assert_tokens(
33            &value,
34            &[
35                Token::Struct {
36                    name: "FollowedChannel",
37                    len: 2,
38                },
39                Token::Str("channel_id"),
40                Token::NewtypeStruct { name: "Id" },
41                Token::Str("1"),
42                Token::Str("webhook_id"),
43                Token::NewtypeStruct { name: "Id" },
44                Token::Str("2"),
45                Token::StructEnd,
46            ],
47        );
48    }
49}