twilight_model/channel/message/embed/
provider.rs1use 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}