twapi_v2/fields/
poll_fields.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashSet;
3
4#[derive(Serialize, Deserialize, Debug, Eq, Hash, PartialEq, Clone)]
5pub enum PollFields {
6    #[serde(rename = "duration_minutes")]
7    DurationMinutes,
8    #[serde(rename = "end_datetime")]
9    EndDatetime,
10    #[serde(rename = "id")]
11    Id,
12    #[serde(rename = "options")]
13    Options,
14    #[serde(rename = "voting_status")]
15    VotingStatus,
16}
17
18impl PollFields {
19    pub fn all() -> HashSet<Self> {
20        let mut result = HashSet::new();
21        result.insert(Self::DurationMinutes);
22        result.insert(Self::EndDatetime);
23        result.insert(Self::Id);
24        result.insert(Self::Options);
25        result.insert(Self::VotingStatus);
26        result
27    }
28}
29
30impl std::fmt::Display for PollFields {
31    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
32        match self {
33            Self::DurationMinutes => write!(f, "duration_minutes"),
34            Self::EndDatetime => write!(f, "end_datetime"),
35            Self::Id => write!(f, "id"),
36            Self::Options => write!(f, "options"),
37            Self::VotingStatus => write!(f, "voting_status"),
38        }
39    }
40}
41
42impl Default for PollFields {
43    fn default() -> Self {
44        Self::DurationMinutes
45    }
46}