Skip to main content

twilight_model/guild/
vanity_url.rs

1use serde::{Deserialize, Serialize};
2
3/// Information about a guild's vanity URL setting.
4#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
5pub struct VanityUrl {
6    /// Code of the vanity URL.
7    ///
8    /// For example, in an invite of `discord.gg/applejack`, the code is
9    /// `applejack`.
10    ///
11    /// The code will be null if not currently set.
12    pub code: Option<String>,
13    /// Number of times the vanity URL has been used.
14    pub uses: u64,
15}
16
17#[cfg(test)]
18mod tests {
19    use super::VanityUrl;
20    use serde_test::Token;
21
22    #[test]
23    fn vanity_url() {
24        let url = VanityUrl {
25            code: Some("a".to_owned()),
26            uses: 12,
27        };
28        serde_test::assert_tokens(
29            &url,
30            &[
31                Token::Struct {
32                    name: "VanityUrl",
33                    len: 2,
34                },
35                Token::String("code"),
36                Token::Some,
37                Token::String("a"),
38                Token::String("uses"),
39                Token::U64(12),
40                Token::StructEnd,
41            ],
42        );
43    }
44}