twapi_v2/fields/
space_fields.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashSet;
3
4#[derive(Serialize, Deserialize, Debug, Eq, Hash, PartialEq, Clone)]
5pub enum SpaceFields {
6    #[serde(rename = "host_ids")]
7    HostIds,
8    #[serde(rename = "created_at")]
9    CreatedAt,
10    #[serde(rename = "creator_id")]
11    CreatorId,
12    #[serde(rename = "id")]
13    Id,
14    #[serde(rename = "lang")]
15    Lang,
16    #[serde(rename = "invited_user_ids")]
17    InvitedUserIds,
18    #[serde(rename = "participant_count")]
19    ParticipantCount,
20    #[serde(rename = "speaker_ids")]
21    SpeakerIds,
22    #[serde(rename = "started_at")]
23    StartedAt,
24    #[serde(rename = "ended_at")]
25    EndedAt,
26    #[serde(rename = "subscriber_count")]
27    SubscriberCount,
28    #[serde(rename = "topic_ids")]
29    TopicIds,
30    #[serde(rename = "state")]
31    State,
32    #[serde(rename = "title")]
33    Title,
34    #[serde(rename = "updated_at")]
35    UpdatedAt,
36    #[serde(rename = "scheduled_start")]
37    ScheduledStart,
38    #[serde(rename = "is_ticketed")]
39    IsTicketed,
40}
41
42impl SpaceFields {
43    pub fn all() -> HashSet<Self> {
44        let mut result = HashSet::new();
45        result.insert(Self::HostIds);
46        result.insert(Self::CreatedAt);
47        result.insert(Self::CreatorId);
48        result.insert(Self::Id);
49        result.insert(Self::Lang);
50        result.insert(Self::InvitedUserIds);
51        result.insert(Self::ParticipantCount);
52        result.insert(Self::SpeakerIds);
53        result.insert(Self::StartedAt);
54        result.insert(Self::EndedAt);
55        result.insert(Self::SubscriberCount);
56        result.insert(Self::TopicIds);
57        result.insert(Self::State);
58        result.insert(Self::Title);
59        result.insert(Self::UpdatedAt);
60        result.insert(Self::ScheduledStart);
61        result.insert(Self::IsTicketed);
62        result
63    }
64}
65
66impl std::fmt::Display for SpaceFields {
67    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
68        match self {
69            Self::HostIds => write!(f, "host_ids"),
70            Self::CreatedAt => write!(f, "created_at"),
71            Self::CreatorId => write!(f, "creator_id"),
72            Self::Id => write!(f, "id"),
73            Self::Lang => write!(f, "lang"),
74            Self::InvitedUserIds => write!(f, "invited_user_ids"),
75            Self::ParticipantCount => write!(f, "participant_count"),
76            Self::SpeakerIds => write!(f, "speaker_ids"),
77            Self::StartedAt => write!(f, "started_at"),
78            Self::EndedAt => write!(f, "ended_at"),
79            Self::SubscriberCount => write!(f, "subscriber_count"),
80            Self::TopicIds => write!(f, "topic_ids"),
81            Self::State => write!(f, "state"),
82            Self::Title => write!(f, "title"),
83            Self::UpdatedAt => write!(f, "updated_at"),
84            Self::ScheduledStart => write!(f, "scheduled_start"),
85            Self::IsTicketed => write!(f, "is_ticketed"),
86        }
87    }
88}
89
90impl Default for SpaceFields {
91    fn default() -> Self {
92        Self::HostIds
93    }
94}