twilight_model/channel/message/embed/
provider.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
4pub struct EmbedProvider {
5    #[serde(skip_serializing_if = "Option::is_none")]
6    pub name: Option<String>,
7    #[serde(skip_serializing_if = "Option::is_none")]
8    pub url: Option<String>,
9}
10
11#[cfg(test)]
12mod tests {
13    use super::EmbedProvider;
14    use serde_test::Token;
15
16    #[test]
17    fn embed_provider() {
18        let value = EmbedProvider {
19            name: Some("Example".to_owned()),
20            url: Some("https://example.com".to_owned()),
21        };
22
23        serde_test::assert_tokens(
24            &value,
25            &[
26                Token::Struct {
27                    name: "EmbedProvider",
28                    len: 2,
29                },
30                Token::Str("name"),
31                Token::Some,
32                Token::Str("Example"),
33                Token::Str("url"),
34                Token::Some,
35                Token::Str("https://example.com"),
36                Token::StructEnd,
37            ],
38        );
39    }
40}