twilight_model/gateway/presence/
activity_assets.rs1use 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 large_url: Option<String>,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub small_image: Option<String>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub small_text: Option<String>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub small_url: Option<String>,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub invite_cover_image: Option<String>,
19}
20
21#[cfg(test)]
22mod tests {
23 use super::ActivityAssets;
24 use serde_test::Token;
25
26 #[test]
27 fn activity_secrets() {
28 let value = ActivityAssets {
29 large_image: Some("large image hash".to_owned()),
30 large_text: Some("large image text".to_owned()),
31 large_url: Some("large image url".to_owned()),
32 small_image: Some("small image hash".to_owned()),
33 small_text: Some("small text hash".to_owned()),
34 small_url: Some("small image url".to_owned()),
35 invite_cover_image: Some("invite cover hash".to_owned()),
36 };
37
38 serde_test::assert_tokens(
39 &value,
40 &[
41 Token::Struct {
42 name: "ActivityAssets",
43 len: 7,
44 },
45 Token::Str("large_image"),
46 Token::Some,
47 Token::Str("large image hash"),
48 Token::Str("large_text"),
49 Token::Some,
50 Token::Str("large image text"),
51 Token::Str("large_url"),
52 Token::Some,
53 Token::Str("large image url"),
54 Token::Str("small_image"),
55 Token::Some,
56 Token::Str("small image hash"),
57 Token::Str("small_text"),
58 Token::Some,
59 Token::Str("small text hash"),
60 Token::Str("small_url"),
61 Token::Some,
62 Token::Str("small image url"),
63 Token::Str("invite_cover_image"),
64 Token::Some,
65 Token::Str("invite cover hash"),
66 Token::StructEnd,
67 ],
68 );
69 }
70}