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 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}