marketstack/api/
common.rs1use std::borrow::Cow;
7
8use crate::api::ParamValue;
9
10#[derive(Debug, Clone, Copy, PartialEq, Eq)]
12pub enum SortOrder {
13 Ascending,
15 Descending,
17}
18
19#[allow(clippy::derivable_impls)]
20impl Default for SortOrder {
21 fn default() -> Self {
22 SortOrder::Descending
24 }
25}
26
27impl SortOrder {
28 pub fn as_str(self) -> &'static str {
30 match self {
31 SortOrder::Ascending => "ASC",
32 SortOrder::Descending => "DESC",
33 }
34 }
35}
36
37impl ParamValue<'static> for SortOrder {
38 fn as_value(&self) -> Cow<'static, str> {
39 self.as_str().into()
40 }
41}
42
43#[derive(Debug, Clone)]
45pub enum Interval {
46 OneMinute,
48 FiveMinutes,
50 TenMinutes,
52 FifteenMinutes,
54 ThirtyMinutes,
56 OneHour,
58 ThreeHour,
60 SixHour,
62 TwelveHour,
64 TwentyFourHour,
66}
67
68#[allow(clippy::derivable_impls)]
69impl Default for Interval {
70 fn default() -> Self {
71 Interval::OneHour
73 }
74}
75
76impl Interval {
77 fn as_str(&self) -> &'static str {
79 match self {
80 Interval::OneMinute => "1min",
81 Interval::FiveMinutes => "5min",
82 Interval::TenMinutes => "10min",
83 Interval::FifteenMinutes => "15min",
84 Interval::ThirtyMinutes => "30min",
85 Interval::OneHour => "1hour",
86 Interval::ThreeHour => "3hour",
87 Interval::SixHour => "6hour",
88 Interval::TwelveHour => "12hour",
89 Interval::TwentyFourHour => "24hour",
90 }
91 }
92}
93
94impl ParamValue<'static> for Interval {
95 fn as_value(&self) -> Cow<'static, str> {
96 self.as_str().into()
97 }
98}