twilight_model/voice/
voice_region.rs

1use serde::{Deserialize, Serialize};
2
3/// Geographically based collection of voice servers.
4#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
5pub struct VoiceRegion {
6    /// Whether this is a custom voice region, used for e.g. events.
7    pub custom: bool,
8    /// Whether this is a deprecated voice region (avoid switching to these).
9    pub deprecated: bool,
10    /// Unique region identifier.
11    pub id: String,
12    /// Name of the region.
13    pub name: String,
14    /// Whether this is the closest region to the current user's client.
15    pub optimal: bool,
16}
17
18#[cfg(test)]
19mod tests {
20    use super::VoiceRegion;
21    use serde_test::Token;
22
23    #[test]
24    fn voice_region() {
25        let value = VoiceRegion {
26            custom: false,
27            deprecated: false,
28            id: "region".to_owned(),
29            name: "Region".to_owned(),
30            optimal: false,
31        };
32
33        serde_test::assert_tokens(
34            &value,
35            &[
36                Token::Struct {
37                    name: "VoiceRegion",
38                    len: 5,
39                },
40                Token::Str("custom"),
41                Token::Bool(false),
42                Token::Str("deprecated"),
43                Token::Bool(false),
44                Token::Str("id"),
45                Token::Str("region"),
46                Token::Str("name"),
47                Token::Str("Region"),
48                Token::Str("optimal"),
49                Token::Bool(false),
50                Token::StructEnd,
51            ],
52        );
53    }
54}