twilight_model/gateway/presence/
activity_assets.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
4pub struct ActivityAssets {
5    #[serde(skip_serializing_if = "Option::is_none")]
6    pub large_image: Option<String>,
7    #[serde(skip_serializing_if = "Option::is_none")]
8    pub large_text: Option<String>,
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub small_image: Option<String>,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub small_text: Option<String>,
13}
14
15#[cfg(test)]
16mod tests {
17    use super::ActivityAssets;
18    use serde_test::Token;
19
20    #[test]
21    fn activity_secrets() {
22        let value = ActivityAssets {
23            large_image: Some("large image hash".to_owned()),
24            large_text: Some("large image text".to_owned()),
25            small_image: Some("small image hash".to_owned()),
26            small_text: Some("small text hash".to_owned()),
27        };
28
29        serde_test::assert_tokens(
30            &value,
31            &[
32                Token::Struct {
33                    name: "ActivityAssets",
34                    len: 4,
35                },
36                Token::Str("large_image"),
37                Token::Some,
38                Token::Str("large image hash"),
39                Token::Str("large_text"),
40                Token::Some,
41                Token::Str("large image text"),
42                Token::Str("small_image"),
43                Token::Some,
44                Token::Str("small image hash"),
45                Token::Str("small_text"),
46                Token::Some,
47                Token::Str("small text hash"),
48                Token::StructEnd,
49            ],
50        );
51    }
52}