Skip to main content

twapi_v2/fields/
poll_fields.rs

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