ggapi/structs/
streams.rs

1
2use serde::{
3    Deserialize,
4    Serialize,
5};
6
7/// Equivalent for start.gg Streams.
8///
9/// Each element in the structure is optional, allowing a user to only query values they want.
10/// Given each is an option and not a requirement, a method is included for each element with the same name.
11/// These methods will unwrap and return the proper value without any unwrapping or references needed.
12#[derive(Clone, Default, Serialize, Deserialize)]
13pub struct GGStreams {
14
15    pub enabled:            Option<bool>,
16
17    #[serde(rename(serialize = "followerCount",     deserialize = "followerCount"))]
18    pub follower_count:     Option<i64>,
19    pub id:                 Option<i64>,
20
21    #[serde(rename(serialize = "isOnline",          deserialize = "isOnline"))]
22    pub is_online:          Option<bool>,
23
24    #[serde(rename(serialize = "numSetups",         deserialize = "numSetups"))]
25    pub num_setups:         Option<i64>,
26
27    #[serde(rename(serialize = "parentStreamId",    deserialize = "parentStreamId"))]
28    pub parent_stream_id:   Option<i64>,
29
30    #[serde(rename(serialize = "streamGame",        deserialize = "streamGame"))]
31    pub stream_game:        Option<String>,
32
33    #[serde(rename(serialize = "streamId",          deserialize = "streamId"))]
34    pub stream_id:          Option<String>,
35
36    #[serde(rename(serialize = "streamLogo",        deserialize = "streamLogo"))]
37    pub stream_logo:        Option<String>,
38
39    #[serde(rename(serialize = "streamName",        deserialize = "streamName"))]
40    pub stream_name:        Option<String>,
41
42    #[serde(rename(serialize = "streamSource",      deserialize = "streamSource"))]
43    pub stream_source:      Option<i64>,
44
45    #[serde(rename(serialize = "streamStatus",      deserialize = "streamStatus"))]
46    pub stream_status:      Option<String>,
47
48    #[serde(rename(serialize = "streamType",        deserialize = "streamType"))]
49    pub stream_type:        Option<i64>,
50
51    #[serde(rename(serialize = "streamTypeId",      deserialize = "streamTypeId"))]
52    pub stream_type_id:     Option<i64>,
53
54}
55
56impl GGStreams {
57
58    /// Returns if the streams are enabled.
59    ///
60    /// Returns zero if not set or wasn't queried.
61    pub fn enabled(&self) -> bool {
62        let mut result: bool = false;
63        if self.enabled.is_some() {
64            result = self.enabled.unwrap().clone();
65        }
66        return result;
67    }
68
69    /// Returns the follower count of the streams.
70    ///
71    /// Returns zero if not set or wasn't queried.
72    pub fn follower_count(&self) -> i64 {
73        let mut result: i64 = 0;
74        if self.follower_count.is_some() {
75            result = self.follower_count.unwrap().clone();
76        }
77        return result;
78    }
79
80    /// Returns the id of the streams.
81    ///
82    /// Returns zero if not set or wasn't queried.
83    pub fn id(&self) -> i64 {
84        let mut result: i64 = 0;
85        if self.id.is_some() {
86            result = self.id.unwrap().clone();
87        }
88        return result;
89    }
90
91    /// Returns if the streams is online.
92    ///
93    /// Returns zero if not set or wasn't queried.
94    pub fn is_online(&self) -> bool {
95        let mut result: bool = false;
96        if self.is_online.is_some() {
97            result = self.is_online.unwrap().clone();
98        }
99        return result;
100    }
101
102    /// Returns the number of setups on the streams.
103    ///
104    /// Returns zero if not set or wasn't queried.
105    pub fn num_setups(&self) -> i64 {
106        let mut result: i64 = 0;
107        if self.num_setups.is_some() {
108            result = self.num_setups.unwrap().clone();
109        }
110        return result;
111    }
112
113    /// Returns the parent stream id of the streams.
114    ///
115    /// Returns zero if not set or wasn't queried.
116    pub fn parent_stream_id(&self) -> i64 {
117        let mut result: i64 = 0;
118        if self.parent_stream_id.is_some() {
119            result = self.parent_stream_id.unwrap().clone();
120        }
121        return result;
122    }
123
124    /// Returns the stream game of the streams.
125    ///
126    /// Returns an empty string if not set or wasn't queried.
127    pub fn stream_game(&self) -> String {
128        let mut result: String = "".to_string();
129        if self.stream_game.is_some() {
130            result = self.stream_game.clone().unwrap().clone();
131        }
132        return result;
133    }
134
135    /// Returns the stream id of the streams.
136    ///
137    /// Returns an empty string if not set or wasn't queried.
138    pub fn stream_id(&self) -> String {
139        let mut result: String = "".to_string();
140        if self.stream_id.is_some() {
141            result = self.stream_id.clone().unwrap().clone();
142        }
143        return result;
144    }
145
146    /// Returns the stream logo of the streams.
147    ///
148    /// Returns an empty string if not set or wasn't queried.
149    pub fn stream_logo(&self) -> String {
150        let mut result: String = "".to_string();
151        if self.stream_logo.is_some() {
152            result = self.stream_logo.clone().unwrap().clone();
153        }
154        return result;
155    }
156
157    /// Returns the stream name of the streams.
158    ///
159    /// Returns an empty string if not set or wasn't queried.
160    pub fn stream_name(&self) -> String {
161        let mut result: String = "".to_string();
162        if self.stream_name.is_some() {
163            result = self.stream_name.clone().unwrap().clone();
164        }
165        return result;
166    }
167
168    /// Returns the stream source of the streams.
169    ///
170    /// Returns zero if not set or wasn't queried.
171    pub fn stream_source(&self) -> i64 {
172        let mut result: i64 = 0;
173        if self.stream_source.is_some() {
174            result = self.stream_source.unwrap().clone();
175        }
176        return result;
177    }
178
179    /// Returns the stream status of the streams.
180    ///
181    /// Returns an empty string if not set or wasn't queried.
182    pub fn stream_status(&self) -> String {
183        let mut result: String = "".to_string();
184        if self.stream_status.is_some() {
185            result = self.stream_status.clone().unwrap().clone();
186        }
187        return result;
188    }
189
190    /// Returns the stream type of the streams.
191    ///
192    /// Returns zero if not set or wasn't queried.
193    pub fn stream_type(&self) -> i64 {
194        let mut result: i64 = 0;
195        if self.stream_type.is_some() {
196            result = self.stream_type.unwrap().clone();
197        }
198        return result;
199    }
200
201    /// Returns the stream type id of the streams.
202    ///
203    /// Returns zero if not set or wasn't queried.
204    pub fn stream_type_id(&self) -> i64 {
205        let mut result: i64 = 0;
206        if self.stream_type_id.is_some() {
207            result = self.stream_type_id.unwrap().clone();
208        }
209        return result;
210    }
211
212}